Merge "Fix Eclipse classpath file for ICS."
diff --git a/build/Android.mk b/build/Android.mk
index e4eeb0a..c65ca9c 100644
--- a/build/Android.mk
+++ b/build/Android.mk
@@ -1,3 +1,39 @@
+# ===== SDK source.property files =====
+
+# Add all files to be generated from the source.prop templates to the SDK pre-requisites
+ALL_SDK_FILES += $(patsubst \
+                   $(TOPDIR)development/sdk/%_source.prop_template, \
+                   $(HOST_OUT)/development/sdk/%_source.properties, \
+                   $(wildcard $(TOPDIR)development/sdk/*_source.prop_template)) \
+                 $(patsubst \
+                   $(TOPDIR)development/samples/%_source.prop_template, \
+                   $(HOST_OUT)/development/samples/%_source.properties, \
+                   $(wildcard $(TOPDIR)development/samples/*_source.prop_template))
+
+# Rule to convert a source.prop template into the desired source.property
+# Rewritten variables:
+# - ${PLATFORM_VERSION}          e.g. "1.0"
+# - ${PLATFORM_SDK_VERSION}      e.g. "3", aka the API level
+# - ${PLATFORM_VERSION_CODENAME} e.g. "REL" (transformed into "") or "Cupcake"
+$(HOST_OUT)/development/sdk/%_source.properties : $(TOPDIR)development/sdk/%_source.prop_template
+	@echo Generate $@
+	$(hide) mkdir -p $(dir $@)
+	$(hide) sed -e 's/$${PLATFORM_VERSION}/$(PLATFORM_VERSION)/' \
+		 -e 's/$${PLATFORM_SDK_VERSION}/$(PLATFORM_SDK_VERSION)/' \
+		 -e 's/$${PLATFORM_VERSION_CODENAME}/$(subst REL,,$(PLATFORM_VERSION_CODENAME))/' \
+		 $< > $@ && sed -i -e '/^AndroidVersion.CodeName=\s*$$/d' $@
+
+$(HOST_OUT)/development/samples/%_source.properties : $(TOPDIR)development/samples/%_source.prop_template
+	@echo Generate $@
+	$(hide) mkdir -p $(dir $@)
+	$(hide) sed -e 's/$${PLATFORM_VERSION}/$(PLATFORM_VERSION)/' \
+		 -e 's/$${PLATFORM_SDK_VERSION}/$(PLATFORM_SDK_VERSION)/' \
+		 -e 's/$${PLATFORM_VERSION_CODENAME}/$(subst REL,,$(PLATFORM_VERSION_CODENAME))/' \
+		 $< > $@ && sed -i -e '/^AndroidVersion.CodeName=\s*$$/d' $@
+
+
+# ===== Android Support/Compatibility Library =====
+
 LOCAL_PATH := $(call my-dir)
 
 # The source files for this library are _all_ generated, something we don't do
diff --git a/build/product_sdk.mk b/build/product_sdk.mk
new file mode 100644
index 0000000..ad82778
--- /dev/null
+++ b/build/product_sdk.mk
@@ -0,0 +1,53 @@
+#
+# 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.
+#
+
+
+#
+# This file is included by build.git/target/product/sdk.mk
+# to define the tools that needed to be built and included
+# in an SDK.
+#
+# If you add a dependency here, you will want to then
+# modify build/tools.atree to have the new files
+# packaged in the SDK.
+#
+
+# Host tools and java libraries that are parts of the SDK.
+PRODUCT_PACKAGES += \
+	adb \
+	bios.bin \
+	commons-compress-1.0 \
+	dexdump \
+	dmtracedump \
+	emmalib \
+	etc1tool \
+	groovy-all-1.7.0 \
+	guava-tools \
+	hprof-conv \
+	jcommon-1.0.12 \
+	jfreechart-1.0.9 \
+	jfreechart-1.0.9-swt \
+	jython \
+	layoutlib \
+	layoutlib-tests \
+	org.eclipse.jface_3.6.2.M20110210-1200 \
+	org.eclipse.equinox.common_3.6.0.v20100503 \
+	org.eclipse.core.commands_3.6.0.I20100512-1500 \
+	osgi \
+	swing-worker-1.1 \
+	vgabios-cirrus.bin
+
+:qa!

diff --git a/build/sdk-darwin-x86.atree b/build/sdk-darwin-x86.atree
index 2460d5d..118ed1c 100644
--- a/build/sdk-darwin-x86.atree
+++ b/build/sdk-darwin-x86.atree
@@ -15,27 +15,9 @@
 #
 
 ##############################################################################
-# Platform Tools Component
+# Docs Component
 ##############################################################################
 
-
-
-##############################################################################
-# Tools Component
-# Legacy: this should be moved to sdk/build/tools.atree
-##############################################################################
-
-# swt
-prebuilt/darwin-x86/swt/swt.jar tools/lib/x86/swt.jar
-prebuilt/darwin-x86_64/swt/swt.jar tools/lib/x86_64/swt.jar
-
-
-# JetCreator (only available on mac/windows)
-external/sonivox/jet_tools/JetCreator tools/Jet/JetCreator
-prebuilt/darwin-x86/jetcreator/libEASLIb.dylib tools/Jet/JetCreator/libEASLIb.dylib
-external/sonivox/jet_tools/JetCreator_content tools/Jet/demo_content
-external/sonivox/jet_tools/logic_templates tools/Jet/logic_templates
-
 external/sonivox/docs/JET_Authoring_Guidelines.html docs/JetCreator/JET_Authoring_Guidelines.html
 external/sonivox/docs/JET_Authoring_Guidelines_files docs/JetCreator/JET_Authoring_Guidelines_files
 external/sonivox/docs/JET_Creator_User_Manual.html docs/JetCreator/JET_Creator_User_Manual.html
diff --git a/build/sdk-linux-x86.atree b/build/sdk-linux-x86.atree
index 1a9a890..e21785e 100644
--- a/build/sdk-linux-x86.atree
+++ b/build/sdk-linux-x86.atree
@@ -14,17 +14,4 @@
 # limitations under the License.
 #
 
-##############################################################################
-# Platform Tools Component
-##############################################################################
 
-
-
-##############################################################################
-# Tools Component
-# Legacy: this should be moved to sdk/build/tools.atree
-##############################################################################
-
-# swt
-prebuilt/linux-x86/swt/swt.jar tools/lib/x86/swt.jar
-prebuilt/linux-x86_64/swt/swt.jar tools/lib/x86_64/swt.jar
diff --git a/build/sdk-windows-x86.atree b/build/sdk-windows-x86.atree
index 3144b27..2eee75d 100644
--- a/build/sdk-windows-x86.atree
+++ b/build/sdk-windows-x86.atree
@@ -48,13 +48,6 @@
 rm platform-tools/llvm-rs-cc
 bin/llvm-rs-cc.exe                      strip platform-tools/llvm-rs-cc.exe
 
-prebuilt/windows/swt/swt.jar                  tools/lib/x86/swt.jar
-prebuilt/windows-x86_64/swt/swt.jar           tools/lib/x86_64/swt.jar
-
-external/sonivox/jet_tools/JetCreator                 tools/Jet/JetCreator
-external/sonivox/jet_tools/JetCreator_content         tools/Jet/demo_content
-external/sonivox/jet_tools/logic_templates            tools/Jet/logic_templates
-prebuilt/windows/jetcreator/EASDLL.dll                tools/Jet/JetCreator/EASDLL.dll
 external/sonivox/docs/JET_Authoring_Guidelines.html   docs/JetCreator/JET_Authoring_Guidelines.html
 external/sonivox/docs/JET_Authoring_Guidelines_files  docs/JetCreator/JET_Authoring_Guidelines_files
 external/sonivox/docs/JET_Creator_User_Manual.html    docs/JetCreator/JET_Creator_User_Manual.html
diff --git a/build/sdk.atree b/build/sdk.atree
index 323ffcf..b0d6642 100644
--- a/build/sdk.atree
+++ b/build/sdk.atree
@@ -56,12 +56,15 @@
 external/clang/lib/Headers                    platform-tools/renderscript/clang-include
 external/clang/LICENSE.TXT                    platform-tools/renderscript/clang-include/LICENSE.TXT
 
+# API database for tools such as lint
+development/sdk/api-versions.xml              platform-tools/api/api-versions.xml
+
 ##############################################################################
 # Platform Component
 ##############################################################################
 
 # version files for the SDK updater, from development.git
-development/sdk/platform_source.properties    platforms/${PLATFORM_NAME}/source.properties
+${HOST_OUT}/development/sdk/platform_source.properties platforms/${PLATFORM_NAME}/source.properties
 
 # copy build prop from out/.../sdk/
 sdk/sdk-build.prop                            platforms/${PLATFORM_NAME}/build.prop
@@ -132,7 +135,7 @@
 ##############################################################################
 
 # version files for the SDK updater, from sdk.git
-development/sdk/doc_source.properties docs/source.properties
+${HOST_OUT}/development/sdk/doc_source.properties docs/source.properties
 
 # the docs
 docs/offline-sdk docs
@@ -147,8 +150,8 @@
 #
 # the list here should match the list of samples that we generate docs for,
 # (see web_docs_sample_code_flags in frameworks/base/Android.mk)
-development/apps/GestureBuilder              samples/${PLATFORM_NAME}/GestureBuilder
-development/samples/source.properties        samples/${PLATFORM_NAME}/source.properties
+development/apps/GestureBuilder                samples/${PLATFORM_NAME}/GestureBuilder
+development/samples/samples_source.properties  samples/${PLATFORM_NAME}/source.properties
 #
 # PLEASE KEEP THE SAMPLES IN ALPHABETICAL ORDER.
 #
@@ -156,6 +159,7 @@
 development/samples/ActionBarCompat            samples/${PLATFORM_NAME}/ActionBarCompat
 development/samples/AndroidBeamDemo            samples/${PLATFORM_NAME}/AndroidBeamDemo
 development/samples/ApiDemos                   samples/${PLATFORM_NAME}/ApiDemos
+development/samples/AppNavigation              samples/${PLATFORM_NAME}/AppNavigation
 development/samples/BackupRestore              samples/${PLATFORM_NAME}/BackupRestore
 development/samples/BasicGLSurfaceView         samples/${PLATFORM_NAME}/BasicGLSurfaceView
 development/samples/BluetoothChat              samples/${PLATFORM_NAME}/BluetoothChat
@@ -221,10 +225,13 @@
 sdk/files/sdk_files_NOTICE.txt                                                                    extras/android/support/NOTICE.txt
 ${OUT_DIR}/target/common/obj/PACKAGING/android-support-v4_intermediates/android-support-v4.jar    extras/android/support/v4/android-support-v4.jar
 frameworks/support/v4                                                                             extras/android/support/v4/src
-development/samples/Support4Demos                                                                 extras/android/support/v4/samples/Support4Demos
+development/samples/Support4Demos                                                                 extras/android/support/samples/Support4Demos
+
 ${OUT_DIR}/target/common/obj/PACKAGING/android-support-v13_intermediates/android-support-v13.jar  extras/android/support/v13/android-support-v13.jar
 frameworks/support/v13                                                                            extras/android/support/v13/src
-development/samples/Support13Demos                                                                extras/android/support/v13/samples/Support13Demos
+development/samples/Support13Demos                                                                extras/android/support/samples/Support13Demos
+
+development/sdk/prebuilt/v7                                                                       extras/android/support/v7
 
 ##############################################################################
 # Tests Component
diff --git a/build/sdk_only_whitelist.mk b/build/sdk_only_whitelist.mk
new file mode 100644
index 0000000..ed27792
--- /dev/null
+++ b/build/sdk_only_whitelist.mk
@@ -0,0 +1,69 @@
+# Whitelist of SDK projects that can be built for the SDK on Windows
+
+# The Windows SDK cannot build all the projects from the SDK tree, typically
+# due to obvious compiler/architectures differences. When building the Windows
+# SDK, we only care about a subset of projects (e.g. generally the SDK tools
+# and a few platform-specific binaries.)
+#
+# This file defines a whitelist of projects that can be built in the Windows
+# SDK case. Note that whitelisting a project directory will NOT actually build
+# it -- it will only allow one to reference it as a make dependency.
+#
+# This file is included by build/core/main.mk.
+
+# Note that there are 2 flavors of this file:
+#
+# - The other file: sdk/build/sdk_only_whitelist.mk
+#   must list all projects that are that are NOT specific to a given platform.
+#   These binaries are the ones typically found in the SDK/tools directory.
+#
+# - This file: development/build/sdk_only_whitelist.mk
+#   must list all projects that are specific to a given platform. These
+#   projects generate files that are generally locates in SDK/platform-tools,
+#   or SDK/platforms/, etc.
+
+# -----
+# Whitelist of platform specific projects that do NOT need Java (e.g. C libraries)
+
+subdirs += \
+	prebuilt \
+	prebuilts \
+	build/libs/host \
+	build/tools/zipalign \
+	dalvik/dexdump \
+	dalvik/libdex \
+	dalvik/tools/dmtracedump \
+	dalvik/tools/hprof-conv \
+	development/host \
+	development/tools/etc1tool \
+	development/tools/line_endings \
+	external/clang \
+	external/easymock \
+	external/expat \
+	external/libpng \
+	external/llvm \
+	external/sqlite/dist \
+	external/zlib \
+	frameworks/base \
+	frameworks/compile \
+	system/core/adb \
+	system/core/fastboot \
+	system/core/libcutils \
+	system/core/liblog \
+	system/core/libzipfile
+
+# -----
+# Whitelist of platform specific projects that DO require Java
+
+ifneq (,$(shell which javac 2>/dev/null))
+subdirs += \
+	build/tools/signapk \
+	dalvik/dx \
+	libcore \
+	development/apps \
+	development/tools/mkstubs \
+	packages
+
+else
+$(warning SDK_ONLY: javac not available.)
+endif
diff --git a/build/tools/mk_sdk_repo_xml.sh b/build/tools/mk_sdk_repo_xml.sh
index a97ecaf..298671d 100755
--- a/build/tools/mk_sdk_repo_xml.sh
+++ b/build/tools/mk_sdk_repo_xml.sh
@@ -12,6 +12,10 @@
 TMP_DIR=$(mktemp -d -t sdkrepo.tmp.XXXXXXXX)
 trap "rm -rf $TMP_DIR" EXIT
 
+function debug() {
+  echo "DEBUG: " $@ > /dev/stderr
+}
+
 function error() {
   echo "*** ERROR: " $@
   usage
@@ -21,6 +25,7 @@
   cat <<EOFU
 Usage: $0 output.xml xml-schema [type [os zip[:dest]]*...]*
 where:
+- schema is one of 'repository' or 'addon'
 - type is one of ${TYPES// /, } (or their plural).
 - os   is one of  ${OSES// /, }.
 There can be more than one zip for the same type
@@ -40,15 +45,20 @@
 [[ -z "$OUT" ]] && error "Missing output.xml name."
 shift
 
+# Get the schema type. Must be either "repository" or "addon".
 SCHEMA="$1"
 [[ ! -f "$SCHEMA" ]] && error "Invalid XML schema name: $SCHEMA."
 shift
 
 # Get XML:NS for SDK from the schema
+# This will be something like "http://schemas.android.com/sdk/android/addon/3"
 XMLNS=$(sed -n '/xmlns:sdk="/s/.*"\(.*\)".*/\1/p' "$SCHEMA")
 [[ -z "$XMLNS" ]] && error "Failed to find xmlns:sdk in $SCHEMA."
 echo "## Using xmlns:sdk=$XMLNS"
 
+# Extract the schema version number from the XMLNS, e.g. it would extract "3"
+XSD_VERSION="${XMLNS##*/}"
+
 # Get the root element from the schema. This is the first element
 # which name starts with "sdk-" (e.g. sdk-repository, sdk-addon)
 ROOT=$(sed -n -e '/xsd:element.*name="sdk-/s/.*name="\(sdk-[^"]*\)".*/\1/p' "$SCHEMA")
@@ -77,72 +87,197 @@
   done
 }
 
-# Parse all archives.
+# Definition of the attributes we read from source.properties or manifest.ini
+# files and the equivalent XML element being generated.
 
 ATTRS=(
-  # for repository packages
-  Pkg.Revision                  revision
-  Pkg.Desc                      description
-  Platform.Version              version
-  AndroidVersion.ApiLevel       api-level
-  AndroidVersion.CodeName       codename
-  Platform.IncludedAbi          included-abi
-  Platform.MinToolsRev          min-tools-rev
-  Platform.MinPlatformToolsRev  min-platform-tools-rev
-  Extra.Vendor                  vendor
-  Extra.Path                    path
-  Extra.OldPaths                old-paths
-  Extra.MinApiLevel             min-api-level
-  Sample.MinApiLevel            min-api-level
-  SystemImage.Abi               abi
-  Layoutlib.Api                 layoutlib/api
-  Layoutlib.Revision            layoutlib/revision
-  # for addon packages
-  vendor                        vendor
-  name                          name
-  description                   description
-  api                           api-level
-  version                       revision
-  revision                      revision
+  # Columns:
+  # --------------------------+------------------------+----------------------
+  # Name read from            | XML element written    | Min-XSD version
+  # source.properties         | to repository.xml      | where XML can be used
+  # --------------------------+------------------------+----------------------
+  # from source.properties for repository.xml packages
+  Pkg.Revision                  revision                 1
+  Pkg.Desc                      description              1
+  Platform.Version              version                  1
+  AndroidVersion.ApiLevel       api-level                1
+  AndroidVersion.CodeName       codename                 1
+  Platform.IncludedAbi          included-abi             5
+  Platform.MinToolsRev          min-tools-rev            1
+  Platform.MinPlatformToolsRev  min-platform-tools-rev   3
+  Sample.MinApiLevel            min-api-level            2
+  SystemImage.Abi               abi                      5
+  Layoutlib.Api                 layoutlib/api            4
+  Layoutlib.Revision            layoutlib/revision       4
+  # from source.properties for addon.xml packages
+  # (note that vendor is mapped to different XML elements based on the XSD version)
+  Extra.VendorDisplay           vendor-display           4
+  Extra.VendorId                vendor-id                4
+  Extra.Vendor                  vendor-id                4
+  Extra.Vendor                  vendor                   1
+  Extra.NameDisplay             name-display             4
+  Extra.Path                    path                     1
+  Extra.OldPaths                old-paths                3
+  Extra.MinApiLevel             min-api-level            2
+  # from addon manifest.ini for addon.xml packages
+  # (note that vendor/name are mapped to different XML elements based on the XSD version)
+  vendor-id                     vendor-id                4
+  vendor-display                vendor-display           4
+  vendor                        vendor-display           4
+  vendor                        vendor                   1
+  name-id                       name-id                  4
+  name-display                  name-display             4
+  name                          name-display             4
+  name                          name                     1
+  description                   description              1
+  api                           api-level                1
+  version                       revision                 1
+  revision                      revision                 1
 )
 
+
+# Starting with XSD repo-7 and addon-5, some revision elements are no longer just
+# integers. Instead they are in major.minor.micro.preview format. This defines
+# which elements. This depends on the XSD root element and the XSD version.
+
+if [[ "$ROOT" == "sdk-repository" && "$XSD_VERSION" -ge 7 ]] ||
+   [[ "$ROOT" == "sdk-addon"      && "$XSD_VERSION" -ge 5 ]]; then
+FULL_REVISIONS=(
+  tool          revision
+  platform-tool revision
+  @             min-tools-rev
+  @             min-platform-tools-rev
+)
+else
+FULL_REVISIONS=()
+fi
+
+
+# Parse all archives.
+
+function needs_full_revision() {
+  local PARENT="$1"
+  local ELEMENT="$2"
+  shift
+  shift
+  local P E
+
+  while [[ "$1" ]]; do
+    P=$1
+    E=$2
+    if [[ "$E" == "$ELEMENT" ]] && [[ "$P" == "@" || "$P" == "$PARENT" ]]; then
+      return 0 # true
+    fi
+    shift
+    shift
+  done
+
+  return 1 # false
+}
+
+# Parses and print a full revision in the form "1.2.3 rc4".
+# Note that the format requires to have a # space before the
+# optional "rc" (e.g. '1 rc4', not '1rc4') and no space after
+# the rc (so not '1 rc 4' either)
+function write_full_revision() {
+  local VALUE="$1"
+  local EXTRA_SPACE="$2"
+  local KEYS="major minor micro preview"
+  local V K
+
+  while [[ -n "$VALUE" && -n "$KEYS" ]]; do
+    # Take 1st segment delimited by . or space
+    V="${VALUE%%[. ]*}"
+
+    # Print it
+    if [[ "${V:0:2}" == "rc" ]]; then
+      V="${V:2}"
+      K="preview"
+      KEYS=""
+    else
+      K="${KEYS%% *}"
+    fi
+
+    if [[ -n "$V" && -n "$K" ]]; then
+        echo "$EXTRA_SPACE            <sdk:$K>$V</sdk:$K>"
+    fi
+
+    # Take the rest.
+    K="${KEYS#* }"
+    if [[ "$K" == "$KEYS" ]]; then KEYS=""; else KEYS="$K"; fi
+    V="${VALUE#*[. ]}"
+    if [[ "$V" == "$VALUE" ]]; then VALUE=""; else VALUE="$V"; fi
+  done
+}
+
+
 function parse_attributes() {
   local PROPS="$1"
   shift
   local RESULT=""
   local VALUE
+  local REV
+  local USED
 
+  # $1 here is the ATTRS list above.
   while [[ "$1" ]]; do
-    # Parse the property, if present. Any space is replaced by @
-    VALUE=$( grep "^$1=" "$PROPS" | cut -d = -f 2 | tr ' ' '@' | tr -d '\r' )
-    if [[ -n "$VALUE" ]]; then
-      RESULT="$RESULT $2 $VALUE"
+    # Check the version in which the attribute was introduced and
+    # ignore things which are too *new* for this schema. This lets
+    # us generate old schemas for backward compatibility purposes.
+    SRC=$1
+    DST=$2
+    REV=$3
+
+    if [[ $XSD_VERSION -ge $REV ]]; then
+      # Parse the property, if present. Any space is replaced by @
+      VALUE=$( grep "^$SRC=" "$PROPS" | cut -d = -f 2 | tr ' ' '@' | tr -d '\r' )
+      if [[ -n "$VALUE" ]]; then
+        # In case an XML element would be mapped multiple times,
+        # only use its first definition.
+        if [[ "${USED/$DST/}" == "$USED" ]]; then
+          USED="$USED $DST"
+          RESULT="$RESULT $DST $VALUE"
+        fi
+      fi
     fi
     shift
     shift
+    shift
   done
 
   echo "$RESULT"
 }
 
 function output_attributes() {
-  local OUT="$1"
+  local ELEMENT="$1"
+  local OUT="$2"
+  shift
   shift
   local KEY VALUE
-  local NODE LAST_NODE
+  local NODE LAST_NODE EXTRA_SPACE
 
   while [[ "$1" ]]; do
     KEY="$1"
     VALUE="${2//@/ }"
     NODE="${KEY%%/*}"
     KEY="${KEY##*/}"
-    [[ "$NODE" == "$KEY" ]] && NODE=""
-    if [[ "$NODE" != "$LAST_NODE" ]]; then
-        [[ "$LAST_NODE" ]] && echo "          </sdk:$LAST_NODE>" >> "$OUT"
-        LAST_NODE="$NODE"
-        [[ "$NODE"      ]] && echo "          <sdk:$NODE>" >> "$OUT"
+    if [[ "$NODE" == "$KEY" ]]; then
+      NODE=""
+      EXTRA_SPACE=""
     fi
-    echo "        <sdk:$KEY>$VALUE</sdk:$KEY>" >> "$OUT"
+    if [[ "$NODE" != "$LAST_NODE" ]]; then
+      EXTRA_SPACE="    "
+      [[ "$LAST_NODE" ]] && echo "          </sdk:$LAST_NODE>" >> "$OUT"
+      LAST_NODE="$NODE"
+      [[ "$NODE"      ]] && echo "          <sdk:$NODE>" >> "$OUT"
+    fi
+    if needs_full_revision "$ELEMENT" "$KEY" ${FULL_REVISIONS[@]}; then
+      echo "$EXTRA_SPACE        <sdk:$KEY>"       >> "$OUT"
+      write_full_revision "$VALUE" "$EXTRA_SPACE" >> "$OUT"
+      echo "$EXTRA_SPACE        </sdk:$KEY>"      >> "$OUT"
+    else
+      echo "$EXTRA_SPACE        <sdk:$KEY>$VALUE</sdk:$KEY>" >> "$OUT"
+    fi
     shift
     shift
   done
@@ -235,7 +370,7 @@
 
       # Time to generate the XML for the package
       echo "    <sdk:${ELEMENT}>" >> "$OUT"
-      output_attributes "$OUT" $MAP
+      output_attributes "$ELEMENT" "$OUT" $MAP
       [[ -n "$LIBS_XML" ]] && echo "$LIBS_XML" >> "$OUT"
       echo "        <sdk:archives>" >> "$OUT"
     fi
diff --git a/build/tools/mk_sources_zip.py b/build/tools/mk_sources_zip.py
index 4aaa714..76b5b9e 100755
--- a/build/tools/mk_sources_zip.py
+++ b/build/tools/mk_sources_zip.py
@@ -39,7 +39,7 @@
         self.CNT_NOPKG = 0
         # DIR is the list of directories to scan in TOPDIR.
         self.DIR = "frameworks libcore"
-        self.IGNORE_DIR = [ "hosttests" ]
+        self.IGNORE_DIR = [ "hosttests" "tools" "tests" ]
         # IGNORE is a list of namespaces to ignore. Must be java
         # package definitions (e.g. "com.blah.foo.")
         self.IGNORE = [ "sun.", "libcore.", "dalvik.",
diff --git a/build/tools/sdk_repo.mk b/build/tools/sdk_repo.mk
index cc0d1be..deb3bdc 100644
--- a/build/tools/sdk_repo.mk
+++ b/build/tools/sdk_repo.mk
@@ -2,8 +2,10 @@
 
 .PHONY: sdk_repo
 
-SDK_REPO_DEPS :=
-SDK_REPO_XML_ARGS :=
+SDK_REPO_DEPS       :=
+SDK_REPO_XML_ARGS   :=
+SDK_EXTRAS_DEPS     :=
+SDK_EXTRAS_XML_ARGS :=
 
 # Define the name of a package zip file to generate
 # $1=OS (e.g. linux-x86, windows, etc)
@@ -88,10 +90,10 @@
 # $3=package to create, must be "sources"
 #
 define mk-sdk-repo-sources
-$(call sdk-repo-pkg-zip,$(1),$(2),$(3)): $(2) $(TOPDIR)development/sdk/source_source.properties
+$(call sdk-repo-pkg-zip,$(1),$(2),$(3)): $(2) $(HOST_OUT)/development/sdk/source_source.properties
 	@echo "Building SDK sources package"
 	$(hide) $(TOPDIR)development/build/tools/mk_sources_zip.py --exec-zip \
-			$(TOPDIR)development/sdk/source_source.properties \
+			$(HOST_OUT)/development/sdk/source_source.properties \
 			$(call sdk-repo-pkg-zip,$(1),$(2),$(3)) \
 			$(TOPDIR).
 $(call dist-for-goals, sdk_repo, $(call sdk-repo-pkg-zip,$(1),$(2),$(3)))
@@ -100,6 +102,40 @@
 endef
 
 # -----------------------------------------------------------------
+# Rules for main host sdk
+
+ifneq ($(filter sdk win_sdk,$(MAKECMDGOALS)),)
+
+# Note that extras are now located in addon.xml, not in repository.xml,
+# so we capture all extras first.
+$(eval $(call mk-sdk-repo-pkg-3,$(HOST_OS),$(MAIN_SDK_ZIP),support,extras/android))
+SDK_EXTRAS_XML_ARGS := $(SDK_REPO_XML_ARGS)
+SDK_REPO_XML_ARGS   :=
+
+SDK_EXTRAS_DEPS += \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),support)
+
+
+$(eval $(call mk-sdk-repo-pkg-1,$(HOST_OS),$(MAIN_SDK_ZIP),tools))
+$(eval $(call mk-sdk-repo-pkg-1,$(HOST_OS),$(MAIN_SDK_ZIP),platform-tools))
+$(eval $(call mk-sdk-repo-pkg-1,$(HOST_OS),$(MAIN_SDK_ZIP),docs))
+$(eval $(call mk-sdk-repo-pkg-2,$(HOST_OS),$(MAIN_SDK_ZIP),platforms))
+$(eval $(call mk-sdk-repo-pkg-2,$(HOST_OS),$(MAIN_SDK_ZIP),samples))
+$(eval $(call mk-sdk-repo-pkg-3,$(HOST_OS),$(MAIN_SDK_ZIP),system-images,system-images/*))
+$(eval $(call mk-sdk-repo-sources,$(HOST_OS),$(MAIN_SDK_ZIP),sources))
+
+SDK_REPO_DEPS += \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),tools) \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),platform-tools) \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),docs) \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),platforms) \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),samples) \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),system-images) \
+		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),sources)
+
+endif
+
+# -----------------------------------------------------------------
 # Rules for win_sdk
 
 ifneq ($(WIN_SDK_ZIP),)
@@ -115,30 +151,19 @@
 endif
 
 # -----------------------------------------------------------------
-# Rules for main host sdk
+# Pickup the most recent xml schema for repository and add-on
 
-ifneq ($(filter sdk win_sdk,$(MAKECMDGOALS)),)
+SDK_REPO_XSD := \
+	$(lastword \
+	  $(wildcard \
+	    $(TOPDIR)sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository-*.xsd \
+	))
 
-$(eval $(call mk-sdk-repo-pkg-1,$(HOST_OS),$(MAIN_SDK_ZIP),tools))
-$(eval $(call mk-sdk-repo-pkg-1,$(HOST_OS),$(MAIN_SDK_ZIP),platform-tools))
-$(eval $(call mk-sdk-repo-pkg-1,$(HOST_OS),$(MAIN_SDK_ZIP),docs))
-$(eval $(call mk-sdk-repo-pkg-2,$(HOST_OS),$(MAIN_SDK_ZIP),platforms))
-$(eval $(call mk-sdk-repo-pkg-2,$(HOST_OS),$(MAIN_SDK_ZIP),samples))
-$(eval $(call mk-sdk-repo-pkg-3,$(HOST_OS),$(MAIN_SDK_ZIP),system-images,system-images/*))
-$(eval $(call mk-sdk-repo-pkg-3,$(HOST_OS),$(MAIN_SDK_ZIP),support,extras/android))
-$(eval $(call mk-sdk-repo-sources,$(HOST_OS),$(MAIN_SDK_ZIP),sources))
-
-SDK_REPO_DEPS += \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),tools) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),platform-tools) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),docs) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),platforms) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),samples) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),system-images) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),support) \
-		$(call sdk-repo-pkg-zip,$(HOST_OS),$(MAIN_SDK_ZIP),sources)
-
-endif
+SDK_ADDON_XSD := \
+	$(lastword \
+	  $(wildcard \
+	    $(TOPDIR)sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-addon-*.xsd \
+	))
 
 # -----------------------------------------------------------------
 # Rules for sdk addon
@@ -157,12 +182,6 @@
 
 SDK_ADDON_XML := $(dir $(ADDON_SDK_ZIP))/addon.xml
 
-SDK_ADDON_XSD := \
-	$(lastword \
-	  $(wildcard \
-	    $(TOPDIR)sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-addon-*.xsd \
-	))
-
 $(SDK_ADDON_XML): $(ADDON_SDK_ZIP)
 	$(hide) $(TOPDIR)development/build/tools/mk_sdk_repo_xml.sh \
 		$(SDK_ADDON_XML) $(SDK_ADDON_XSD) add-on $(HOST_OS) $(RENAMED_ADDON_ZIP)
@@ -174,17 +193,11 @@
 # -----------------------------------------------------------------
 # Rules for the SDK Repository XML
 
-SDK_REPO_XML := $(HOST_OUT)/sdk/repository.xml
+SDK_REPO_XML   := $(HOST_OUT)/sdk/repository.xml
+SDK_EXTRAS_XML := $(HOST_OUT)/sdk/repo-extras.xml
 
 ifneq ($(SDK_REPO_XML_ARGS),)
 
-# Pickup the most recent xml schema
-SDK_REPO_XSD := \
-	$(lastword \
-	  $(wildcard \
-	    $(TOPDIR)sdk/sdkmanager/libs/sdklib/src/com/android/sdklib/repository/sdk-repository-*.xsd \
-	))
-
 $(SDK_REPO_XML): $(SDK_REPO_DEPS)
 	$(hide) $(TOPDIR)development/build/tools/mk_sdk_repo_xml.sh \
 		$(SDK_REPO_XML) $(SDK_REPO_XSD) $(SDK_REPO_XML_ARGS)
@@ -197,8 +210,23 @@
 
 endif
 
+
+ifneq ($(SDK_EXTRAS_XML_ARGS),)
+
+$(SDK_EXTRAS_XML): $(SDK_EXTRAS_DEPS)
+	$(hide) $(TOPDIR)development/build/tools/mk_sdk_repo_xml.sh \
+		$(SDK_EXTRAS_XML) $(SDK_ADDON_XSD) $(SDK_EXTRAS_XML_ARGS)
+
+$(call dist-for-goals, sdk_repo, $(SDK_EXTRAS_XML))
+
+else
+
+$(SDK_EXTRAS_XML): ;
+
+endif
+
 # -----------------------------------------------------------------
 
-sdk_repo: $(SDK_REPO_DEPS) $(SDK_REPO_XML)
+sdk_repo: $(SDK_REPO_DEPS) $(SDK_REPO_XML) $(SDK_EXTRAS_XML)
 	@echo "Packing of SDK repository done"
 
diff --git a/build/tools/windows_sdk.mk b/build/tools/windows_sdk.mk
index 2a6fc74..f57ff5d 100644
--- a/build/tools/windows_sdk.mk
+++ b/build/tools/windows_sdk.mk
@@ -22,8 +22,9 @@
 $(error Need a unix2dos command. Please 'apt-get install tofrodos')
 endif
 
-# Define WIN_SDK_TARGETS, the list of targets located in topdir/sdk
-# and are tools-dependent, not platform-dependent.
+# Define WIN_SDK_TARGETS (the list of targets located in topdir/sdk)
+# and the WIN_SDK_BUILD_PREREQ (the list of build prerequisites)
+# that are tools-dependent and not platform-dependent.
 include $(TOPDIR)sdk/build/windows_sdk_tools.mk
 
 # This is the list of targets that we want to generate as
@@ -46,7 +47,8 @@
 # build prerequisites.
 WIN_BUILD_PREREQ := \
 	acp \
-	llvm-rs-cc
+	llvm-rs-cc \
+	$(WIN_SDK_BUILD_PREREQ)
 
 
 # MAIN_SDK_NAME/DIR is set in build/core/Makefile
diff --git a/cmds/monkey/src/com/android/commands/monkey/Monkey.java b/cmds/monkey/src/com/android/commands/monkey/Monkey.java
index f3a223f..3aa2fc1 100644
--- a/cmds/monkey/src/com/android/commands/monkey/Monkey.java
+++ b/cmds/monkey/src/com/android/commands/monkey/Monkey.java
@@ -1096,7 +1096,6 @@
                     eventCounter++;
                     if (mCountEvents) {
                         cycleCounter++;
-                        writeScriptLog(cycleCounter);
                     }
                 }
             } else {
diff --git a/ndk/platforms/README.CRT.TXT b/ndk/platforms/README.CRT.TXT
new file mode 100644
index 0000000..82d0a1a
--- /dev/null
+++ b/ndk/platforms/README.CRT.TXT
@@ -0,0 +1,274 @@
+This directory contains the sources of the C runtime object files
+required by the Android NDK toolchains. This document explains
+what they are, as well as a few important details about them.
+
+The files are located under the following directories:
+
+  android-3/arch-arm/src/
+  android-9/arch-x86/src/
+  android-9/arch-mips/src/
+
+They are all *assembly* files with an .S extension, which means that
+they'll be sent to the C-preprocessor before being assembled into
+object files. They have the following names and usage:
+
+  crtbegin_static.S
+    This file contains a tiny ELF startup entry point (named '_start')
+    that is linked into every Android _static_ executable. These binaries can
+    run on any Linux ARM system, but cannot perform dynamic linking at all.
+
+    Note that the kernel calls the '_start' entry point directly when it
+    launches such an executable. The _start stub is used to call the
+    C library's runtime initialization, passing it the address of the
+    'main' function.
+
+  crtbegin_dynamic.S
+    This is equivalent to crtbegin_static.S, for for _dynamic_ executables.
+    These executables always link to the system C library dynamically.
+
+    When the kernel launches such an executable, it actually starts the
+    dynamic linker (/system/bin/linker), which loads and relocates the
+    executable (possibly loading any dependent system libraries as well),
+    then call the _start stub.
+
+  crtbegin_so.S
+    This is equivalent to crtbegin_dynamic.S, but shall be used for
+    shared libraries. One major difference is that there is no _start
+    entry point.
+
+  crtend_android.S
+    This source file shall be used when generating an executable, i.e. used
+    in association with either crtbegin_static.S or crtbegin_dynamic.S
+
+  crtend.S
+    This source file is _strictly_ equivalent to crtend_android.S.
+    Actually, it *must* be compiled into an object named 'crtend_android.o'
+    because that's the hard-coded name that the toolchain binaries expect.
+
+    (the naming difference for this source file is purely historical, it
+    could probably be removed in the future).
+
+  crtend_so.S
+    This source's object file shall be used when generating a shared library,
+    i.e. used in association with crtbegin_so.S only.
+
+Content of these files:
+
+ELF section (lists);
+
+  crtbegin_static.S + crtbegin_dynamic.S contain a '_start' entry point for
+  the corresponding executable. crtbegin_so.S doesn't need any.
+
+  all crtbegin_XXX.s files contain the head of various ELF sections, which are
+  used to list of ELF constructors and destructors. The sections are:
+
+    .init_array:
+        Contains a list of function addresses that are run at load time.
+        This means they are run *before* 'main', in the case of executables,
+        or during 'dlopen()' for shared libraries (either implicit or explicit).
+
+        The functions are called in list order (from first to last).
+
+    .fini_array:
+        Contains a list of destructor addresses that are run at unload time.
+        This means they are run *after* 'exit', in the case of executables,
+        or during 'dlclose()' for shared libraries (either implicit or explicit).
+
+        The functions are called in _reverse_ list order (from last to first).
+
+    .preinit_array:
+        This section can *only* appear in executables. It contains a list of
+        constructors that are run _before_ the ones in .init_array, or those
+        of any dependent shared library (if any).
+
+    .ctors
+        This section shall *not* be used on Android. Used on some GLibc-based
+        Linux systems to hold list of constructors. The toolchains should
+        place all constructors in .init_array instead.
+
+    .dtors
+        This section shall *not* be used on Android. Used on some GLibc-based
+        Linux systems to hold a list of destructors. The toolchains should
+        place all destructors in .fini_array instead.
+
+
+__dso_handle symbol:
+
+  To properly support the C++ ABI, a unique *local* *hidden* symbol named
+  '__dso_handle' must be defined in each shared library.
+
+  This is used to implement static C++ object initialization in a shared
+  library, as in:
+
+      static Foo  foo(10);
+
+  The statement above creates a hidden function, which address will be added
+  to the .init_array section described above. Its compiler-generated code
+  will perform the object construction, and also register static destructor
+  using a call that looks like:
+
+      __cxa_atexit( Foo::~Foo, &foo, &__dso_handle );
+
+  Where '__cxa_atexit' is a special C++ support function provided by the
+  C library. Doing this ensures that the destructor for 'foo' will be
+  automatically called when the shared library containing this code is
+  unloaded (i.e. either through 'dlclose' or at program exit).
+
+  The value of __dso_handle is normally never taken directly.
+
+  See http://sourcery.mentor.com/public/cxx-abi/abi.html#dso-dtor
+
+  WARNING: There is a big caveat regarding this symbol. Read the section
+           named 'IMPORTANT BACKWARDS COMPATIBILITY ISSUES' below.
+
+
+atexit() implementation:
+
+  The Posix standard doesn't mandate the program behaviour's when a shared
+  library which registered a function with 'atexit' is unloaded explicitely
+  (e.g. with 'dlclose()').
+
+  On most BSD systems (including OS X), unloading the library succeeds, but
+  the program will crash when it calls exit() or returns from main().
+
+  On Linux, GLibc provides an implementation that automatically unregisters
+  such atexit() handlers when the corresponding shared library is unloaded.
+
+  However, this requires that the atexit() implementation be part of the
+  shared library itself, rather than the C library.
+
+  The crtbegin_shared.S and crtbegin_static.S files contain an tiny
+  implementation of atexit() in assembler that essentially does:
+
+      void atexit(void(*myfunc)(void))
+      {
+         __cxa_atexit(myfunc, NULL, &__dso_handle);
+      }
+
+  Because it references the shared library's hidden __dso_handle symbol,
+  this code cannot be in the C library itself.
+
+  Note that crtbegin_static.S should *not* provide an atexit() function
+  (the latter should be provided by libc.a instead).
+
+  See 'BACKWARDS COMPATIBILITY ISSUES' section below.
+
+
+
+BACKWARDS COMPATIBILITY ISSUES:
+-------------------------------
+
+To maintain binary compatibility to all existing NDK-generated machine code,
+the system's C library (i.e. /system/lib/libc.so) needs to exports symbols
+that shall *not* be exported by the NDK-provided link-time libraries (i.e.
+$NDK/platforms/android-$LEVEL/arch-$ARCH/usr/lib/libc.so).
+
+Starting from NDK r7, the NDK libc.so is itself generated by a script
+(gen-platforms.sh) from a list of symbol files (see libc.so.functions.txt
+and libc.so.variables.txt) and does not contain any implementation code.
+
+The NDK libc.a, on the other hand, is a copy of a given version of the system
+C static library, and shall only be used to generate static executables (it
+is also required to build gdbserver).
+
+1. libgcc compatibility symbols:
+
+  None of the link-time NDK shared libraries should export any libgcc symbol.
+
+  However, on ARM, the system C library needs to export some of them to
+  maintain binary compatibility with 'legacy' NDK machine code. Details are
+  under bionic/libc/arch-arm/bionic/libgcc_compat.c.
+
+  Note that gen-platforms.sh takes care of this by explicitely removing any
+  libgcc symbol from the link-time shared libraries it generates. This is done
+  by using the lists under:
+
+     $NDK/build/tools/toolchain-symbols/$ARCH/libgcc.a.functions.txt
+
+  You will need to update these files when the toolchain changes.
+
+  Note that all libgcc releases should be backwards-compatible, i.e. newer
+  releases always contain all the symbols from previous ones).
+
+
+2. __dso_handle compatibility symbol:
+
+  Earlier versions of the C library exported a __dso_handle symbol
+  *incorrectly*. As such:
+
+   - the system's libc.so shall always export its __dso_handle, as *global*
+     and *public* (in ELF visibility terms). A weak symbol definition is ok
+     but not necessary. This is only to ensure binary compatibility with
+    'legacy' NDK machine code.
+
+   - the NDK link-time libc.so shall *never* export or contain any
+     __dso_handle symbol.
+
+   - The NDK's crtbegin_dynamic.S and crtbegin_so.S shall provide a *local*
+     and *hidden* __dso_handle symbol.
+
+   - The NDK's libc.a will containg a *global* and *public* __dso_handle, since
+     it is a copy of a release-specific system libc.so.
+
+   - crtbegin_static.S shall not provide any __dso_handle symbol, since static
+     executables will use the one in libc.a instead.
+
+Note that existing NDK machine code that links against the system libc's
+__dso_handle will not have their C++ destructors run correctly when the
+library is unloaded. However, this bug can be solved by simply recompiling
+/relinking against a newer NDK release, without touching the original
+sources.
+
+
+
+3. atexit compatibility symbol:
+
+  Earlier versions of the C library implemented and exported an atexit()
+  function. While this is compliant with Posix, this doesn't allow a useful
+  GLibc extension which automatically un-registers atexit() handlers when
+  a shared library is unloaded with dlclose().
+
+  To support this, while providing binary compatibility, the following
+  must apply:
+
+  - The platform's /system/lib/libc.so should *always* export a working
+    atexit() implementation (used by 'legacy' NDK machine code).
+
+  - The NDK link-time libc.so should *never* export atexit()
+
+  - crtbegin_shared.S, crtbegin_so.S shall define a *local* *hidden*
+    symbol for atexit(), with a tiny implementation that amounts to the
+    following code:
+
+         void atexit( void(*handler)(void) )
+         {
+            __cxa_atexit( handler, NULL, &__dso_handle );
+         }
+
+  - The NDK libc.a shall provide an atexit() implementation, and
+    crtbegin_static.S shall *not* provide one to avoid conflicts.
+
+Note that existing NDK machine code that links against the system libc's
+atexit symbol will not have their atexit-handler automatically unregistered
+when the library is unloaded. However, this bug can be solved by simply
+recompiling/relinking against a newer NDK release, without touching the
+original sources.
+
+4. __atomic_xxx sompatibility symbols:
+
+This issues is detailed in ndk/docs/ANDROID-ATOMICS.html and
+bionic/libc/arch-arm/bionic/atomics_arm.c. In a nutshell:
+
+   - The system C library *shall* always export on *ARM* the __atomic_cmpxchg,
+     __atomic_inc and __atomic_dec functions to support legacy NDK machine code.
+     Their implementation should have full (i.e. acquire+release) memory ordering
+     semantics.
+
+   - The system C library for other CPU architectures (e.g. x86 or mips) *shall*
+     *not* export any of these symbols.
+
+   - The NDK libc.so *shall* *not* export these symbols at all.
+
+   - The NDK <sys/atomics.h> header shall provide inlined-static versions of
+     these functions that use the built-in GCC atomic functions instead.
+    
diff --git a/ndk/platforms/android-14/arch-mips/symbols/libOpenMAXAL.so.functions.txt b/ndk/platforms/android-14/arch-mips/symbols/libOpenMAXAL.so.functions.txt
new file mode 100644
index 0000000..c3a190c
--- /dev/null
+++ b/ndk/platforms/android-14/arch-mips/symbols/libOpenMAXAL.so.functions.txt
@@ -0,0 +1,3 @@
+xaCreateEngine
+xaQueryNumSupportedEngineInterfaces
+xaQuerySupportedEngineInterfaces
diff --git a/ndk/platforms/android-14/arch-mips/symbols/libOpenMAXAL.so.variables.txt b/ndk/platforms/android-14/arch-mips/symbols/libOpenMAXAL.so.variables.txt
new file mode 100644
index 0000000..7ceda9c
--- /dev/null
+++ b/ndk/platforms/android-14/arch-mips/symbols/libOpenMAXAL.so.variables.txt
@@ -0,0 +1,41 @@
+XA_IID_ANDROIDBUFFERQUEUESOURCE
+XA_IID_AUDIODECODERCAPABILITIES
+XA_IID_AUDIOENCODER
+XA_IID_AUDIOENCODERCAPABILITIES
+XA_IID_AUDIOIODEVICECAPABILITIES
+XA_IID_CAMERA
+XA_IID_CAMERACAPABILITIES
+XA_IID_CONFIGEXTENSION
+XA_IID_DEVICEVOLUME
+XA_IID_DYNAMICINTERFACEMANAGEMENT
+XA_IID_DYNAMICSOURCE
+XA_IID_ENGINE
+XA_IID_EQUALIZER
+XA_IID_IMAGECONTROLS
+XA_IID_IMAGEDECODERCAPABILITIES
+XA_IID_IMAGEEFFECTS
+XA_IID_IMAGEENCODER
+XA_IID_IMAGEENCODERCAPABILITIES
+XA_IID_LED
+XA_IID_METADATAEXTRACTION
+XA_IID_METADATAINSERTION
+XA_IID_METADATATRAVERSAL
+XA_IID_NULL
+XA_IID_OBJECT
+XA_IID_OUTPUTMIX
+XA_IID_PLAY
+XA_IID_PLAYBACKRATE
+XA_IID_PREFETCHSTATUS
+XA_IID_RADIO
+XA_IID_RDS
+XA_IID_RECORD
+XA_IID_SEEK
+XA_IID_SNAPSHOT
+XA_IID_STREAMINFORMATION
+XA_IID_THREADSYNC
+XA_IID_VIBRA
+XA_IID_VIDEODECODERCAPABILITIES
+XA_IID_VIDEOENCODER
+XA_IID_VIDEOENCODERCAPABILITIES
+XA_IID_VIDEOPOSTPROCESSING
+XA_IID_VOLUME
diff --git a/ndk/platforms/android-14/arch-mips/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-14/arch-mips/symbols/libOpenSLES.so.functions.txt
new file mode 100644
index 0000000..f69a3e5
--- /dev/null
+++ b/ndk/platforms/android-14/arch-mips/symbols/libOpenSLES.so.functions.txt
@@ -0,0 +1,3 @@
+slCreateEngine
+slQueryNumSupportedEngineInterfaces
+slQuerySupportedEngineInterfaces
diff --git a/ndk/platforms/android-14/arch-mips/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-14/arch-mips/symbols/libOpenSLES.so.variables.txt
new file mode 100644
index 0000000..c7ee7d1
--- /dev/null
+++ b/ndk/platforms/android-14/arch-mips/symbols/libOpenSLES.so.variables.txt
@@ -0,0 +1,50 @@
+SL_IID_3DCOMMIT
+SL_IID_3DDOPPLER
+SL_IID_3DGROUPING
+SL_IID_3DLOCATION
+SL_IID_3DMACROSCOPIC
+SL_IID_3DSOURCE
+SL_IID_ANDROIDBUFFERQUEUESOURCE
+SL_IID_ANDROIDCONFIGURATION
+SL_IID_ANDROIDEFFECT
+SL_IID_ANDROIDEFFECTCAPABILITIES
+SL_IID_ANDROIDEFFECTSEND
+SL_IID_ANDROIDSIMPLEBUFFERQUEUE
+SL_IID_AUDIODECODERCAPABILITIES
+SL_IID_AUDIOENCODER
+SL_IID_AUDIOENCODERCAPABILITIES
+SL_IID_AUDIOIODEVICECAPABILITIES
+SL_IID_BASSBOOST
+SL_IID_BUFFERQUEUE
+SL_IID_DEVICEVOLUME
+SL_IID_DYNAMICINTERFACEMANAGEMENT
+SL_IID_DYNAMICSOURCE
+SL_IID_EFFECTSEND
+SL_IID_ENGINE
+SL_IID_ENGINECAPABILITIES
+SL_IID_ENVIRONMENTALREVERB
+SL_IID_EQUALIZER
+SL_IID_LED
+SL_IID_METADATAEXTRACTION
+SL_IID_METADATATRAVERSAL
+SL_IID_MIDIMESSAGE
+SL_IID_MIDIMUTESOLO
+SL_IID_MIDITEMPO
+SL_IID_MIDITIME
+SL_IID_MUTESOLO
+SL_IID_NULL
+SL_IID_OBJECT
+SL_IID_OUTPUTMIX
+SL_IID_PITCH
+SL_IID_PLAY
+SL_IID_PLAYBACKRATE
+SL_IID_PREFETCHSTATUS
+SL_IID_PRESETREVERB
+SL_IID_RATEPITCH
+SL_IID_RECORD
+SL_IID_SEEK
+SL_IID_THREADSYNC
+SL_IID_VIBRA
+SL_IID_VIRTUALIZER
+SL_IID_VISUALIZATION
+SL_IID_VOLUME
diff --git a/ndk/platforms/android-14/samples/native-media/AndroidManifest.xml b/ndk/platforms/android-14/samples/native-media/AndroidManifest.xml
new file mode 100644
index 0000000..07668cf
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/AndroidManifest.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+      package="com.example.nativemedia">
+
+    <uses-feature android:glEsVersion="0x00020000" />
+
+    <application android:icon="@drawable/icon" android:label="@string/app_name">
+        <activity android:name=".NativeMedia"
+                  android:label="@string/app_name">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+    </application>
+
+    <uses-sdk android:minSdkVersion="14" />
+
+    <!-- INTERNET is needed to use a URI-based media player, depending on the URI -->
+    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
+
+</manifest>
diff --git a/ndk/platforms/android-14/samples/native-media/NativeMedia.ts b/ndk/platforms/android-14/samples/native-media/NativeMedia.ts
new file mode 100644
index 0000000..d9d54b2
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/NativeMedia.ts
Binary files differ
diff --git a/ndk/platforms/android-14/samples/native-media/README.txt b/ndk/platforms/android-14/samples/native-media/README.txt
index 516698a..f900e31 100644
--- a/ndk/platforms/android-14/samples/native-media/README.txt
+++ b/ndk/platforms/android-14/samples/native-media/README.txt
@@ -1,2 +1,8 @@
-The documentation for Android native media based on OpenMAX AL 1.0.1
-references this directory, but the example is not yet available.
+This sample app requires an MPEG-2 Transport Stream file to be
+placed in /sdcard/NativeMedia.ts and encoded as:
+
+  video: H.264 baseline profile
+  audio: AAC LC stereo
+
+For demonstration purposes we have supplied such a .ts file.
+Any actual stream must be created according to the MPEG-2 specification.
diff --git a/ndk/platforms/android-14/samples/native-media/default.properties b/ndk/platforms/android-14/samples/native-media/default.properties
new file mode 100644
index 0000000..2d69917
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/default.properties
@@ -0,0 +1,4 @@
+# Indicates whether an apk should be generated for each density.
+split.density=false
+# Project target.
+target=android-14
diff --git a/ndk/platforms/android-14/samples/native-media/jni/Android.mk b/ndk/platforms/android-14/samples/native-media/jni/Android.mk
new file mode 100644
index 0000000..369ccf8
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/jni/Android.mk
@@ -0,0 +1,30 @@
+# Copyright (C) 2011 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.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE    := native-media-jni
+LOCAL_SRC_FILES := native-media-jni.c
+# for native multimedia
+LOCAL_LDLIBS    += -lOpenMAXAL
+# for logging
+LOCAL_LDLIBS    += -llog
+# for native windows
+LOCAL_LDLIBS    += -landroid
+
+LOCAL_CFLAGS    += -UNDEBUG
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c b/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c
new file mode 100644
index 0000000..bdf568a
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/jni/native-media-jni.c
@@ -0,0 +1,526 @@
+/*
+ * Copyright (C) 2011 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.
+ */
+
+/* This is a JNI example where we use native methods to play video
+ * using OpenMAX AL. See the corresponding Java source file located at:
+ *
+ *   src/com/example/nativemedia/NativeMedia/NativeMedia.java
+ *
+ * In this example we use assert() for "impossible" error conditions,
+ * and explicit handling and recovery for more likely error conditions.
+ */
+
+#include <assert.h>
+#include <jni.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <string.h>
+
+// for __android_log_print(ANDROID_LOG_INFO, "YourApp", "formatted message");
+#include <android/log.h>
+#define TAG "NativeMedia"
+#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
+
+// for native media
+#include <OMXAL/OpenMAXAL.h>
+#include <OMXAL/OpenMAXAL_Android.h>
+
+// for native window JNI
+#include <android/native_window_jni.h>
+
+// engine interfaces
+static XAObjectItf engineObject = NULL;
+static XAEngineItf engineEngine = NULL;
+
+// output mix interfaces
+static XAObjectItf outputMixObject = NULL;
+
+// streaming media player interfaces
+static XAObjectItf             playerObj = NULL;
+static XAPlayItf               playerPlayItf = NULL;
+static XAAndroidBufferQueueItf playerBQItf = NULL;
+static XAStreamInformationItf  playerStreamInfoItf = NULL;
+static XAVolumeItf             playerVolItf = NULL;
+
+// number of required interfaces for the MediaPlayer creation
+#define NB_MAXAL_INTERFACES 3 // XAAndroidBufferQueueItf, XAStreamInformationItf and XAPlayItf
+
+// video sink for the player
+static ANativeWindow* theNativeWindow;
+
+// number of buffers in our buffer queue, an arbitrary number
+#define NB_BUFFERS 8
+
+// we're streaming MPEG-2 transport stream data, operate on transport stream block size
+#define MPEG2_TS_PACKET_SIZE 188
+
+// number of MPEG-2 transport stream blocks per buffer, an arbitrary number
+#define PACKETS_PER_BUFFER 10
+
+// determines how much memory we're dedicating to memory caching
+#define BUFFER_SIZE (PACKETS_PER_BUFFER*MPEG2_TS_PACKET_SIZE)
+
+// where we cache in memory the data to play
+// note this memory is re-used by the buffer queue callback
+static char dataCache[BUFFER_SIZE * NB_BUFFERS];
+
+// handle of the file to play
+static FILE *file;
+
+// has the app reached the end of the file
+static jboolean reachedEof = JNI_FALSE;
+
+// constant to identify a buffer context which is the end of the stream to decode
+static const int kEosBufferCntxt = 1980; // a magic value we can compare against
+
+// For mutual exclusion between callback thread and application thread(s).
+// The mutex protects reachedEof, discontinuity,
+// The condition is signalled when a discontinuity is acknowledged.
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+
+// whether a discontinuity is in progress
+static jboolean discontinuity = JNI_FALSE;
+
+static jboolean enqueueInitialBuffers(jboolean discontinuity);
+
+// AndroidBufferQueueItf callback to supply MPEG-2 TS packets to the media player
+static XAresult AndroidBufferQueueCallback(
+        XAAndroidBufferQueueItf caller,
+        void *pCallbackContext,        /* input */
+        void *pBufferContext,          /* input */
+        void *pBufferData,             /* input */
+        XAuint32 dataSize,             /* input */
+        XAuint32 dataUsed,             /* input */
+        const XAAndroidBufferItem *pItems,/* input */
+        XAuint32 itemsLength           /* input */)
+{
+    XAresult res;
+    int ok;
+
+    // pCallbackContext was specified as NULL at RegisterCallback and is unused here
+    assert(NULL == pCallbackContext);
+
+    // note there is never any contention on this mutex unless a discontinuity request is active
+    ok = pthread_mutex_lock(&mutex);
+    assert(0 == ok);
+
+    // was a discontinuity requested?
+    if (discontinuity) {
+        // Note: can't rewind after EOS, which we send when reaching EOF
+        // (don't send EOS if you plan to play more content through the same player)
+        if (!reachedEof) {
+            // clear the buffer queue
+            res = (*playerBQItf)->Clear(playerBQItf);
+            assert(XA_RESULT_SUCCESS == res);
+            // rewind the data source so we are guaranteed to be at an appropriate point
+            rewind(file);
+            // Enqueue the initial buffers, with a discontinuity indicator on first buffer
+            (void) enqueueInitialBuffers(JNI_TRUE);
+        }
+        // acknowledge the discontinuity request
+        discontinuity = JNI_FALSE;
+        ok = pthread_cond_signal(&cond);
+        assert(0 == ok);
+        goto exit;
+    }
+
+    if ((pBufferData == NULL) && (pBufferContext != NULL)) {
+        const int processedCommand = *(int *)pBufferContext;
+        if (kEosBufferCntxt == processedCommand) {
+            LOGV("EOS was processed\n");
+            // our buffer with the EOS message has been consumed
+            assert(0 == dataSize);
+            goto exit;
+        }
+    }
+
+    // pBufferData is a pointer to a buffer that we previously Enqueued
+    assert((dataSize > 0) && ((dataSize % MPEG2_TS_PACKET_SIZE) == 0));
+    assert(dataCache <= (char *) pBufferData && (char *) pBufferData <
+            &dataCache[BUFFER_SIZE * NB_BUFFERS]);
+    assert(0 == (((char *) pBufferData - dataCache) % BUFFER_SIZE));
+
+    // don't bother trying to read more data once we've hit EOF
+    if (reachedEof) {
+        goto exit;
+    }
+
+    size_t nbRead;
+    // note we do call fread from multiple threads, but never concurrently
+    size_t bytesRead;
+    bytesRead = fread(pBufferData, 1, BUFFER_SIZE, file);
+    if (bytesRead > 0) {
+        if ((bytesRead % MPEG2_TS_PACKET_SIZE) != 0) {
+            LOGV("Dropping last packet because it is not whole");
+        }
+        size_t packetsRead = bytesRead / MPEG2_TS_PACKET_SIZE;
+        size_t bufferSize = packetsRead * MPEG2_TS_PACKET_SIZE;
+        res = (*caller)->Enqueue(caller, NULL /*pBufferContext*/,
+                pBufferData /*pData*/,
+                bufferSize /*dataLength*/,
+                NULL /*pMsg*/,
+                0 /*msgLength*/);
+        assert(XA_RESULT_SUCCESS == res);
+    } else {
+        // EOF or I/O error, signal EOS
+        XAAndroidBufferItem msgEos[1];
+        msgEos[0].itemKey = XA_ANDROID_ITEMKEY_EOS;
+        msgEos[0].itemSize = 0;
+        // EOS message has no parameters, so the total size of the message is the size of the key
+        //   plus the size if itemSize, both XAuint32
+        res = (*caller)->Enqueue(caller, (void *)&kEosBufferCntxt /*pBufferContext*/,
+                NULL /*pData*/, 0 /*dataLength*/,
+                msgEos /*pMsg*/,
+                sizeof(XAuint32)*2 /*msgLength*/);
+        assert(XA_RESULT_SUCCESS == res);
+        reachedEof = JNI_TRUE;
+    }
+
+exit:
+    ok = pthread_mutex_unlock(&mutex);
+    assert(0 == ok);
+    return XA_RESULT_SUCCESS;
+}
+
+
+// callback invoked whenever there is new or changed stream information
+static void StreamChangeCallback(XAStreamInformationItf caller,
+        XAuint32 eventId,
+        XAuint32 streamIndex,
+        void * pEventData,
+        void * pContext )
+{
+    LOGV("StreamChangeCallback called for stream %u", streamIndex);
+    // pContext was specified as NULL at RegisterStreamChangeCallback and is unused here
+    assert(NULL == pContext);
+    switch (eventId) {
+      case XA_STREAMCBEVENT_PROPERTYCHANGE: {
+        /** From spec 1.0.1:
+            "This event indicates that stream property change has occurred.
+            The streamIndex parameter identifies the stream with the property change.
+            The pEventData parameter for this event is not used and shall be ignored."
+         */
+
+        XAresult res;
+        XAuint32 domain;
+        res = (*caller)->QueryStreamType(caller, streamIndex, &domain);
+        assert(XA_RESULT_SUCCESS == res);
+        switch (domain) {
+          case XA_DOMAINTYPE_VIDEO: {
+            XAVideoStreamInformation videoInfo;
+            res = (*caller)->QueryStreamInformation(caller, streamIndex, &videoInfo);
+            assert(XA_RESULT_SUCCESS == res);
+            LOGV("Found video size %u x %u, codec ID=%u, frameRate=%u, bitRate=%u, duration=%u ms",
+                        videoInfo.width, videoInfo.height, videoInfo.codecId, videoInfo.frameRate,
+                        videoInfo.bitRate, videoInfo.duration);
+          } break;
+          default:
+            fprintf(stderr, "Unexpected domain %u\n", domain);
+            break;
+        }
+      } break;
+      default:
+        fprintf(stderr, "Unexpected stream event ID %u\n", eventId);
+        break;
+    }
+}
+
+
+// create the engine and output mix objects
+void Java_com_example_nativemedia_NativeMedia_createEngine(JNIEnv* env, jclass clazz)
+{
+    XAresult res;
+
+    // create engine
+    res = xaCreateEngine(&engineObject, 0, NULL, 0, NULL, NULL);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // realize the engine
+    res = (*engineObject)->Realize(engineObject, XA_BOOLEAN_FALSE);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // get the engine interface, which is needed in order to create other objects
+    res = (*engineObject)->GetInterface(engineObject, XA_IID_ENGINE, &engineEngine);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // create output mix
+    res = (*engineEngine)->CreateOutputMix(engineEngine, &outputMixObject, 0, NULL, NULL);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // realize the output mix
+    res = (*outputMixObject)->Realize(outputMixObject, XA_BOOLEAN_FALSE);
+    assert(XA_RESULT_SUCCESS == res);
+
+}
+
+
+// Enqueue the initial buffers, and optionally signal a discontinuity in the first buffer
+static jboolean enqueueInitialBuffers(jboolean discontinuity)
+{
+
+    /* Fill our cache.
+     * We want to read whole packets (integral multiples of MPEG2_TS_PACKET_SIZE).
+     * fread returns units of "elements" not bytes, so we ask for 1-byte elements
+     * and then check that the number of elements is a multiple of the packet size.
+     */
+    size_t bytesRead;
+    bytesRead = fread(dataCache, 1, BUFFER_SIZE * NB_BUFFERS, file);
+    if (bytesRead <= 0) {
+        // could be premature EOF or I/O error
+        return JNI_FALSE;
+    }
+    if ((bytesRead % MPEG2_TS_PACKET_SIZE) != 0) {
+        LOGV("Dropping last packet because it is not whole");
+    }
+    size_t packetsRead = bytesRead / MPEG2_TS_PACKET_SIZE;
+    LOGV("Initially queueing %u packets", packetsRead);
+
+    /* Enqueue the content of our cache before starting to play,
+       we don't want to starve the player */
+    size_t i;
+    for (i = 0; i < NB_BUFFERS && packetsRead > 0; i++) {
+        // compute size of this buffer
+        size_t packetsThisBuffer = packetsRead;
+        if (packetsThisBuffer > PACKETS_PER_BUFFER) {
+            packetsThisBuffer = PACKETS_PER_BUFFER;
+        }
+        size_t bufferSize = packetsThisBuffer * MPEG2_TS_PACKET_SIZE;
+        XAresult res;
+        if (discontinuity) {
+            // signal discontinuity
+            XAAndroidBufferItem items[1];
+            items[0].itemKey = XA_ANDROID_ITEMKEY_DISCONTINUITY;
+            items[0].itemSize = 0;
+            // DISCONTINUITY message has no parameters,
+            //   so the total size of the message is the size of the key
+            //   plus the size if itemSize, both XAuint32
+            res = (*playerBQItf)->Enqueue(playerBQItf, NULL /*pBufferContext*/,
+                    dataCache + i*BUFFER_SIZE, bufferSize, items /*pMsg*/,
+                    sizeof(XAuint32)*2 /*msgLength*/);
+            discontinuity = JNI_FALSE;
+        } else {
+            res = (*playerBQItf)->Enqueue(playerBQItf, NULL /*pBufferContext*/,
+                    dataCache + i*BUFFER_SIZE, bufferSize, NULL, 0);
+        }
+        assert(XA_RESULT_SUCCESS == res);
+        packetsRead -= packetsThisBuffer;
+    }
+
+    return JNI_TRUE;
+}
+
+
+// create streaming media player
+jboolean Java_com_example_nativemedia_NativeMedia_createStreamingMediaPlayer(JNIEnv* env,
+        jclass clazz, jstring filename)
+{
+    XAresult res;
+
+    // convert Java string to UTF-8
+    const char *utf8 = (*env)->GetStringUTFChars(env, filename, NULL);
+    assert(NULL != utf8);
+
+    // open the file to play
+    file = fopen(utf8, "rb");
+    if (file == NULL) {
+        return JNI_FALSE;
+    }
+
+    // configure data source
+    XADataLocator_AndroidBufferQueue loc_abq = { XA_DATALOCATOR_ANDROIDBUFFERQUEUE, NB_BUFFERS };
+    XADataFormat_MIME format_mime = {
+            XA_DATAFORMAT_MIME, XA_ANDROID_MIME_MP2TS, XA_CONTAINERTYPE_MPEG_TS };
+    XADataSource dataSrc = {&loc_abq, &format_mime};
+
+    // configure audio sink
+    XADataLocator_OutputMix loc_outmix = { XA_DATALOCATOR_OUTPUTMIX, outputMixObject };
+    XADataSink audioSnk = { &loc_outmix, NULL };
+
+    // configure image video sink
+    XADataLocator_NativeDisplay loc_nd = {
+            XA_DATALOCATOR_NATIVEDISPLAY,        // locatorType
+            // the video sink must be an ANativeWindow created from a Surface or SurfaceTexture
+            (void*)theNativeWindow,              // hWindow
+            // must be NULL
+            NULL                                 // hDisplay
+    };
+    XADataSink imageVideoSink = {&loc_nd, NULL};
+
+    // declare interfaces to use
+    XAboolean     required[NB_MAXAL_INTERFACES]
+                           = {XA_BOOLEAN_TRUE, XA_BOOLEAN_TRUE,           XA_BOOLEAN_TRUE};
+    XAInterfaceID iidArray[NB_MAXAL_INTERFACES]
+                           = {XA_IID_PLAY,     XA_IID_ANDROIDBUFFERQUEUESOURCE,
+                                               XA_IID_STREAMINFORMATION};
+
+    // create media player
+    res = (*engineEngine)->CreateMediaPlayer(engineEngine, &playerObj, &dataSrc,
+            NULL, &audioSnk, &imageVideoSink, NULL, NULL,
+            NB_MAXAL_INTERFACES /*XAuint32 numInterfaces*/,
+            iidArray /*const XAInterfaceID *pInterfaceIds*/,
+            required /*const XAboolean *pInterfaceRequired*/);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // release the Java string and UTF-8
+    (*env)->ReleaseStringUTFChars(env, filename, utf8);
+
+    // realize the player
+    res = (*playerObj)->Realize(playerObj, XA_BOOLEAN_FALSE);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // get the play interface
+    res = (*playerObj)->GetInterface(playerObj, XA_IID_PLAY, &playerPlayItf);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // get the stream information interface (for video size)
+    res = (*playerObj)->GetInterface(playerObj, XA_IID_STREAMINFORMATION, &playerStreamInfoItf);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // get the volume interface
+    res = (*playerObj)->GetInterface(playerObj, XA_IID_VOLUME, &playerVolItf);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // get the Android buffer queue interface
+    res = (*playerObj)->GetInterface(playerObj, XA_IID_ANDROIDBUFFERQUEUESOURCE, &playerBQItf);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // specify which events we want to be notified of
+    res = (*playerBQItf)->SetCallbackEventsMask(playerBQItf, XA_ANDROIDBUFFERQUEUEEVENT_PROCESSED);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // register the callback from which OpenMAX AL can retrieve the data to play
+    res = (*playerBQItf)->RegisterCallback(playerBQItf, AndroidBufferQueueCallback, NULL);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // we want to be notified of the video size once it's found, so we register a callback for that
+    res = (*playerStreamInfoItf)->RegisterStreamChangeCallback(playerStreamInfoItf,
+            StreamChangeCallback, NULL);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // enqueue the initial buffers
+    if (!enqueueInitialBuffers(JNI_FALSE)) {
+        return JNI_FALSE;
+    }
+
+    // prepare the player
+    res = (*playerPlayItf)->SetPlayState(playerPlayItf, XA_PLAYSTATE_PAUSED);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // set the volume
+    res = (*playerVolItf)->SetVolumeLevel(playerVolItf, 0);
+    assert(XA_RESULT_SUCCESS == res);
+
+    // start the playback
+    res = (*playerPlayItf)->SetPlayState(playerPlayItf, XA_PLAYSTATE_PLAYING);
+        assert(XA_RESULT_SUCCESS == res);
+
+    return JNI_TRUE;
+}
+
+
+// set the playing state for the streaming media player
+void Java_com_example_nativemedia_NativeMedia_setPlayingStreamingMediaPlayer(JNIEnv* env,
+        jclass clazz, jboolean isPlaying)
+{
+    XAresult res;
+
+    // make sure the streaming media player was created
+    if (NULL != playerPlayItf) {
+
+        // set the player's state
+        res = (*playerPlayItf)->SetPlayState(playerPlayItf, isPlaying ?
+            XA_PLAYSTATE_PLAYING : XA_PLAYSTATE_PAUSED);
+        assert(XA_RESULT_SUCCESS == res);
+
+    }
+
+}
+
+
+// shut down the native media system
+void Java_com_example_nativemedia_NativeMedia_shutdown(JNIEnv* env, jclass clazz)
+{
+    // destroy streaming media player object, and invalidate all associated interfaces
+    if (playerObj != NULL) {
+        (*playerObj)->Destroy(playerObj);
+        playerObj = NULL;
+        playerPlayItf = NULL;
+        playerBQItf = NULL;
+        playerStreamInfoItf = NULL;
+        playerVolItf = NULL;
+    }
+
+    // destroy output mix object, and invalidate all associated interfaces
+    if (outputMixObject != NULL) {
+        (*outputMixObject)->Destroy(outputMixObject);
+        outputMixObject = NULL;
+    }
+
+    // destroy engine object, and invalidate all associated interfaces
+    if (engineObject != NULL) {
+        (*engineObject)->Destroy(engineObject);
+        engineObject = NULL;
+        engineEngine = NULL;
+    }
+
+    // close the file
+    if (file != NULL) {
+        fclose(file);
+        file = NULL;
+    }
+
+    // make sure we don't leak native windows
+    if (theNativeWindow != NULL) {
+        ANativeWindow_release(theNativeWindow);
+        theNativeWindow = NULL;
+    }
+}
+
+
+// set the surface
+void Java_com_example_nativemedia_NativeMedia_setSurface(JNIEnv *env, jclass clazz, jobject surface)
+{
+    // obtain a native window from a Java surface
+    theNativeWindow = ANativeWindow_fromSurface(env, surface);
+}
+
+
+// rewind the streaming media player
+void Java_com_example_nativemedia_NativeMedia_rewindStreamingMediaPlayer(JNIEnv *env, jclass clazz)
+{
+    XAresult res;
+
+    // make sure the streaming media player was created
+    if (NULL != playerBQItf && NULL != file) {
+        // first wait for buffers currently in queue to be drained
+        int ok;
+        ok = pthread_mutex_lock(&mutex);
+        assert(0 == ok);
+        discontinuity = JNI_TRUE;
+        // wait for discontinuity request to be observed by buffer queue callback
+        // Note: can't rewind after EOS, which we send when reaching EOF
+        // (don't send EOS if you plan to play more content through the same player)
+        while (discontinuity && !reachedEof) {
+            ok = pthread_cond_wait(&cond, &mutex);
+            assert(0 == ok);
+        }
+        ok = pthread_mutex_unlock(&mutex);
+        assert(0 == ok);
+    }
+
+}
diff --git a/ndk/platforms/android-14/samples/native-media/res/drawable/icon.png b/ndk/platforms/android-14/samples/native-media/res/drawable/icon.png
new file mode 100644
index 0000000..a07c69f
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/res/drawable/icon.png
Binary files differ
diff --git a/ndk/platforms/android-14/samples/native-media/res/layout/main.xml b/ndk/platforms/android-14/samples/native-media/res/layout/main.xml
new file mode 100644
index 0000000..0e41339
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/res/layout/main.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    >
+<TextView
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:text="@string/hello"
+    />
+<TextView
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:text="@string/source_select"
+    />
+<Spinner
+    android:id="@+id/source_spinner"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:text="@string/source_prompt"
+    />
+<TextView
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:text="@string/sink_select"
+    />
+<Spinner
+    android:id="@+id/sink_spinner"
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:text="@string/sink_prompt"
+    />
+
+<LinearLayout
+    android:orientation="horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    >
+    <Button
+        android:id="@+id/start_java"
+        android:text="@string/start_java"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        />
+    <Button
+        android:id="@+id/start_native"
+        android:text="@string/start_native"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        />
+    <Button
+        android:id="@+id/finish"
+        android:text="@string/finish"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        />
+</LinearLayout>
+
+<LinearLayout
+    android:orientation="horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    >
+    <Button
+        android:id="@+id/rewind_java"
+        android:text="@string/rewind_java"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        />
+    <Button
+        android:id="@+id/rewind_native"
+        android:text="@string/rewind_native"
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        />
+</LinearLayout>
+
+<LinearLayout
+    android:orientation="horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    >
+    <TextView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:text="S1"
+        />
+    <SurfaceView
+        android:id="@+id/surfaceview1"
+        android:layout_width="320px"
+        android:layout_height="240px"
+        />
+    <TextView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:text="S2"
+        />
+    <SurfaceView
+        android:id="@+id/surfaceview2"
+        android:layout_width="400px"
+        android:layout_height="224px"
+        />
+</LinearLayout>
+
+<LinearLayout
+    android:orientation="horizontal"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    >
+    <TextView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:text="ST1"
+        />
+    <com.example.nativemedia.MyGLSurfaceView
+        android:id="@+id/glsurfaceview1"
+        android:layout_width="320px"
+        android:layout_height="240px"
+        />
+    <TextView
+        android:layout_width="fill_parent"
+        android:layout_height="wrap_content"
+        android:text="ST2"
+        />
+    <com.example.nativemedia.MyGLSurfaceView
+        android:id="@+id/glsurfaceview2"
+        android:layout_width="320px"
+        android:layout_height="240px"
+        />
+</LinearLayout>
+
+</LinearLayout>
diff --git a/ndk/platforms/android-14/samples/native-media/res/values/strings.xml b/ndk/platforms/android-14/samples/native-media/res/values/strings.xml
new file mode 100644
index 0000000..32a9a8e
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/res/values/strings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="hello">Hello, Android, using native media!</string>
+    <string name="app_name">NativeMedia</string>
+
+    <string name="start_java">Start/Pause\nJava MediaPlayer</string>
+    <string name="start_native">Start/Pause\nnative MediaPlayer</string>
+    <string name="finish">Finish</string>
+
+    <string name="rewind_java">Rewind\nJava MediaPlayer</string>
+    <string name="rewind_native">Rewind\nnative MediaPlayer</string>
+
+    <string name="source_select">Please select the media source</string>
+    <string name="source_prompt">Media source</string>
+    <string-array name="source_array">
+        <item>/sdcard/NativeMedia.ts</item>
+    </string-array>
+
+    <string name="sink_select">Please select the video sink</string>
+    <string name="sink_prompt">Video sink</string>
+    <string-array name="sink_array">
+        <item>Surface 1</item>
+        <item>Surface 2</item>
+        <item>SurfaceTexture 1</item>
+        <item>SurfaceTexture 2</item>
+    </string-array>
+
+</resources>
diff --git a/ndk/platforms/android-14/samples/native-media/src/com/example/nativemedia/MyGLSurfaceView.java b/ndk/platforms/android-14/samples/native-media/src/com/example/nativemedia/MyGLSurfaceView.java
new file mode 100644
index 0000000..39a7ecf
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/src/com/example/nativemedia/MyGLSurfaceView.java
@@ -0,0 +1,336 @@
+/*
+ * Copyright (C) 2011 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.example.nativemedia;
+
+import android.graphics.SurfaceTexture;
+import android.util.Log;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import android.content.Context;
+
+import android.opengl.GLES20;
+import android.opengl.GLSurfaceView;
+import android.opengl.Matrix;
+
+import android.util.AttributeSet;
+
+public class MyGLSurfaceView extends GLSurfaceView {
+
+    MyRenderer mRenderer;
+
+    public MyGLSurfaceView(Context context) {
+        this(context, null);
+    }
+
+    public MyGLSurfaceView(Context context, AttributeSet attributeSet) {
+        super(context, attributeSet);
+        init();
+    }
+
+    private void init() {
+        setEGLContextClientVersion(2);
+        mRenderer = new MyRenderer();
+        setRenderer(mRenderer);
+    }
+
+    @Override
+    public void onPause() {
+        super.onPause();
+    }
+
+    @Override
+    public void onResume() {
+        super.onResume();
+    }
+
+    public SurfaceTexture getSurfaceTexture() {
+        return mRenderer.getSurfaceTexture();
+    }
+}
+
+class MyRenderer implements GLSurfaceView.Renderer, SurfaceTexture.OnFrameAvailableListener {
+
+    public MyRenderer() {
+        mVertices = ByteBuffer.allocateDirect(mVerticesData.length
+                * FLOAT_SIZE_BYTES).order(ByteOrder.nativeOrder()).asFloatBuffer();
+        mVertices.put(mVerticesData).position(0);
+
+        Matrix.setIdentityM(mSTMatrix, 0);
+        Matrix.setIdentityM(mMMatrix, 0);
+        Matrix.rotateM(mMMatrix, 0, 20, 0, 1, 0);
+    }
+
+    public void onDrawFrame(GL10 glUnused) {
+        synchronized(this) {
+            if (updateSurface) {
+                mSurface.updateTexImage();
+
+                mSurface.getTransformMatrix(mSTMatrix);
+                updateSurface = false;
+            }
+        }
+
+        // Ignore the passed-in GL10 interface, and use the GLES20
+        // class's static methods instead.
+        GLES20.glClear( GLES20.GL_DEPTH_BUFFER_BIT | GLES20.GL_COLOR_BUFFER_BIT);
+        GLES20.glUseProgram(mProgram);
+        checkGlError("glUseProgram");
+
+        GLES20.glActiveTexture(GLES20.GL_TEXTURE0);
+        GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
+
+        mVertices.position(VERTICES_DATA_POS_OFFSET);
+        GLES20.glVertexAttribPointer(maPositionHandle, 3, GLES20.GL_FLOAT, false,
+                VERTICES_DATA_STRIDE_BYTES, mVertices);
+        checkGlError("glVertexAttribPointer maPosition");
+        GLES20.glEnableVertexAttribArray(maPositionHandle);
+        checkGlError("glEnableVertexAttribArray maPositionHandle");
+
+        mVertices.position(VERTICES_DATA_UV_OFFSET);
+        GLES20.glVertexAttribPointer(maTextureHandle, 3, GLES20.GL_FLOAT, false,
+                VERTICES_DATA_STRIDE_BYTES, mVertices);
+        checkGlError("glVertexAttribPointer maTextureHandle");
+        GLES20.glEnableVertexAttribArray(maTextureHandle);
+        checkGlError("glEnableVertexAttribArray maTextureHandle");
+
+        Matrix.multiplyMM(mMVPMatrix, 0, mVMatrix, 0, mMMatrix, 0);
+        Matrix.multiplyMM(mMVPMatrix, 0, mProjMatrix, 0, mMVPMatrix, 0);
+
+        GLES20.glUniformMatrix4fv(muMVPMatrixHandle, 1, false, mMVPMatrix, 0);
+        GLES20.glUniformMatrix4fv(muSTMatrixHandle, 1, false, mSTMatrix, 0);
+
+        GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);
+        checkGlError("glDrawArrays");
+    }
+
+    public void onSurfaceChanged(GL10 glUnused, int width, int height) {
+        // Ignore the passed-in GL10 interface, and use the GLES20
+        // class's static methods instead.
+        GLES20.glViewport(0, 0, width, height);
+        mRatio = (float) width / height;
+        Matrix.frustumM(mProjMatrix, 0, -mRatio, mRatio, -1, 1, 3, 7);
+    }
+
+    public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
+        // Ignore the passed-in GL10 interface, and use the GLES20
+        // class's static methods instead.
+
+        /* Set up alpha blending and an Android background color */
+        GLES20.glEnable(GLES20.GL_BLEND);
+        GLES20.glBlendFunc(GLES20.GL_SRC_ALPHA, GLES20.GL_ONE_MINUS_SRC_ALPHA);
+        GLES20.glClearColor(0.643f, 0.776f, 0.223f, 1.0f);
+
+        /* Set up shaders and handles to their variables */
+        mProgram = createProgram(mVertexShader, mFragmentShader);
+        if (mProgram == 0) {
+            return;
+        }
+        maPositionHandle = GLES20.glGetAttribLocation(mProgram, "aPosition");
+        checkGlError("glGetAttribLocation aPosition");
+        if (maPositionHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for aPosition");
+        }
+        maTextureHandle = GLES20.glGetAttribLocation(mProgram, "aTextureCoord");
+        checkGlError("glGetAttribLocation aTextureCoord");
+        if (maTextureHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for aTextureCoord");
+        }
+
+        muMVPMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uMVPMatrix");
+        checkGlError("glGetUniformLocation uMVPMatrix");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uMVPMatrix");
+        }
+
+        muSTMatrixHandle = GLES20.glGetUniformLocation(mProgram, "uSTMatrix");
+        checkGlError("glGetUniformLocation uSTMatrix");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uSTMatrix");
+        }
+
+        checkGlError("glGetUniformLocation uCRatio");
+        if (muMVPMatrixHandle == -1) {
+            throw new RuntimeException("Could not get attrib location for uCRatio");
+        }
+
+        /*
+         * Create our texture. This has to be done each time the
+         * surface is created.
+         */
+
+        int[] textures = new int[1];
+        GLES20.glGenTextures(1, textures, 0);
+
+        mTextureID = textures[0];
+        GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, mTextureID);
+        checkGlError("glBindTexture mTextureID");
+
+        // Can't do mipmapping with camera source
+        GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MIN_FILTER,
+                GLES20.GL_NEAREST);
+        GLES20.glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_MAG_FILTER,
+                GLES20.GL_LINEAR);
+        // Clamp to edge is the only option
+        GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_S,
+                GLES20.GL_CLAMP_TO_EDGE);
+        GLES20.glTexParameteri(GL_TEXTURE_EXTERNAL_OES, GLES20.GL_TEXTURE_WRAP_T,
+                GLES20.GL_CLAMP_TO_EDGE);
+        checkGlError("glTexParameteri mTextureID");
+
+        /*
+         * Create the SurfaceTexture that will feed this textureID, and pass it to the camera
+         */
+
+        mSurface = new SurfaceTexture(mTextureID);
+        mSurface.setOnFrameAvailableListener(this);
+
+        Matrix.setLookAtM(mVMatrix, 0, 0, 0, 4f, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
+
+        synchronized(this) {
+            updateSurface = false;
+        }
+    }
+
+    synchronized public void onFrameAvailable(SurfaceTexture surface) {
+        /* For simplicity, SurfaceTexture calls here when it has new
+         * data available.  Call may come in from some random thread,
+         * so let's be safe and use synchronize. No OpenGL calls can be done here.
+         */
+        updateSurface = true;
+        //Log.v(TAG, "onFrameAvailable " + surface.getTimestamp());
+    }
+
+    private int loadShader(int shaderType, String source) {
+        int shader = GLES20.glCreateShader(shaderType);
+        if (shader != 0) {
+            GLES20.glShaderSource(shader, source);
+            GLES20.glCompileShader(shader);
+            int[] compiled = new int[1];
+            GLES20.glGetShaderiv(shader, GLES20.GL_COMPILE_STATUS, compiled, 0);
+            if (compiled[0] == 0) {
+                Log.e(TAG, "Could not compile shader " + shaderType + ":");
+                Log.e(TAG, GLES20.glGetShaderInfoLog(shader));
+                GLES20.glDeleteShader(shader);
+                shader = 0;
+            }
+        }
+        return shader;
+    }
+
+    private int createProgram(String vertexSource, String fragmentSource) {
+        int vertexShader = loadShader(GLES20.GL_VERTEX_SHADER, vertexSource);
+        if (vertexShader == 0) {
+            return 0;
+        }
+        int pixelShader = loadShader(GLES20.GL_FRAGMENT_SHADER, fragmentSource);
+        if (pixelShader == 0) {
+            return 0;
+        }
+
+        int program = GLES20.glCreateProgram();
+        if (program != 0) {
+            GLES20.glAttachShader(program, vertexShader);
+            checkGlError("glAttachShader");
+            GLES20.glAttachShader(program, pixelShader);
+            checkGlError("glAttachShader");
+            GLES20.glLinkProgram(program);
+            int[] linkStatus = new int[1];
+            GLES20.glGetProgramiv(program, GLES20.GL_LINK_STATUS, linkStatus, 0);
+            if (linkStatus[0] != GLES20.GL_TRUE) {
+                Log.e(TAG, "Could not link program: ");
+                Log.e(TAG, GLES20.glGetProgramInfoLog(program));
+                GLES20.glDeleteProgram(program);
+                program = 0;
+            }
+        }
+        return program;
+    }
+
+    private void checkGlError(String op) {
+        int error;
+        while ((error = GLES20.glGetError()) != GLES20.GL_NO_ERROR) {
+            Log.e(TAG, op + ": glError " + error);
+            throw new RuntimeException(op + ": glError " + error);
+        }
+    }
+
+    private static final int FLOAT_SIZE_BYTES = 4;
+    private static final int VERTICES_DATA_STRIDE_BYTES = 5 * FLOAT_SIZE_BYTES;
+    private static final int VERTICES_DATA_POS_OFFSET = 0;
+    private static final int VERTICES_DATA_UV_OFFSET = 3;
+    private final float[] mVerticesData = {
+        // X, Y, Z, U, V
+        -1.0f, -1.0f, 0, 0.f, 0.f,
+        1.0f, -1.0f, 0, 1.f, 0.f,
+        -1.0f,  1.0f, 0, 0.f, 1.f,
+        1.0f,   1.0f, 0, 1.f, 1.f,
+    };
+
+    private FloatBuffer mVertices;
+
+    private final String mVertexShader =
+        "uniform mat4 uMVPMatrix;\n" +
+        "uniform mat4 uSTMatrix;\n" +
+        "attribute vec4 aPosition;\n" +
+        "attribute vec4 aTextureCoord;\n" +
+        "varying vec2 vTextureCoord;\n" +
+        "void main() {\n" +
+        "  gl_Position = uMVPMatrix * aPosition;\n" +
+        "  vTextureCoord = (uSTMatrix * aTextureCoord).xy;\n" +
+        "}\n";
+
+    private final String mFragmentShader =
+        "#extension GL_OES_EGL_image_external : require\n" +
+        "precision mediump float;\n" +
+        "varying vec2 vTextureCoord;\n" +
+        "uniform samplerExternalOES sTexture;\n" +
+        "void main() {\n" +
+        "  gl_FragColor = texture2D(sTexture, vTextureCoord);\n" +
+        "}\n";
+
+    private float[] mMVPMatrix = new float[16];
+    private float[] mProjMatrix = new float[16];
+    private float[] mMMatrix = new float[16];
+    private float[] mVMatrix = new float[16];
+    private float[] mSTMatrix = new float[16];
+
+    private int mProgram;
+    private int mTextureID;
+    private int muMVPMatrixHandle;
+    private int muSTMatrixHandle;
+    private int maPositionHandle;
+    private int maTextureHandle;
+
+    private float mRatio = 1.0f;
+    private SurfaceTexture mSurface;
+    private boolean updateSurface = false;
+
+    private static final String TAG = "MyRenderer";
+
+    // Magic key
+    private static final int GL_TEXTURE_EXTERNAL_OES = 0x8D65;
+
+    public SurfaceTexture getSurfaceTexture() {
+        return mSurface;
+    }
+}
diff --git a/ndk/platforms/android-14/samples/native-media/src/com/example/nativemedia/NativeMedia.java b/ndk/platforms/android-14/samples/native-media/src/com/example/nativemedia/NativeMedia.java
new file mode 100644
index 0000000..3b5f49b
--- /dev/null
+++ b/ndk/platforms/android-14/samples/native-media/src/com/example/nativemedia/NativeMedia.java
@@ -0,0 +1,407 @@
+/*
+ * Copyright (C) 2010 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.example.nativemedia;
+
+import android.app.Activity;
+import android.graphics.SurfaceTexture;
+import android.media.MediaPlayer;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Surface;
+import android.view.SurfaceHolder;
+import android.view.SurfaceView;
+import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.Spinner;
+import java.io.IOException;
+
+public class NativeMedia extends Activity {
+    static final String TAG = "NativeMedia";
+
+    String mSourceString = null;
+    String mSinkString = null;
+
+    // member variables for Java media player
+    MediaPlayer mMediaPlayer;
+    boolean mMediaPlayerIsPrepared = false;
+    SurfaceView mSurfaceView1;
+    SurfaceHolder mSurfaceHolder1;
+
+    // member variables for native media player
+    boolean mIsPlayingStreaming = false;
+    SurfaceView mSurfaceView2;
+    SurfaceHolder mSurfaceHolder2;
+
+    VideoSink mSelectedVideoSink;
+    VideoSink mJavaMediaPlayerVideoSink;
+    VideoSink mNativeMediaPlayerVideoSink;
+
+    SurfaceHolderVideoSink mSurfaceHolder1VideoSink, mSurfaceHolder2VideoSink;
+    GLViewVideoSink mGLView1VideoSink, mGLView2VideoSink;
+
+    /** Called when the activity is first created. */
+    @Override
+    public void onCreate(Bundle icicle) {
+        super.onCreate(icicle);
+        setContentView(R.layout.main);
+
+        mGLView1 = (MyGLSurfaceView) findViewById(R.id.glsurfaceview1);
+        mGLView2 = (MyGLSurfaceView) findViewById(R.id.glsurfaceview2);
+
+        // initialize native media system
+        createEngine();
+
+        // set up the Surface 1 video sink
+        mSurfaceView1 = (SurfaceView) findViewById(R.id.surfaceview1);
+        mSurfaceHolder1 = mSurfaceView1.getHolder();
+
+        mSurfaceHolder1.addCallback(new SurfaceHolder.Callback() {
+
+            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+                Log.v(TAG, "surfaceChanged format=" + format + ", width=" + width + ", height="
+                        + height);
+            }
+
+            public void surfaceCreated(SurfaceHolder holder) {
+                Log.v(TAG, "surfaceCreated");
+                setSurface(holder.getSurface());
+            }
+
+            public void surfaceDestroyed(SurfaceHolder holder) {
+                Log.v(TAG, "surfaceDestroyed");
+            }
+
+        });
+
+        // set up the Surface 2 video sink
+        mSurfaceView2 = (SurfaceView) findViewById(R.id.surfaceview2);
+        mSurfaceHolder2 = mSurfaceView2.getHolder();
+
+        mSurfaceHolder2.addCallback(new SurfaceHolder.Callback() {
+
+            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+                Log.v(TAG, "surfaceChanged format=" + format + ", width=" + width + ", height="
+                        + height);
+            }
+
+            public void surfaceCreated(SurfaceHolder holder) {
+                Log.v(TAG, "surfaceCreated");
+                setSurface(holder.getSurface());
+            }
+
+            public void surfaceDestroyed(SurfaceHolder holder) {
+                Log.v(TAG, "surfaceDestroyed");
+            }
+
+        });
+
+        // create Java media player
+        mMediaPlayer = new MediaPlayer();
+
+        // set up Java media player listeners
+        mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
+
+            public void onPrepared(MediaPlayer mediaPlayer) {
+                int width = mediaPlayer.getVideoWidth();
+                int height = mediaPlayer.getVideoHeight();
+                Log.v(TAG, "onPrepared width=" + width + ", height=" + height);
+                if (width != 0 && height != 0 && mJavaMediaPlayerVideoSink != null) {
+                    mJavaMediaPlayerVideoSink.setFixedSize(width, height);
+                }
+                mMediaPlayerIsPrepared = true;
+                mediaPlayer.start();
+            }
+
+        });
+
+        mMediaPlayer.setOnVideoSizeChangedListener(new MediaPlayer.OnVideoSizeChangedListener() {
+
+            public void onVideoSizeChanged(MediaPlayer mediaPlayer, int width, int height) {
+                Log.v(TAG, "onVideoSizeChanged width=" + width + ", height=" + height);
+                if (width != 0 && height != 0 && mJavaMediaPlayerVideoSink != null) {
+                    mJavaMediaPlayerVideoSink.setFixedSize(width, height);
+                }
+            }
+
+        });
+
+        // initialize content source spinner
+        Spinner sourceSpinner = (Spinner) findViewById(R.id.source_spinner);
+        ArrayAdapter<CharSequence> sourceAdapter = ArrayAdapter.createFromResource(
+                this, R.array.source_array, android.R.layout.simple_spinner_item);
+        sourceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        sourceSpinner.setAdapter(sourceAdapter);
+        sourceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+                mSourceString = parent.getItemAtPosition(pos).toString();
+                Log.v(TAG, "onItemSelected " + mSourceString);
+            }
+
+            public void onNothingSelected(AdapterView parent) {
+                Log.v(TAG, "onNothingSelected");
+                mSourceString = null;
+            }
+
+        });
+
+        // initialize video sink spinner
+        Spinner sinkSpinner = (Spinner) findViewById(R.id.sink_spinner);
+        ArrayAdapter<CharSequence> sinkAdapter = ArrayAdapter.createFromResource(
+                this, R.array.sink_array, android.R.layout.simple_spinner_item);
+        sinkAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        sinkSpinner.setAdapter(sinkAdapter);
+        sinkSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+
+            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+                mSinkString = parent.getItemAtPosition(pos).toString();
+                Log.v(TAG, "onItemSelected " + mSinkString);
+                if ("Surface 1".equals(mSinkString)) {
+                    if (mSurfaceHolder1VideoSink == null) {
+                        mSurfaceHolder1VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder1);
+                    }
+                    mSelectedVideoSink = mSurfaceHolder1VideoSink;
+                } else if ("Surface 2".equals(mSinkString)) {
+                    if (mSurfaceHolder2VideoSink == null) {
+                        mSurfaceHolder2VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder2);
+                    }
+                    mSelectedVideoSink = mSurfaceHolder2VideoSink;
+                } else if ("SurfaceTexture 1".equals(mSinkString)) {
+                    if (mGLView1VideoSink == null) {
+                        mGLView1VideoSink = new GLViewVideoSink(mGLView1);
+                    }
+                    mSelectedVideoSink = mGLView1VideoSink;
+                } else if ("SurfaceTexture 2".equals(mSinkString)) {
+                    if (mGLView2VideoSink == null) {
+                        mGLView2VideoSink = new GLViewVideoSink(mGLView2);
+                    }
+                    mSelectedVideoSink = mGLView2VideoSink;
+                }
+            }
+
+            public void onNothingSelected(AdapterView parent) {
+                Log.v(TAG, "onNothingSelected");
+                mSinkString = null;
+                mSelectedVideoSink = null;
+            }
+
+        });
+
+        // initialize button click handlers
+
+        // Java MediaPlayer start/pause
+
+        ((Button) findViewById(R.id.start_java)).setOnClickListener(new View.OnClickListener() {
+
+            public void onClick(View view) {
+                if (mJavaMediaPlayerVideoSink == null) {
+                    if (mSelectedVideoSink == null) {
+                        return;
+                    }
+                    mSelectedVideoSink.useAsSinkForJava(mMediaPlayer);
+                    mJavaMediaPlayerVideoSink = mSelectedVideoSink;
+                }
+                if (!mMediaPlayerIsPrepared) {
+                    if (mSourceString != null) {
+                        try {
+                            mMediaPlayer.setDataSource(mSourceString);
+                        } catch (IOException e) {
+                            Log.e(TAG, "IOException " + e);
+                        }
+                        mMediaPlayer.prepareAsync();
+                    }
+                } else if (mMediaPlayer.isPlaying()) {
+                    mMediaPlayer.pause();
+                } else {
+                    mMediaPlayer.start();
+                }
+            }
+
+        });
+
+        // native MediaPlayer start/pause
+
+        ((Button) findViewById(R.id.start_native)).setOnClickListener(new View.OnClickListener() {
+
+            boolean created = false;
+            public void onClick(View view) {
+                if (!created) {
+                    if (mNativeMediaPlayerVideoSink == null) {
+                        if (mSelectedVideoSink == null) {
+                            return;
+                        }
+                        mSelectedVideoSink.useAsSinkForNative();
+                        mNativeMediaPlayerVideoSink = mSelectedVideoSink;
+                    }
+                    if (mSourceString != null) {
+                        created = createStreamingMediaPlayer(mSourceString);
+                    }
+                }
+                if (created) {
+                    mIsPlayingStreaming = !mIsPlayingStreaming;
+                    setPlayingStreamingMediaPlayer(mIsPlayingStreaming);
+                }
+            }
+
+        });
+
+        // finish
+
+        ((Button) findViewById(R.id.finish)).setOnClickListener(new View.OnClickListener() {
+
+            public void onClick(View view) {
+                finish();
+            }
+
+        });
+
+        // Java MediaPlayer rewind
+
+        ((Button) findViewById(R.id.rewind_java)).setOnClickListener(new View.OnClickListener() {
+
+            public void onClick(View view) {
+                if (mMediaPlayerIsPrepared) {
+                    mMediaPlayer.seekTo(0);
+                }
+            }
+
+        });
+
+        // native MediaPlayer rewind
+
+        ((Button) findViewById(R.id.rewind_native)).setOnClickListener(new View.OnClickListener() {
+
+            public void onClick(View view) {
+                if (mNativeMediaPlayerVideoSink != null) {
+                    rewindStreamingMediaPlayer();
+                }
+            }
+
+        });
+
+    }
+
+    /** Called when the activity is about to be paused. */
+    @Override
+    protected void onPause()
+    {
+        mIsPlayingStreaming = false;
+        setPlayingStreamingMediaPlayer(false);
+        mGLView1.onPause();
+        mGLView2.onPause();
+        super.onPause();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        mGLView1.onResume();
+        mGLView2.onResume();
+    }
+
+    /** Called when the activity is about to be destroyed. */
+    @Override
+    protected void onDestroy()
+    {
+        shutdown();
+        super.onDestroy();
+    }
+
+    private MyGLSurfaceView mGLView1, mGLView2;
+
+    /** Native methods, implemented in jni folder */
+    public static native void createEngine();
+    public static native boolean createStreamingMediaPlayer(String filename);
+    public static native void setPlayingStreamingMediaPlayer(boolean isPlaying);
+    public static native void shutdown();
+    public static native void setSurface(Surface surface);
+    public static native void rewindStreamingMediaPlayer();
+
+    /** Load jni .so on initialization */
+    static {
+         System.loadLibrary("native-media-jni");
+    }
+
+    // VideoSink abstracts out the difference between Surface and SurfaceTexture
+    // aka SurfaceHolder and GLSurfaceView
+    static abstract class VideoSink {
+
+        abstract void setFixedSize(int width, int height);
+        abstract void useAsSinkForJava(MediaPlayer mediaPlayer);
+        abstract void useAsSinkForNative();
+
+    }
+
+    static class SurfaceHolderVideoSink extends VideoSink {
+
+        private final SurfaceHolder mSurfaceHolder;
+
+        SurfaceHolderVideoSink(SurfaceHolder surfaceHolder) {
+            mSurfaceHolder = surfaceHolder;
+        }
+
+        void setFixedSize(int width, int height) {
+            mSurfaceHolder.setFixedSize(width, height);
+        }
+
+        void useAsSinkForJava(MediaPlayer mediaPlayer) {
+            // Use the newer MediaPlayer.setSurface(Surface) since API level 14
+            // instead of MediaPlayer.setDisplay(mSurfaceHolder) since API level 1,
+            // because setSurface also works with a Surface derived from a SurfaceTexture.
+            Surface s = mSurfaceHolder.getSurface();
+            mediaPlayer.setSurface(s);
+            s.release();
+        }
+
+        void useAsSinkForNative() {
+            Surface s = mSurfaceHolder.getSurface();
+            setSurface(s);
+            s.release();
+        }
+
+    }
+
+    static class GLViewVideoSink extends VideoSink {
+
+        private final MyGLSurfaceView mMyGLSurfaceView;
+
+        GLViewVideoSink(MyGLSurfaceView myGLSurfaceView) {
+            mMyGLSurfaceView = myGLSurfaceView;
+        }
+
+        void setFixedSize(int width, int height) {
+        }
+
+        void useAsSinkForJava(MediaPlayer mediaPlayer) {
+            SurfaceTexture st = mMyGLSurfaceView.getSurfaceTexture();
+            Surface s = new Surface(st);
+            mediaPlayer.setSurface(s);
+            s.release();
+        }
+
+        void useAsSinkForNative() {
+            SurfaceTexture st = mMyGLSurfaceView.getSurfaceTexture();
+            Surface s = new Surface(st);
+            setSurface(s);
+            s.release();
+        }
+
+    }
+
+}
diff --git a/ndk/platforms/android-3/arch-arm/include/asm/ptrace.h b/ndk/platforms/android-3/arch-arm/include/asm/ptrace.h
index c6dfea1..a04eec3 100644
--- a/ndk/platforms/android-3/arch-arm/include/asm/ptrace.h
+++ b/ndk/platforms/android-3/arch-arm/include/asm/ptrace.h
@@ -29,6 +29,9 @@
 #define PTRACE_GETCRUNCHREGS 25
 #define PTRACE_SETCRUNCHREGS 26
 
+#define PTRACE_GETVFPREGS 27
+#define PTRACE_SETVFPREGS 28
+
 #define USR26_MODE 0x00000000
 #define FIQ26_MODE 0x00000001
 #define IRQ26_MODE 0x00000002
diff --git a/ndk/platforms/android-3/arch-arm/include/asm/types.h b/ndk/platforms/android-3/arch-arm/include/asm/types.h
index ec60f10..80cea8d 100644
--- a/ndk/platforms/android-3/arch-arm/include/asm/types.h
+++ b/ndk/platforms/android-3/arch-arm/include/asm/types.h
@@ -25,7 +25,7 @@
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
 
-#if defined(__GNUC__) && !defined(__STRICT_ANSI__)
+#ifdef __GNUC__
 typedef __signed__ long long __s64;
 typedef unsigned long long __u64;
 #endif
diff --git a/ndk/platforms/android-3/arch-arm/include/asm/user.h b/ndk/platforms/android-3/arch-arm/include/asm/user.h
index 5f25850..d0baecd 100644
--- a/ndk/platforms/android-3/arch-arm/include/asm/user.h
+++ b/ndk/platforms/android-3/arch-arm/include/asm/user.h
@@ -58,4 +58,15 @@
 #define HOST_TEXT_START_ADDR (u.start_code)
 #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
 
+struct user_vfp {
+ unsigned long long fpregs[32];
+ unsigned long fpscr;
+};
+
+struct user_vfp_exc {
+ unsigned long fpexc;
+ unsigned long fpinst;
+ unsigned long fpinst2;
+};
+
 #endif
diff --git a/ndk/platforms/android-3/arch-arm/lib/crtbegin_dynamic.o b/ndk/platforms/android-3/arch-arm/lib/crtbegin_dynamic.o
deleted file mode 100644
index f34cba8..0000000
--- a/ndk/platforms/android-3/arch-arm/lib/crtbegin_dynamic.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-3/arch-arm/lib/crtbegin_so.o b/ndk/platforms/android-3/arch-arm/lib/crtbegin_so.o
deleted file mode 100644
index 5230178..0000000
--- a/ndk/platforms/android-3/arch-arm/lib/crtbegin_so.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-3/arch-arm/lib/crtbegin_static.o b/ndk/platforms/android-3/arch-arm/lib/crtbegin_static.o
deleted file mode 100644
index f34cba8..0000000
--- a/ndk/platforms/android-3/arch-arm/lib/crtbegin_static.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-3/arch-arm/lib/crtend_android.o b/ndk/platforms/android-3/arch-arm/lib/crtend_android.o
deleted file mode 100644
index c57149e..0000000
--- a/ndk/platforms/android-3/arch-arm/lib/crtend_android.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-3/arch-arm/lib/crtend_so.o b/ndk/platforms/android-3/arch-arm/lib/crtend_so.o
deleted file mode 100644
index c54db97..0000000
--- a/ndk/platforms/android-3/arch-arm/lib/crtend_so.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-3/arch-arm/src/__dso_handle.S b/ndk/platforms/android-3/arch-arm/src/__dso_handle.S
new file mode 100644
index 0000000..2d78389
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/__dso_handle.S
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+# The __dso_handle global variable is used by static
+# C++ constructors and destructors in the binary.
+# See http://www.codesourcery.com/public/cxx-abi/abi.html#dso-dtor
+#
+        .data
+        .align 4
+
+/* CRT_LEGACY_WORKAROUND is only defined when building this file
+ * for the C library. This forces __dso_handle to be exported by
+ * it. This is only required to ensure binary compatibility with
+ * old NDK application machine code that contains reference to
+ * the symbol, but do not have a proper definition for it.
+ *
+ * These binaries cannot call their destructorson dlclose(), but
+ * at least they will not fail to load.
+ *
+ * When this file is built for the NDK, CRT_LEGACY_WORKAROUND
+ * should never be defined.
+ */
+
+#ifndef CRT_LEGACY_WORKAROUND
+	.hidden __dso_handle
+#endif
+
+        .globl __dso_handle
+__dso_handle:
+        .long __dso_handle
diff --git a/ndk/platforms/android-3/arch-arm/src/__dso_handle_so.S b/ndk/platforms/android-3/arch-arm/src/__dso_handle_so.S
new file mode 100644
index 0000000..77a5d7f
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/__dso_handle_so.S
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+# The __dso_handle global variable is used by static
+# C++ constructors and destructors in the binary.
+# See http://www.codesourcery.com/public/cxx-abi/abi.html#dso-dtor
+#
+	.data
+        .align 4
+	.hidden __dso_handle
+        .globl __dso_handle
+__dso_handle:
+        .long __dso_handle
diff --git a/ndk/platforms/android-3/arch-arm/src/atexit.S b/ndk/platforms/android-3/arch-arm/src/atexit.S
new file mode 100644
index 0000000..b6401ed
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/atexit.S
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2011 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* CRT_LEGACY_WORKAROUND should only be defined when building
+ * this file as part of the platform's C library.
+ *
+ * The C library already defines a function named 'atexit()'
+ * for backwards compatibility with older NDK-generated binaries.
+ *
+ * For newer ones, 'atexit' is actually embedded in the C
+ * runtime objects that are linked into the final ELF
+ * binary (shared library or executable), and will call
+ * __cxa_atexit() in order to un-register any atexit()
+ * handler when a library is unloaded.
+ *
+ * This function must be global *and* hidden. Only the
+ * code inside the same ELF binary should be able to access it.
+ */
+#ifndef CRT_LEGACY_WORKAROUND
+	.arch armv5te
+	.fpu softvfp
+	.eabi_attribute 20, 1
+	.eabi_attribute 21, 1
+	.eabi_attribute 23, 3
+	.eabi_attribute 24, 1
+	.eabi_attribute 25, 1
+	.eabi_attribute 26, 2
+	.eabi_attribute 30, 4
+	.eabi_attribute 18, 4
+	.hidden	atexit
+	.code	16
+	.thumb_func
+        .text
+        .align 0
+        .global atexit
+        .type atexit, #function
+atexit: .fnstart
+.LFB0:
+	.save	{r4, lr}
+	push	{r4, lr}
+.LCFI0:
+	ldr	r3, .L3
+	mov	r1, #0
+	@ sp needed for prologue
+.LPIC0:
+	add	r3, pc
+	ldr	r2, [r3]
+        ldr     r3, =__cxa_atexit
+	blx     r3
+	pop	{r4, pc}
+.L4:
+	.align	2
+.L3:
+	.word	__dso_handle-(.LPIC0+4)
+.LFE0:
+        .fnend
+        .size atexit, . - atexit
+#endif
diff --git a/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S b/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S
new file mode 100644
index 0000000..6ca0845
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/crtbegin_dynamic.S
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.text
+	.align 4
+	.type _start,#function
+	.globl _start
+
+# this is the small startup code that is first run when
+# any executable that is dynamically-linked with Bionic
+# runs.
+#
+# it's purpose is to call __libc_init with appropriate
+# arguments, which are:
+#
+#    - the address of the raw data block setup by the Linux
+#      kernel ELF loader
+#
+#    - address of an "onexit" function, not used on any
+#      platform supported by Bionic
+#
+#    - address of the "main" function of the program.
+#
+#    - address of the constructor list
+#
+_start:	
+	mov	r0, sp
+	mov	r1, #0
+	ldr	r2, =main
+	adr	r3, 1f
+	ldr	r4, =__libc_init
+	bx	r4
+
+1:  .long   __PREINIT_ARRAY__
+    .long   __INIT_ARRAY__
+    .long   __FINI_ARRAY__
+    .long   __CTOR_LIST__
+
+	.section .preinit_array, "aw"
+	.globl __PREINIT_ARRAY__
+__PREINIT_ARRAY__:
+	.long -1
+
+	.section .init_array, "aw"
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+
+	.section .fini_array, "aw"
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+
+	.section .ctors, "aw"
+	.globl __CTOR_LIST__
+__CTOR_LIST__:
+	.long -1
+
+#include "__dso_handle.S"
+#include "atexit.S"
diff --git a/ndk/platforms/android-3/arch-arm/src/crtbegin_so.S b/ndk/platforms/android-3/arch-arm/src/crtbegin_so.S
new file mode 100644
index 0000000..9275b1e
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/crtbegin_so.S
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+# Implement static C++ destructors when the shared
+# library is unloaded through dlclose().
+#
+# A call to this function must be the first entry
+# in the .fini_array. See 3.3.5.3.C of C++ ABI
+# standard.
+#
+__on_dlclose:
+        adr     r0, 0f
+        ldr     r0, [r0]
+        b       __cxa_finalize
+
+0:
+        .long   __dso_handle
+
+	.section .init_array, "aw"
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+
+        .section .fini_array, "aw"
+        .globl __FINI_ARRAY__
+__FINI_ARRAY__:
+        .long -1
+        .long __on_dlclose
+
+#ifdef CRT_LEGACY_WORKAROUND
+#include "__dso_handle.S"
+#else
+#include "__dso_handle_so.S"
+#endif
+
+#include "atexit.S"
diff --git a/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S b/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S
new file mode 100644
index 0000000..ec13351
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/crtbegin_static.S
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.text
+	.align 4
+	.type _start,#function
+	.globl _start
+
+# this is the small startup code that is first run when
+# any executable that is statically-linked with Bionic
+# runs.
+#
+# it's purpose is to call __libc_init with appropriate
+# arguments, which are:
+#
+#    - the address of the raw data block setup by the Linux
+#      kernel ELF loader
+#
+#    - address of an "onexit" function, not used on any
+#      platform supported by Bionic
+#
+#    - address of the "main" function of the program.
+#
+#    - address of the constructor list
+#
+_start:	
+	mov	r0, sp
+	mov	r1, #0
+	ldr	r2, =main
+	adr	r3, 1f
+	ldr	r4, =__libc_init
+	bx	r4
+
+1:  .long   __PREINIT_ARRAY__
+    .long   __INIT_ARRAY__
+    .long   __FINI_ARRAY__
+    .long   __CTOR_LIST__
+
+	.section .preinit_array, "aw"
+	.globl __PREINIT_ARRAY__
+__PREINIT_ARRAY__:
+	.long -1
+
+	.section .init_array, "aw"
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+
+	.section .fini_array, "aw"
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+
+	.section .ctors, "aw"
+	.globl __CTOR_LIST__
+__CTOR_LIST__:
+	.long -1
+
+
+#include "__dso_handle.S"
+/* NOTE: atexit() is  not be provided by crtbegin_static.S, but by libc.a */
+
diff --git a/ndk/platforms/android-3/arch-arm/src/crtend.S b/ndk/platforms/android-3/arch-arm/src/crtend.S
new file mode 100644
index 0000000..2f3b1ed
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/crtend.S
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	
+	.section .preinit_array, "aw"
+	.long 0
+
+	.section .init_array, "aw"
+	.long 0
+
+	.section .fini_array, "aw"
+	.long 0
+
+	.section .ctors, "aw"
+	.long 0
+
diff --git a/ndk/platforms/android-3/arch-arm/src/crtend_so.S b/ndk/platforms/android-3/arch-arm/src/crtend_so.S
new file mode 100644
index 0000000..a1281c4
--- /dev/null
+++ b/ndk/platforms/android-3/arch-arm/src/crtend_so.S
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* This is the same than crtend.S except that a shared library
+ * cannot have a .preinit_array
+ */
+	
+	.section .init_array, "aw"
+	.long 0
+
+	.section .fini_array, "aw"
+	.long 0
+
diff --git a/ndk/platforms/android-3/include/asm-generic/resource.h b/ndk/platforms/android-3/include/asm-generic/resource.h
index a7f7dec..3106473 100644
--- a/ndk/platforms/android-3/include/asm-generic/resource.h
+++ b/ndk/platforms/android-3/include/asm-generic/resource.h
@@ -43,8 +43,9 @@
 #define RLIMIT_MSGQUEUE 12  
 #define RLIMIT_NICE 13  
 #define RLIMIT_RTPRIO 14  
+#define RLIMIT_RTTIME 15  
 
-#define RLIM_NLIMITS 15
+#define RLIM_NLIMITS 16
 
 #ifndef RLIM_INFINITY
 #define RLIM_INFINITY (~0UL)
diff --git a/ndk/platforms/android-3/include/linux/ipv6.h b/ndk/platforms/android-3/include/linux/ipv6.h
new file mode 100644
index 0000000..f4ee9a1
--- /dev/null
+++ b/ndk/platforms/android-3/include/linux/ipv6.h
@@ -0,0 +1,133 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _IPV6_H
+#define _IPV6_H
+
+#include <linux/types.h>
+#include <linux/in6.h>
+#include <asm/byteorder.h>
+
+#define IPV6_MIN_MTU 1280
+
+struct in6_pktinfo {
+ struct in6_addr ipi6_addr;
+ int ipi6_ifindex;
+};
+
+struct ip6_mtuinfo {
+ struct sockaddr_in6 ip6m_addr;
+ __u32 ip6m_mtu;
+};
+
+struct in6_ifreq {
+ struct in6_addr ifr6_addr;
+ __u32 ifr6_prefixlen;
+ int ifr6_ifindex;
+};
+
+#define IPV6_SRCRT_STRICT 0x01  
+#define IPV6_SRCRT_TYPE_0 0  
+#define IPV6_SRCRT_TYPE_2 2  
+
+struct ipv6_rt_hdr {
+ __u8 nexthdr;
+ __u8 hdrlen;
+ __u8 type;
+ __u8 segments_left;
+
+};
+
+struct ipv6_opt_hdr {
+ __u8 nexthdr;
+ __u8 hdrlen;
+
+} __attribute__((packed));
+
+#define ipv6_destopt_hdr ipv6_opt_hdr
+#define ipv6_hopopt_hdr ipv6_opt_hdr
+
+struct rt0_hdr {
+ struct ipv6_rt_hdr rt_hdr;
+ __u32 reserved;
+ struct in6_addr addr[0];
+
+#define rt0_type rt_hdr.type
+};
+
+struct rt2_hdr {
+ struct ipv6_rt_hdr rt_hdr;
+ __u32 reserved;
+ struct in6_addr addr;
+
+#define rt2_type rt_hdr.type
+};
+
+struct ipv6_destopt_hao {
+ __u8 type;
+ __u8 length;
+ struct in6_addr addr;
+} __attribute__((packed));
+
+struct ipv6hdr {
+#ifdef __LITTLE_ENDIAN_BITFIELD
+ __u8 priority:4,
+ version:4;
+#elif defined(__BIG_ENDIAN_BITFIELD)
+ __u8 version:4,
+ priority:4;
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+ __u8 flow_lbl[3];
+
+ __be16 payload_len;
+ __u8 nexthdr;
+ __u8 hop_limit;
+
+ struct in6_addr saddr;
+ struct in6_addr daddr;
+};
+
+enum {
+ DEVCONF_FORWARDING = 0,
+ DEVCONF_HOPLIMIT,
+ DEVCONF_MTU6,
+ DEVCONF_ACCEPT_RA,
+ DEVCONF_ACCEPT_REDIRECTS,
+ DEVCONF_AUTOCONF,
+ DEVCONF_DAD_TRANSMITS,
+ DEVCONF_RTR_SOLICITS,
+ DEVCONF_RTR_SOLICIT_INTERVAL,
+ DEVCONF_RTR_SOLICIT_DELAY,
+ DEVCONF_USE_TEMPADDR,
+ DEVCONF_TEMP_VALID_LFT,
+ DEVCONF_TEMP_PREFERED_LFT,
+ DEVCONF_REGEN_MAX_RETRY,
+ DEVCONF_MAX_DESYNC_FACTOR,
+ DEVCONF_MAX_ADDRESSES,
+ DEVCONF_FORCE_MLD_VERSION,
+ DEVCONF_ACCEPT_RA_DEFRTR,
+ DEVCONF_ACCEPT_RA_PINFO,
+ DEVCONF_ACCEPT_RA_RTR_PREF,
+ DEVCONF_RTR_PROBE_INTERVAL,
+ DEVCONF_ACCEPT_RA_RT_INFO_MAX_PLEN,
+ DEVCONF_PROXY_NDP,
+ DEVCONF_OPTIMISTIC_DAD,
+ DEVCONF_ACCEPT_SOURCE_ROUTE,
+ DEVCONF_MC_FORWARDING,
+ DEVCONF_DISABLE_IPV6,
+ DEVCONF_ACCEPT_DAD,
+ DEVCONF_FORCE_TLLAO,
+ DEVCONF_MAX
+};
+
+#endif
diff --git a/ndk/platforms/android-9/arch-x86/include/sys/atomics.h b/ndk/platforms/android-3/include/net/ethernet.h
similarity index 62%
rename from ndk/platforms/android-9/arch-x86/include/sys/atomics.h
rename to ndk/platforms/android-3/include/net/ethernet.h
index 7aed3ae..b1b88dd 100644
--- a/ndk/platforms/android-9/arch-x86/include/sys/atomics.h
+++ b/ndk/platforms/android-3/include/net/ethernet.h
@@ -25,41 +25,8 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#ifndef _SYS_ATOMICS_H
-#define _SYS_ATOMICS_H
-
-#include <sys/cdefs.h>
-#include <sys/time.h>
-
-__BEGIN_DECLS
-
-static inline __attribute__((always_inline)) int
-__atomic_cmpxchg(int old, int _new, volatile int *ptr)
-{
-  return !__sync_bool_compare_and_swap (ptr, old, _new);
-}
-
-static inline __attribute__((always_inline)) int
-__atomic_swap(int _new, volatile int *ptr)
-{
-  return __sync_lock_test_and_set(ptr, _new);
-}
-
-static inline __attribute__((always_inline)) int
-__atomic_dec(volatile int *ptr)
-{
-  return __sync_fetch_and_sub (ptr, 1);
-}
-
-static inline __attribute__((always_inline)) int
-__atomic_inc(volatile int *ptr)
-{
-  return __sync_fetch_and_add (ptr, 1);
-}
-
-int __futex_wait(volatile void *ftx, int val, const struct timespec *timeout);
-int __futex_wake(volatile void *ftx, int count);
-
-__END_DECLS
-
-#endif /* _SYS_ATOMICS_H */
+#ifndef _NET_ETHERNET_H_
+#define _NET_IF_ETHERNET_H_
+#include <linux/if_ether.h>
+#include <net/if_ether.h>
+#endif /* !_NET_ETHERNET_H_ */
diff --git a/ndk/platforms/android-3/include/net/if_ether.h b/ndk/platforms/android-3/include/net/if_ether.h
index 121f9ac..8daa16b 100644
--- a/ndk/platforms/android-3/include/net/if_ether.h
+++ b/ndk/platforms/android-3/include/net/if_ether.h
@@ -34,6 +34,8 @@
 #ifndef _NET_IF_ETHER_H_
 #define _NET_IF_ETHER_H_
 
+#include <sys/types.h>
+
 #ifdef _KERNEL
 #ifdef _KERNEL_OPT
 #include "opt_mbuftrace.h"
diff --git a/ndk/platforms/android-3/include/netdb.h b/ndk/platforms/android-3/include/netdb.h
index 8d3996a..f48052d 100644
--- a/ndk/platforms/android-3/include/netdb.h
+++ b/ndk/platforms/android-3/include/netdb.h
@@ -137,10 +137,7 @@
 /*
  * Error return codes from getaddrinfo()
  */
-#if 0
-/* obsoleted */
 #define	EAI_ADDRFAMILY	 1	/* address family for hostname not supported */
-#endif
 #define	EAI_AGAIN	 2	/* temporary failure in name resolution */
 #define	EAI_BADFLAGS	 3	/* invalid value for ai_flags */
 #define	EAI_FAIL	 4	/* non-recoverable failure in name resolution */
diff --git a/ndk/platforms/android-3/include/netinet/icmp6.h b/ndk/platforms/android-3/include/netinet/icmp6.h
new file mode 100644
index 0000000..fbc8234
--- /dev/null
+++ b/ndk/platforms/android-3/include/netinet/icmp6.h
@@ -0,0 +1,730 @@
+/*	$NetBSD: icmp6.h,v 1.40 2009/10/31 22:32:17 christos Exp $	*/
+/*	$KAME: icmp6.h,v 1.84 2003/04/23 10:26:51 itojun Exp $	*/
+
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_icmp.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _NETINET_ICMP6_H_
+#define _NETINET_ICMP6_H_
+
+#define ICMPV6_PLD_MAXLEN	1232	/* IPV6_MMTU - sizeof(struct ip6_hdr)
+					   - sizeof(struct icmp6_hdr) */
+
+struct icmp6_hdr {
+	u_int8_t	icmp6_type;	/* type field */
+	u_int8_t	icmp6_code;	/* code field */
+	u_int16_t	icmp6_cksum;	/* checksum field */
+	union {
+		u_int32_t	icmp6_un_data32[1]; /* type-specific field */
+		u_int16_t	icmp6_un_data16[2]; /* type-specific field */
+		u_int8_t	icmp6_un_data8[4];  /* type-specific field */
+	} icmp6_dataun;
+} __packed;
+
+#define icmp6_data32	icmp6_dataun.icmp6_un_data32
+#define icmp6_data16	icmp6_dataun.icmp6_un_data16
+#define icmp6_data8	icmp6_dataun.icmp6_un_data8
+#define icmp6_pptr	icmp6_data32[0]		/* parameter prob */
+#define icmp6_mtu	icmp6_data32[0]		/* packet too big */
+#define icmp6_id	icmp6_data16[0]		/* echo request/reply */
+#define icmp6_seq	icmp6_data16[1]		/* echo request/reply */
+#define icmp6_maxdelay	icmp6_data16[0]		/* mcast group membership */
+
+#define ICMP6_DST_UNREACH		1	/* dest unreachable, codes: */
+#define ICMP6_PACKET_TOO_BIG		2	/* packet too big */
+#define ICMP6_TIME_EXCEEDED		3	/* time exceeded, code: */
+#define ICMP6_PARAM_PROB		4	/* ip6 header bad */
+
+#define ICMP6_ECHO_REQUEST		128	/* echo service */
+#define ICMP6_ECHO_REPLY		129	/* echo reply */
+#define MLD_LISTENER_QUERY		130 	/* multicast listener query */
+#define MLD_LISTENER_REPORT		131	/* multicast listener report */
+#define MLD_LISTENER_DONE		132	/* multicast listener done */
+
+/* RFC2292 decls */
+#define ICMP6_MEMBERSHIP_QUERY		130	/* group membership query */
+#define ICMP6_MEMBERSHIP_REPORT		131	/* group membership report */
+#define ICMP6_MEMBERSHIP_REDUCTION	132	/* group membership termination */
+
+#ifndef _KERNEL
+/* the followings are for backward compatibility to old KAME apps. */
+#define MLD6_LISTENER_QUERY	MLD_LISTENER_QUERY
+#define MLD6_LISTENER_REPORT	MLD_LISTENER_REPORT
+#define MLD6_LISTENER_DONE	MLD_LISTENER_DONE
+#endif
+
+#define ND_ROUTER_SOLICIT		133	/* router solicitation */
+#define ND_ROUTER_ADVERT		134	/* router advertisement */
+#define ND_NEIGHBOR_SOLICIT		135	/* neighbor solicitation */
+#define ND_NEIGHBOR_ADVERT		136	/* neighbor advertisement */
+#define ND_REDIRECT			137	/* redirect */
+
+#define ICMP6_ROUTER_RENUMBERING	138	/* router renumbering */
+
+#define ICMP6_WRUREQUEST		139	/* who are you request */
+#define ICMP6_WRUREPLY			140	/* who are you reply */
+#define ICMP6_FQDN_QUERY		139	/* FQDN query */
+#define ICMP6_FQDN_REPLY		140	/* FQDN reply */
+#define ICMP6_NI_QUERY			139	/* node information request */
+#define ICMP6_NI_REPLY			140	/* node information reply */
+
+/* The definitions below are experimental. TBA */
+#define MLD_MTRACE_RESP			200	/* mtrace response(to sender) */
+#define MLD_MTRACE			201	/* mtrace messages */
+
+#ifndef _KERNEL
+/* the followings are for backward compatibility to old KAME apps. */
+#define MLD6_MTRACE_RESP	MLD_MTRACE_RESP
+#define MLD6_MTRACE		MLD_MTRACE
+#endif
+
+#define ICMP6_MAXTYPE			201
+
+#define ICMP6_DST_UNREACH_NOROUTE	0	/* no route to destination */
+#define ICMP6_DST_UNREACH_ADMIN	 	1	/* administratively prohibited */
+#define ICMP6_DST_UNREACH_NOTNEIGHBOR	2	/* not a neighbor(obsolete) */
+#define ICMP6_DST_UNREACH_BEYONDSCOPE	2	/* beyond scope of source address */
+#define ICMP6_DST_UNREACH_ADDR		3	/* address unreachable */
+#define ICMP6_DST_UNREACH_NOPORT	4	/* port unreachable */
+
+#define ICMP6_TIME_EXCEED_TRANSIT 	0	/* ttl==0 in transit */
+#define ICMP6_TIME_EXCEED_REASSEMBLY	1	/* ttl==0 in reass */
+
+#define ICMP6_PARAMPROB_HEADER 	 	0	/* erroneous header field */
+#define ICMP6_PARAMPROB_NEXTHEADER	1	/* unrecognized next header */
+#define ICMP6_PARAMPROB_OPTION		2	/* unrecognized option */
+
+#define ICMP6_INFOMSG_MASK		0x80	/* all informational messages */
+
+#define ICMP6_NI_SUBJ_IPV6	0	/* Query Subject is an IPv6 address */
+#define ICMP6_NI_SUBJ_FQDN	1	/* Query Subject is a Domain name */
+#define ICMP6_NI_SUBJ_IPV4	2	/* Query Subject is an IPv4 address */
+
+#define ICMP6_NI_SUCCESS	0	/* node information successful reply */
+#define ICMP6_NI_REFUSED	1	/* node information request is refused */
+#define ICMP6_NI_UNKNOWN	2	/* unknown Qtype */
+
+#define ICMP6_ROUTER_RENUMBERING_COMMAND  0	/* rr command */
+#define ICMP6_ROUTER_RENUMBERING_RESULT   1	/* rr result */
+#define ICMP6_ROUTER_RENUMBERING_SEQNUM_RESET   255	/* rr seq num reset */
+
+/* Used in kernel only */
+#define ND_REDIRECT_ONLINK	0	/* redirect to an on-link node */
+#define ND_REDIRECT_ROUTER	1	/* redirect to a better router */
+
+/*
+ * Multicast Listener Discovery
+ */
+struct mld_hdr {
+	struct icmp6_hdr	mld_icmp6_hdr;
+	struct in6_addr		mld_addr; /* multicast address */
+} __packed;
+
+/* definitions to provide backward compatibility to old KAME applications */
+#ifndef _KERNEL
+#define mld6_hdr	mld_hdr
+#define mld6_type	mld_type
+#define mld6_code	mld_code
+#define mld6_cksum	mld_cksum
+#define mld6_maxdelay	mld_maxdelay
+#define mld6_reserved	mld_reserved
+#define mld6_addr	mld_addr
+#endif
+
+/* shortcut macro definitions */
+#define mld_type	mld_icmp6_hdr.icmp6_type
+#define mld_code	mld_icmp6_hdr.icmp6_code
+#define mld_cksum	mld_icmp6_hdr.icmp6_cksum
+#define mld_maxdelay	mld_icmp6_hdr.icmp6_data16[0]
+#define mld_reserved	mld_icmp6_hdr.icmp6_data16[1]
+
+#define MLD_MINLEN			24
+
+/*
+ * Neighbor Discovery
+ */
+
+struct nd_router_solicit {	/* router solicitation */
+	struct icmp6_hdr 	nd_rs_hdr;
+	/* could be followed by options */
+} __packed;
+
+#define nd_rs_type	nd_rs_hdr.icmp6_type
+#define nd_rs_code	nd_rs_hdr.icmp6_code
+#define nd_rs_cksum	nd_rs_hdr.icmp6_cksum
+#define nd_rs_reserved	nd_rs_hdr.icmp6_data32[0]
+
+struct nd_router_advert {	/* router advertisement */
+	struct icmp6_hdr	nd_ra_hdr;
+	u_int32_t		nd_ra_reachable;	/* reachable time */
+	u_int32_t		nd_ra_retransmit;	/* retransmit timer */
+	/* could be followed by options */
+} __packed;
+
+#define nd_ra_type		nd_ra_hdr.icmp6_type
+#define nd_ra_code		nd_ra_hdr.icmp6_code
+#define nd_ra_cksum		nd_ra_hdr.icmp6_cksum
+#define nd_ra_curhoplimit	nd_ra_hdr.icmp6_data8[0]
+#define nd_ra_flags_reserved	nd_ra_hdr.icmp6_data8[1]
+#define ND_RA_FLAG_MANAGED	0x80
+#define ND_RA_FLAG_OTHER	0x40
+#define ND_RA_FLAG_HOME_AGENT	0x20
+
+/*
+ * Router preference values based on RFC4199.
+ */
+#define ND_RA_FLAG_RTPREF_MASK	0x18 /* 00011000 */
+
+#define ND_RA_FLAG_RTPREF_HIGH	0x08 /* 00001000 */
+#define ND_RA_FLAG_RTPREF_MEDIUM	0x00 /* 00000000 */
+#define ND_RA_FLAG_RTPREF_LOW	0x18 /* 00011000 */
+#define ND_RA_FLAG_RTPREF_RSV	0x10 /* 00010000 */
+
+#define nd_ra_router_lifetime	nd_ra_hdr.icmp6_data16[1]
+
+struct nd_neighbor_solicit {	/* neighbor solicitation */
+	struct icmp6_hdr	nd_ns_hdr;
+	struct in6_addr		nd_ns_target;	/*target address */
+	/* could be followed by options */
+} __packed;
+
+#define nd_ns_type		nd_ns_hdr.icmp6_type
+#define nd_ns_code		nd_ns_hdr.icmp6_code
+#define nd_ns_cksum		nd_ns_hdr.icmp6_cksum
+#define nd_ns_reserved		nd_ns_hdr.icmp6_data32[0]
+
+struct nd_neighbor_advert {	/* neighbor advertisement */
+	struct icmp6_hdr	nd_na_hdr;
+	struct in6_addr		nd_na_target;	/* target address */
+	/* could be followed by options */
+} __packed;
+
+#define nd_na_type		nd_na_hdr.icmp6_type
+#define nd_na_code		nd_na_hdr.icmp6_code
+#define nd_na_cksum		nd_na_hdr.icmp6_cksum
+#define nd_na_flags_reserved	nd_na_hdr.icmp6_data32[0]
+#if BYTE_ORDER == BIG_ENDIAN
+#define ND_NA_FLAG_ROUTER		0x80000000
+#define ND_NA_FLAG_SOLICITED		0x40000000
+#define ND_NA_FLAG_OVERRIDE		0x20000000
+#else
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define ND_NA_FLAG_ROUTER		0x80
+#define ND_NA_FLAG_SOLICITED		0x40
+#define ND_NA_FLAG_OVERRIDE		0x20
+#endif
+#endif
+
+struct nd_redirect {		/* redirect */
+	struct icmp6_hdr	nd_rd_hdr;
+	struct in6_addr		nd_rd_target;	/* target address */
+	struct in6_addr		nd_rd_dst;	/* destination address */
+	/* could be followed by options */
+} __packed;
+
+#define nd_rd_type		nd_rd_hdr.icmp6_type
+#define nd_rd_code		nd_rd_hdr.icmp6_code
+#define nd_rd_cksum		nd_rd_hdr.icmp6_cksum
+#define nd_rd_reserved		nd_rd_hdr.icmp6_data32[0]
+
+struct nd_opt_hdr {		/* Neighbor discovery option header */
+	u_int8_t	nd_opt_type;
+	u_int8_t	nd_opt_len;
+	/* followed by option specific data*/
+} __packed;
+
+#define ND_OPT_SOURCE_LINKADDR		1
+#define ND_OPT_TARGET_LINKADDR		2
+#define ND_OPT_PREFIX_INFORMATION	3
+#define ND_OPT_REDIRECTED_HEADER	4
+#define ND_OPT_MTU			5
+#define ND_OPT_ADVINTERVAL		7
+#define ND_OPT_HOMEAGENT_INFO		8
+#define ND_OPT_SOURCE_ADDRLIST		9
+#define ND_OPT_TARGET_ADDRLIST		10
+#define ND_OPT_RDNSS			25
+/* draft-ietf-ipngwg-router-preference, not officially assigned yet */
+#define ND_OPT_ROUTE_INFO		200
+/* draft-ietf-mobileip-hmipv6, not officially assigned yet */
+#define ND_OPT_MAP			201
+
+struct nd_opt_route_info {	/* route info */
+	u_int8_t	nd_opt_rti_type;
+	u_int8_t	nd_opt_rti_len;
+	u_int8_t	nd_opt_rti_prefixlen;
+	u_int8_t	nd_opt_rti_flags;
+	u_int32_t	nd_opt_rti_lifetime;
+	/* prefix follows */
+};
+
+struct nd_opt_prefix_info {	/* prefix information */
+	u_int8_t	nd_opt_pi_type;
+	u_int8_t	nd_opt_pi_len;
+	u_int8_t	nd_opt_pi_prefix_len;
+	u_int8_t	nd_opt_pi_flags_reserved;
+	u_int32_t	nd_opt_pi_valid_time;
+	u_int32_t	nd_opt_pi_preferred_time;
+	u_int32_t	nd_opt_pi_reserved2;
+	struct in6_addr	nd_opt_pi_prefix;
+} __packed;
+
+#define ND_OPT_PI_FLAG_ONLINK		0x80
+#define ND_OPT_PI_FLAG_AUTO		0x40
+
+struct nd_opt_rd_hdr {		/* redirected header */
+	u_int8_t	nd_opt_rh_type;
+	u_int8_t	nd_opt_rh_len;
+	u_int16_t	nd_opt_rh_reserved1;
+	u_int32_t	nd_opt_rh_reserved2;
+	/* followed by IP header and data */
+} __packed;
+
+struct nd_opt_mtu {		/* MTU option */
+	u_int8_t	nd_opt_mtu_type;
+	u_int8_t	nd_opt_mtu_len;
+	u_int16_t	nd_opt_mtu_reserved;
+	u_int32_t	nd_opt_mtu_mtu;
+} __packed;
+
+struct nd_opt_rdnss {		/* RDNSS option RFC 5006 */
+	u_int8_t	nd_opt_rdnss_type;
+	u_int8_t	nd_opt_rdnss_len;
+	u_int16_t	nd_opt_rdnss_reserved;
+	u_int32_t	nd_opt_rdnss_lifetime;
+	/* followed by list of IP prefixes */
+} __packed;
+
+/*
+ * icmp6 namelookup
+ */
+
+struct icmp6_namelookup {
+	struct icmp6_hdr 	icmp6_nl_hdr;
+	u_int8_t	icmp6_nl_nonce[8];
+	int32_t		icmp6_nl_ttl;
+#if 0
+	u_int8_t	icmp6_nl_len;
+	u_int8_t	icmp6_nl_name[3];
+#endif
+	/* could be followed by options */
+} __packed;
+
+/*
+ * icmp6 node information
+ */
+struct icmp6_nodeinfo {
+	struct icmp6_hdr icmp6_ni_hdr;
+	u_int8_t icmp6_ni_nonce[8];
+	/* could be followed by reply data */
+} __packed;
+
+#define ni_type		icmp6_ni_hdr.icmp6_type
+#define ni_code		icmp6_ni_hdr.icmp6_code
+#define ni_cksum	icmp6_ni_hdr.icmp6_cksum
+#define ni_qtype	icmp6_ni_hdr.icmp6_data16[0]
+#define ni_flags	icmp6_ni_hdr.icmp6_data16[1]
+
+#define NI_QTYPE_NOOP		0 /* NOOP  */
+#define NI_QTYPE_SUPTYPES	1 /* Supported Qtypes */
+#define NI_QTYPE_FQDN		2 /* FQDN (draft 04) */
+#define NI_QTYPE_DNSNAME	2 /* DNS Name */
+#define NI_QTYPE_NODEADDR	3 /* Node Addresses */
+#define NI_QTYPE_IPV4ADDR	4 /* IPv4 Addresses */
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define NI_SUPTYPE_FLAG_COMPRESS	0x1
+#define NI_FQDN_FLAG_VALIDTTL		0x1
+#elif BYTE_ORDER == LITTLE_ENDIAN
+#define NI_SUPTYPE_FLAG_COMPRESS	0x0100
+#define NI_FQDN_FLAG_VALIDTTL		0x0100
+#endif
+
+#ifdef NAME_LOOKUPS_04
+#if BYTE_ORDER == BIG_ENDIAN
+#define NI_NODEADDR_FLAG_LINKLOCAL	0x1
+#define NI_NODEADDR_FLAG_SITELOCAL	0x2
+#define NI_NODEADDR_FLAG_GLOBAL		0x4
+#define NI_NODEADDR_FLAG_ALL		0x8
+#define NI_NODEADDR_FLAG_TRUNCATE	0x10
+#define NI_NODEADDR_FLAG_ANYCAST	0x20 /* just experimental. not in spec */
+#elif BYTE_ORDER == LITTLE_ENDIAN
+#define NI_NODEADDR_FLAG_LINKLOCAL	0x0100
+#define NI_NODEADDR_FLAG_SITELOCAL	0x0200
+#define NI_NODEADDR_FLAG_GLOBAL		0x0400
+#define NI_NODEADDR_FLAG_ALL		0x0800
+#define NI_NODEADDR_FLAG_TRUNCATE	0x1000
+#define NI_NODEADDR_FLAG_ANYCAST	0x2000 /* just experimental. not in spec */
+#endif
+#else  /* draft-ietf-ipngwg-icmp-name-lookups-05 (and later?) */
+#if BYTE_ORDER == BIG_ENDIAN
+#define NI_NODEADDR_FLAG_TRUNCATE	0x1
+#define NI_NODEADDR_FLAG_ALL		0x2
+#define NI_NODEADDR_FLAG_COMPAT		0x4
+#define NI_NODEADDR_FLAG_LINKLOCAL	0x8
+#define NI_NODEADDR_FLAG_SITELOCAL	0x10
+#define NI_NODEADDR_FLAG_GLOBAL		0x20
+#define NI_NODEADDR_FLAG_ANYCAST	0x40 /* just experimental. not in spec */
+#elif BYTE_ORDER == LITTLE_ENDIAN
+#define NI_NODEADDR_FLAG_TRUNCATE	0x0100
+#define NI_NODEADDR_FLAG_ALL		0x0200
+#define NI_NODEADDR_FLAG_COMPAT		0x0400
+#define NI_NODEADDR_FLAG_LINKLOCAL	0x0800
+#define NI_NODEADDR_FLAG_SITELOCAL	0x1000
+#define NI_NODEADDR_FLAG_GLOBAL		0x2000
+#define NI_NODEADDR_FLAG_ANYCAST	0x4000 /* just experimental. not in spec */
+#endif
+#endif
+
+struct ni_reply_fqdn {
+	u_int32_t ni_fqdn_ttl;	/* TTL */
+	u_int8_t ni_fqdn_namelen; /* length in octets of the FQDN */
+	u_int8_t ni_fqdn_name[3]; /* XXX: alignment */
+} __packed;
+
+/*
+ * Router Renumbering. as router-renum-08.txt
+ */
+struct icmp6_router_renum {	/* router renumbering header */
+	struct icmp6_hdr	rr_hdr;
+	u_int8_t	rr_segnum;
+	u_int8_t	rr_flags;
+	u_int16_t	rr_maxdelay;
+	u_int32_t	rr_reserved;
+} __packed;
+
+#define ICMP6_RR_FLAGS_TEST		0x80
+#define ICMP6_RR_FLAGS_REQRESULT	0x40
+#define ICMP6_RR_FLAGS_FORCEAPPLY	0x20
+#define ICMP6_RR_FLAGS_SPECSITE		0x10
+#define ICMP6_RR_FLAGS_PREVDONE		0x08
+
+#define rr_type		rr_hdr.icmp6_type
+#define rr_code		rr_hdr.icmp6_code
+#define rr_cksum	rr_hdr.icmp6_cksum
+#define rr_seqnum 	rr_hdr.icmp6_data32[0]
+
+struct rr_pco_match {		/* match prefix part */
+	u_int8_t	rpm_code;
+	u_int8_t	rpm_len;
+	u_int8_t	rpm_ordinal;
+	u_int8_t	rpm_matchlen;
+	u_int8_t	rpm_minlen;
+	u_int8_t	rpm_maxlen;
+	u_int16_t	rpm_reserved;
+	struct	in6_addr	rpm_prefix;
+} __packed;
+
+#define RPM_PCO_ADD		1
+#define RPM_PCO_CHANGE		2
+#define RPM_PCO_SETGLOBAL	3
+#define RPM_PCO_MAX		4
+
+struct rr_pco_use {		/* use prefix part */
+	u_int8_t	rpu_uselen;
+	u_int8_t	rpu_keeplen;
+	u_int8_t	rpu_ramask;
+	u_int8_t	rpu_raflags;
+	u_int32_t	rpu_vltime;
+	u_int32_t	rpu_pltime;
+	u_int32_t	rpu_flags;
+	struct	in6_addr rpu_prefix;
+} __packed;
+#define ICMP6_RR_PCOUSE_RAFLAGS_ONLINK	0x80
+#define ICMP6_RR_PCOUSE_RAFLAGS_AUTO	0x40
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME     0x80000000
+#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME     0x40000000
+#elif BYTE_ORDER == LITTLE_ENDIAN
+#define ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME     0x80
+#define ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME     0x40
+#endif
+
+struct rr_result {		/* router renumbering result message */
+	u_int16_t	rrr_flags;
+	u_int8_t	rrr_ordinal;
+	u_int8_t	rrr_matchedlen;
+	u_int32_t	rrr_ifid;
+	struct	in6_addr rrr_prefix;
+} __packed;
+#if BYTE_ORDER == BIG_ENDIAN
+#define ICMP6_RR_RESULT_FLAGS_OOB		0x0002
+#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN		0x0001
+#elif BYTE_ORDER == LITTLE_ENDIAN
+#define ICMP6_RR_RESULT_FLAGS_OOB		0x0200
+#define ICMP6_RR_RESULT_FLAGS_FORBIDDEN		0x0100
+#endif
+
+/*
+ * icmp6 filter structures.
+ */
+
+struct icmp6_filter {
+	u_int32_t icmp6_filt[8];
+};
+
+#define	ICMP6_FILTER_SETPASSALL(filterp) \
+	(void)memset(filterp, 0xff, sizeof(struct icmp6_filter))
+#define	ICMP6_FILTER_SETBLOCKALL(filterp) \
+	(void)memset(filterp, 0x00, sizeof(struct icmp6_filter))
+#define	ICMP6_FILTER_SETPASS(type, filterp) \
+	(((filterp)->icmp6_filt[(type) >> 5]) |= (1 << ((type) & 31)))
+#define	ICMP6_FILTER_SETBLOCK(type, filterp) \
+	(((filterp)->icmp6_filt[(type) >> 5]) &= ~(1 << ((type) & 31)))
+#define	ICMP6_FILTER_WILLPASS(type, filterp) \
+	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) != 0)
+#define	ICMP6_FILTER_WILLBLOCK(type, filterp) \
+	((((filterp)->icmp6_filt[(type) >> 5]) & (1 << ((type) & 31))) == 0)
+
+/*
+ * Variables related to this implementation
+ * of the internet control message protocol version 6.
+ */
+
+/*
+ * IPv6 ICMP statistics.
+ * Each counter is an unsigned 64-bit value.
+ */
+#define	ICMP6_STAT_ERROR	0	/* # of calls to icmp6_error */
+#define	ICMP6_STAT_CANTERROR	1	/* no error (old was icmp) */
+#define	ICMP6_STAT_TOOFREQ	2	/* no error (rate limitation) */
+#define	ICMP6_STAT_OUTHIST	3	/* # of output messages */
+		/* space for 256 counters */
+#define	ICMP6_STAT_BADCODE	259	/* icmp6_code out of range */
+#define	ICMP6_STAT_TOOSHORT	260	/* packet < sizeof(struct icmp6_hdr) */
+#define	ICMP6_STAT_CHECKSUM	261	/* bad checksum */
+#define	ICMP6_STAT_BADLEN	262	/* calculated bound mismatch */
+	/*
+	 * number of responses; this member is inherited from the netinet code,
+	 * but for netinet6 code, it is already available in outhist[].
+	 */
+#define	ICMP6_STAT_REFLECT	263
+#define	ICMP6_STAT_INHIST	264	/* # of input messages */
+		/* space for 256 counters */
+#define	ICMP6_STAT_ND_TOOMANYOPT 520	/* too many ND options */
+#define	ICMP6_STAT_OUTERRHIST	521
+		/* space for 13 counters */
+#define	ICMP6_STAT_PMTUCHG	534	/* path MTU changes */
+#define	ICMP6_STAT_ND_BADOPT	535	/* bad ND options */
+#define	ICMP6_STAT_BADNS	536	/* bad neighbor solicititation */
+#define	ICMP6_STAT_BADNA	537	/* bad neighbor advertisement */
+#define	ICMP6_STAT_BADRS	538	/* bad router solicitiation */
+#define	ICMP6_STAT_BADRA	539	/* bad router advertisement */
+#define	ICMP6_STAT_BADREDIRECT	540	/* bad redirect message */
+
+#define	ICMP6_NSTATS		541
+
+#define	ICMP6_ERRSTAT_DST_UNREACH_NOROUTE	0
+#define	ICMP6_ERRSTAT_DST_UNREACH_ADMIN		1
+#define	ICMP6_ERRSTAT_DST_UNREACH_BEYONDSCOPE	2
+#define	ICMP6_ERRSTAT_DST_UNREACH_ADDR		3
+#define	ICMP6_ERRSTAT_DST_UNREACH_NOPORT	4
+#define	ICMP6_ERRSTAT_PACKET_TOO_BIG		5
+#define	ICMP6_ERRSTAT_TIME_EXCEED_TRANSIT	6
+#define	ICMP6_ERRSTAT_TIME_EXCEED_REASSEMBLY	7
+#define	ICMP6_ERRSTAT_PARAMPROB_HEADER		8
+#define	ICMP6_ERRSTAT_PARAMPROB_NEXTHEADER	9
+#define	ICMP6_ERRSTAT_PARAMPROB_OPTION		10
+#define	ICMP6_ERRSTAT_REDIRECT			11
+#define	ICMP6_ERRSTAT_UNKNOWN			12
+
+/*
+ * Names for ICMP sysctl objects
+ */
+#define ICMPV6CTL_STATS		1
+#define ICMPV6CTL_REDIRACCEPT	2	/* accept/process redirects */
+#define ICMPV6CTL_REDIRTIMEOUT	3	/* redirect cache time */
+#if 0	/*obsoleted*/
+#define ICMPV6CTL_ERRRATELIMIT	5	/* ICMPv6 error rate limitation */
+#endif
+#define ICMPV6CTL_ND6_PRUNE	6
+#define ICMPV6CTL_ND6_DELAY	8
+#define ICMPV6CTL_ND6_UMAXTRIES	9
+#define ICMPV6CTL_ND6_MMAXTRIES		10
+#define ICMPV6CTL_ND6_USELOOPBACK	11
+/*#define ICMPV6CTL_ND6_PROXYALL	12	obsoleted, do not reuse here */
+#define ICMPV6CTL_NODEINFO	13
+#define ICMPV6CTL_ERRPPSLIMIT	14	/* ICMPv6 error pps limitation */
+#define ICMPV6CTL_ND6_MAXNUDHINT	15
+#define ICMPV6CTL_MTUDISC_HIWAT	16
+#define ICMPV6CTL_MTUDISC_LOWAT	17
+#define ICMPV6CTL_ND6_DEBUG	18
+#define ICMPV6CTL_ND6_DRLIST	19
+#define ICMPV6CTL_ND6_PRLIST	20
+#define	ICMPV6CTL_ND6_MAXQLEN	24
+#define ICMPV6CTL_MAXID		25
+
+#define ICMPV6CTL_NAMES { \
+	{ 0, 0 }, \
+	{ 0, 0 }, \
+	{ "rediraccept", CTLTYPE_INT }, \
+	{ "redirtimeout", CTLTYPE_INT }, \
+	{ 0, 0 }, \
+	{ 0, 0 }, \
+	{ "nd6_prune", CTLTYPE_INT }, \
+	{ 0, 0 }, \
+	{ "nd6_delay", CTLTYPE_INT }, \
+	{ "nd6_umaxtries", CTLTYPE_INT }, \
+	{ "nd6_mmaxtries", CTLTYPE_INT }, \
+	{ "nd6_useloopback", CTLTYPE_INT }, \
+	{ 0, 0 }, \
+	{ "nodeinfo", CTLTYPE_INT }, \
+	{ "errppslimit", CTLTYPE_INT }, \
+	{ "nd6_maxnudhint", CTLTYPE_INT }, \
+	{ "mtudisc_hiwat", CTLTYPE_INT }, \
+	{ "mtudisc_lowat", CTLTYPE_INT }, \
+	{ "nd6_debug", CTLTYPE_INT }, \
+	{ 0, 0 }, \
+	{ 0, 0 }, \
+	{ 0, 0 }, \
+	{ 0, 0 }, \
+	{ 0, 0 }, \
+	{ "nd6_maxqueuelen", CTLTYPE_INT }, \
+}
+
+#define RTF_PROBEMTU	RTF_PROTO1
+
+#ifdef _KERNEL
+struct	rtentry;
+struct	rttimer;
+struct	in6_multi;
+
+void	icmp6_init(void);
+void	icmp6_paramerror(struct mbuf *, int);
+void	icmp6_error(struct mbuf *, int, int, int);
+void	icmp6_error2(struct mbuf *, int, int, int, struct ifnet *);
+int	icmp6_input(struct mbuf **, int *, int);
+void	icmp6_fasttimo(void);
+void	icmp6_reflect(struct mbuf *, size_t);
+void	icmp6_prepare(struct mbuf *);
+void	icmp6_redirect_input(struct mbuf *, int);
+void	icmp6_redirect_output(struct mbuf *, struct rtentry *);
+int	icmp6_sysctl(int *, u_int, void *, size_t *, void *, size_t);
+
+void	icmp6_statinc(u_int);
+
+struct	ip6ctlparam;
+void	icmp6_mtudisc_update(struct ip6ctlparam *, int);
+void	icmp6_mtudisc_callback_register(void (*)(struct in6_addr *));
+
+/* XXX: is this the right place for these macros? */
+#define icmp6_ifstat_inc(ifp, tag) \
+do {								\
+	if (ifp)						\
+		((struct in6_ifextra *)((ifp)->if_afdata[AF_INET6]))->icmp6_ifstat->tag++; \
+} while (/*CONSTCOND*/ 0)
+
+#define icmp6_ifoutstat_inc(ifp, type, code) \
+do { \
+		icmp6_ifstat_inc(ifp, ifs6_out_msg); \
+		switch(type) { \
+		 case ICMP6_DST_UNREACH: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_dstunreach); \
+			 if (code == ICMP6_DST_UNREACH_ADMIN) \
+				 icmp6_ifstat_inc(ifp, ifs6_out_adminprohib); \
+			 break; \
+		 case ICMP6_PACKET_TOO_BIG: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_pkttoobig); \
+			 break; \
+		 case ICMP6_TIME_EXCEEDED: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_timeexceed); \
+			 break; \
+		 case ICMP6_PARAM_PROB: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_paramprob); \
+			 break; \
+		 case ICMP6_ECHO_REQUEST: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_echo); \
+			 break; \
+		 case ICMP6_ECHO_REPLY: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_echoreply); \
+			 break; \
+		 case MLD_LISTENER_QUERY: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_mldquery); \
+			 break; \
+		 case MLD_LISTENER_REPORT: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_mldreport); \
+			 break; \
+		 case MLD_LISTENER_DONE: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_mlddone); \
+			 break; \
+		 case ND_ROUTER_SOLICIT: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_routersolicit); \
+			 break; \
+		 case ND_ROUTER_ADVERT: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_routeradvert); \
+			 break; \
+		 case ND_NEIGHBOR_SOLICIT: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_neighborsolicit); \
+			 break; \
+		 case ND_NEIGHBOR_ADVERT: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_neighboradvert); \
+			 break; \
+		 case ND_REDIRECT: \
+			 icmp6_ifstat_inc(ifp, ifs6_out_redirect); \
+			 break; \
+		} \
+} while (/*CONSTCOND*/ 0)
+
+extern int	icmp6_rediraccept;	/* accept/process redirects */
+extern int	icmp6_redirtimeout;	/* cache time for redirect routes */
+#endif /* _KERNEL */
+
+#endif /* !_NETINET_ICMP6_H_ */
diff --git a/ndk/platforms/android-3/include/netinet/in.h b/ndk/platforms/android-3/include/netinet/in.h
index 7a4b6c7..01bf58e 100644
--- a/ndk/platforms/android-3/include/netinet/in.h
+++ b/ndk/platforms/android-3/include/netinet/in.h
@@ -32,6 +32,7 @@
 #include <linux/socket.h>
 #include <linux/in.h>
 #include <linux/in6.h>
+#include <linux/ipv6.h>
 #include <netinet/in6.h>
 
 __BEGIN_DECLS
diff --git a/ndk/platforms/android-3/include/netinet/in6.h b/ndk/platforms/android-3/include/netinet/in6.h
index e756583..eaf3c34 100644
--- a/ndk/platforms/android-3/include/netinet/in6.h
+++ b/ndk/platforms/android-3/include/netinet/in6.h
@@ -60,6 +60,10 @@
 #define IN6_IS_ADDR_SITELOCAL(a)	\
 	(((a)->s6_addr[0] == 0xfe) && (((a)->s6_addr[1] & 0xc0) == 0xc0))
 
+/* RFC 4193. */
+#define IN6_IS_ADDR_ULA(a)	\
+	(((a)->s6_addr[0] & 0xfe) == 0xfc)
+
 #define IN6_IS_ADDR_MULTICAST(a)	\
 	(((__const uint8_t *) (a))[0] == 0xff)
 
diff --git a/ndk/platforms/android-3/include/netinet/ip.h b/ndk/platforms/android-3/include/netinet/ip.h
index 541905c..629ed77 100644
--- a/ndk/platforms/android-3/include/netinet/ip.h
+++ b/ndk/platforms/android-3/include/netinet/ip.h
@@ -83,7 +83,7 @@
 #define	IPTOS_LOWDELAY		0x10
 #define	IPTOS_THROUGHPUT	0x08
 #define	IPTOS_RELIABILITY	0x04
-/*	IPTOS_LOWCOST		0x02 XXX */
+#define	IPTOS_MINCOST		0x02
 #if 1
 /* ECN RFC3168 obsoletes RFC2481, and these will be deprecated soon. */
 #define IPTOS_CE		0x01	/* congestion experienced */
diff --git a/ndk/platforms/android-3/include/netinet/ip6.h b/ndk/platforms/android-3/include/netinet/ip6.h
new file mode 100644
index 0000000..aa816c2
--- /dev/null
+++ b/ndk/platforms/android-3/include/netinet/ip6.h
@@ -0,0 +1,319 @@
+/*	$NetBSD: ip6.h,v 1.23 2007/12/25 18:33:46 perry Exp $	*/
+/*	$KAME: ip6.h,v 1.45 2003/06/05 04:46:38 keiichi Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _NETINET_IP6_H_
+#define _NETINET_IP6_H_
+
+/*
+ * Definition for internet protocol version 6.
+ * RFC 2460
+ */
+
+struct ip6_hdr {
+	union {
+		struct ip6_hdrctl {
+			u_int32_t ip6_un1_flow;	/* 20 bits of flow-ID */
+			u_int16_t ip6_un1_plen;	/* payload length */
+			u_int8_t  ip6_un1_nxt;	/* next header */
+			u_int8_t  ip6_un1_hlim;	/* hop limit */
+		} ip6_un1;
+		u_int8_t ip6_un2_vfc;	/* 4 bits version, top 4 bits class */
+	} ip6_ctlun;
+	struct in6_addr ip6_src;	/* source address */
+	struct in6_addr ip6_dst;	/* destination address */
+} __packed;
+
+#define ip6_vfc		ip6_ctlun.ip6_un2_vfc
+#define ip6_flow	ip6_ctlun.ip6_un1.ip6_un1_flow
+#define ip6_plen	ip6_ctlun.ip6_un1.ip6_un1_plen
+#define ip6_nxt		ip6_ctlun.ip6_un1.ip6_un1_nxt
+#define ip6_hlim	ip6_ctlun.ip6_un1.ip6_un1_hlim
+#define ip6_hops	ip6_ctlun.ip6_un1.ip6_un1_hlim
+
+#define IPV6_VERSION		0x60
+#define IPV6_VERSION_MASK	0xf0
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define IPV6_FLOWINFO_MASK	0x0fffffff	/* flow info (28 bits) */
+#define IPV6_FLOWLABEL_MASK	0x000fffff	/* flow label (20 bits) */
+#else
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define IPV6_FLOWINFO_MASK	0xffffff0f	/* flow info (28 bits) */
+#define IPV6_FLOWLABEL_MASK	0xffff0f00	/* flow label (20 bits) */
+#endif /* LITTLE_ENDIAN */
+#endif
+#if 1
+/* ECN bits proposed by Sally Floyd */
+#define IP6TOS_CE		0x01	/* congestion experienced */
+#define IP6TOS_ECT		0x02	/* ECN-capable transport */
+#endif
+
+#ifdef _KERNEL
+/*
+ * for IPv6 pseudo header checksum
+ * XXX nonstandard
+ */
+struct ip6_hdr_pseudo {
+	struct in6_addr ip6ph_src;
+	struct in6_addr ip6ph_dst;
+	u_int32_t	ip6ph_len;
+	u_int8_t	ip6ph_zero[3];
+	u_int8_t	ip6ph_nxt;
+} __packed;
+#endif
+
+/*
+ * Extension Headers
+ */
+
+struct	ip6_ext {
+	u_int8_t ip6e_nxt;
+	u_int8_t ip6e_len;
+} __packed;
+
+/* Hop-by-Hop options header */
+/* XXX should we pad it to force alignment on an 8-byte boundary? */
+struct ip6_hbh {
+	u_int8_t ip6h_nxt;	/* next header */
+	u_int8_t ip6h_len;	/* length in units of 8 octets */
+	/* followed by options */
+} __packed;
+
+/* Destination options header */
+/* XXX should we pad it to force alignment on an 8-byte boundary? */
+struct ip6_dest {
+	u_int8_t ip6d_nxt;	/* next header */
+	u_int8_t ip6d_len;	/* length in units of 8 octets */
+	/* followed by options */
+} __packed;
+
+/* Option types and related macros */
+#define IP6OPT_PAD1		0x00	/* 00 0 00000 */
+#define IP6OPT_PADN		0x01	/* 00 0 00001 */
+#define IP6OPT_JUMBO		0xC2	/* 11 0 00010 = 194 */
+#define IP6OPT_NSAP_ADDR	0xC3	/* 11 0 00011 */
+#define IP6OPT_TUNNEL_LIMIT	0x04	/* 00 0 00100 */
+#define IP6OPT_RTALERT		0x05	/* 00 0 00101 (KAME definition) */
+#define IP6OPT_ROUTER_ALERT	0x05	/* (RFC3542 def, recommended) */
+
+#define IP6OPT_RTALERT_LEN	4
+#define IP6OPT_RTALERT_MLD	0	/* Datagram contains an MLD message */
+#define IP6OPT_RTALERT_RSVP	1	/* Datagram contains an RSVP message */
+#define IP6OPT_RTALERT_ACTNET	2 	/* contains an Active Networks msg */
+#define IP6OPT_MINLEN		2
+
+#define IP6OPT_TYPE(o)		((o) & 0xC0)
+#define IP6OPT_TYPE_SKIP	0x00
+#define IP6OPT_TYPE_DISCARD	0x40
+#define IP6OPT_TYPE_FORCEICMP	0x80
+#define IP6OPT_TYPE_ICMP	0xC0
+
+#define IP6OPT_MUTABLE		0x20
+
+/* IPv6 options: common part */
+struct ip6_opt {
+	u_int8_t ip6o_type;
+	u_int8_t ip6o_len;
+} __packed;
+
+/* Jumbo Payload Option */
+struct ip6_opt_jumbo {
+	u_int8_t ip6oj_type;
+	u_int8_t ip6oj_len;
+	u_int8_t ip6oj_jumbo_len[4];
+} __packed;
+#define IP6OPT_JUMBO_LEN 6
+
+/* NSAP Address Option */
+struct ip6_opt_nsap {
+	u_int8_t ip6on_type;
+	u_int8_t ip6on_len;
+	u_int8_t ip6on_src_nsap_len;
+	u_int8_t ip6on_dst_nsap_len;
+	/* followed by source NSAP */
+	/* followed by destination NSAP */
+} __packed;
+
+/* Tunnel Limit Option */
+struct ip6_opt_tunnel {
+	u_int8_t ip6ot_type;
+	u_int8_t ip6ot_len;
+	u_int8_t ip6ot_encap_limit;
+} __packed;
+
+/* Router Alert Option */
+struct ip6_opt_router {
+	u_int8_t ip6or_type;
+	u_int8_t ip6or_len;
+	u_int8_t ip6or_value[2];
+} __packed;
+/* Router alert values (in network byte order) */
+#if BYTE_ORDER == BIG_ENDIAN
+#define IP6_ALERT_MLD	0x0000
+#define IP6_ALERT_RSVP	0x0001
+#define IP6_ALERT_AN	0x0002
+#else
+#if BYTE_ORDER == LITTLE_ENDIAN
+#define IP6_ALERT_MLD	0x0000
+#define IP6_ALERT_RSVP	0x0100
+#define IP6_ALERT_AN	0x0200
+#endif /* LITTLE_ENDIAN */
+#endif
+
+/* Routing header */
+struct ip6_rthdr {
+	u_int8_t  ip6r_nxt;	/* next header */
+	u_int8_t  ip6r_len;	/* length in units of 8 octets */
+	u_int8_t  ip6r_type;	/* routing type */
+	u_int8_t  ip6r_segleft;	/* segments left */
+	/* followed by routing type specific data */
+} __packed;
+
+/* Type 0 Routing header */
+struct ip6_rthdr0 {
+	u_int8_t  ip6r0_nxt;		/* next header */
+	u_int8_t  ip6r0_len;		/* length in units of 8 octets */
+	u_int8_t  ip6r0_type;		/* always zero */
+	u_int8_t  ip6r0_segleft;	/* segments left */
+	u_int32_t ip6r0_reserved;	/* reserved field */
+} __packed;
+
+/* Fragment header */
+struct ip6_frag {
+	u_int8_t  ip6f_nxt;		/* next header */
+	u_int8_t  ip6f_reserved;	/* reserved field */
+	u_int16_t ip6f_offlg;		/* offset, reserved, and flag */
+	u_int32_t ip6f_ident;		/* identification */
+} __packed;
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define IP6F_OFF_MASK		0xfff8	/* mask out offset from _offlg */
+#define IP6F_RESERVED_MASK	0x0006	/* reserved bits in ip6f_offlg */
+#define IP6F_MORE_FRAG		0x0001	/* more-fragments flag */
+#else /* BYTE_ORDER == LITTLE_ENDIAN */
+#define IP6F_OFF_MASK		0xf8ff	/* mask out offset from _offlg */
+#define IP6F_RESERVED_MASK	0x0600	/* reserved bits in ip6f_offlg */
+#define IP6F_MORE_FRAG		0x0100	/* more-fragments flag */
+#endif /* BYTE_ORDER == LITTLE_ENDIAN */
+
+/*
+ * Internet implementation parameters.
+ */
+#define IPV6_MAXHLIM	255	/* maximum hoplimit */
+#define IPV6_DEFHLIM	64	/* default hlim */
+#define IPV6_FRAGTTL	120	/* ttl for fragment packets, in slowtimo tick */
+#define IPV6_HLIMDEC	1	/* subtracted when forwarding */
+
+#define IPV6_MMTU	1280	/* minimal MTU and reassembly. 1024 + 256 */
+#define IPV6_MAXPACKET	65535	/* ip6 max packet size without Jumbo payload*/
+
+#ifdef _KERNEL
+/*
+ * IP6_EXTHDR_GET ensures that intermediate protocol header (from "off" to
+ * "len") is located in single mbuf, on contiguous memory region.
+ * The pointer to the region will be returned to pointer variable "val",
+ * with type "typ".
+ * IP6_EXTHDR_GET0 does the same, except that it aligns the structure at the
+ * very top of mbuf.  GET0 is likely to make memory copy than GET.
+ *
+ * XXX we're now testing this, needs m_pulldown()
+ */
+#define IP6_EXTHDR_GET(val, typ, m, off, len) \
+do {									\
+	struct mbuf *_t;						\
+	int _tmp;							\
+	if ((m)->m_len >= (off) + (len))				\
+		(val) = (typ)(mtod((m), char *) + (off));		\
+	else {								\
+		_t = m_pulldown((m), (off), (len), &_tmp);		\
+		if (_t) {						\
+			if (_t->m_len < _tmp + (len))			\
+				panic("m_pulldown malfunction");	\
+			(val) = (typ)(mtod(_t, char *) + _tmp);	\
+		} else {						\
+			(val) = (typ)NULL;				\
+			(m) = NULL;					\
+		}							\
+	}								\
+} while (/*CONSTCOND*/ 0)
+
+#define IP6_EXTHDR_GET0(val, typ, m, off, len) \
+do {									\
+	struct mbuf *_t;						\
+	if ((off) == 0 && (m)->m_len >= len)				\
+		(val) = (typ)mtod((m), void *);			\
+	else {								\
+		_t = m_pulldown((m), (off), (len), NULL);		\
+		if (_t) {						\
+			if (_t->m_len < (len))				\
+				panic("m_pulldown malfunction");	\
+			(val) = (typ)mtod(_t, void *);			\
+		} else {						\
+			(val) = (typ)NULL;				\
+			(m) = NULL;					\
+		}							\
+	}								\
+} while (/*CONSTCOND*/ 0)
+#endif /*_KERNEL*/
+
+#endif /* !_NETINET_IP6_H_ */
diff --git a/ndk/platforms/android-3/include/pthread.h b/ndk/platforms/android-3/include/pthread.h
index e3afdae..2a6029d 100644
--- a/ndk/platforms/android-3/include/pthread.h
+++ b/ndk/platforms/android-3/include/pthread.h
@@ -103,7 +103,7 @@
 /*
  * Prototypes
  */
-#if __cplusplus
+#ifdef __cplusplus
 extern "C" {
 #endif
 
@@ -231,7 +231,7 @@
         __pthread_cleanup_pop( &__cleanup, (execute)); \
     } while (0);
 
-#if __cplusplus
+#ifdef __cplusplus
 } /* extern "C" */
 #endif
 
@@ -240,4 +240,4 @@
 #define LONG_LONG_MAX __LONG_LONG_MAX__
 #define LONG_LONG_MIN (-__LONG_LONG_MAX__ - 1)
 
-#endif // _PTHREAD_H_
+#endif /* _PTHREAD_H_ */
diff --git a/ndk/platforms/android-3/include/signal.h b/ndk/platforms/android-3/include/signal.h
index 5540847..0bfd550c 100644
--- a/ndk/platforms/android-3/include/signal.h
+++ b/ndk/platforms/android-3/include/signal.h
@@ -42,12 +42,15 @@
 
 typedef int sig_atomic_t;
 
-/* crepy NIG / _NSIG handling, just to be safe */
-#ifndef NSIG
-#  define NSIG  _NSIG
-#endif
+/* _NSIG is used by the SIGRTMAX definition under <asm/signal.h>, however
+ * its definition is part of a #if __KERNEL__ .. #endif block in the original
+ * kernel headers and is thus not part of our cleaned-up versions.
+ *
+ * Looking at the current kernel sources, it is defined as 64 for all
+ * architectures except for the 'mips' one which set it to 128.
+ */
 #ifndef _NSIG
-#  define _NSIG  NSIG
+#  define _NSIG  64
 #endif
 
 extern const char * const sys_siglist[];
diff --git a/ndk/platforms/android-3/include/sys/atomics.h b/ndk/platforms/android-3/include/sys/atomics.h
index d3fa145..3ada8de 100644
--- a/ndk/platforms/android-3/include/sys/atomics.h
+++ b/ndk/platforms/android-3/include/sys/atomics.h
@@ -33,10 +33,48 @@
 
 __BEGIN_DECLS
 
-extern int __atomic_cmpxchg(int old, int _new, volatile int *ptr);
-extern int __atomic_swap(int _new, volatile int *ptr);
-extern int __atomic_dec(volatile int *ptr);
-extern int __atomic_inc(volatile int *ptr);
+/* Note: atomic operations that were exported by the C library didn't
+ *       provide any memory barriers, which created potential issues on
+ *       multi-core devices. We now define them as inlined calls to
+ *       GCC sync builtins, which always provide a full barrier.
+ *
+ *       NOTE: The C library still exports atomic functions by the same
+ *              name to ensure ABI stability for existing NDK machine code.
+ *
+ *       If you are an NDK developer, we encourage you to rebuild your
+ *       unmodified sources against this header as soon as possible.
+ */
+#define __ATOMIC_INLINE__ static __inline__ __attribute__((always_inline))
+
+__ATOMIC_INLINE__ int
+__atomic_cmpxchg(int old, int _new, volatile int *ptr)
+{
+    /* We must return 0 on success */
+    return __sync_val_compare_and_swap(ptr, old, _new) != old;
+}
+
+__ATOMIC_INLINE__ int
+__atomic_swap(int _new, volatile int *ptr)
+{
+    int prev;
+    do {
+        prev = *ptr;
+    } while (__sync_val_compare_and_swap(ptr, prev, _new) != prev);
+    return prev;
+}
+
+__ATOMIC_INLINE__ int
+__atomic_dec(volatile int *ptr)
+{
+  return __sync_fetch_and_sub (ptr, 1);
+}
+
+__ATOMIC_INLINE__ int
+__atomic_inc(volatile int *ptr)
+{
+  return __sync_fetch_and_add (ptr, 1);
+}
+
 
 int __futex_wait(volatile void *ftx, int val, const struct timespec *timeout);
 int __futex_wake(volatile void *ftx, int count);
diff --git a/ndk/platforms/android-3/include/sys/cdefs.h b/ndk/platforms/android-3/include/sys/cdefs.h
index 2389437..27c575c 100644
--- a/ndk/platforms/android-3/include/sys/cdefs.h
+++ b/ndk/platforms/android-3/include/sys/cdefs.h
@@ -85,7 +85,7 @@
 #define	___STRING(x)	__STRING(x)
 #define	___CONCAT(x,y)	__CONCAT(x,y)
 
-#if __STDC__ || defined(__cplusplus)
+#if defined(__STDC__) || defined(__cplusplus)
 #define	__P(protos)	protos		/* full-blown ANSI C */
 #define	__CONCAT(x,y)	x ## y
 #define	__STRING(x)	#x
@@ -219,7 +219,7 @@
  * C99 defines the restrict type qualifier keyword, which was made available
  * in GCC 2.92.
  */
-#if __STDC_VERSION__ >= 199901L
+#if defined(__STDC__VERSION__) && __STDC_VERSION__ >= 199901L
 #define	__restrict	restrict
 #else
 #if !__GNUC_PREREQ__(2, 92)
@@ -231,7 +231,7 @@
  * C99 defines __func__ predefined identifier, which was made available
  * in GCC 2.95.
  */
-#if !(__STDC_VERSION__ >= 199901L)
+#if !defined(__STDC_VERSION__) || !(__STDC_VERSION__ >= 199901L)
 #if __GNUC_PREREQ__(2, 6)
 #define	__func__	__PRETTY_FUNCTION__
 #elif __GNUC_PREREQ__(2, 4)
@@ -503,5 +503,6 @@
 #endif
 
 #define  __BIONIC__   1
+#include <android/api-level.h>
 
 #endif /* !_SYS_CDEFS_H_ */
diff --git a/ndk/platforms/android-3/include/sys/cdefs_elf.h b/ndk/platforms/android-3/include/sys/cdefs_elf.h
index e051b1d..1e57470 100644
--- a/ndk/platforms/android-3/include/sys/cdefs_elf.h
+++ b/ndk/platforms/android-3/include/sys/cdefs_elf.h
@@ -95,6 +95,10 @@
 	__asm__(".section _sec\n\t.asciz _str\n\t.previous")
 #endif
 
+/* GCC visibility helper macro */
+#define __LIBC_HIDDEN__							\
+	__attribute__ ((visibility ("hidden")))
+
 #define	__IDSTRING(_n,_s)		__SECTIONSTRING(.ident,_s)
 
 #define	__RCSID(_s)			__IDSTRING(rcsid,_s)
diff --git a/ndk/platforms/android-3/include/sys/prctl.h b/ndk/platforms/android-3/include/sys/prctl.h
index ce85bf7..359d684 100644
--- a/ndk/platforms/android-3/include/sys/prctl.h
+++ b/ndk/platforms/android-3/include/sys/prctl.h
@@ -32,8 +32,13 @@
 
 __BEGIN_DECLS
 
-extern int prctl(int option, unsigned long arg2, unsigned long arg3 , unsigned
-               long arg4, unsigned long arg5);
+/* IMPORTANT NOTE: This function is declared as taking a variable number
+ *                 of arguments to match the GLibc definition. However
+ *                 its declaration inside SYSCALLS.TXT *must* make it
+ *                 take 6 arguments to ensure consistency with the kernel
+ *                 implementation.
+ */
+extern int prctl(int option, ...);
 
 __END_DECLS
 
diff --git a/ndk/platforms/android-3/include/unistd.h b/ndk/platforms/android-3/include/unistd.h
index 25fc334..53088d4 100644
--- a/ndk/platforms/android-3/include/unistd.h
+++ b/ndk/platforms/android-3/include/unistd.h
@@ -70,8 +70,9 @@
 extern int execle(const char *, const char *, ...);
 extern int capget(cap_user_header_t hdrp, cap_user_data_t datap);
 extern int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
-extern int prctl(int  option,  unsigned long arg2, unsigned long arg3,
-                 unsigned long arg4, unsigned long arg5);
+
+/* IMPORTANT: See comment under <sys/prctl.h> about this declaration */
+extern int prctl(int  option, ...);
 
 extern int nice(int);
 
@@ -121,7 +122,7 @@
 
 extern int close(int);
 extern off_t lseek(int, off_t, int);
-extern loff_t lseek64(int, loff_t, int);
+extern off64_t lseek64(int, off64_t, int);
 
 extern ssize_t read(int, void *, size_t);
 extern ssize_t write(int, const void *, size_t);
diff --git a/ndk/platforms/android-5/include/pthread.h b/ndk/platforms/android-5/include/pthread.h
index 6603b3f..a20a52d 100644
--- a/ndk/platforms/android-5/include/pthread.h
+++ b/ndk/platforms/android-5/include/pthread.h
@@ -103,7 +103,7 @@
 /*
  * Prototypes
  */
-#if __cplusplus
+#ifdef __cplusplus
 extern "C" {
 #endif
 
@@ -258,7 +258,7 @@
         __pthread_cleanup_pop( &__cleanup, (execute)); \
     } while (0);
 
-#if __cplusplus
+#ifdef __cplusplus
 } /* extern "C" */
 #endif
 
@@ -267,4 +267,4 @@
 #define LONG_LONG_MAX __LONG_LONG_MAX__
 #define LONG_LONG_MIN (-__LONG_LONG_MAX__ - 1)
 
-#endif // _PTHREAD_H_
+#endif /* _PTHREAD_H_ */
diff --git a/ndk/platforms/android-8/include/dlfcn.h b/ndk/platforms/android-8/include/dlfcn.h
index f84d1d1..7daa8f7 100644
--- a/ndk/platforms/android-8/include/dlfcn.h
+++ b/ndk/platforms/android-8/include/dlfcn.h
@@ -47,7 +47,7 @@
 extern int          dlclose(void*  handle);
 extern const char*  dlerror(void);
 extern void*        dlsym(void*  handle, const char*  symbol);
-extern int          dladdr(void* addr, Dl_info *info);
+extern int          dladdr(const void* addr, Dl_info *info);
 
 enum {
   RTLD_NOW  = 0,
diff --git a/ndk/platforms/android-8/include/pthread.h b/ndk/platforms/android-8/include/pthread.h
index eb2d169..f7a596a 100644
--- a/ndk/platforms/android-8/include/pthread.h
+++ b/ndk/platforms/android-8/include/pthread.h
@@ -103,7 +103,7 @@
 /*
  * Prototypes
  */
-#if __cplusplus
+#ifdef __cplusplus
 extern "C" {
 #endif
 
@@ -263,7 +263,7 @@
         __pthread_cleanup_pop( &__cleanup, (execute)); \
     } while (0);
 
-#if __cplusplus
+#ifdef __cplusplus
 } /* extern "C" */
 #endif
 
@@ -272,4 +272,4 @@
 #define LONG_LONG_MAX __LONG_LONG_MAX__
 #define LONG_LONG_MIN (-__LONG_LONG_MAX__ - 1)
 
-#endif // _PTHREAD_H_
+#endif /* _PTHREAD_H_ */
diff --git a/ndk/platforms/android-8/include/signal.h b/ndk/platforms/android-8/include/signal.h
index 4401164..c9a5170 100644
--- a/ndk/platforms/android-8/include/signal.h
+++ b/ndk/platforms/android-8/include/signal.h
@@ -33,6 +33,7 @@
 #include <string.h>		/* For memset() */
 #include <sys/types.h>
 #include <asm/signal.h>
+#include <asm/sigcontext.h>
 
 #define __ARCH_SI_UID_T __kernel_uid32_t
 #include <asm/siginfo.h>
@@ -42,12 +43,15 @@
 
 typedef int sig_atomic_t;
 
-/* crepy NIG / _NSIG handling, just to be safe */
-#ifndef NSIG
-#  define NSIG  _NSIG
-#endif
+/* _NSIG is used by the SIGRTMAX definition under <asm/signal.h>, however
+ * its definition is part of a #if __KERNEL__ .. #endif block in the original
+ * kernel headers and is thus not part of our cleaned-up versions.
+ *
+ * Looking at the current kernel sources, it is defined as 64 for all
+ * architectures except for the 'mips' one which set it to 128.
+ */
 #ifndef _NSIG
-#  define _NSIG  NSIG
+#  define _NSIG  64
 #endif
 
 extern const char * const sys_siglist[];
diff --git a/ndk/platforms/android-8/include/unistd.h b/ndk/platforms/android-8/include/unistd.h
index 863d56d..ab8aee2 100644
--- a/ndk/platforms/android-8/include/unistd.h
+++ b/ndk/platforms/android-8/include/unistd.h
@@ -70,8 +70,9 @@
 extern int execle(const char *, const char *, ...);
 extern int capget(cap_user_header_t hdrp, cap_user_data_t datap);
 extern int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
-extern int prctl(int  option,  unsigned long arg2, unsigned long arg3,
-                 unsigned long arg4, unsigned long arg5);
+
+/* IMPORTANT: See comment under <sys/prctl.h> about this declaration */
+extern int prctl(int  option, ...);
 
 extern int nice(int);
 
@@ -125,7 +126,7 @@
 
 extern int close(int);
 extern off_t lseek(int, off_t, int);
-extern loff_t lseek64(int, loff_t, int);
+extern off64_t lseek64(int, off64_t, int);
 
 extern ssize_t read(int, void *, size_t);
 extern ssize_t write(int, const void *, size_t);
diff --git a/ndk/platforms/android-8/samples/bitmap-plasma/default.properties b/ndk/platforms/android-8/samples/bitmap-plasma/default.properties
index 9a2c9f6..0b9250e 100644
--- a/ndk/platforms/android-8/samples/bitmap-plasma/default.properties
+++ b/ndk/platforms/android-8/samples/bitmap-plasma/default.properties
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-9
+target=android-8
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/a.out.h b/ndk/platforms/android-9/arch-mips/include/asm/a.out.h
new file mode 100644
index 0000000..33c075c
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/a.out.h
@@ -0,0 +1,39 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_A_OUT_H
+#define _ASM_A_OUT_H
+struct exec
+{
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long a_info;
+ unsigned a_text;
+ unsigned a_data;
+ unsigned a_bss;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned a_syms;
+ unsigned a_entry;
+ unsigned a_trsize;
+ unsigned a_drsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define N_TRSIZE(a) ((a).a_trsize)
+#define N_DRSIZE(a) ((a).a_drsize)
+#define N_SYMSIZE(a) ((a).a_syms)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/addrspace.h b/ndk/platforms/android-9/arch-mips/include/asm/addrspace.h
new file mode 100644
index 0000000..69abbd4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/addrspace.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_ADDRSPACE_H
+#define _ASM_ADDRSPACE_H
+#include <spaces.h>
+#ifdef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _ATYPE_
+#define _ATYPE32_
+#define _ATYPE64_
+#define _CONST64_(x) x
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define _ATYPE_ __PTRDIFF_TYPE__
+#define _ATYPE32_ int
+#define _ATYPE64_ __s64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _CONST64_(x) x ## LL
+#endif
+#ifdef __ASSEMBLY__
+#define _ACAST32_
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _ACAST64_
+#else
+#define _ACAST32_ (_ATYPE_)(_ATYPE32_)  
+#define _ACAST64_ (_ATYPE64_)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define KSEGX(a) ((_ACAST32_ (a)) & 0xe0000000)
+#define CPHYSADDR(a) ((_ACAST32_(a)) & 0x1fffffff)
+#define XPHYSADDR(a) ((_ACAST64_(a)) &   _CONST64_(0x000000ffffffffff))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CKSEG0ADDR(a) (CPHYSADDR(a) | KSEG0)
+#define CKSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
+#define CKSEG2ADDR(a) (CPHYSADDR(a) | KSEG2)
+#define CKSEG3ADDR(a) (CPHYSADDR(a) | KSEG3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KSEG0ADDR(a) (CPHYSADDR(a) | KSEG0)
+#define KSEG1ADDR(a) (CPHYSADDR(a) | KSEG1)
+#define KSEG2ADDR(a) (CPHYSADDR(a) | KSEG2)
+#define KSEG3ADDR(a) (CPHYSADDR(a) | KSEG3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KUSEG 0x00000000
+#define KSEG0 0x80000000
+#define KSEG1 0xa0000000
+#define KSEG2 0xc0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KSEG3 0xe0000000
+#define CKUSEG 0x00000000
+#define CKSEG0 0x80000000
+#define CKSEG1 0xa0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CKSEG2 0xc0000000
+#define CKSEG3 0xe0000000
+#define K_CALG_COH_EXCL1_NOL2 0
+#define K_CALG_COH_SHRL1_NOL2 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_CALG_UNCACHED 2
+#define K_CALG_NONCOHERENT 3
+#define K_CALG_COH_EXCL 4
+#define K_CALG_COH_SHAREABLE 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_CALG_NOTUSED 6
+#define K_CALG_UNCACHED_ACCEL 7
+#define PHYS_TO_XKSEG_UNCACHED(p) PHYS_TO_XKPHYS(K_CALG_UNCACHED, (p))
+#define PHYS_TO_XKSEG_CACHED(p) PHYS_TO_XKPHYS(K_CALG_COH_SHAREABLE, (p))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XKPHYS_TO_PHYS(p) ((p) & TO_PHYS_MASK)
+#define PHYS_TO_XKPHYS(cm, a) (_CONST64_(0x8000000000000000) |   (_CONST64_(cm) << 59) | (a))
+#define TO_PHYS_MASK _CONST64_(0x07ffffffffffffff)  
+#define COMPAT_K1BASE32 _CONST64_(0xffffffffa0000000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PHYS_TO_COMPATK1(x) ((x) | COMPAT_K1BASE32)  
+#define KDM_TO_PHYS(x) (_ACAST64_ (x) & TO_PHYS_MASK)
+#define PHYS_TO_K0(x) (_ACAST64_ (x) | CAC_BASE)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/asm.h b/ndk/platforms/android-9/arch-mips/include/asm/asm.h
new file mode 100644
index 0000000..dd80aef
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/asm.h
@@ -0,0 +1,263 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_ASM_H
+#define __ASM_ASM_H
+#include <asm/sgidefs.h>
+#ifndef CAT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __STDC__
+#define __CAT(str1, str2) str1##str2
+#else
+#define __CAT(str1, str2) str1 str2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define CAT(str1, str2) __CAT(str1, str2)
+#endif
+#ifdef __PIC__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CPRESTORE(register)   .cprestore register
+#define CPADD(register)   .cpadd register
+#define CPLOAD(register)   .cpload register
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CPRESTORE(register)
+#define CPADD(register)
+#define CPLOAD(register)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LEAF(symbol)   .globl symbol;   .align 2;   .type symbol, @function;   .ent symbol, 0;  symbol: .frame sp, 0, ra
+#define NESTED(symbol, framesize, rpc)   .globl symbol;   .align 2;   .type symbol, @function;   .ent symbol, 0;  symbol: .frame sp, framesize, rpc
+#define END(function)   .end function;   .size function, .-function
+#define EXPORT(symbol)   .globl symbol;  symbol:
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FEXPORT(symbol)   .globl symbol;   .type symbol, @function;  symbol:
+#define ABS(symbol,value)   .globl symbol;  symbol = value
+#define PANIC(msg)   .set push;   .set reorder;   PTR_LA a0, 8f;   jal panic;  9: b 9b;   .set pop;   TEXT(msg)
+#define PRINT(string)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TEXT(msg)   .pushsection .data;  8: .asciiz msg;   .popsection;
+#define TTABLE(string)   .pushsection .text;   .word 1f;   .popsection   .pushsection .data;  1: .asciiz string;   .popsection
+#define PREF(hint, addr)
+#define PREFX(hint, addr)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_ISA == _MIPS_ISA_MIPS1
+#define MOVN(rd, rs, rt)   .set push;   .set reorder;   beqz rt, 9f;   move rd, rs;   .set pop;  9:
+#define MOVZ(rd, rs, rt)   .set push;   .set reorder;   bnez rt, 9f;   move rd, rs;   .set pop;  9:
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_ISA == _MIPS_ISA_MIPS2 || _MIPS_ISA == _MIPS_ISA_MIPS3
+#define MOVN(rd, rs, rt)   .set push;   .set noreorder;   bnezl rt, 9f;   move rd, rs;   .set pop;  9:
+#define MOVZ(rd, rs, rt)   .set push;   .set noreorder;   beqzl rt, 9f;   move rd, rs;   .set pop;  9:
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_ISA == _MIPS_ISA_MIPS4 || _MIPS_ISA == _MIPS_ISA_MIPS5 || _MIPS_ISA == _MIPS_ISA_MIPS32 || _MIPS_ISA == _MIPS_ISA_MIPS64
+#define MOVN(rd, rs, rt)   movn rd, rs, rt
+#define MOVZ(rd, rs, rt)   movz rd, rs, rt
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define ALSZ 7
+#define ALMASK ~7
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#define ALSZ 15
+#define ALMASK ~15
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __mips64
+#define SZREG 8
+#else
+#define SZREG 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define REG_S sw
+#define REG_L lw
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define REG_SUBU subu
+#define REG_ADDU addu
+#endif
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define REG_S sd
+#define REG_L ld
+#define REG_SUBU dsubu
+#define REG_ADDU daddu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZINT == 32
+#define INT_ADD add
+#define INT_ADDU addu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_ADDI addi
+#define INT_ADDIU addiu
+#define INT_SUB sub
+#define INT_SUBU subu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_L lw
+#define INT_S sw
+#define INT_SLL sll
+#define INT_SLLV sllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_SRL srl
+#define INT_SRLV srlv
+#define INT_SRA sra
+#define INT_SRAV srav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZINT == 64
+#define INT_ADD dadd
+#define INT_ADDU daddu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_ADDI daddi
+#define INT_ADDIU daddiu
+#define INT_SUB dsub
+#define INT_SUBU dsubu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_L ld
+#define INT_S sd
+#define INT_SLL dsll
+#define INT_SLLV dsllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_SRL dsrl
+#define INT_SRLV dsrlv
+#define INT_SRA dsra
+#define INT_SRAV dsrav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZLONG == 32
+#define LONG_ADD add
+#define LONG_ADDU addu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_ADDI addi
+#define LONG_ADDIU addiu
+#define LONG_SUB sub
+#define LONG_SUBU subu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_L lw
+#define LONG_S sw
+#define LONG_SLL sll
+#define LONG_SLLV sllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_SRL srl
+#define LONG_SRLV srlv
+#define LONG_SRA sra
+#define LONG_SRAV srav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG .word
+#define LONGSIZE 4
+#define LONGMASK 3
+#define LONGLOG 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZLONG == 64
+#define LONG_ADD dadd
+#define LONG_ADDU daddu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_ADDI daddi
+#define LONG_ADDIU daddiu
+#define LONG_SUB dsub
+#define LONG_SUBU dsubu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_L ld
+#define LONG_S sd
+#define LONG_SLL dsll
+#define LONG_SLLV dsllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG_SRL dsrl
+#define LONG_SRLV dsrlv
+#define LONG_SRA dsra
+#define LONG_SRAV dsrav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LONG .dword
+#define LONGSIZE 8
+#define LONGMASK 7
+#define LONGLOG 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZPTR == 32
+#define PTR_ADD add
+#define PTR_ADDU addu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_ADDI addi
+#define PTR_ADDIU addiu
+#define PTR_SUB sub
+#define PTR_SUBU subu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_L lw
+#define PTR_S sw
+#define PTR_LA la
+#define PTR_LI li
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SLL sll
+#define PTR_SLLV sllv
+#define PTR_SRL srl
+#define PTR_SRLV srlv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SRA sra
+#define PTR_SRAV srav
+#define PTR_SCALESHIFT 2
+#define PTR .word
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTRSIZE 4
+#define PTRLOG 2
+#endif
+#if _MIPS_SZPTR == 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_ADD dadd
+#define PTR_ADDU daddu
+#define PTR_ADDI daddi
+#define PTR_ADDIU daddiu
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SUB dsub
+#define PTR_SUBU dsubu
+#define PTR_L ld
+#define PTR_S sd
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_LA dla
+#define PTR_LI dli
+#define PTR_SLL dsll
+#define PTR_SLLV dsllv
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SRL dsrl
+#define PTR_SRLV dsrlv
+#define PTR_SRA dsra
+#define PTR_SRAV dsrav
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTR_SCALESHIFT 3
+#define PTR .dword
+#define PTRSIZE 8
+#define PTRLOG 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+#define MFC0 mfc0
+#define MTC0 mtc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _MIPS_SIM_ABI64
+#define MFC0 dmfc0
+#define MTC0 dmtc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define SSNOP sll zero, zero, 1
+#define R10KCBARRIER(addr)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/asmmacro.h b/ndk/platforms/android-9/arch-mips/include/asm/asmmacro.h
new file mode 100644
index 0000000..e1e9804
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/asmmacro.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_ASMMACRO_H
+#define _ASM_ASMMACRO_H
+#include <asm/hazards.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/atomic.h b/ndk/platforms/android-9/arch-mips/include/asm/atomic.h
new file mode 100644
index 0000000..eea1e59
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/atomic.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_ATOMIC_H
+#define _ASM_ATOMIC_H
+#include <linux/irqflags.h>
+#include <asm/barrier.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/cpu-features.h>
+#include <asm/war.h>
+#include <asm/system.h>
+typedef struct { volatile int counter; } atomic_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ATOMIC_INIT(i) { (i) }
+#define atomic_read(v) ((v)->counter)
+#define atomic_set(v, i) ((v)->counter = (i))
+#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
+#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
+#define atomic_dec_return(v) atomic_sub_return(1, (v))
+#define atomic_inc_return(v) atomic_add_return(1, (v))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define atomic_sub_and_test(i, v) (atomic_sub_return((i), (v)) == 0)
+#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
+#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
+#define atomic_dec_if_positive(v) atomic_sub_if_positive(1, v)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define atomic_inc(v) atomic_add(1, (v))
+#define atomic_dec(v) atomic_sub(1, (v))
+#define atomic_add_negative(i, v) (atomic_add_return(i, (v)) < 0)
+#define smp_mb__before_atomic_dec() smp_llsc_mb()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define smp_mb__after_atomic_dec() smp_llsc_mb()
+#define smp_mb__before_atomic_inc() smp_llsc_mb()
+#define smp_mb__after_atomic_inc() smp_llsc_mb()
+#include <asm-generic/atomic.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/auxvec.h b/ndk/platforms/android-9/arch-mips/include/asm/auxvec.h
new file mode 100644
index 0000000..0c04901
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/auxvec.h
@@ -0,0 +1,21 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_AUXVEC_H
+#define _ASM_AUXVEC_H
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/barrier.h b/ndk/platforms/android-9/arch-mips/include/asm/barrier.h
new file mode 100644
index 0000000..4aed9a7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/barrier.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_BARRIER_H
+#define __ASM_BARRIER_H
+#define read_barrier_depends() do { } while(0)
+#define smp_read_barrier_depends() do { } while(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __sync() do { } while(0)
+#define __fast_iob()   __asm__ __volatile__(   ".set	push\n\t"   ".set	noreorder\n\t"   "lw	$0,%0\n\t"   "nop\n\t"   ".set	pop"   :     : "m" (*(int *)CKSEG1)   : "memory")
+#define fast_wmb() __sync()
+#define fast_rmb() __sync()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fast_mb() __sync()
+#define fast_iob()   do {   __sync();   __fast_iob();   } while (0)
+#define wmb() fast_wmb()
+#define rmb() fast_rmb()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mb() fast_mb()
+#define iob() fast_iob()
+#define __WEAK_ORDERING_MB "		\n"
+#define __WEAK_LLSC_MB "		\n"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define smp_mb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
+#define smp_rmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
+#define smp_wmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
+#define set_mb(var, value)   do { var = value; smp_mb(); } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+#define smp_llsc_rmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+#define smp_llsc_wmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/bitops.h b/ndk/platforms/android-9/arch-mips/include/asm/bitops.h
new file mode 100644
index 0000000..749caaa
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/bitops.h
@@ -0,0 +1,68 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_BITOPS_H
+#define _ASM_BITOPS_H
+#ifndef _LINUX_BITOPS_H
+#error only <linux/bitops.h> can be included directly
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#include <linux/compiler.h>
+#include <linux/irqflags.h>
+#include <linux/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/barrier.h>
+#include <asm/bug.h>
+#include <asm/byteorder.h>  
+#include <asm/cpu-features.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/sgidefs.h>
+#include <asm/war.h>
+#if _MIPS_SZLONG == 32
+#define SZLONG_LOG 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SZLONG_MASK 31UL
+#define __LL "ll	"
+#define __SC "sc	"
+#define __INS "ins    "
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __EXT "ext    "
+#elif _MIPS_SZLONG == 64
+#define SZLONG_LOG 6
+#define SZLONG_MASK 63UL
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __LL "lld	"
+#define __SC "scd	"
+#define __INS "dins    "
+#define __EXT "dext    "
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define smp_mb__before_clear_bit() smp_llsc_mb()
+#define smp_mb__after_clear_bit() smp_llsc_mb()
+#include <asm-generic/bitops/non-atomic.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm-generic/bitops/__ffs.h>
+#include <asm-generic/bitops/__fls.h>
+#include <asm-generic/bitops/ffs.h>
+#include <asm-generic/bitops/fls.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm-generic/bitops/fls64.h>
+#include <asm-generic/bitops/ffz.h>
+#include <asm-generic/bitops/find.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/bootinfo.h b/ndk/platforms/android-9/arch-mips/include/asm/bootinfo.h
new file mode 100644
index 0000000..97368ea
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/bootinfo.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_BOOTINFO_H
+#define _ASM_BOOTINFO_H
+#include <linux/types.h>
+#include <asm/setup.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACH_UNKNOWN 0  
+#define MACH_DSUNKNOWN 0
+#define MACH_DS23100 1  
+#define MACH_DS5100 2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACH_DS5000_200 3  
+#define MACH_DS5000_1XX 4  
+#define MACH_DS5000_XX 5  
+#define MACH_DS5000_2X0 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACH_DS5400 7  
+#define MACH_DS5500 8  
+#define MACH_DS5800 9  
+#define MACH_DS5900 10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACH_MSP4200_EVAL 0  
+#define MACH_MSP4200_GW 1  
+#define MACH_MSP4200_FPGA 2  
+#define MACH_MSP7120_EVAL 3  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACH_MSP7120_GW 4  
+#define MACH_MSP7120_FPGA 5  
+#define MACH_MSP_OTHER 255  
+#define MACH_MIKROTIK_RB532 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACH_MIKROTIK_RB532A 1  
+#define CL_SIZE COMMAND_LINE_SIZE
+#define BOOT_MEM_MAP_MAX 32
+#define BOOT_MEM_RAM 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BOOT_MEM_ROM_DATA 2
+#define BOOT_MEM_RESERVED 3
+struct boot_mem_map {
+ int nr_map;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct boot_mem_map_entry {
+ phys_t addr;
+ phys_t size;
+ long type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } map[BOOT_MEM_MAP_MAX];
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/bug.h b/ndk/platforms/android-9/arch-mips/include/asm/bug.h
new file mode 100644
index 0000000..eac3da4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/bug.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_BUG_H
+#define __ASM_BUG_H
+#include <asm/sgidefs.h>
+#include <asm-generic/bug.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/byteorder.h b/ndk/platforms/android-9/arch-mips/include/asm/byteorder.h
new file mode 100644
index 0000000..bb964d8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/byteorder.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_BYTEORDER_H
+#define _ASM_BYTEORDER_H
+#include <linux/compiler.h>
+#include <asm/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __GNUC__
+#ifndef __STRICT_ANSI__
+#define __BYTEORDER_HAS_U64__
+#define __SWAB_64_THRU_32__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
+#ifdef __MIPSEB__
+#include <linux/byteorder/big_endian.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#elif defined(__MIPSEL__)
+#include <linux/byteorder/little_endian.h>
+#else
+#error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cache.h b/ndk/platforms/android-9/arch-mips/include/asm/cache.h
new file mode 100644
index 0000000..64f1982
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cache.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_CACHE_H
+#define _ASM_CACHE_H
+#include <kmalloc.h>
+#define L1_CACHE_SHIFT CONFIG_MIPS_L1_CACHE_SHIFT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
+#define SMP_CACHE_SHIFT L1_CACHE_SHIFT
+#define SMP_CACHE_BYTES L1_CACHE_BYTES
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cachectl.h b/ndk/platforms/android-9/arch-mips/include/asm/cachectl.h
new file mode 100644
index 0000000..458c00d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cachectl.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_CACHECTL
+#define _ASM_CACHECTL
+#define ICACHE (1<<0)  
+#define DCACHE (1<<1)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BCACHE (ICACHE|DCACHE)  
+#define CACHEABLE 0  
+#define UNCACHEABLE 1  
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cacheflush.h b/ndk/platforms/android-9/arch-mips/include/asm/cacheflush.h
new file mode 100644
index 0000000..00b2220
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cacheflush.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_CACHEFLUSH_H
+#define _ASM_CACHEFLUSH_H
+#include <linux/mm.h>
+#include <asm/cpu-features.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define flush_cache_dup_mm(mm) do { (void) (mm); } while (0)
+#define flush_dcache_mmap_lock(mapping) do { } while (0)
+#define flush_dcache_mmap_unlock(mapping) do { } while (0)
+#define ARCH_HAS_FLUSH_ANON_PAGE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PG_dcache_dirty PG_arch_1
+#define Page_dcache_dirty(page)   test_bit(PG_dcache_dirty, &(page)->flags)
+#define SetPageDcacheDirty(page)   set_bit(PG_dcache_dirty, &(page)->flags)
+#define ClearPageDcacheDirty(page)   clear_bit(PG_dcache_dirty, &(page)->flags)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cacheops.h b/ndk/platforms/android-9/arch-mips/include/asm/cacheops.h
new file mode 100644
index 0000000..4484774
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cacheops.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_CACHEOPS_H
+#define __ASM_CACHEOPS_H
+#define Index_Invalidate_I 0x00
+#define Index_Writeback_Inv_D 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Index_Load_Tag_I 0x04
+#define Index_Load_Tag_D 0x05
+#define Index_Store_Tag_I 0x08
+#define Index_Store_Tag_D 0x09
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Hit_Invalidate_I 0x10
+#define Hit_Invalidate_D 0x11
+#define Hit_Writeback_Inv_D 0x15
+#define Create_Dirty_Excl_D 0x0d
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Fill 0x14
+#define Hit_Writeback_I 0x18
+#define Hit_Writeback_D 0x19
+#define Index_Invalidate_SI 0x02
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Index_Writeback_Inv_SD 0x03
+#define Index_Load_Tag_SI 0x06
+#define Index_Load_Tag_SD 0x07
+#define Index_Store_Tag_SI 0x0A
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Index_Store_Tag_SD 0x0B
+#define Create_Dirty_Excl_SD 0x0f
+#define Hit_Invalidate_SI 0x12
+#define Hit_Invalidate_SD 0x13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Hit_Writeback_Inv_SD 0x17
+#define Hit_Writeback_SD 0x1b
+#define Hit_Set_Virtual_SI 0x1e
+#define Hit_Set_Virtual_SD 0x1f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R5K_Page_Invalidate_S 0x17
+#define Page_Invalidate_T 0x16
+#define Index_Writeback_Inv_S 0x03
+#define Index_Load_Tag_S 0x07
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Index_Store_Tag_S 0x0B
+#define Hit_Invalidate_S 0x13
+#define Cache_Barrier 0x14
+#define Hit_Writeback_Inv_S 0x17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Index_Load_Data_I 0x18
+#define Index_Load_Data_D 0x19
+#define Index_Load_Data_S 0x1b
+#define Index_Store_Data_I 0x1c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Index_Store_Data_D 0x1d
+#define Index_Store_Data_S 0x1f
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/checksum.h b/ndk/platforms/android-9/arch-mips/include/asm/checksum.h
new file mode 100644
index 0000000..df48b2a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/checksum.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_CHECKSUM_H
+#define _ASM_CHECKSUM_H
+#include <linux/in6.h>
+#include <asm/uaccess.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HAVE_CSUM_COPY_USER
+#ifdef __MIPSEL__
+#else
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _HAVE_ARCH_IPV6_CSUM
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cmpxchg.h b/ndk/platforms/android-9/arch-mips/include/asm/cmpxchg.h
new file mode 100644
index 0000000..16ba605
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cmpxchg.h
@@ -0,0 +1,33 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_CMPXCHG_H
+#define __ASM_CMPXCHG_H
+#include <linux/irqflags.h>
+#define __HAVE_ARCH_CMPXCHG 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __cmpxchg_asm(ld, st, m, old, new)  ({   __typeof(*(m)) __ret;     if (cpu_has_llsc && R10000_LLSC_WAR) {   __asm__ __volatile__(   "	.set	push				\n"   "	.set	noat				\n"   "	.set	mips3				\n"   "1:	" ld "	%0, %2		# __cmpxchg_asm	\n"   "	bne	%0, %z3, 2f			\n"   "	.set	mips0				\n"   "	move	$1, %z4				\n"   "	.set	mips3				\n"   "	" st "	$1, %1				\n"   "	beqzl	$1, 1b				\n"   "2:						\n"   "	.set	pop				\n"   : "=&r" (__ret), "=R" (*m)   : "R" (*m), "Jr" (old), "Jr" (new)   : "memory");   } else if (cpu_has_llsc) {   __asm__ __volatile__(   "	.set	push				\n"   "	.set	noat				\n"   "	.set	mips3				\n"   "1:	" ld "	%0, %2		# __cmpxchg_asm	\n"   "	bne	%0, %z3, 2f			\n"   "	.set	mips0				\n"   "	move	$1, %z4				\n"   "	.set	mips3				\n"   "	" st "	$1, %1				\n"   "	beqz	$1, 3f				\n"   "2:						\n"   "	.subsection 2				\n"   "3:	b	1b				\n"   "	.previous				\n"   "	.set	pop				\n"   : "=&r" (__ret), "=R" (*m)   : "R" (*m), "Jr" (old), "Jr" (new)   : "memory");   } else {   unsigned long __flags;     raw_local_irq_save(__flags);   __ret = *m;   if (__ret == old)   *m = new;   raw_local_irq_restore(__flags);   }     __ret;  })
+#define __cmpxchg(ptr, old, new, barrier)  ({   __typeof__(ptr) __ptr = (ptr);   __typeof__(*(ptr)) __old = (old);   __typeof__(*(ptr)) __new = (new);   __typeof__(*(ptr)) __res = 0;     barrier;     switch (sizeof(*(__ptr))) {   case 4:   __res = __cmpxchg_asm("ll", "sc", __ptr, __old, __new);   break;   case 8:   if (sizeof(long) == 8) {   __res = __cmpxchg_asm("lld", "scd", __ptr,   __old, __new);   break;   }   default:   __cmpxchg_called_with_bad_pointer();   break;   }     barrier;     __res;  })
+#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_llsc_mb())
+#define cmpxchg_local(ptr, old, new) __cmpxchg(ptr, old, new, )
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cmpxchg64(ptr, o, n)   ({   BUILD_BUG_ON(sizeof(*(ptr)) != 8);   cmpxchg((ptr), (o), (n));   })
+#include <asm-generic/cmpxchg-local.h>
+#define cmpxchg64_local(ptr, o, n) __cmpxchg64_local_generic((ptr), (o), (n))
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/compiler.h b/ndk/platforms/android-9/arch-mips/include/asm/compiler.h
new file mode 100644
index 0000000..e31f272
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/compiler.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_COMPILER_H
+#define _ASM_COMPILER_H
+#if __GNUC__ > (3 || __GNUC__ == (3 && __GNUC_MINOR__ >= 4))
+#define GCC_IMM_ASM() "n"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GCC_REG_ACCUM "$0"
+#else
+#define GCC_IMM_ASM() "rn"
+#define GCC_REG_ACCUM "accum"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cpu-features.h b/ndk/platforms/android-9/arch-mips/include/asm/cpu-features.h
new file mode 100644
index 0000000..b3642c2
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cpu-features.h
@@ -0,0 +1,186 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_CPU_FEATURES_H
+#define __ASM_CPU_FEATURES_H
+#include <asm/cpu.h>
+#include <asm/cpu-info.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <cpu-feature-overrides.h>
+#ifndef current_cpu_type
+#define current_cpu_type() current_cpu_data.cputype
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_tlb
+#define cpu_has_tlb (cpu_data[0].options & MIPS_CPU_TLB)
+#endif
+#ifndef cpu_has_4kex
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_4kex (cpu_data[0].options & MIPS_CPU_4KEX)
+#endif
+#ifndef cpu_has_3k_cache
+#define cpu_has_3k_cache (cpu_data[0].options & MIPS_CPU_3K_CACHE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define cpu_has_6k_cache 0
+#define cpu_has_8k_cache 0
+#ifndef cpu_has_4k_cache
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_4k_cache (cpu_data[0].options & MIPS_CPU_4K_CACHE)
+#endif
+#ifndef cpu_has_tx39_cache
+#define cpu_has_tx39_cache (cpu_data[0].options & MIPS_CPU_TX39_CACHE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_fpu
+#define cpu_has_fpu (current_cpu_data.options & MIPS_CPU_FPU)
+#define raw_cpu_has_fpu (raw_current_cpu_data.options & MIPS_CPU_FPU)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define raw_cpu_has_fpu cpu_has_fpu
+#endif
+#ifndef cpu_has_32fpr
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_32fpr (cpu_data[0].options & MIPS_CPU_32FPR)
+#endif
+#ifndef cpu_has_counter
+#define cpu_has_counter (cpu_data[0].options & MIPS_CPU_COUNTER)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_watch
+#define cpu_has_watch (cpu_data[0].options & MIPS_CPU_WATCH)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_divec
+#define cpu_has_divec (cpu_data[0].options & MIPS_CPU_DIVEC)
+#endif
+#ifndef cpu_has_vce
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_vce (cpu_data[0].options & MIPS_CPU_VCE)
+#endif
+#ifndef cpu_has_cache_cdex_p
+#define cpu_has_cache_cdex_p (cpu_data[0].options & MIPS_CPU_CACHE_CDEX_P)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_cache_cdex_s
+#define cpu_has_cache_cdex_s (cpu_data[0].options & MIPS_CPU_CACHE_CDEX_S)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_prefetch
+#define cpu_has_prefetch (cpu_data[0].options & MIPS_CPU_PREFETCH)
+#endif
+#ifndef cpu_has_mcheck
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_mcheck (cpu_data[0].options & MIPS_CPU_MCHECK)
+#endif
+#ifndef cpu_has_ejtag
+#define cpu_has_ejtag (cpu_data[0].options & MIPS_CPU_EJTAG)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_llsc
+#define cpu_has_llsc (cpu_data[0].options & MIPS_CPU_LLSC)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_mips16
+#define cpu_has_mips16 (cpu_data[0].ases & MIPS_ASE_MIPS16)
+#endif
+#ifndef cpu_has_mdmx
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_mdmx (cpu_data[0].ases & MIPS_ASE_MDMX)
+#endif
+#ifndef cpu_has_mips3d
+#define cpu_has_mips3d (cpu_data[0].ases & MIPS_ASE_MIPS3D)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_smartmips
+#define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_vtag_icache
+#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG)
+#endif
+#ifndef cpu_has_dc_aliases
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_dc_aliases (cpu_data[0].dcache.flags & MIPS_CACHE_ALIASES)
+#endif
+#ifndef cpu_has_ic_fills_f_dc
+#define cpu_has_ic_fills_f_dc (cpu_data[0].icache.flags & MIPS_CACHE_IC_F_DC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_pindexed_dcache
+#define cpu_has_pindexed_dcache (cpu_data[0].dcache.flags & MIPS_CACHE_PINDEX)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_icache_snoops_remote_store
+#define cpu_icache_snoops_remote_store 1
+#endif
+#ifndef cpu_has_mips32r1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_mips32r1 (cpu_data[0].isa_level & MIPS_CPU_ISA_M32R1)
+#endif
+#ifndef cpu_has_mips32r2
+#define cpu_has_mips32r2 (cpu_data[0].isa_level & MIPS_CPU_ISA_M32R2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_mips64r1
+#define cpu_has_mips64r1 (cpu_data[0].isa_level & MIPS_CPU_ISA_M64R1)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_mips64r2
+#define cpu_has_mips64r2 (cpu_data[0].isa_level & MIPS_CPU_ISA_M64R2)
+#endif
+#define cpu_has_mips32 (cpu_has_mips32r1 | cpu_has_mips32r2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_mips64 (cpu_has_mips64r1 | cpu_has_mips64r2)
+#define cpu_has_mips_r1 (cpu_has_mips32r1 | cpu_has_mips64r1)
+#define cpu_has_mips_r2 (cpu_has_mips32r2 | cpu_has_mips64r2)
+#ifndef cpu_has_dsp
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP)
+#endif
+#ifndef cpu_has_mipsmt
+#define cpu_has_mipsmt (cpu_data[0].ases & MIPS_ASE_MIPSMT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_has_userlocal
+#define cpu_has_userlocal (cpu_data[0].options & MIPS_CPU_ULRI)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_has_vint
+#define cpu_has_vint 0
+#endif
+#ifndef cpu_has_veic
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_has_veic 0
+#endif
+#ifndef cpu_has_inclusive_pcaches
+#define cpu_has_inclusive_pcaches (cpu_data[0].options & MIPS_CPU_INCLUSIVE_CACHES)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef cpu_dcache_line_size
+#define cpu_dcache_line_size() cpu_data[0].dcache.linesz
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef cpu_icache_line_size
+#define cpu_icache_line_size() cpu_data[0].icache.linesz
+#endif
+#ifndef cpu_scache_line_size
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_scache_line_size() cpu_data[0].scache.linesz
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cpu-info.h b/ndk/platforms/android-9/arch-mips/include/asm/cpu-info.h
new file mode 100644
index 0000000..d8bd122
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cpu-info.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_CPU_INFO_H
+#define __ASM_CPU_INFO_H
+#include <asm/cache.h>
+struct cache_desc {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int waysize;
+ unsigned short sets;
+ unsigned char ways;
+ unsigned char linesz;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char waybit;
+ unsigned char flags;
+};
+#define MIPS_CACHE_NOT_PRESENT 0x00000001
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CACHE_VTAG 0x00000002  
+#define MIPS_CACHE_ALIASES 0x00000004  
+#define MIPS_CACHE_IC_F_DC 0x00000008  
+#define MIPS_IC_SNOOPS_REMOTE 0x00000010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CACHE_PINDEX 0x00000020  
+struct cpuinfo_mips {
+ unsigned long udelay_val;
+ unsigned long asid_cache;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long options;
+ unsigned long ases;
+ unsigned int processor_id;
+ unsigned int fpu_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int cputype;
+ int isa_level;
+ int tlbsize;
+ struct cache_desc icache;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct cache_desc dcache;
+ struct cache_desc scache;
+ struct cache_desc tcache;
+ int srsets;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int core;
+ void *data;
+} __attribute__((aligned(SMP_CACHE_BYTES)));
+#define current_cpu_data cpu_data[smp_processor_id()]
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define raw_current_cpu_data cpu_data[raw_smp_processor_id()]
+#define cpu_name_string() __cpu_name[smp_processor_id()]
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cpu.h b/ndk/platforms/android-9/arch-mips/include/asm/cpu.h
new file mode 100644
index 0000000..7b4b2d3
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cpu.h
@@ -0,0 +1,195 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_CPU_H
+#define _ASM_CPU_H
+#define PRID_COMP_LEGACY 0x000000
+#define PRID_COMP_MIPS 0x010000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_COMP_BROADCOM 0x020000
+#define PRID_COMP_ALCHEMY 0x030000
+#define PRID_COMP_SIBYTE 0x040000
+#define PRID_COMP_SANDCRAFT 0x050000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_COMP_NXP 0x060000
+#define PRID_COMP_TOSHIBA 0x070000
+#define PRID_COMP_LSI 0x080000
+#define PRID_COMP_LEXRA 0x0b0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_R2000 0x0100
+#define PRID_IMP_AU1_REV1 0x0100
+#define PRID_IMP_AU1_REV2 0x0200
+#define PRID_IMP_R3000 0x0200  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_R6000 0x0300  
+#define PRID_IMP_R4000 0x0400
+#define PRID_IMP_R6000A 0x0600
+#define PRID_IMP_R10000 0x0900
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_R4300 0x0b00
+#define PRID_IMP_VR41XX 0x0c00
+#define PRID_IMP_R12000 0x0e00
+#define PRID_IMP_R14000 0x0f00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_R8000 0x1000
+#define PRID_IMP_PR4450 0x1200
+#define PRID_IMP_R4600 0x2000
+#define PRID_IMP_R4700 0x2100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_TX39 0x2200
+#define PRID_IMP_R4640 0x2200
+#define PRID_IMP_R4650 0x2200  
+#define PRID_IMP_R5000 0x2300
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_TX49 0x2d00
+#define PRID_IMP_SONIC 0x2400
+#define PRID_IMP_MAGIC 0x2500
+#define PRID_IMP_RM7000 0x2700
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_NEVADA 0x2800  
+#define PRID_IMP_RM9000 0x3400
+#define PRID_IMP_LOONGSON1 0x4200
+#define PRID_IMP_R5432 0x5400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_R5500 0x5500
+#define PRID_IMP_LOONGSON2 0x6300
+#define PRID_IMP_UNKNOWN 0xff00
+#define PRID_IMP_4KC 0x8000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_5KC 0x8100
+#define PRID_IMP_20KC 0x8200
+#define PRID_IMP_4KEC 0x8400
+#define PRID_IMP_4KSC 0x8600
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_25KF 0x8800
+#define PRID_IMP_5KE 0x8900
+#define PRID_IMP_4KECR2 0x9000
+#define PRID_IMP_4KEMPR2 0x9100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_4KSD 0x9200
+#define PRID_IMP_24K 0x9300
+#define PRID_IMP_34K 0x9500
+#define PRID_IMP_24KE 0x9600
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_74K 0x9700
+#define PRID_IMP_1004K 0x9900
+#define PRID_IMP_SB1 0x0100
+#define PRID_IMP_SB1A 0x1100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_IMP_SR71000 0x0400
+#define PRID_IMP_BCM4710 0x4000
+#define PRID_IMP_BCM3302 0x9000
+#define PRID_REV_MASK 0x00ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_REV_TX4927 0x0022
+#define PRID_REV_TX4937 0x0030
+#define PRID_REV_R4400 0x0040
+#define PRID_REV_R3000A 0x0030
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_REV_R3000 0x0020
+#define PRID_REV_R2000A 0x0010
+#define PRID_REV_TX3912 0x0010
+#define PRID_REV_TX3922 0x0030
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_REV_TX3927 0x0040
+#define PRID_REV_VR4111 0x0050
+#define PRID_REV_VR4181 0x0050  
+#define PRID_REV_VR4121 0x0060
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_REV_VR4122 0x0070
+#define PRID_REV_VR4181A 0x0070  
+#define PRID_REV_VR4130 0x0080
+#define PRID_REV_34K_V1_0_2 0x0022
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRID_REV_ENCODE_44(ver, rev)   ((ver) << 4 | (rev))
+#define PRID_REV_ENCODE_332(ver, rev, patch)   ((ver) << 5 | (rev) << 2 | (patch))
+#define FPIR_IMP_NONE 0x0000
+enum cpu_type_enum {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CPU_UNKNOWN,
+ CPU_R2000, CPU_R3000, CPU_R3000A, CPU_R3041, CPU_R3051, CPU_R3052,
+ CPU_R3081, CPU_R3081E,
+ CPU_R6000, CPU_R6000A,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200, CPU_R4300, CPU_R4310,
+ CPU_R4400PC, CPU_R4400SC, CPU_R4400MC, CPU_R4600, CPU_R4640, CPU_R4650,
+ CPU_R4700, CPU_R5000, CPU_R5000A, CPU_R5500, CPU_NEVADA, CPU_R5432,
+ CPU_R10000, CPU_R12000, CPU_R14000, CPU_VR41XX, CPU_VR4111, CPU_VR4121,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CPU_VR4122, CPU_VR4131, CPU_VR4133, CPU_VR4181, CPU_VR4181A, CPU_RM7000,
+ CPU_SR71000, CPU_RM9000, CPU_TX49XX,
+ CPU_R8000,
+ CPU_TX3912, CPU_TX3922, CPU_TX3927,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K,
+ CPU_AU1000, CPU_AU1100, CPU_AU1200, CPU_AU1210, CPU_AU1250, CPU_AU1500,
+ CPU_AU1550, CPU_PR4450, CPU_BCM3302, CPU_BCM4710,
+ CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ CPU_LAST
+};
+#define MIPS_CPU_ISA_I 0x00000001
+#define MIPS_CPU_ISA_II 0x00000002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_ISA_III 0x00000004
+#define MIPS_CPU_ISA_IV 0x00000008
+#define MIPS_CPU_ISA_V 0x00000010
+#define MIPS_CPU_ISA_M32R1 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_ISA_M32R2 0x00000040
+#define MIPS_CPU_ISA_M64R1 0x00000080
+#define MIPS_CPU_ISA_M64R2 0x00000100
+#define MIPS_CPU_ISA_32BIT (MIPS_CPU_ISA_I | MIPS_CPU_ISA_II |   MIPS_CPU_ISA_M32R1 | MIPS_CPU_ISA_M32R2 )
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_ISA_64BIT (MIPS_CPU_ISA_III | MIPS_CPU_ISA_IV |   MIPS_CPU_ISA_V | MIPS_CPU_ISA_M64R1 | MIPS_CPU_ISA_M64R2)
+#define MIPS_CPU_TLB 0x00000001  
+#define MIPS_CPU_4KEX 0x00000002  
+#define MIPS_CPU_3K_CACHE 0x00000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_4K_CACHE 0x00000008  
+#define MIPS_CPU_TX39_CACHE 0x00000010  
+#define MIPS_CPU_FPU 0x00000020  
+#define MIPS_CPU_32FPR 0x00000040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_COUNTER 0x00000080  
+#define MIPS_CPU_WATCH 0x00000100  
+#define MIPS_CPU_DIVEC 0x00000200  
+#define MIPS_CPU_VCE 0x00000400  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_CACHE_CDEX_P 0x00000800  
+#define MIPS_CPU_CACHE_CDEX_S 0x00001000  
+#define MIPS_CPU_MCHECK 0x00002000  
+#define MIPS_CPU_EJTAG 0x00004000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_NOFPUEX 0x00008000  
+#define MIPS_CPU_LLSC 0x00010000  
+#define MIPS_CPU_INCLUSIVE_CACHES 0x00020000  
+#define MIPS_CPU_PREFETCH 0x00040000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CPU_VINT 0x00080000  
+#define MIPS_CPU_VEIC 0x00100000  
+#define MIPS_CPU_ULRI 0x00200000  
+#define MIPS_ASE_MIPS16 0x00000001  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_ASE_MDMX 0x00000002  
+#define MIPS_ASE_MIPS3D 0x00000004  
+#define MIPS_ASE_SMARTMIPS 0x00000008  
+#define MIPS_ASE_DSP 0x00000010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_ASE_MIPSMT 0x00000020  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/cputime.h b/ndk/platforms/android-9/arch-mips/include/asm/cputime.h
new file mode 100644
index 0000000..5a71223
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/cputime.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __MIPS_CPUTIME_H
+#define __MIPS_CPUTIME_H
+#include <asm-generic/cputime.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/current.h b/ndk/platforms/android-9/arch-mips/include/asm/current.h
new file mode 100644
index 0000000..439b61e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/current.h
@@ -0,0 +1,25 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_CURRENT_H
+#define _ASM_CURRENT_H
+#include <linux/thread_info.h>
+struct task_struct;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define current get_current()
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/debug.h b/ndk/platforms/android-9/arch-mips/include/asm/debug.h
new file mode 100644
index 0000000..1345bdf
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/debug.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DEBUG_H
+#define _ASM_DEBUG_H
+#define db_assert(x)
+#define db_warn(x)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define db_verify(x, y) x
+#define db_verify_warn(x, y) x
+#define db_run(x)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dec/ecc.h b/ndk/platforms/android-9/arch-mips/include/asm/dec/ecc.h
new file mode 100644
index 0000000..51342a5
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dec/ecc.h
@@ -0,0 +1,44 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_DEC_ECC_H
+#define __ASM_MIPS_DEC_ECC_H
+#define KN0X_EAR_VALID (1<<31)  
+#define KN0X_EAR_CPU (1<<30)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN0X_EAR_WRITE (1<<29)  
+#define KN0X_EAR_ECCERR (1<<28)  
+#define KN0X_EAR_RES_27 (1<<27)  
+#define KN0X_EAR_ADDRESS (0x7ffffff<<0)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN0X_ESR_VLDHI (1<<31)  
+#define KN0X_ESR_CHKHI (0x7f<<24)  
+#define KN0X_ESR_SNGHI (1<<23)  
+#define KN0X_ESR_SYNHI (0x7f<<16)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN0X_ESR_VLDLO (1<<15)  
+#define KN0X_ESR_CHKLO (0x7f<<8)  
+#define KN0X_ESR_SNGLO (1<<7)  
+#define KN0X_ESR_SYNLO (0x7f<<0)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+#include <linux/interrupt.h>
+struct pt_regs;
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dec/ioasic_addrs.h b/ndk/platforms/android-9/arch-mips/include/asm/dec/ioasic_addrs.h
new file mode 100644
index 0000000..99774a1
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dec/ioasic_addrs.h
@@ -0,0 +1,124 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_DEC_IOASIC_ADDRS_H
+#define __ASM_MIPS_DEC_IOASIC_ADDRS_H
+#define IOASIC_SLOT_SIZE 0x00040000
+#define IOASIC_SYS_ROM (0*IOASIC_SLOT_SIZE)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOASIC_IOCTL (1*IOASIC_SLOT_SIZE)  
+#define IOASIC_ESAR (2*IOASIC_SLOT_SIZE)  
+#define IOASIC_LANCE (3*IOASIC_SLOT_SIZE)  
+#define IOASIC_SCC0 (4*IOASIC_SLOT_SIZE)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOASIC_VDAC_HI (5*IOASIC_SLOT_SIZE)  
+#define IOASIC_SCC1 (6*IOASIC_SLOT_SIZE)  
+#define IOASIC_VDAC_LO (7*IOASIC_SLOT_SIZE)  
+#define IOASIC_TOY (8*IOASIC_SLOT_SIZE)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOASIC_ISDN (9*IOASIC_SLOT_SIZE)  
+#define IOASIC_ERRADDR (9*IOASIC_SLOT_SIZE)  
+#define IOASIC_CHKSYN (10*IOASIC_SLOT_SIZE)  
+#define IOASIC_ACC_BUS (10*IOASIC_SLOT_SIZE)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOASIC_MCR (11*IOASIC_SLOT_SIZE)  
+#define IOASIC_FLOPPY (11*IOASIC_SLOT_SIZE)  
+#define IOASIC_SCSI (12*IOASIC_SLOT_SIZE)  
+#define IOASIC_FDC_DMA (13*IOASIC_SLOT_SIZE)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOASIC_SCSI_DMA (14*IOASIC_SLOT_SIZE)  
+#define IOASIC_RES_15 (15*IOASIC_SLOT_SIZE)  
+#define IO_REG_SCSI_DMA_P 0x00  
+#define IO_REG_SCSI_DMA_BP 0x10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_LANCE_DMA_P 0x20  
+#define IO_REG_SCC0A_T_DMA_P 0x30  
+#define IO_REG_SCC0A_R_DMA_P 0x40  
+#define IO_REG_SCC1A_T_DMA_P 0x50  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_SCC1A_R_DMA_P 0x60  
+#define IO_REG_AB_T_DMA_P 0x50  
+#define IO_REG_AB_R_DMA_P 0x60  
+#define IO_REG_FLOPPY_DMA_P 0x70  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_ISDN_T_DMA_P 0x80  
+#define IO_REG_ISDN_T_DMA_BP 0x90  
+#define IO_REG_ISDN_R_DMA_P 0xa0  
+#define IO_REG_ISDN_R_DMA_BP 0xb0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_DATA_0 0xc0  
+#define IO_REG_DATA_1 0xd0  
+#define IO_REG_DATA_2 0xe0  
+#define IO_REG_DATA_3 0xf0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_SSR 0x100  
+#define IO_REG_SIR 0x110  
+#define IO_REG_SIMR 0x120  
+#define IO_REG_SAR 0x130  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_ISDN_T_DATA 0x140  
+#define IO_REG_ISDN_R_DATA 0x150  
+#define IO_REG_LANCE_SLOT 0x160  
+#define IO_REG_SCSI_SLOT 0x170  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_SCC0A_SLOT 0x180  
+#define IO_REG_SCC1A_SLOT 0x190  
+#define IO_REG_AB_SLOT 0x190  
+#define IO_REG_FLOPPY_SLOT 0x1a0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_SCSI_SCR 0x1b0  
+#define IO_REG_SCSI_SDR0 0x1c0  
+#define IO_REG_SCSI_SDR1 0x1d0  
+#define IO_REG_FCTR 0x1e0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_REG_RES_31 0x1f0  
+#define IO_SSR_SCC0A_TX_DMA_EN (1<<31)  
+#define IO_SSR_SCC0A_RX_DMA_EN (1<<30)  
+#define IO_SSR_RES_27 (1<<27)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_SSR_RES_26 (1<<26)  
+#define IO_SSR_RES_25 (1<<25)  
+#define IO_SSR_RES_24 (1<<24)  
+#define IO_SSR_RES_23 (1<<23)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_SSR_SCSI_DMA_DIR (1<<18)  
+#define IO_SSR_SCSI_DMA_EN (1<<17)  
+#define IO_SSR_LANCE_DMA_EN (1<<16)  
+#define IO_SSR_SCC1A_TX_DMA_EN (1<<29)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_SSR_SCC1A_RX_DMA_EN (1<<28)  
+#define IO_SSR_RES_22 (1<<22)  
+#define IO_SSR_RES_21 (1<<21)  
+#define IO_SSR_RES_20 (1<<20)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_SSR_RES_19 (1<<19)  
+#define IO_SSR_AB_TX_DMA_EN (1<<29)  
+#define IO_SSR_AB_RX_DMA_EN (1<<28)  
+#define IO_SSR_FLOPPY_DMA_DIR (1<<22)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_SSR_FLOPPY_DMA_EN (1<<21)  
+#define IO_SSR_ISDN_TX_DMA_EN (1<<20)  
+#define IO_SSR_ISDN_RX_DMA_EN (1<<19)  
+#define KN0X_IO_SSR_DIAGDN (1<<15)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN0X_IO_SSR_SCC_RST (1<<11)  
+#define KN0X_IO_SSR_RTC_RST (1<<10)  
+#define KN0X_IO_SSR_ASC_RST (1<<9)  
+#define KN0X_IO_SSR_LANCE_RST (1<<8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dec/kn02xa.h b/ndk/platforms/android-9/arch-mips/include/asm/dec/kn02xa.h
new file mode 100644
index 0000000..6078c8b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dec/kn02xa.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_DEC_KN02XA_H
+#define __ASM_MIPS_DEC_KN02XA_H
+#include <asm/dec/ioasic_addrs.h>
+#define KN02XA_SLOT_BASE 0x1c000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_MER 0x0c400000  
+#define KN02XA_MSR 0x0c800000  
+#define KN02XA_MEM_CONF 0x0e000000  
+#define KN02XA_EAR 0x0e000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_BOOT0 0x0e000008  
+#define KN02XA_MEM_INTR 0x0e00000c  
+#define KN02XA_MER_RES_28 (0xf<<28)  
+#define KN02XA_MER_RES_17 (0x3ff<<17)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_MER_PAGERR (1<<16)  
+#define KN02XA_MER_TRANSERR (1<<15)  
+#define KN02XA_MER_PARDIS (1<<14)  
+#define KN02XA_MER_SIZE (1<<13)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_MER_RES_12 (1<<12)  
+#define KN02XA_MER_BYTERR (0xf<<8)  
+#define KN02XA_MER_BYTERR_3 (0x8<<8)  
+#define KN02XA_MER_BYTERR_2 (0x4<<8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_MER_BYTERR_1 (0x2<<8)  
+#define KN02XA_MER_BYTERR_0 (0x1<<8)  
+#define KN02XA_MER_RES_0 (0xff<<0)  
+#define KN02XA_MSR_RES_27 (0x1f<<27)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_MSR_RES_14 (0x7<<14)  
+#define KN02XA_MSR_SIZE (1<<13)  
+#define KN02XA_MSR_RES_0 (0x1fff<<0)  
+#define KN02XA_EAR_RES_29 (0x7<<29)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KN02XA_EAR_ADDRESS (0x7ffffff<<2)  
+#define KN02XA_EAR_RES_0 (0x3<<0)  
+#ifndef __ASSEMBLY__
+#include <linux/interrupt.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct pt_regs;
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dec/system.h b/ndk/platforms/android-9/arch-mips/include/asm/dec/system.h
new file mode 100644
index 0000000..94cf431
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dec/system.h
@@ -0,0 +1,21 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_DEC_SYSTEM_H
+#define __ASM_DEC_SYSTEM_H
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/delay.h b/ndk/platforms/android-9/arch-mips/include/asm/delay.h
new file mode 100644
index 0000000..a184a93
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/delay.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DELAY_H
+#define _ASM_DELAY_H
+#include <linux/param.h>
+#include <linux/smp.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/compiler.h>
+#include <asm/war.h>
+#define __udelay_val cpu_data[raw_smp_processor_id()].udelay_val
+#define udelay(usecs) __udelay((usecs), __udelay_val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if HZ >= 1000
+#define MAX_UDELAY_MS 1
+#elif HZ <= 200
+#define MAX_UDELAY_MS 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define MAX_UDELAY_MS (1000 / HZ)
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/device.h b/ndk/platforms/android-9/arch-mips/include/asm/device.h
new file mode 100644
index 0000000..535031e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/device.h
@@ -0,0 +1,19 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#include <asm-generic/device.h>
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/div64.h b/ndk/platforms/android-9/arch-mips/include/asm/div64.h
new file mode 100644
index 0000000..a542b46
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/div64.h
@@ -0,0 +1,33 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DIV64_H
+#define _ASM_DIV64_H
+#include <linux/types.h>
+#if _MIPS_SZLONG == 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/compiler.h>
+#define do_div64_32(res, high, low, base) ({   unsigned long __quot32, __mod32;   unsigned long __cf, __tmp, __tmp2, __i;     __asm__(".set	push\n\t"   ".set	noat\n\t"   ".set	noreorder\n\t"   "move	%2, $0\n\t"   "move	%3, $0\n\t"   "b	1f\n\t"   " li	%4, 0x21\n"   "0:\n\t"   "sll	$1, %0, 0x1\n\t"   "srl	%3, %0, 0x1f\n\t"   "or	%0, $1, %5\n\t"   "sll	%1, %1, 0x1\n\t"   "sll	%2, %2, 0x1\n"   "1:\n\t"   "bnez	%3, 2f\n\t"   " sltu	%5, %0, %z6\n\t"   "bnez	%5, 3f\n"   "2:\n\t"   " addiu	%4, %4, -1\n\t"   "subu	%0, %0, %z6\n\t"   "addiu	%2, %2, 1\n"   "3:\n\t"   "bnez	%4, 0b\n\t"   " srl	%5, %1, 0x1f\n\t"   ".set	pop"   : "=&r" (__mod32), "=&r" (__tmp),   "=&r" (__quot32), "=&r" (__cf),   "=&r" (__i), "=&r" (__tmp2)   : "Jr" (base), "0" (high), "1" (low));     (res) = __quot32;   __mod32; })
+#define do_div(n, base) ({   unsigned long long __quot;   unsigned long __mod;   unsigned long long __div;   unsigned long __upper, __low, __high, __base;     __div = (n);   __base = (base);     __high = __div >> 32;   __low = __div;   __upper = __high;     if (__high)   __asm__("divu	$0, %z2, %z3"   : "=h" (__upper), "=l" (__high)   : "Jr" (__high), "Jr" (__base)   : GCC_REG_ACCUM);     __mod = do_div64_32(__low, __upper, __low, __base);     __quot = __high;   __quot = __quot << 32 | __low;   (n) = __quot;   __mod; })
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SZLONG == 64
+#define do_div(n, base) ({   unsigned long __quot;   unsigned int __mod;   unsigned long __div;   unsigned int __base;     __div = (n);   __base = (base);     __mod = __div % __base;   __quot = __div / __base;     (n) = __quot;   __mod; })
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dma-mapping.h b/ndk/platforms/android-9/arch-mips/include/asm/dma-mapping.h
new file mode 100644
index 0000000..e521fd7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dma-mapping.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DMA_MAPPING_H
+#define _ASM_DMA_MAPPING_H
+#include <asm/scatterlist.h>
+#include <asm/cache.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dma.h b/ndk/platforms/android-9/arch-mips/include/asm/dma.h
new file mode 100644
index 0000000..aedb5dd
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dma.h
@@ -0,0 +1,101 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DMA_H
+#define _ASM_DMA_H
+#include <asm/io.h>  
+#include <linux/spinlock.h>  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/delay.h>
+#include <asm/system.h>
+#ifdef HAVE_REALLY_SLOW_DMA_CONTROLLER
+#define dma_outb outb_p
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define dma_outb outb
+#endif
+#define dma_inb inb
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAX_DMA_CHANNELS 8
+#define MAX_DMA_ADDRESS (PAGE_OFFSET + 0x01000000)
+#define MAX_DMA_PFN PFN_DOWN(virt_to_phys((void *)MAX_DMA_ADDRESS))
+#define MAX_DMA32_PFN (1UL << (32 - PAGE_SHIFT))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO_DMA1_BASE 0x00  
+#define IO_DMA2_BASE 0xC0  
+#define DMA1_CMD_REG 0x08  
+#define DMA1_STAT_REG 0x08  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA1_REQ_REG 0x09  
+#define DMA1_MASK_REG 0x0A  
+#define DMA1_MODE_REG 0x0B  
+#define DMA1_CLEAR_FF_REG 0x0C  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA1_TEMP_REG 0x0D  
+#define DMA1_RESET_REG 0x0D  
+#define DMA1_CLR_MASK_REG 0x0E  
+#define DMA1_MASK_ALL_REG 0x0F  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA2_CMD_REG 0xD0  
+#define DMA2_STAT_REG 0xD0  
+#define DMA2_REQ_REG 0xD2  
+#define DMA2_MASK_REG 0xD4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA2_MODE_REG 0xD6  
+#define DMA2_CLEAR_FF_REG 0xD8  
+#define DMA2_TEMP_REG 0xDA  
+#define DMA2_RESET_REG 0xDA  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA2_CLR_MASK_REG 0xDC  
+#define DMA2_MASK_ALL_REG 0xDE  
+#define DMA_ADDR_0 0x00  
+#define DMA_ADDR_1 0x02
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_ADDR_2 0x04
+#define DMA_ADDR_3 0x06
+#define DMA_ADDR_4 0xC0
+#define DMA_ADDR_5 0xC4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_ADDR_6 0xC8
+#define DMA_ADDR_7 0xCC
+#define DMA_CNT_0 0x01  
+#define DMA_CNT_1 0x03
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_CNT_2 0x05
+#define DMA_CNT_3 0x07
+#define DMA_CNT_4 0xC2
+#define DMA_CNT_5 0xC6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_CNT_6 0xCA
+#define DMA_CNT_7 0xCE
+#define DMA_PAGE_0 0x87  
+#define DMA_PAGE_1 0x83
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_PAGE_2 0x81
+#define DMA_PAGE_3 0x82
+#define DMA_PAGE_5 0x8B
+#define DMA_PAGE_6 0x89
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_PAGE_7 0x8A
+#define DMA_MODE_READ 0x44  
+#define DMA_MODE_WRITE 0x48  
+#define DMA_MODE_CASCADE 0xC0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DMA_AUTOINIT 0x10
+#define isa_dma_bridge_buggy (0)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ds1286.h b/ndk/platforms/android-9/arch-mips/include/asm/ds1286.h
new file mode 100644
index 0000000..319f219
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ds1286.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DS1286_H
+#define _ASM_DS1286_H
+#include <ds1286.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/dsp.h b/ndk/platforms/android-9/arch-mips/include/asm/dsp.h
new file mode 100644
index 0000000..3d60be5
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/dsp.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_DSP_H
+#define _ASM_DSP_H
+#include <asm/cpu.h>
+#include <asm/cpu-features.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/hazards.h>
+#include <asm/mipsregs.h>
+#define DSP_DEFAULT 0x00000000
+#define DSP_MASK 0x3ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __enable_dsp_hazard()  do {   asm("_ehb");  } while (0)
+#define __save_dsp(tsk)  do {   tsk->thread.dsp.dspr[0] = mfhi1();   tsk->thread.dsp.dspr[1] = mflo1();   tsk->thread.dsp.dspr[2] = mfhi2();   tsk->thread.dsp.dspr[3] = mflo2();   tsk->thread.dsp.dspr[4] = mfhi3();   tsk->thread.dsp.dspr[5] = mflo3();   tsk->thread.dsp.dspcontrol = rddsp(DSP_MASK);  } while (0)
+#define save_dsp(tsk)  do {   if (cpu_has_dsp)   __save_dsp(tsk);  } while (0)
+#define __restore_dsp(tsk)  do {   mthi1(tsk->thread.dsp.dspr[0]);   mtlo1(tsk->thread.dsp.dspr[1]);   mthi2(tsk->thread.dsp.dspr[2]);   mtlo2(tsk->thread.dsp.dspr[3]);   mthi3(tsk->thread.dsp.dspr[4]);   mtlo3(tsk->thread.dsp.dspr[5]);   wrdsp(tsk->thread.dsp.dspcontrol, DSP_MASK);  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define restore_dsp(tsk)  do {   if (cpu_has_dsp)   __restore_dsp(tsk);  } while (0)
+#define __get_dsp_regs(tsk)  ({   if (tsk == current)   __save_dsp(current);     tsk->thread.dsp.dspr;  })
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/elf.h b/ndk/platforms/android-9/arch-mips/include/asm/elf.h
new file mode 100644
index 0000000..6ccb622
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/elf.h
@@ -0,0 +1,214 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_ELF_H
+#define _ASM_ELF_H
+#define EF_MIPS_ARCH_1 0x00000000  
+#define EF_MIPS_ARCH_2 0x10000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_MIPS_ARCH_3 0x20000000  
+#define EF_MIPS_ARCH_4 0x30000000  
+#define EF_MIPS_ARCH_5 0x40000000  
+#define EF_MIPS_ARCH_32 0x50000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_MIPS_ARCH_64 0x60000000  
+#define EF_MIPS_ARCH_32R2 0x70000000  
+#define EF_MIPS_ARCH_64R2 0x80000000  
+#define EF_MIPS_ABI_O32 0x00001000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_MIPS_ABI_O64 0x00002000  
+#define PT_MIPS_REGINFO 0x70000000
+#define PT_MIPS_RTPROC 0x70000001
+#define PT_MIPS_OPTIONS 0x70000002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_MIPS_NOREORDER 0x00000001
+#define EF_MIPS_PIC 0x00000002
+#define EF_MIPS_CPIC 0x00000004
+#define EF_MIPS_ABI2 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_MIPS_OPTIONS_FIRST 0x00000080
+#define EF_MIPS_32BITMODE 0x00000100
+#define EF_MIPS_ABI 0x0000f000
+#define EF_MIPS_ARCH 0xf0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DT_MIPS_RLD_VERSION 0x70000001
+#define DT_MIPS_TIME_STAMP 0x70000002
+#define DT_MIPS_ICHECKSUM 0x70000003
+#define DT_MIPS_IVERSION 0x70000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DT_MIPS_FLAGS 0x70000005
+#define RHF_NONE 0x00000000
+#define RHF_HARDWAY 0x00000001
+#define RHF_NOTPOT 0x00000002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RHF_SGI_ONLY 0x00000010
+#define DT_MIPS_BASE_ADDRESS 0x70000006
+#define DT_MIPS_CONFLICT 0x70000008
+#define DT_MIPS_LIBLIST 0x70000009
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DT_MIPS_LOCAL_GOTNO 0x7000000a
+#define DT_MIPS_CONFLICTNO 0x7000000b
+#define DT_MIPS_LIBLISTNO 0x70000010
+#define DT_MIPS_SYMTABNO 0x70000011
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DT_MIPS_UNREFEXTNO 0x70000012
+#define DT_MIPS_GOTSYM 0x70000013
+#define DT_MIPS_HIPAGENO 0x70000014
+#define DT_MIPS_RLD_MAP 0x70000016
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_NONE 0
+#define R_MIPS_16 1
+#define R_MIPS_32 2
+#define R_MIPS_REL32 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_26 4
+#define R_MIPS_HI16 5
+#define R_MIPS_LO16 6
+#define R_MIPS_GPREL16 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_LITERAL 8
+#define R_MIPS_GOT16 9
+#define R_MIPS_PC16 10
+#define R_MIPS_CALL16 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_GPREL32 12
+#define R_MIPS_UNUSED1 13
+#define R_MIPS_UNUSED2 14
+#define R_MIPS_UNUSED3 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_SHIFT5 16
+#define R_MIPS_SHIFT6 17
+#define R_MIPS_64 18
+#define R_MIPS_GOT_DISP 19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_GOT_PAGE 20
+#define R_MIPS_GOT_OFST 21
+#define R_MIPS_GOTHI16 22
+#define R_MIPS_GOTLO16 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_SUB 24
+#define R_MIPS_INSERT_A 25
+#define R_MIPS_INSERT_B 26
+#define R_MIPS_DELETE 27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_HIGHER 28
+#define R_MIPS_HIGHEST 29
+#define R_MIPS_CALLHI16 30
+#define R_MIPS_CALLLO16 31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R_MIPS_LOVENDOR 100
+#define R_MIPS_HIVENDOR 127
+#define SHN_MIPS_ACCOMON 0xff00  
+#define SHN_MIPS_TEXT 0xff01  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHN_MIPS_DATA 0xff02  
+#define SHN_MIPS_SCOMMON 0xff03  
+#define SHN_MIPS_SUNDEFINED 0xff04  
+#define SHT_MIPS_LIST 0x70000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_CONFLICT 0x70000002
+#define SHT_MIPS_GPTAB 0x70000003
+#define SHT_MIPS_UCODE 0x70000004
+#define SHT_MIPS_DEBUG 0x70000005
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_REGINFO 0x70000006
+#define SHT_MIPS_PACKAGE 0x70000007
+#define SHT_MIPS_PACKSYM 0x70000008
+#define SHT_MIPS_RELD 0x70000009
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_IFACE 0x7000000b
+#define SHT_MIPS_CONTENT 0x7000000c
+#define SHT_MIPS_OPTIONS 0x7000000d
+#define SHT_MIPS_SHDR 0x70000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_FDESC 0x70000011
+#define SHT_MIPS_EXTSYM 0x70000012
+#define SHT_MIPS_DENSE 0x70000013
+#define SHT_MIPS_PDESC 0x70000014
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_LOCSYM 0x70000015
+#define SHT_MIPS_AUXSYM 0x70000016
+#define SHT_MIPS_OPTSYM 0x70000017
+#define SHT_MIPS_LOCSTR 0x70000018
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_LINE 0x70000019
+#define SHT_MIPS_RFDESC 0x7000001a
+#define SHT_MIPS_DELTASYM 0x7000001b
+#define SHT_MIPS_DELTAINST 0x7000001c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_DELTACLASS 0x7000001d
+#define SHT_MIPS_DWARF 0x7000001e
+#define SHT_MIPS_DELTADECL 0x7000001f
+#define SHT_MIPS_SYMBOL_LIB 0x70000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_EVENTS 0x70000021
+#define SHT_MIPS_TRANSLATE 0x70000022
+#define SHT_MIPS_PIXIE 0x70000023
+#define SHT_MIPS_XLATE 0x70000024
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_XLATE_DEBUG 0x70000025
+#define SHT_MIPS_WHIRL 0x70000026
+#define SHT_MIPS_EH_REGION 0x70000027
+#define SHT_MIPS_XLATE_OLD 0x70000028
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHT_MIPS_PDR_EXCEPTION 0x70000029
+#define SHF_MIPS_GPREL 0x10000000
+#define SHF_MIPS_MERGE 0x20000000
+#define SHF_MIPS_ADDR 0x40000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHF_MIPS_STRING 0x80000000
+#define SHF_MIPS_NOSTRIP 0x08000000
+#define SHF_MIPS_LOCAL 0x04000000
+#define SHF_MIPS_NAMES 0x02000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHF_MIPS_NODUPES 0x01000000
+#ifndef ELF_ARCH
+#define ELF_NGREG 45
+#define ELF_NFPREG 33
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned long elf_greg_t;
+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
+typedef double elf_fpreg_t;
+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __MIPSEB__
+#define ELF_DATA ELFDATA2MSB
+#elif __MIPSEL__
+#define ELF_DATA ELFDATA2LSB
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define ELF_ARCH EM_MIPS
+#endif
+struct mips_abi;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct task_struct;
+#define ELF_CORE_COPY_REGS(elf_regs, regs)   elf_dump_regs((elf_greg_t *)&(elf_regs), regs);
+#define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs)
+#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs)   dump_task_fpu(tsk, elf_fpregs)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USE_ELF_CORE_DUMP
+#define ELF_EXEC_PAGESIZE PAGE_SIZE
+#define ELF_HWCAP (0)
+#define ELF_PLATFORM (NULL)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ELF_PLAT_INIT(_r, load_addr) do {   _r->regs[1] = _r->regs[2] = _r->regs[3] = _r->regs[4] = 0;   _r->regs[5] = _r->regs[6] = _r->regs[7] = _r->regs[8] = 0;   _r->regs[9] = _r->regs[10] = _r->regs[11] = _r->regs[12] = 0;   _r->regs[13] = _r->regs[14] = _r->regs[15] = _r->regs[16] = 0;   _r->regs[17] = _r->regs[18] = _r->regs[19] = _r->regs[20] = 0;   _r->regs[21] = _r->regs[22] = _r->regs[23] = _r->regs[24] = 0;   _r->regs[25] = _r->regs[26] = _r->regs[27] = _r->regs[28] = 0;   _r->regs[30] = _r->regs[31] = 0;  } while (0)
+#ifndef ELF_ET_DYN_BASE
+#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/errno.h b/ndk/platforms/android-9/arch-mips/include/asm/errno.h
new file mode 100644
index 0000000..f8ba438
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/errno.h
@@ -0,0 +1,146 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_ERRNO_H
+#define _ASM_ERRNO_H
+#include <asm-generic/errno-base.h>
+#define ENOMSG 35  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EIDRM 36  
+#define ECHRNG 37  
+#define EL2NSYNC 38  
+#define EL3HLT 39  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EL3RST 40  
+#define ELNRNG 41  
+#define EUNATCH 42  
+#define ENOCSI 43  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EL2HLT 44  
+#define EDEADLK 45  
+#define ENOLCK 46  
+#define EBADE 50  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EBADR 51  
+#define EXFULL 52  
+#define ENOANO 53  
+#define EBADRQC 54  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EBADSLT 55  
+#define EDEADLOCK 56  
+#define EBFONT 59  
+#define ENOSTR 60  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENODATA 61  
+#define ETIME 62  
+#define ENOSR 63  
+#define ENONET 64  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENOPKG 65  
+#define EREMOTE 66  
+#define ENOLINK 67  
+#define EADV 68  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ESRMNT 69  
+#define ECOMM 70  
+#define EPROTO 71  
+#define EDOTDOT 73  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EMULTIHOP 74  
+#define EBADMSG 77  
+#define ENAMETOOLONG 78  
+#define EOVERFLOW 79  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENOTUNIQ 80  
+#define EBADFD 81  
+#define EREMCHG 82  
+#define ELIBACC 83  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ELIBBAD 84  
+#define ELIBSCN 85  
+#define ELIBMAX 86  
+#define ELIBEXEC 87  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EILSEQ 88  
+#define ENOSYS 89  
+#define ELOOP 90  
+#define ERESTART 91  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ESTRPIPE 92  
+#define ENOTEMPTY 93  
+#define EUSERS 94  
+#define ENOTSOCK 95  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EDESTADDRREQ 96  
+#define EMSGSIZE 97  
+#define EPROTOTYPE 98  
+#define ENOPROTOOPT 99  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EPROTONOSUPPORT 120  
+#define ESOCKTNOSUPPORT 121  
+#define EOPNOTSUPP 122  
+#define EPFNOSUPPORT 123  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EAFNOSUPPORT 124  
+#define EADDRINUSE 125  
+#define EADDRNOTAVAIL 126  
+#define ENETDOWN 127  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENETUNREACH 128  
+#define ENETRESET 129  
+#define ECONNABORTED 130  
+#define ECONNRESET 131  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENOBUFS 132  
+#define EISCONN 133  
+#define ENOTCONN 134  
+#define EUCLEAN 135  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENOTNAM 137  
+#define ENAVAIL 138  
+#define EISNAM 139  
+#define EREMOTEIO 140  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EINIT 141  
+#define EREMDEV 142  
+#define ESHUTDOWN 143  
+#define ETOOMANYREFS 144  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETIMEDOUT 145  
+#define ECONNREFUSED 146  
+#define EHOSTDOWN 147  
+#define EHOSTUNREACH 148  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EWOULDBLOCK EAGAIN  
+#define EALREADY 149  
+#define EINPROGRESS 150  
+#define ESTALE 151  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ECANCELED 158  
+#define ENOMEDIUM 159  
+#define EMEDIUMTYPE 160  
+#define ENOKEY 161  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EKEYEXPIRED 162  
+#define EKEYREVOKED 163  
+#define EKEYREJECTED 164  
+#define EOWNERDEAD 165  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ENOTRECOVERABLE 166  
+#define EDQUOT 1133  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/fcntl.h b/ndk/platforms/android-9/arch-mips/include/asm/fcntl.h
new file mode 100644
index 0000000..2686340
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/fcntl.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_FCNTL_H
+#define _ASM_FCNTL_H
+#define O_APPEND 0x0008
+#define O_SYNC 0x0010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define O_NONBLOCK 0x0080
+#define O_CREAT 0x0100  
+#define O_TRUNC 0x0200  
+#define O_EXCL 0x0400  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define O_NOCTTY 0x0800  
+#define FASYNC 0x1000  
+#define O_LARGEFILE 0x2000  
+#define O_DIRECT 0x8000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define F_GETLK 14
+#define F_SETLK 6
+#define F_SETLKW 7
+#define F_SETOWN 24  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define F_GETOWN 23  
+#ifndef __mips64
+#define F_GETLK64 33  
+#define F_SETLK64 34
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define F_SETLKW64 35
+#endif
+#include <asm-generic/fcntl.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/fixmap.h b/ndk/platforms/android-9/arch-mips/include/asm/fixmap.h
new file mode 100644
index 0000000..659d51d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/fixmap.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_FIXMAP_H
+#define _ASM_FIXMAP_H
+#include <asm/page.h>
+enum fixed_addresses {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FIX_N_COLOURS 8
+ FIX_CMAP_BEGIN,
+ FIX_CMAP_END = FIX_CMAP_BEGIN + FIX_N_COLOURS,
+ __end_of_fixed_addresses
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define FIXADDR_TOP ((unsigned long)(long)(int)0xfffe0000)
+#define FIXADDR_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
+#define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT))
+#define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/floppy.h b/ndk/platforms/android-9/arch-mips/include/asm/floppy.h
new file mode 100644
index 0000000..769b3f9
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/floppy.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_FLOPPY_H
+#define _ASM_FLOPPY_H
+#include <linux/dma-mapping.h>
+#define MAX_BUFFER_SECTORS 24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FLOPPY0_TYPE fd_drive_type(0)
+#define FLOPPY1_TYPE fd_drive_type(1)
+#define FDC1 fd_getfdaddr1();
+#define N_FDC 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_DRIVE 8
+#define CROSS_64KB(a, s) ((unsigned long)(a)/K_64 != ((unsigned long)(a) + (s) - 1) / K_64)
+#define EXTRA_FLOPPY_PARAMS
+#include <floppy.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/fpregdef.h b/ndk/platforms/android-9/arch-mips/include/asm/fpregdef.h
new file mode 100644
index 0000000..046f750
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/fpregdef.h
@@ -0,0 +1,110 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_FPREGDEF_H
+#define _ASM_FPREGDEF_H
+#include <asm/sgidefs.h>
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fv0 $f0  
+#define fv0f $f1
+#define fv1 $f2
+#define fv1f $f3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fa0 $f12  
+#define fa0f $f13
+#define fa1 $f14
+#define fa1f $f15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft0 $f4  
+#define ft0f $f5
+#define ft1 $f6
+#define ft1f $f7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft2 $f8
+#define ft2f $f9
+#define ft3 $f10
+#define ft3f $f11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft4 $f16
+#define ft4f $f17
+#define ft5 $f18
+#define ft5f $f19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs0 $f20  
+#define fs0f $f21
+#define fs1 $f22
+#define fs1f $f23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs2 $f24
+#define fs2f $f25
+#define fs3 $f26
+#define fs3f $f27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs4 $f28
+#define fs4f $f29
+#define fs5 $f30
+#define fs5f $f31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fcr31 $31  
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
+#define fv0 $f0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fv1 $f2
+#define fa0 $f12  
+#define fa1 $f13
+#define fa2 $f14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fa3 $f15
+#define fa4 $f16
+#define fa5 $f17
+#define fa6 $f18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fa7 $f19
+#define ft0 $f4  
+#define ft1 $f5
+#define ft2 $f6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft3 $f7
+#define ft4 $f8
+#define ft5 $f9
+#define ft6 $f10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft7 $f11
+#define ft8 $f20
+#define ft9 $f21
+#define ft10 $f22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ft11 $f23
+#define ft12 $f1
+#define ft13 $f3
+#define fs0 $f24  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs1 $f25
+#define fs2 $f26
+#define fs3 $f27
+#define fs4 $f28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define fs5 $f29
+#define fs6 $f30
+#define fs7 $f31
+#define fcr31 $31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/fw/arc/types.h b/ndk/platforms/android-9/arch-mips/include/asm/fw/arc/types.h
new file mode 100644
index 0000000..62f89f8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/fw/arc/types.h
@@ -0,0 +1,45 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_ARC_TYPES_H
+#define _ASM_ARC_TYPES_H
+typedef CHAR *PCHAR;
+typedef SHORT *PSHORT;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef LARGE_INTEGER *PLARGE_INTEGER;
+typedef LONG *PLONG;
+typedef UCHAR *PUCHAR;
+typedef USHORT *PUSHORT;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef ULONG *PULONG;
+typedef VOID *PVOID;
+typedef struct {
+ USHORT CursorXPosition;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ USHORT CursorYPosition;
+ USHORT CursorMaxXPosition;
+ USHORT CursorMaxYPosition;
+ USHORT ForegroundColor;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ USHORT BackgroundColor;
+ UCHAR HighIntensity;
+ UCHAR Underscored;
+ UCHAR ReverseVideo;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} DISPLAY_STATUS;
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/gt64120.h b/ndk/platforms/android-9/arch-mips/include/asm/gt64120.h
new file mode 100644
index 0000000..d4cda0d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/gt64120.h
@@ -0,0 +1,530 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_GT64120_H
+#define _ASM_GT64120_H
+#include <linux/clocksource.h>
+#include <asm/addrspace.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/byteorder.h>
+#define MSK(n) ((1 << (n)) - 1)
+#define GT_CPU_OFS 0x000
+#define GT_MULTI_OFS 0x120
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SCS10LD_OFS 0x008
+#define GT_SCS10HD_OFS 0x010
+#define GT_SCS32LD_OFS 0x018
+#define GT_SCS32HD_OFS 0x020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CS20LD_OFS 0x028
+#define GT_CS20HD_OFS 0x030
+#define GT_CS3BOOTLD_OFS 0x038
+#define GT_CS3BOOTHD_OFS 0x040
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0IOLD_OFS 0x048
+#define GT_PCI0IOHD_OFS 0x050
+#define GT_PCI0M0LD_OFS 0x058
+#define GT_PCI0M0HD_OFS 0x060
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_ISD_OFS 0x068
+#define GT_PCI0M1LD_OFS 0x080
+#define GT_PCI0M1HD_OFS 0x088
+#define GT_PCI1IOLD_OFS 0x090
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1IOHD_OFS 0x098
+#define GT_PCI1M0LD_OFS 0x0a0
+#define GT_PCI1M0HD_OFS 0x0a8
+#define GT_PCI1M1LD_OFS 0x0b0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1M1HD_OFS 0x0b8
+#define GT_PCI1M1LD_OFS 0x0b0
+#define GT_PCI1M1HD_OFS 0x0b8
+#define GT_SCS10AR_OFS 0x0d0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SCS32AR_OFS 0x0d8
+#define GT_CS20R_OFS 0x0e0
+#define GT_CS3BOOTR_OFS 0x0e8
+#define GT_PCI0IOREMAP_OFS 0x0f0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0M0REMAP_OFS 0x0f8
+#define GT_PCI0M1REMAP_OFS 0x100
+#define GT_PCI1IOREMAP_OFS 0x108
+#define GT_PCI1M0REMAP_OFS 0x110
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1M1REMAP_OFS 0x118
+#define GT_CPUERR_ADDRLO_OFS 0x070
+#define GT_CPUERR_ADDRHI_OFS 0x078
+#define GT_CPUERR_DATALO_OFS 0x128  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CPUERR_DATAHI_OFS 0x130  
+#define GT_CPUERR_PARITY_OFS 0x138  
+#define GT_PCI0SYNC_OFS 0x0c0
+#define GT_PCI1SYNC_OFS 0x0c8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SCS0LD_OFS 0x400
+#define GT_SCS0HD_OFS 0x404
+#define GT_SCS1LD_OFS 0x408
+#define GT_SCS1HD_OFS 0x40c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SCS2LD_OFS 0x410
+#define GT_SCS2HD_OFS 0x414
+#define GT_SCS3LD_OFS 0x418
+#define GT_SCS3HD_OFS 0x41c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CS0LD_OFS 0x420
+#define GT_CS0HD_OFS 0x424
+#define GT_CS1LD_OFS 0x428
+#define GT_CS1HD_OFS 0x42c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CS2LD_OFS 0x430
+#define GT_CS2HD_OFS 0x434
+#define GT_CS3LD_OFS 0x438
+#define GT_CS3HD_OFS 0x43c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_BOOTLD_OFS 0x440
+#define GT_BOOTHD_OFS 0x444
+#define GT_ADERR_OFS 0x470
+#define GT_SDRAM_CFG_OFS 0x448
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_OPMODE_OFS 0x474
+#define GT_SDRAM_BM_OFS 0x478
+#define GT_SDRAM_ADDRDECODE_OFS 0x47c
+#define GT_SDRAM_B0_OFS 0x44c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B1_OFS 0x450
+#define GT_SDRAM_B2_OFS 0x454
+#define GT_SDRAM_B3_OFS 0x458
+#define GT_DEV_B0_OFS 0x45c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DEV_B1_OFS 0x460
+#define GT_DEV_B2_OFS 0x464
+#define GT_DEV_B3_OFS 0x468
+#define GT_DEV_BOOT_OFS 0x46c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_ECC_ERRDATALO 0x480  
+#define GT_ECC_ERRDATAHI 0x484  
+#define GT_ECC_MEM 0x488  
+#define GT_ECC_CALC 0x48c  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_ECC_ERRADDR 0x490  
+#define GT_DMA0_CNT_OFS 0x800
+#define GT_DMA1_CNT_OFS 0x804
+#define GT_DMA2_CNT_OFS 0x808
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DMA3_CNT_OFS 0x80c
+#define GT_DMA0_SA_OFS 0x810
+#define GT_DMA1_SA_OFS 0x814
+#define GT_DMA2_SA_OFS 0x818
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DMA3_SA_OFS 0x81c
+#define GT_DMA0_DA_OFS 0x820
+#define GT_DMA1_DA_OFS 0x824
+#define GT_DMA2_DA_OFS 0x828
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DMA3_DA_OFS 0x82c
+#define GT_DMA0_NEXT_OFS 0x830
+#define GT_DMA1_NEXT_OFS 0x834
+#define GT_DMA2_NEXT_OFS 0x838
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DMA3_NEXT_OFS 0x83c
+#define GT_DMA0_CUR_OFS 0x870
+#define GT_DMA1_CUR_OFS 0x874
+#define GT_DMA2_CUR_OFS 0x878
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DMA3_CUR_OFS 0x87c
+#define GT_DMA0_CTRL_OFS 0x840
+#define GT_DMA1_CTRL_OFS 0x844
+#define GT_DMA2_CTRL_OFS 0x848
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DMA3_CTRL_OFS 0x84c
+#define GT_DMA_ARB_OFS 0x860
+#define GT_TC0_OFS 0x850
+#define GT_TC1_OFS 0x854
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_TC2_OFS 0x858
+#define GT_TC3_OFS 0x85c
+#define GT_TC_CONTROL_OFS 0x864
+#define GT_PCI0_CMD_OFS 0xc00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_TOR_OFS 0xc04
+#define GT_PCI0_BS_SCS10_OFS 0xc08
+#define GT_PCI0_BS_SCS32_OFS 0xc0c
+#define GT_PCI0_BS_CS20_OFS 0xc10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BS_CS3BT_OFS 0xc14
+#define GT_PCI1_IACK_OFS 0xc30
+#define GT_PCI0_IACK_OFS 0xc34
+#define GT_PCI0_BARE_OFS 0xc3c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_PREFMBR_OFS 0xc40
+#define GT_PCI0_SCS10_BAR_OFS 0xc48
+#define GT_PCI0_SCS32_BAR_OFS 0xc4c
+#define GT_PCI0_CS20_BAR_OFS 0xc50
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CS3BT_BAR_OFS 0xc54
+#define GT_PCI0_SSCS10_BAR_OFS 0xc58
+#define GT_PCI0_SSCS32_BAR_OFS 0xc5c
+#define GT_PCI0_SCS3BT_BAR_OFS 0xc64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1_CMD_OFS 0xc80
+#define GT_PCI1_TOR_OFS 0xc84
+#define GT_PCI1_BS_SCS10_OFS 0xc88
+#define GT_PCI1_BS_SCS32_OFS 0xc8c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1_BS_CS20_OFS 0xc90
+#define GT_PCI1_BS_CS3BT_OFS 0xc94
+#define GT_PCI1_BARE_OFS 0xcbc
+#define GT_PCI1_PREFMBR_OFS 0xcc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1_SCS10_BAR_OFS 0xcc8
+#define GT_PCI1_SCS32_BAR_OFS 0xccc
+#define GT_PCI1_CS20_BAR_OFS 0xcd0
+#define GT_PCI1_CS3BT_BAR_OFS 0xcd4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1_SSCS10_BAR_OFS 0xcd8
+#define GT_PCI1_SSCS32_BAR_OFS 0xcdc
+#define GT_PCI1_SCS3BT_BAR_OFS 0xce4
+#define GT_PCI1_CFGADDR_OFS 0xcf0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1_CFGDATA_OFS 0xcf4
+#define GT_PCI0_CFGADDR_OFS 0xcf8
+#define GT_PCI0_CFGDATA_OFS 0xcfc
+#define GT_INTRCAUSE_OFS 0xc18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_INTRMASK_OFS 0xc1c
+#define GT_PCI0_ICMASK_OFS 0xc24
+#define GT_PCI0_SERR0MASK_OFS 0xc28
+#define GT_CPU_INTSEL_OFS 0xc70
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_INTSEL_OFS 0xc74
+#define GT_HINTRCAUSE_OFS 0xc98
+#define GT_HINTRMASK_OFS 0xc9c
+#define GT_PCI0_HICMASK_OFS 0xca4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI1_SERR1MASK_OFS 0xca8
+#define INBOUND_MESSAGE_REGISTER0_PCI_SIDE 0x010
+#define INBOUND_MESSAGE_REGISTER1_PCI_SIDE 0x014
+#define OUTBOUND_MESSAGE_REGISTER0_PCI_SIDE 0x018
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OUTBOUND_MESSAGE_REGISTER1_PCI_SIDE 0x01c
+#define INBOUND_DOORBELL_REGISTER_PCI_SIDE 0x020
+#define INBOUND_INTERRUPT_CAUSE_REGISTER_PCI_SIDE 0x024
+#define INBOUND_INTERRUPT_MASK_REGISTER_PCI_SIDE 0x028
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OUTBOUND_DOORBELL_REGISTER_PCI_SIDE 0x02c
+#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_PCI_SIDE 0x030
+#define OUTBOUND_INTERRUPT_MASK_REGISTER_PCI_SIDE 0x034
+#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI_SIDE 0x040
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_PCI_SIDE 0x044
+#define QUEUE_CONTROL_REGISTER_PCI_SIDE 0x050
+#define QUEUE_BASE_ADDRESS_REGISTER_PCI_SIDE 0x054
+#define INBOUND_FREE_HEAD_POINTER_REGISTER_PCI_SIDE 0x060
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INBOUND_FREE_TAIL_POINTER_REGISTER_PCI_SIDE 0x064
+#define INBOUND_POST_HEAD_POINTER_REGISTER_PCI_SIDE 0x068
+#define INBOUND_POST_TAIL_POINTER_REGISTER_PCI_SIDE 0x06c
+#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_PCI_SIDE 0x070
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_PCI_SIDE 0x074
+#define OUTBOUND_POST_HEAD_POINTER_REGISTER_PCI_SIDE 0x078
+#define OUTBOUND_POST_TAIL_POINTER_REGISTER_PCI_SIDE 0x07c
+#define INBOUND_MESSAGE_REGISTER0_CPU_SIDE 0x1c10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INBOUND_MESSAGE_REGISTER1_CPU_SIDE 0x1c14
+#define OUTBOUND_MESSAGE_REGISTER0_CPU_SIDE 0x1c18
+#define OUTBOUND_MESSAGE_REGISTER1_CPU_SIDE 0x1c1c
+#define INBOUND_DOORBELL_REGISTER_CPU_SIDE 0x1c20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INBOUND_INTERRUPT_CAUSE_REGISTER_CPU_SIDE 0x1c24
+#define INBOUND_INTERRUPT_MASK_REGISTER_CPU_SIDE 0x1c28
+#define OUTBOUND_DOORBELL_REGISTER_CPU_SIDE 0x1c2c
+#define OUTBOUND_INTERRUPT_CAUSE_REGISTER_CPU_SIDE 0x1c30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OUTBOUND_INTERRUPT_MASK_REGISTER_CPU_SIDE 0x1c34
+#define INBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU_SIDE 0x1c40
+#define OUTBOUND_QUEUE_PORT_VIRTUAL_REGISTER_CPU_SIDE 0x1c44
+#define QUEUE_CONTROL_REGISTER_CPU_SIDE 0x1c50
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define QUEUE_BASE_ADDRESS_REGISTER_CPU_SIDE 0x1c54
+#define INBOUND_FREE_HEAD_POINTER_REGISTER_CPU_SIDE 0x1c60
+#define INBOUND_FREE_TAIL_POINTER_REGISTER_CPU_SIDE 0x1c64
+#define INBOUND_POST_HEAD_POINTER_REGISTER_CPU_SIDE 0x1c68
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INBOUND_POST_TAIL_POINTER_REGISTER_CPU_SIDE 0x1c6c
+#define OUTBOUND_FREE_HEAD_POINTER_REGISTER_CPU_SIDE 0x1c70
+#define OUTBOUND_FREE_TAIL_POINTER_REGISTER_CPU_SIDE 0x1c74
+#define OUTBOUND_POST_HEAD_POINTER_REGISTER_CPU_SIDE 0x1c78
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OUTBOUND_POST_TAIL_POINTER_REGISTER_CPU_SIDE 0x1c7c
+#define GT_CPU_ENDIAN_SHF 12
+#define GT_CPU_ENDIAN_MSK (MSK(1) << GT_CPU_ENDIAN_SHF)
+#define GT_CPU_ENDIAN_BIT GT_CPU_ENDIAN_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CPU_WR_SHF 16
+#define GT_CPU_WR_MSK (MSK(1) << GT_CPU_WR_SHF)
+#define GT_CPU_WR_BIT GT_CPU_WR_MSK
+#define GT_CPU_WR_DXDXDXDX 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CPU_WR_DDDD 1
+#define GT_PCI_DCRM_SHF 21
+#define GT_PCI_LD_SHF 0
+#define GT_PCI_LD_MSK (MSK(15) << GT_PCI_LD_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI_HD_SHF 0
+#define GT_PCI_HD_MSK (MSK(7) << GT_PCI_HD_SHF)
+#define GT_PCI_REMAP_SHF 0
+#define GT_PCI_REMAP_MSK (MSK(11) << GT_PCI_REMAP_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CFGADDR_CFGEN_SHF 31
+#define GT_CFGADDR_CFGEN_MSK (MSK(1) << GT_CFGADDR_CFGEN_SHF)
+#define GT_CFGADDR_CFGEN_BIT GT_CFGADDR_CFGEN_MSK
+#define GT_CFGADDR_BUSNUM_SHF 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CFGADDR_BUSNUM_MSK (MSK(8) << GT_CFGADDR_BUSNUM_SHF)
+#define GT_CFGADDR_DEVNUM_SHF 11
+#define GT_CFGADDR_DEVNUM_MSK (MSK(5) << GT_CFGADDR_DEVNUM_SHF)
+#define GT_CFGADDR_FUNCNUM_SHF 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_CFGADDR_FUNCNUM_MSK (MSK(3) << GT_CFGADDR_FUNCNUM_SHF)
+#define GT_CFGADDR_REGNUM_SHF 2
+#define GT_CFGADDR_REGNUM_MSK (MSK(6) << GT_CFGADDR_REGNUM_SHF)
+#define GT_SDRAM_BM_ORDER_SHF 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_BM_ORDER_MSK (MSK(1) << GT_SDRAM_BM_ORDER_SHF)
+#define GT_SDRAM_BM_ORDER_BIT GT_SDRAM_BM_ORDER_MSK
+#define GT_SDRAM_BM_ORDER_SUB 1
+#define GT_SDRAM_BM_ORDER_LIN 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_BM_RSVD_ALL1 0xffb
+#define GT_SDRAM_ADDRDECODE_ADDR_SHF 0
+#define GT_SDRAM_ADDRDECODE_ADDR_MSK (MSK(3) << GT_SDRAM_ADDRDECODE_ADDR_SHF)
+#define GT_SDRAM_ADDRDECODE_ADDR_0 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_ADDRDECODE_ADDR_1 1
+#define GT_SDRAM_ADDRDECODE_ADDR_2 2
+#define GT_SDRAM_ADDRDECODE_ADDR_3 3
+#define GT_SDRAM_ADDRDECODE_ADDR_4 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_ADDRDECODE_ADDR_5 5
+#define GT_SDRAM_ADDRDECODE_ADDR_6 6
+#define GT_SDRAM_ADDRDECODE_ADDR_7 7
+#define GT_SDRAM_B0_CASLAT_SHF 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_CASLAT_MSK (MSK(2) << GT_SDRAM_B0__SHF)
+#define GT_SDRAM_B0_CASLAT_2 1
+#define GT_SDRAM_B0_CASLAT_3 2
+#define GT_SDRAM_B0_FTDIS_SHF 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_FTDIS_MSK (MSK(1) << GT_SDRAM_B0_FTDIS_SHF)
+#define GT_SDRAM_B0_FTDIS_BIT GT_SDRAM_B0_FTDIS_MSK
+#define GT_SDRAM_B0_SRASPRCHG_SHF 3
+#define GT_SDRAM_B0_SRASPRCHG_MSK (MSK(1) << GT_SDRAM_B0_SRASPRCHG_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_SRASPRCHG_BIT GT_SDRAM_B0_SRASPRCHG_MSK
+#define GT_SDRAM_B0_SRASPRCHG_2 0
+#define GT_SDRAM_B0_SRASPRCHG_3 1
+#define GT_SDRAM_B0_B0COMPAB_SHF 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_B0COMPAB_MSK (MSK(1) << GT_SDRAM_B0_B0COMPAB_SHF)
+#define GT_SDRAM_B0_B0COMPAB_BIT GT_SDRAM_B0_B0COMPAB_MSK
+#define GT_SDRAM_B0_64BITINT_SHF 5
+#define GT_SDRAM_B0_64BITINT_MSK (MSK(1) << GT_SDRAM_B0_64BITINT_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_64BITINT_BIT GT_SDRAM_B0_64BITINT_MSK
+#define GT_SDRAM_B0_64BITINT_2 0
+#define GT_SDRAM_B0_64BITINT_4 1
+#define GT_SDRAM_B0_BW_SHF 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_BW_MSK (MSK(1) << GT_SDRAM_B0_BW_SHF)
+#define GT_SDRAM_B0_BW_BIT GT_SDRAM_B0_BW_MSK
+#define GT_SDRAM_B0_BW_32 0
+#define GT_SDRAM_B0_BW_64 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_BLODD_SHF 7
+#define GT_SDRAM_B0_BLODD_MSK (MSK(1) << GT_SDRAM_B0_BLODD_SHF)
+#define GT_SDRAM_B0_BLODD_BIT GT_SDRAM_B0_BLODD_MSK
+#define GT_SDRAM_B0_PAR_SHF 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_PAR_MSK (MSK(1) << GT_SDRAM_B0_PAR_SHF)
+#define GT_SDRAM_B0_PAR_BIT GT_SDRAM_B0_PAR_MSK
+#define GT_SDRAM_B0_BYPASS_SHF 9
+#define GT_SDRAM_B0_BYPASS_MSK (MSK(1) << GT_SDRAM_B0_BYPASS_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_BYPASS_BIT GT_SDRAM_B0_BYPASS_MSK
+#define GT_SDRAM_B0_SRAS2SCAS_SHF 10
+#define GT_SDRAM_B0_SRAS2SCAS_MSK (MSK(1) << GT_SDRAM_B0_SRAS2SCAS_SHF)
+#define GT_SDRAM_B0_SRAS2SCAS_BIT GT_SDRAM_B0_SRAS2SCAS_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_SRAS2SCAS_2 0
+#define GT_SDRAM_B0_SRAS2SCAS_3 1
+#define GT_SDRAM_B0_SIZE_SHF 11
+#define GT_SDRAM_B0_SIZE_MSK (MSK(1) << GT_SDRAM_B0_SIZE_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_SIZE_BIT GT_SDRAM_B0_SIZE_MSK
+#define GT_SDRAM_B0_SIZE_16M 0
+#define GT_SDRAM_B0_SIZE_64M 1
+#define GT_SDRAM_B0_EXTPAR_SHF 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_EXTPAR_MSK (MSK(1) << GT_SDRAM_B0_EXTPAR_SHF)
+#define GT_SDRAM_B0_EXTPAR_BIT GT_SDRAM_B0_EXTPAR_MSK
+#define GT_SDRAM_B0_BLEN_SHF 13
+#define GT_SDRAM_B0_BLEN_MSK (MSK(1) << GT_SDRAM_B0_BLEN_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_B0_BLEN_BIT GT_SDRAM_B0_BLEN_MSK
+#define GT_SDRAM_B0_BLEN_8 0
+#define GT_SDRAM_B0_BLEN_4 1
+#define GT_SDRAM_CFG_REFINT_SHF 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_CFG_REFINT_MSK (MSK(14) << GT_SDRAM_CFG_REFINT_SHF)
+#define GT_SDRAM_CFG_NINTERLEAVE_SHF 14
+#define GT_SDRAM_CFG_NINTERLEAVE_MSK (MSK(1) << GT_SDRAM_CFG_NINTERLEAVE_SHF)
+#define GT_SDRAM_CFG_NINTERLEAVE_BIT GT_SDRAM_CFG_NINTERLEAVE_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_CFG_RMW_SHF 15
+#define GT_SDRAM_CFG_RMW_MSK (MSK(1) << GT_SDRAM_CFG_RMW_SHF)
+#define GT_SDRAM_CFG_RMW_BIT GT_SDRAM_CFG_RMW_MSK
+#define GT_SDRAM_CFG_NONSTAGREF_SHF 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_CFG_NONSTAGREF_MSK (MSK(1) << GT_SDRAM_CFG_NONSTAGREF_SHF)
+#define GT_SDRAM_CFG_NONSTAGREF_BIT GT_SDRAM_CFG_NONSTAGREF_MSK
+#define GT_SDRAM_CFG_DUPCNTL_SHF 19
+#define GT_SDRAM_CFG_DUPCNTL_MSK (MSK(1) << GT_SDRAM_CFG_DUPCNTL_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_CFG_DUPCNTL_BIT GT_SDRAM_CFG_DUPCNTL_MSK
+#define GT_SDRAM_CFG_DUPBA_SHF 20
+#define GT_SDRAM_CFG_DUPBA_MSK (MSK(1) << GT_SDRAM_CFG_DUPBA_SHF)
+#define GT_SDRAM_CFG_DUPBA_BIT GT_SDRAM_CFG_DUPBA_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_CFG_DUPEOT0_SHF 21
+#define GT_SDRAM_CFG_DUPEOT0_MSK (MSK(1) << GT_SDRAM_CFG_DUPEOT0_SHF)
+#define GT_SDRAM_CFG_DUPEOT0_BIT GT_SDRAM_CFG_DUPEOT0_MSK
+#define GT_SDRAM_CFG_DUPEOT1_SHF 22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_CFG_DUPEOT1_MSK (MSK(1) << GT_SDRAM_CFG_DUPEOT1_SHF)
+#define GT_SDRAM_CFG_DUPEOT1_BIT GT_SDRAM_CFG_DUPEOT1_MSK
+#define GT_SDRAM_OPMODE_OP_SHF 0
+#define GT_SDRAM_OPMODE_OP_MSK (MSK(3) << GT_SDRAM_OPMODE_OP_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_OPMODE_OP_NORMAL 0
+#define GT_SDRAM_OPMODE_OP_NOP 1
+#define GT_SDRAM_OPMODE_OP_PRCHG 2
+#define GT_SDRAM_OPMODE_OP_MODE 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_SDRAM_OPMODE_OP_CBR 4
+#define GT_TC_CONTROL_ENTC0_SHF 0
+#define GT_TC_CONTROL_ENTC0_MSK (MSK(1) << GT_TC_CONTROL_ENTC0_SHF)
+#define GT_TC_CONTROL_ENTC0_BIT GT_TC_CONTROL_ENTC0_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_TC_CONTROL_SELTC0_SHF 1
+#define GT_TC_CONTROL_SELTC0_MSK (MSK(1) << GT_TC_CONTROL_SELTC0_SHF)
+#define GT_TC_CONTROL_SELTC0_BIT GT_TC_CONTROL_SELTC0_MSK
+#define GT_PCI0_BARE_SWSCS3BOOTDIS_SHF 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_SWSCS3BOOTDIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS3BOOTDIS_SHF)
+#define GT_PCI0_BARE_SWSCS3BOOTDIS_BIT GT_PCI0_BARE_SWSCS3BOOTDIS_MSK
+#define GT_PCI0_BARE_SWSCS32DIS_SHF 1
+#define GT_PCI0_BARE_SWSCS32DIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS32DIS_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_SWSCS32DIS_BIT GT_PCI0_BARE_SWSCS32DIS_MSK
+#define GT_PCI0_BARE_SWSCS10DIS_SHF 2
+#define GT_PCI0_BARE_SWSCS10DIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS10DIS_SHF)
+#define GT_PCI0_BARE_SWSCS10DIS_BIT GT_PCI0_BARE_SWSCS10DIS_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_INTIODIS_SHF 3
+#define GT_PCI0_BARE_INTIODIS_MSK (MSK(1) << GT_PCI0_BARE_INTIODIS_SHF)
+#define GT_PCI0_BARE_INTIODIS_BIT GT_PCI0_BARE_INTIODIS_MSK
+#define GT_PCI0_BARE_INTMEMDIS_SHF 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_INTMEMDIS_MSK (MSK(1) << GT_PCI0_BARE_INTMEMDIS_SHF)
+#define GT_PCI0_BARE_INTMEMDIS_BIT GT_PCI0_BARE_INTMEMDIS_MSK
+#define GT_PCI0_BARE_CS3BOOTDIS_SHF 5
+#define GT_PCI0_BARE_CS3BOOTDIS_MSK (MSK(1) << GT_PCI0_BARE_CS3BOOTDIS_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_CS3BOOTDIS_BIT GT_PCI0_BARE_CS3BOOTDIS_MSK
+#define GT_PCI0_BARE_CS20DIS_SHF 6
+#define GT_PCI0_BARE_CS20DIS_MSK (MSK(1) << GT_PCI0_BARE_CS20DIS_SHF)
+#define GT_PCI0_BARE_CS20DIS_BIT GT_PCI0_BARE_CS20DIS_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_SCS32DIS_SHF 7
+#define GT_PCI0_BARE_SCS32DIS_MSK (MSK(1) << GT_PCI0_BARE_SCS32DIS_SHF)
+#define GT_PCI0_BARE_SCS32DIS_BIT GT_PCI0_BARE_SCS32DIS_MSK
+#define GT_PCI0_BARE_SCS10DIS_SHF 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_BARE_SCS10DIS_MSK (MSK(1) << GT_PCI0_BARE_SCS10DIS_SHF)
+#define GT_PCI0_BARE_SCS10DIS_BIT GT_PCI0_BARE_SCS10DIS_MSK
+#define GT_INTRCAUSE_MASABORT0_SHF 18
+#define GT_INTRCAUSE_MASABORT0_MSK (MSK(1) << GT_INTRCAUSE_MASABORT0_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_INTRCAUSE_MASABORT0_BIT GT_INTRCAUSE_MASABORT0_MSK
+#define GT_INTRCAUSE_TARABORT0_SHF 19
+#define GT_INTRCAUSE_TARABORT0_MSK (MSK(1) << GT_INTRCAUSE_TARABORT0_SHF)
+#define GT_INTRCAUSE_TARABORT0_BIT GT_INTRCAUSE_TARABORT0_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CFGADDR_REGNUM_SHF 2
+#define GT_PCI0_CFGADDR_REGNUM_MSK (MSK(6) << GT_PCI0_CFGADDR_REGNUM_SHF)
+#define GT_PCI0_CFGADDR_FUNCTNUM_SHF 8
+#define GT_PCI0_CFGADDR_FUNCTNUM_MSK (MSK(3) << GT_PCI0_CFGADDR_FUNCTNUM_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CFGADDR_DEVNUM_SHF 11
+#define GT_PCI0_CFGADDR_DEVNUM_MSK (MSK(5) << GT_PCI0_CFGADDR_DEVNUM_SHF)
+#define GT_PCI0_CFGADDR_BUSNUM_SHF 16
+#define GT_PCI0_CFGADDR_BUSNUM_MSK (MSK(8) << GT_PCI0_CFGADDR_BUSNUM_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CFGADDR_CONFIGEN_SHF 31
+#define GT_PCI0_CFGADDR_CONFIGEN_MSK (MSK(1) << GT_PCI0_CFGADDR_CONFIGEN_SHF)
+#define GT_PCI0_CFGADDR_CONFIGEN_BIT GT_PCI0_CFGADDR_CONFIGEN_MSK
+#define GT_PCI0_CMD_MBYTESWAP_SHF 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CMD_MBYTESWAP_MSK (MSK(1) << GT_PCI0_CMD_MBYTESWAP_SHF)
+#define GT_PCI0_CMD_MBYTESWAP_BIT GT_PCI0_CMD_MBYTESWAP_MSK
+#define GT_PCI0_CMD_MWORDSWAP_SHF 10
+#define GT_PCI0_CMD_MWORDSWAP_MSK (MSK(1) << GT_PCI0_CMD_MWORDSWAP_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CMD_MWORDSWAP_BIT GT_PCI0_CMD_MWORDSWAP_MSK
+#define GT_PCI0_CMD_SBYTESWAP_SHF 16
+#define GT_PCI0_CMD_SBYTESWAP_MSK (MSK(1) << GT_PCI0_CMD_SBYTESWAP_SHF)
+#define GT_PCI0_CMD_SBYTESWAP_BIT GT_PCI0_CMD_SBYTESWAP_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_PCI0_CMD_SWORDSWAP_SHF 11
+#define GT_PCI0_CMD_SWORDSWAP_MSK (MSK(1) << GT_PCI0_CMD_SWORDSWAP_SHF)
+#define GT_PCI0_CMD_SWORDSWAP_BIT GT_PCI0_CMD_SWORDSWAP_MSK
+#define GT_INTR_T0EXP_SHF 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_INTR_T0EXP_MSK (MSK(1) << GT_INTR_T0EXP_SHF)
+#define GT_INTR_T0EXP_BIT GT_INTR_T0EXP_MSK
+#define GT_INTR_RETRYCTR0_SHF 20
+#define GT_INTR_RETRYCTR0_MSK (MSK(1) << GT_INTR_RETRYCTR0_SHF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_INTR_RETRYCTR0_BIT GT_INTR_RETRYCTR0_MSK
+#define GT_DEF_PCI0_IO_BASE 0x10000000UL
+#define GT_DEF_PCI0_IO_SIZE 0x02000000UL
+#define GT_DEF_PCI0_MEM0_BASE 0x12000000UL
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_DEF_PCI0_MEM0_SIZE 0x02000000UL
+#define GT_DEF_BASE 0x14000000UL
+#define GT_MAX_BANKSIZE (256 * 1024 * 1024)  
+#define GT_LATTIM_MIN 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <mach-gt64120.h>
+#define __GT_READ(ofs)   (*(volatile u32 *)(GT64120_BASE+(ofs)))
+#define __GT_WRITE(ofs, data)   do { *(volatile u32 *)(GT64120_BASE+(ofs)) = (data); } while (0)
+#define GT_READ(ofs) le32_to_cpu(__GT_READ(ofs))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT_WRITE(ofs, data) __GT_WRITE(ofs, cpu_to_le32(data))
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/hardirq.h b/ndk/platforms/android-9/arch-mips/include/asm/hardirq.h
new file mode 100644
index 0000000..f3a05b4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/hardirq.h
@@ -0,0 +1,29 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_HARDIRQ_H
+#define _ASM_HARDIRQ_H
+#include <linux/threads.h>
+#include <linux/irq.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct {
+ unsigned int __softirq_pending;
+} ____cacheline_aligned irq_cpustat_t;
+#include <linux/irq_cpustat.h>  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/hazards.h b/ndk/platforms/android-9/arch-mips/include/asm/hazards.h
new file mode 100644
index 0000000..dc6b205
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/hazards.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_HAZARDS_H
+#define _ASM_HAZARDS_H
+#ifdef __ASSEMBLY__
+#define ASMMACRO(name, code...) .macro name; code; .endm
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#include <asm/cpu-features.h>
+#define ASMMACRO(name, code...)  __asm__(".macro " #name "; " #code "; .endm");    static inline void name(void)  {   __asm__ __volatile__ (#name);  }
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define instruction_hazard() do { } while (0)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/hw_irq.h b/ndk/platforms/android-9/arch-mips/include/asm/hw_irq.h
new file mode 100644
index 0000000..60f0e7b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/hw_irq.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_HW_IRQ_H
+#define __ASM_HW_IRQ_H
+#include <asm/atomic.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/i8253.h b/ndk/platforms/android-9/arch-mips/include/asm/i8253.h
new file mode 100644
index 0000000..735d79f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/i8253.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_I8253_H
+#define __ASM_I8253_H
+#include <linux/spinlock.h>
+#define PIT_MODE 0x43
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIT_CH0 0x40
+#define PIT_CH2 0x42
+#define PIT_TICK_RATE 1193182UL
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/i8259.h b/ndk/platforms/android-9/arch-mips/include/asm/i8259.h
new file mode 100644
index 0000000..a78521b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/i8259.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_I8259_H
+#define _ASM_I8259_H
+#include <linux/compiler.h>
+#include <linux/spinlock.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/io.h>
+#include <irq.h>
+#define PIC_MASTER_CMD 0x20
+#define PIC_MASTER_IMR 0x21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIC_MASTER_ISR PIC_MASTER_CMD
+#define PIC_MASTER_POLL PIC_MASTER_ISR
+#define PIC_MASTER_OCW3 PIC_MASTER_ISR
+#define PIC_SLAVE_CMD 0xa0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIC_SLAVE_IMR 0xa1
+#define PIC_CASCADE_IR 2
+#define MASTER_ICW4_DEFAULT 0x01
+#define SLAVE_ICW4_DEFAULT 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIC_ICW4_AEOI 2
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ide.h b/ndk/platforms/android-9/arch-mips/include/asm/ide.h
new file mode 100644
index 0000000..aa45292
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ide.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_IDE_H
+#define __ASM_IDE_H
+#include <ide.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/io.h b/ndk/platforms/android-9/arch-mips/include/asm/io.h
new file mode 100644
index 0000000..b30e51a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/io.h
@@ -0,0 +1,113 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_IO_H
+#define _ASM_IO_H
+#include <linux/compiler.h>
+#include <linux/kernel.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/types.h>
+#include <asm/addrspace.h>
+#include <asm/byteorder.h>
+#include <asm/cpu.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/cpu-features.h>
+#include <asm-generic/iomap.h>
+#include <asm/page.h>
+#include <asm/pgtable-bits.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/processor.h>
+#include <asm/string.h>
+#include <ioremap.h>
+#include <mangle-port.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#undef CONF_SLOWDOWN_IO
+#define __raw_ioswabb(a, x) (x)
+#define __raw_ioswabw(a, x) (x)
+#define __raw_ioswabl(a, x) (x)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __raw_ioswabq(a, x) (x)
+#define ____raw_ioswabq(a, x) (x)
+#define IO_SPACE_LIMIT 0xffff
+#define __SLOW_DOWN_IO   __asm__ __volatile__(   "sb\t$0,0x80(%0)"   : : "r" (mips_io_port_base));
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef CONF_SLOWDOWN_IO
+#ifdef REALLY_SLOW_IO
+#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SLOW_DOWN_IO __SLOW_DOWN_IO
+#endif
+#else
+#define SLOW_DOWN_IO
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define isa_page_to_bus page_to_phys
+#define virt_to_bus virt_to_phys
+#define bus_to_virt phys_to_virt
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define page_to_phys(page) ((dma_addr_t)page_to_pfn(page) << PAGE_SHIFT)
+#define __IS_LOW512(addr) (!((phys_t)(addr) & (phys_t) ~0x1fffffffULL))
+#undef __IS_LOW512
+#define ioremap(offset, size)   __ioremap_mode((offset), (size), _CACHE_UNCACHED)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ioremap_nocache(offset, size)   __ioremap_mode((offset), (size), _CACHE_UNCACHED)
+#define ioremap_cachable(offset, size)   __ioremap_mode((offset), (size), _page_cachable_default)
+#define ioremap_cacheable_cow(offset, size)   __ioremap_mode((offset), (size), _CACHE_CACHABLE_COW)
+#define ioremap_uncached_accelerated(offset, size)   __ioremap_mode((offset), (size), _CACHE_UNCACHED_ACCELERATED)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __IS_KSEG1(addr) (((unsigned long)(addr) & ~0x1fffffffUL) == CKSEG1)
+#undef __IS_KSEG1
+#define __BUILD_MEMORY_SINGLE(pfx, bwlq, type, irq)    static inline void pfx##write##bwlq(type val,   volatile void __iomem *mem)  {   volatile type *__mem;   type __val;     __mem = (void *)__swizzle_addr_##bwlq((unsigned long)(mem));     __val = pfx##ioswab##bwlq(__mem, val);     if (sizeof(type) != sizeof(u64) || sizeof(u64) == sizeof(long))   *__mem = __val;   else if (cpu_has_64bits) {   unsigned long __flags;   type __tmp;     if (irq)   local_irq_save(__flags);   __asm__ __volatile__(   ".set	mips3" "\t\t# __writeq""\n\t"   "dsll32	%L0, %L0, 0" "\n\t"   "dsrl32	%L0, %L0, 0" "\n\t"   "dsll32	%M0, %M0, 0" "\n\t"   "or	%L0, %L0, %M0" "\n\t"   "sd	%L0, %2" "\n\t"   ".set	mips0" "\n"   : "=r" (__tmp)   : "0" (__val), "m" (*__mem));   if (irq)   local_irq_restore(__flags);   } else   BUG();  }    static inline type pfx##read##bwlq(const volatile void __iomem *mem)  {   volatile type *__mem;   type __val;     __mem = (void *)__swizzle_addr_##bwlq((unsigned long)(mem));     if (sizeof(type) != sizeof(u64) || sizeof(u64) == sizeof(long))   __val = *__mem;   else if (cpu_has_64bits) {   unsigned long __flags;     if (irq)   local_irq_save(__flags);   __asm__ __volatile__(   ".set	mips3" "\t\t# __readq" "\n\t"   "ld	%L0, %1" "\n\t"   "dsra32	%M0, %L0, 0" "\n\t"   "sll	%L0, %L0, 0" "\n\t"   ".set	mips0" "\n"   : "=r" (__val)   : "m" (*__mem));   if (irq)   local_irq_restore(__flags);   } else {   __val = 0;   BUG();   }     return pfx##ioswab##bwlq(__mem, __val);  }
+#define __BUILD_IOPORT_SINGLE(pfx, bwlq, type, p, slow)    static inline void pfx##out##bwlq##p(type val, unsigned long port)  {   volatile type *__addr;   type __val;     __addr = (void *)__swizzle_addr_##bwlq(mips_io_port_base + port);     __val = pfx##ioswab##bwlq(__addr, val);         BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));     *__addr = __val;   slow;  }    static inline type pfx##in##bwlq##p(unsigned long port)  {   volatile type *__addr;   type __val;     __addr = (void *)__swizzle_addr_##bwlq(mips_io_port_base + port);     BUILD_BUG_ON(sizeof(type) > sizeof(unsigned long));     __val = *__addr;   slow;     return pfx##ioswab##bwlq(__addr, __val);  }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __BUILD_MEMORY_PFX(bus, bwlq, type)    __BUILD_MEMORY_SINGLE(bus, bwlq, type, 1)
+#define BUILDIO_MEM(bwlq, type)    __BUILD_MEMORY_PFX(__raw_, bwlq, type)  __BUILD_MEMORY_PFX(, bwlq, type)  __BUILD_MEMORY_PFX(__mem_, bwlq, type)  
+#define __BUILD_IOPORT_PFX(bus, bwlq, type)   __BUILD_IOPORT_SINGLE(bus, bwlq, type, ,)   __BUILD_IOPORT_SINGLE(bus, bwlq, type, _p, SLOW_DOWN_IO)
+#define BUILDIO_IOPORT(bwlq, type)   __BUILD_IOPORT_PFX(, bwlq, type)   __BUILD_IOPORT_PFX(__mem_, bwlq, type)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __BUILDIO(bwlq, type)    __BUILD_MEMORY_SINGLE(____raw_, bwlq, type, 0)
+#define readb_relaxed readb
+#define readw_relaxed readw
+#define readl_relaxed readl
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define readq_relaxed readq
+#define readq readq
+#define writeq writeq
+#define __BUILD_MEMORY_STRING(bwlq, type)    static inline void writes##bwlq(volatile void __iomem *mem,   const void *addr, unsigned int count)  {   const volatile type *__addr = addr;     while (count--) {   __mem_write##bwlq(*__addr, mem);   __addr++;   }  }    static inline void reads##bwlq(volatile void __iomem *mem, void *addr,   unsigned int count)  {   volatile type *__addr = addr;     while (count--) {   *__addr = __mem_read##bwlq(mem);   __addr++;   }  }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __BUILD_IOPORT_STRING(bwlq, type)    static inline void outs##bwlq(unsigned long port, const void *addr,   unsigned int count)  {   const volatile type *__addr = addr;     while (count--) {   __mem_out##bwlq(*__addr, port);   __addr++;   }  }    static inline void ins##bwlq(unsigned long port, void *addr,   unsigned int count)  {   volatile type *__addr = addr;     while (count--) {   *__addr = __mem_in##bwlq(port);   __addr++;   }  }
+#define BUILDSTRING(bwlq, type)    __BUILD_MEMORY_STRING(bwlq, type)  __BUILD_IOPORT_STRING(bwlq, type)
+#define mmiowb() asm volatile ("sync" ::: "memory")
+#define dma_cache_wback_inv(start,size)   do { (void) (start); (void) (size); } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define dma_cache_wback(start,size)   do { (void) (start); (void) (size); } while (0)
+#define dma_cache_inv(start,size)   do { (void) (start); (void) (size); } while (0)
+#ifdef __MIPSEB__
+#define __CSR_32_ADJUST 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define __CSR_32_ADJUST 0
+#endif
+#define csr_out32(v, a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define csr_in32(a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
+#define xlate_dev_mem_ptr(p) __va(p)
+#define xlate_dev_kmem_ptr(p) p
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ioctl.h b/ndk/platforms/android-9/arch-mips/include/asm/ioctl.h
new file mode 100644
index 0000000..09dd951
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ioctl.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_IOCTL_H
+#define _ASM_IOCTL_H
+#define _IOC_NRBITS 8
+#define _IOC_TYPEBITS 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOC_SIZEBITS 13
+#define _IOC_DIRBITS 3
+#define _IOC_NRMASK ((1 << _IOC_NRBITS)-1)
+#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS)-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS)-1)
+#define _IOC_DIRMASK ((1 << _IOC_DIRBITS)-1)
+#define _IOC_NRSHIFT 0
+#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOC_SIZESHIFT (_IOC_TYPESHIFT+_IOC_TYPEBITS)
+#define _IOC_DIRSHIFT (_IOC_SIZESHIFT+_IOC_SIZEBITS)
+#define _IOC_NONE 1U
+#define _IOC_READ 2U
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOC_WRITE 4U
+#define _IOC_VOID 0x20000000
+#define _IOC_OUT 0x40000000
+#define _IOC_IN 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOC_INOUT (IOC_IN|IOC_OUT)
+#define _IOC(dir, type, nr, size)   (((dir) << _IOC_DIRSHIFT) |   ((type) << _IOC_TYPESHIFT) |   ((nr) << _IOC_NRSHIFT) |   ((size) << _IOC_SIZESHIFT))
+extern unsigned int __invalid_size_argument_for_IOC;
+#define _IOC_TYPECHECK(t)   ((sizeof(t) == sizeof(t[1]) &&   sizeof(t) < (1 << _IOC_SIZEBITS)) ?   sizeof(t) : __invalid_size_argument_for_IOC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IO(type, nr) _IOC(_IOC_NONE, (type), (nr), 0)
+#define _IOR(type, nr, size) _IOC(_IOC_READ, (type), (nr), (_IOC_TYPECHECK(size)))
+#define _IOW(type, nr, size) _IOC(_IOC_WRITE, (type), (nr), (_IOC_TYPECHECK(size)))
+#define _IOWR(type, nr, size) _IOC(_IOC_READ|_IOC_WRITE, (type), (nr), (_IOC_TYPECHECK(size)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOR_BAD(type, nr, size) _IOC(_IOC_READ, (type), (nr), sizeof(size))
+#define _IOW_BAD(type, nr, size) _IOC(_IOC_WRITE, (type), (nr), sizeof(size))
+#define _IOWR_BAD(type, nr, size) _IOC(_IOC_READ|_IOC_WRITE, (type), (nr), sizeof(size))
+#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
+#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
+#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
+#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT)
+#define IOC_INOUT ((_IOC_WRITE|_IOC_READ) << _IOC_DIRSHIFT)
+#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT)
+#define IOCSIZE_SHIFT (_IOC_SIZESHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ioctls.h b/ndk/platforms/android-9/arch-mips/include/asm/ioctls.h
new file mode 100644
index 0000000..20a02e8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ioctls.h
@@ -0,0 +1,118 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_IOCTLS_H
+#define __ASM_IOCTLS_H
+#include <asm/ioctl.h>
+#define TCGETA 0x5401
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSETA 0x5402  
+#define TCSETAW 0x5403
+#define TCSETAF 0x5404
+#define TCSBRK 0x5405
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCXONC 0x5406
+#define TCFLSH 0x5407
+#define TCGETS 0x540d
+#define TCSETS 0x540e
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSETSW 0x540f
+#define TCSETSF 0x5410
+#define TIOCEXCL 0x740d  
+#define TIOCNXCL 0x740e  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCOUTQ 0x7472  
+#define TIOCSTI 0x5472  
+#define TIOCMGET 0x741d  
+#define TIOCMBIS 0x741b  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCMBIC 0x741c  
+#define TIOCMSET 0x741a  
+#define TIOCPKT 0x5470  
+#define TIOCPKT_DATA 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCPKT_FLUSHREAD 0x01  
+#define TIOCPKT_FLUSHWRITE 0x02  
+#define TIOCPKT_STOP 0x04  
+#define TIOCPKT_START 0x08  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCPKT_NOSTOP 0x10  
+#define TIOCPKT_DOSTOP 0x20  
+#define TIOCSWINSZ _IOW('t', 103, struct winsize)  
+#define TIOCGWINSZ _IOR('t', 104, struct winsize)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCNOTTY 0x5471  
+#define TIOCSETD 0x7401
+#define TIOCGETD 0x7400
+#define FIOCLEX 0x6601
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FIONCLEX 0x6602
+#define FIOASYNC 0x667d
+#define FIONBIO 0x667e
+#define FIOQSIZE 0x667f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCGLTC 0x7474  
+#define TIOCSLTC 0x7475  
+#define TIOCSPGRP _IOW('t', 118, int)  
+#define TIOCGPGRP _IOR('t', 119, int)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCCONS _IOW('t', 120, int)  
+#define FIONREAD 0x467f
+#define TIOCINQ FIONREAD
+#define TIOCGETP 0x7408
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCSETP 0x7409
+#define TIOCSETN 0x740a  
+#define TIOCSBRK 0x5427  
+#define TIOCCBRK 0x5428  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCGSID 0x7416  
+#define TCGETS2 _IOR('T', 0x2A, struct termios2)
+#define TCSETS2 _IOW('T', 0x2B, struct termios2)
+#define TCSETSW2 _IOW('T', 0x2C, struct termios2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSETSF2 _IOW('T', 0x2D, struct termios2)
+#define TIOCGPTN _IOR('T', 0x30, unsigned int)  
+#define TIOCSPTLCK _IOW('T', 0x31, int)  
+#define TIOCSCTTY 0x5480  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCGSOFTCAR 0x5481
+#define TIOCSSOFTCAR 0x5482
+#define TIOCLINUX 0x5483
+#define TIOCGSERIAL 0x5484
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCSSERIAL 0x5485
+#define TCSBRKP 0x5486  
+#define TIOCSERCONFIG 0x5488
+#define TIOCSERGWILD 0x5489
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCSERSWILD 0x548a
+#define TIOCGLCKTRMIOS 0x548b
+#define TIOCSLCKTRMIOS 0x548c
+#define TIOCSERGSTRUCT 0x548d  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCSERGETLSR 0x548e  
+#define TIOCSERGETMULTI 0x548f  
+#define TIOCSERSETMULTI 0x5490  
+#define TIOCMIWAIT 0x5491  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCGICOUNT 0x5492  
+#define TIOCGHAYESESP 0x5493  
+#define TIOCSHAYESESP 0x5494  
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ip32/crime.h b/ndk/platforms/android-9/arch-mips/include/asm/ip32/crime.h
new file mode 100644
index 0000000..a979708
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ip32/crime.h
@@ -0,0 +1,171 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_CRIME_H__
+#define __ASM_CRIME_H__
+#define CRIME_BASE 0x14000000  
+struct sgi_crime {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long id;
+#define CRIME_ID_MASK 0xff
+#define CRIME_ID_IDBITS 0xf0
+#define CRIME_ID_IDVALUE 0xa0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_ID_REV 0x0f
+#define CRIME_REV_PETTY 0x00
+#define CRIME_REV_11 0x11
+#define CRIME_REV_13 0x13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_REV_14 0x14
+ volatile unsigned long control;
+#define CRIME_CONTROL_MASK 0x3fff
+#define CRIME_CONTROL_TRITON_SYSADC 0x2000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_CONTROL_CRIME_SYSADC 0x1000
+#define CRIME_CONTROL_HARD_RESET 0x0800
+#define CRIME_CONTROL_SOFT_RESET 0x0400
+#define CRIME_CONTROL_DOG_ENA 0x0200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_CONTROL_ENDIANESS 0x0100
+#define CRIME_CONTROL_ENDIAN_BIG 0x0100
+#define CRIME_CONTROL_ENDIAN_LITTLE 0x0000
+#define CRIME_CONTROL_CQUEUE_HWM 0x000f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_CONTROL_CQUEUE_SHFT 0
+#define CRIME_CONTROL_WBUF_HWM 0x00f0
+#define CRIME_CONTROL_WBUF_SHFT 8
+ volatile unsigned long istat;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long imask;
+ volatile unsigned long soft_int;
+ volatile unsigned long hard_int;
+#define MACE_VID_IN1_INT BIT(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACE_VID_IN2_INT BIT(1)
+#define MACE_VID_OUT_INT BIT(2)
+#define MACE_ETHERNET_INT BIT(3)
+#define MACE_SUPERIO_INT BIT(4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACE_MISC_INT BIT(5)
+#define MACE_AUDIO_INT BIT(6)
+#define MACE_PCI_BRIDGE_INT BIT(7)
+#define MACEPCI_SCSI0_INT BIT(8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_SCSI1_INT BIT(9)
+#define MACEPCI_SLOT0_INT BIT(10)
+#define MACEPCI_SLOT1_INT BIT(11)
+#define MACEPCI_SLOT2_INT BIT(12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_SHARED0_INT BIT(13)
+#define MACEPCI_SHARED1_INT BIT(14)
+#define MACEPCI_SHARED2_INT BIT(15)
+#define CRIME_GBE0_INT BIT(16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_GBE1_INT BIT(17)
+#define CRIME_GBE2_INT BIT(18)
+#define CRIME_GBE3_INT BIT(19)
+#define CRIME_CPUERR_INT BIT(20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MEMERR_INT BIT(21)
+#define CRIME_RE_EMPTY_E_INT BIT(22)
+#define CRIME_RE_FULL_E_INT BIT(23)
+#define CRIME_RE_IDLE_E_INT BIT(24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_RE_EMPTY_L_INT BIT(25)
+#define CRIME_RE_FULL_L_INT BIT(26)
+#define CRIME_RE_IDLE_L_INT BIT(27)
+#define CRIME_SOFT0_INT BIT(28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_SOFT1_INT BIT(29)
+#define CRIME_SOFT2_INT BIT(30)
+#define CRIME_SYSCORERR_INT CRIME_SOFT2_INT
+#define CRIME_VICE_INT BIT(31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MACE_INT_MASK 0x8f
+#define CRIME_MACEISA_INT_MASK 0x70
+#define CRIME_MACEPCI_INT_MASK 0xff00
+#define CRIME_CRIME_INT_MASK 0xffff0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long watchdog;
+#define CRIME_DOG_POWER_ON_RESET 0x00010000
+#define CRIME_DOG_WARM_RESET 0x00080000
+#define CRIME_DOG_TIMEOUT (CRIME_DOG_POWER_ON_RESET|CRIME_DOG_WARM_RESET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_DOG_VALUE 0x00007fff
+ volatile unsigned long timer;
+#define CRIME_MASTER_FREQ 66666500  
+#define CRIME_NS_PER_TICK 15  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long cpu_error_addr;
+#define CRIME_CPU_ERROR_ADDR_MASK 0x3ffffffff
+ volatile unsigned long cpu_error_stat;
+#define CRIME_CPU_ERROR_MASK 0x7  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_CPU_ERROR_CPU_ILL_ADDR 0x4
+#define CRIME_CPU_ERROR_VICE_WRT_PRTY 0x2
+#define CRIME_CPU_ERROR_CPU_WRT_PRTY 0x1
+ unsigned long _pad0[54];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long mc_ctrl;
+ volatile unsigned long bank_ctrl[8];
+#define CRIME_MEM_BANK_CONTROL_MASK 0x11f  
+#define CRIME_MEM_BANK_CONTROL_ADDR 0x01f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MEM_BANK_CONTROL_SDRAM_SIZE 0x100
+#define CRIME_MAXBANKS 8
+ volatile unsigned long mem_ref_counter;
+#define CRIME_MEM_REF_COUNTER_MASK 0x3ff  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long mem_error_stat;
+#define CRIME_MEM_ERROR_STAT_MASK 0x0ff7ffff  
+#define CRIME_MEM_ERROR_MACE_ID 0x0000007f
+#define CRIME_MEM_ERROR_MACE_ACCESS 0x00000080
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MEM_ERROR_RE_ID 0x00007f00
+#define CRIME_MEM_ERROR_RE_ACCESS 0x00008000
+#define CRIME_MEM_ERROR_GBE_ACCESS 0x00010000
+#define CRIME_MEM_ERROR_VICE_ACCESS 0x00020000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MEM_ERROR_CPU_ACCESS 0x00040000
+#define CRIME_MEM_ERROR_RESERVED 0x00080000
+#define CRIME_MEM_ERROR_SOFT_ERR 0x00100000
+#define CRIME_MEM_ERROR_HARD_ERR 0x00200000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MEM_ERROR_MULTIPLE 0x00400000
+#define CRIME_MEM_ERROR_ECC 0x01800000
+#define CRIME_MEM_ERROR_MEM_ECC_RD 0x00800000
+#define CRIME_MEM_ERROR_MEM_ECC_RMW 0x01000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRIME_MEM_ERROR_INV 0x0e000000
+#define CRIME_MEM_ERROR_INV_MEM_ADDR_RD 0x02000000
+#define CRIME_MEM_ERROR_INV_MEM_ADDR_WR 0x04000000
+#define CRIME_MEM_ERROR_INV_MEM_ADDR_RMW 0x08000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long mem_error_addr;
+#define CRIME_MEM_ERROR_ADDR_MASK 0x3fffffff
+ volatile unsigned long mem_ecc_syn;
+#define CRIME_MEM_ERROR_ECC_SYN_MASK 0xffffffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long mem_ecc_chk;
+#define CRIME_MEM_ERROR_ECC_CHK_MASK 0xffffffff
+ volatile unsigned long mem_ecc_repl;
+#define CRIME_MEM_ERROR_ECC_REPL_MASK 0xffffffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define CRIME_HI_MEM_BASE 0x40000000  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ip32/mace.h b/ndk/platforms/android-9/arch-mips/include/asm/ip32/mace.h
new file mode 100644
index 0000000..c2c149d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ip32/mace.h
@@ -0,0 +1,351 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MACE_H__
+#define __ASM_MACE_H__
+#define MACE_BASE 0x1f000000  
+struct mace_pci {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned int error_addr;
+ volatile unsigned int error;
+#define MACEPCI_ERROR_MASTER_ABORT BIT(31)
+#define MACEPCI_ERROR_TARGET_ABORT BIT(30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_ERROR_DATA_PARITY_ERR BIT(29)
+#define MACEPCI_ERROR_RETRY_ERR BIT(28)
+#define MACEPCI_ERROR_ILLEGAL_CMD BIT(27)
+#define MACEPCI_ERROR_SYSTEM_ERR BIT(26)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_ERROR_INTERRUPT_TEST BIT(25)
+#define MACEPCI_ERROR_PARITY_ERR BIT(24)
+#define MACEPCI_ERROR_OVERRUN BIT(23)
+#define MACEPCI_ERROR_RSVD BIT(22)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_ERROR_MEMORY_ADDR BIT(21)
+#define MACEPCI_ERROR_CONFIG_ADDR BIT(20)
+#define MACEPCI_ERROR_MASTER_ABORT_ADDR_VALID BIT(19)
+#define MACEPCI_ERROR_TARGET_ABORT_ADDR_VALID BIT(18)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_ERROR_DATA_PARITY_ADDR_VALID BIT(17)
+#define MACEPCI_ERROR_RETRY_ADDR_VALID BIT(16)
+#define MACEPCI_ERROR_SIG_TABORT BIT(4)
+#define MACEPCI_ERROR_DEVSEL_MASK 0xc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_ERROR_DEVSEL_FAST 0
+#define MACEPCI_ERROR_DEVSEL_MED 0x40
+#define MACEPCI_ERROR_DEVSEL_SLOW 0x80
+#define MACEPCI_ERROR_FBB BIT(1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_ERROR_66MHZ BIT(0)
+ volatile unsigned int control;
+#define MACEPCI_CONTROL_INT(x) BIT(x)
+#define MACEPCI_CONTROL_INT_MASK 0xff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_CONTROL_SERR_ENA BIT(8)
+#define MACEPCI_CONTROL_ARB_N6 BIT(9)
+#define MACEPCI_CONTROL_PARITY_ERR BIT(10)
+#define MACEPCI_CONTROL_MRMRA_ENA BIT(11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_CONTROL_ARB_N3 BIT(12)
+#define MACEPCI_CONTROL_ARB_N4 BIT(13)
+#define MACEPCI_CONTROL_ARB_N5 BIT(14)
+#define MACEPCI_CONTROL_PARK_LIU BIT(15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_CONTROL_INV_INT(x) BIT(16+x)
+#define MACEPCI_CONTROL_INV_INT_MASK 0x00ff0000
+#define MACEPCI_CONTROL_OVERRUN_INT BIT(24)
+#define MACEPCI_CONTROL_PARITY_INT BIT(25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_CONTROL_SERR_INT BIT(26)
+#define MACEPCI_CONTROL_IT_INT BIT(27)
+#define MACEPCI_CONTROL_RE_INT BIT(28)
+#define MACEPCI_CONTROL_DPED_INT BIT(29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_CONTROL_TAR_INT BIT(30)
+#define MACEPCI_CONTROL_MAR_INT BIT(31)
+ volatile unsigned int rev;
+ unsigned int _pad[0xcf8/4 - 4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned int config_addr;
+ union {
+ volatile unsigned char b[4];
+ volatile unsigned short w[2];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned int l;
+ } config_data;
+};
+#define MACEPCI_LOW_MEMORY 0x1a000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_LOW_IO 0x18000000
+#define MACEPCI_SWAPPED_VIEW 0
+#define MACEPCI_NATIVE_VIEW 0x40000000
+#define MACEPCI_IO 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPCI_HI_MEMORY 0x280000000
+#define MACEPCI_HI_IO 0x100000000
+struct mace_video {
+ unsigned long xxx;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct mace_ethernet {
+ volatile unsigned long mac_ctrl;
+ volatile unsigned long int_stat;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long dma_ctrl;
+ volatile unsigned long timer;
+ volatile unsigned long tx_int_al;
+ volatile unsigned long rx_int_al;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long tx_info;
+ volatile unsigned long tx_info_al;
+ volatile unsigned long rx_buff;
+ volatile unsigned long rx_buff_al1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long rx_buff_al2;
+ volatile unsigned long diag;
+ volatile unsigned long phy_data;
+ volatile unsigned long phy_regs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long phy_trans_go;
+ volatile unsigned long backoff_seed;
+ volatile unsigned long imq_reserved[4];
+ volatile unsigned long mac_addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long mac_addr2;
+ volatile unsigned long mcast_filter;
+ volatile unsigned long tx_ring_base;
+ volatile unsigned long tx_pkt1_hdr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long tx_pkt1_ptr[3];
+ volatile unsigned long tx_pkt2_hdr;
+ volatile unsigned long tx_pkt2_ptr[3];
+ volatile unsigned long rx_fifo;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct mace_audio {
+ volatile unsigned long control;
+ volatile unsigned long codec_control;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long codec_mask;
+ volatile unsigned long codec_read;
+ struct {
+ volatile unsigned long control;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long read_ptr;
+ volatile unsigned long write_ptr;
+ volatile unsigned long depth;
+ } chan[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct mace_parport {
+#define MACEPAR_CONTEXT_LASTFLAG BIT(63)
+#define MACEPAR_CONTEXT_DATA_BOUND 0x0000000000001000UL
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPAR_CONTEXT_DATALEN_MASK 0x00000fff00000000UL
+#define MACEPAR_CONTEXT_DATALEN_SHIFT 32
+#define MACEPAR_CONTEXT_BASEADDR_MASK 0x00000000ffffffffUL
+ volatile u64 context_a;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u64 context_b;
+#define MACEPAR_CTLSTAT_DIRECTION BIT(0)
+#define MACEPAR_CTLSTAT_ENABLE BIT(1)
+#define MACEPAR_CTLSTAT_RESET BIT(2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPAR_CTLSTAT_CTXB_VALID BIT(3)
+#define MACEPAR_CTLSTAT_CTXA_VALID BIT(4)
+ volatile u64 cntlstat;
+#define MACEPAR_DIAG_CTXINUSE BIT(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEPAR_DIAG_DMACTIVE BIT(1)
+#define MACEPAR_DIAG_CTRMASK 0x0000000000003ffcUL
+#define MACEPAR_DIAG_CTRSHIFT 2
+ volatile u64 diagnostic;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct mace_isactrl {
+ volatile unsigned long ringbase;
+#define MACEISA_RINGBUFFERS_SIZE (8 * 4096)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long misc;
+#define MACEISA_FLASH_WE BIT(0)  
+#define MACEISA_PWD_CLEAR BIT(1)  
+#define MACEISA_NIC_DEASSERT BIT(2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_NIC_DATA BIT(3)
+#define MACEISA_LED_RED BIT(4)  
+#define MACEISA_LED_GREEN BIT(5)  
+#define MACEISA_DP_RAM_ENABLE BIT(6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long istat;
+ volatile unsigned long imask;
+#define MACEISA_AUDIO_SW_INT BIT(0)
+#define MACEISA_AUDIO_SC_INT BIT(1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_AUDIO1_DMAT_INT BIT(2)
+#define MACEISA_AUDIO1_OF_INT BIT(3)
+#define MACEISA_AUDIO2_DMAT_INT BIT(4)
+#define MACEISA_AUDIO2_MERR_INT BIT(5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_AUDIO3_DMAT_INT BIT(6)
+#define MACEISA_AUDIO3_MERR_INT BIT(7)
+#define MACEISA_RTC_INT BIT(8)
+#define MACEISA_KEYB_INT BIT(9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_KEYB_POLL_INT BIT(10)
+#define MACEISA_MOUSE_INT BIT(11)
+#define MACEISA_MOUSE_POLL_INT BIT(12)
+#define MACEISA_TIMER0_INT BIT(13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_TIMER1_INT BIT(14)
+#define MACEISA_TIMER2_INT BIT(15)
+#define MACEISA_PARALLEL_INT BIT(16)
+#define MACEISA_PAR_CTXA_INT BIT(17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_PAR_CTXB_INT BIT(18)
+#define MACEISA_PAR_MERR_INT BIT(19)
+#define MACEISA_SERIAL1_INT BIT(20)
+#define MACEISA_SERIAL1_TDMAT_INT BIT(21)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_SERIAL1_TDMAPR_INT BIT(22)
+#define MACEISA_SERIAL1_TDMAME_INT BIT(23)
+#define MACEISA_SERIAL1_RDMAT_INT BIT(24)
+#define MACEISA_SERIAL1_RDMAOR_INT BIT(25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_SERIAL2_INT BIT(26)
+#define MACEISA_SERIAL2_TDMAT_INT BIT(27)
+#define MACEISA_SERIAL2_TDMAPR_INT BIT(28)
+#define MACEISA_SERIAL2_TDMAME_INT BIT(29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEISA_SERIAL2_RDMAT_INT BIT(30)
+#define MACEISA_SERIAL2_RDMAOR_INT BIT(31)
+ volatile unsigned long _pad[0x2000/8 - 4];
+ volatile unsigned long dp_ram[0x400];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct mace_parport parport;
+};
+struct mace_ps2port {
+ volatile unsigned long tx;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long rx;
+ volatile unsigned long control;
+ volatile unsigned long status;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct mace_ps2 {
+ struct mace_ps2port keyb;
+ struct mace_ps2port mouse;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct mace_i2c {
+ volatile unsigned long config;
+#define MACEI2C_RESET BIT(0)
+#define MACEI2C_FAST BIT(1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACEI2C_DATA_OVERRIDE BIT(2)
+#define MACEI2C_CLOCK_OVERRIDE BIT(3)
+#define MACEI2C_DATA_STATUS BIT(4)
+#define MACEI2C_CLOCK_STATUS BIT(5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long control;
+ volatile unsigned long data;
+};
+typedef union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long ust_msc;
+ struct reg {
+ volatile unsigned int ust;
+ volatile unsigned int msc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } reg;
+} timer_reg;
+struct mace_timers {
+ volatile unsigned long ust;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MACE_UST_PERIOD_NS 960
+ volatile unsigned long compare1;
+ volatile unsigned long compare2;
+ volatile unsigned long compare3;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ timer_reg audio_in;
+ timer_reg audio_out1;
+ timer_reg audio_out2;
+ timer_reg video_in1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ timer_reg video_in2;
+ timer_reg video_out;
+};
+struct mace_perif {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct mace_audio audio;
+ char _pad0[0x10000 - sizeof(struct mace_audio)];
+ struct mace_isactrl ctrl;
+ char _pad1[0x10000 - sizeof(struct mace_isactrl)];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct mace_ps2 ps2;
+ char _pad2[0x10000 - sizeof(struct mace_ps2)];
+ struct mace_i2c i2c;
+ char _pad3[0x10000 - sizeof(struct mace_i2c)];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct mace_timers timers;
+ char _pad4[0x10000 - sizeof(struct mace_timers)];
+};
+struct mace_parallel {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct mace_ecp1284 {
+};
+struct mace_serial {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile unsigned long xxx;
+};
+struct mace_isa {
+ struct mace_parallel parallel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char _pad1[0x8000 - sizeof(struct mace_parallel)];
+ struct mace_ecp1284 ecp1284;
+ char _pad2[0x8000 - sizeof(struct mace_ecp1284)];
+ struct mace_serial serial1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char _pad3[0x8000 - sizeof(struct mace_serial)];
+ struct mace_serial serial2;
+ char _pad4[0x8000 - sizeof(struct mace_serial)];
+ volatile unsigned char rtc[0x10000];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct sgi_mace {
+ char _reserved[0x80000];
+ struct mace_pci pci;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char _pad0[0x80000 - sizeof(struct mace_pci)];
+ struct mace_video video_in1;
+ char _pad1[0x80000 - sizeof(struct mace_video)];
+ struct mace_video video_in2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char _pad2[0x80000 - sizeof(struct mace_video)];
+ struct mace_video video_out;
+ char _pad3[0x80000 - sizeof(struct mace_video)];
+ struct mace_ethernet eth;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char _pad4[0x80000 - sizeof(struct mace_ethernet)];
+ struct mace_perif perif;
+ char _pad5[0x80000 - sizeof(struct mace_perif)];
+ struct mace_isa isa;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char _pad6[0x80000 - sizeof(struct mace_isa)];
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ipcbuf.h b/ndk/platforms/android-9/arch-mips/include/asm/ipcbuf.h
new file mode 100644
index 0000000..9be3da8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ipcbuf.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_IPCBUF_H
+#define _ASM_IPCBUF_H
+struct ipc64_perm
+{
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __kernel_key_t key;
+ __kernel_uid_t uid;
+ __kernel_gid_t gid;
+ __kernel_uid_t cuid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __kernel_gid_t cgid;
+ __kernel_mode_t mode;
+ unsigned short seq;
+ unsigned short __pad1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long __unused1;
+ unsigned long __unused2;
+};
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/irq.h b/ndk/platforms/android-9/arch-mips/include/asm/irq.h
new file mode 100644
index 0000000..042c951
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/irq.h
@@ -0,0 +1,33 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_IRQ_H
+#define _ASM_IRQ_H
+#include <linux/linkage.h>
+#include <asm/mipsmtregs.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <irq.h>
+#define irq_canonicalize(irq) (irq)  
+#define IRQ_AFFINITY_HOOK(irq) do { } while (0)
+#define __DO_IRQ_SMTC_HOOK(irq)  do {   IRQ_AFFINITY_HOOK(irq);  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NO_AFFINITY_IRQ_SMTC_HOOK(irq) do { } while (0)
+#define do_IRQ(irq)  do {   irq_enter();   __DO_IRQ_SMTC_HOOK(irq);   generic_handle_irq(irq);   irq_exit();  } while (0)
+#define CP0_LEGACY_COMPARE_IRQ 7
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/irq_gt641xx.h b/ndk/platforms/android-9/arch-mips/include/asm/irq_gt641xx.h
new file mode 100644
index 0000000..2a341d8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/irq_gt641xx.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_IRQ_GT641XX_H
+#define _ASM_IRQ_GT641XX_H
+#ifndef GT641XX_IRQ_BASE
+#define GT641XX_IRQ_BASE 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define GT641XX_MEMORY_OUT_OF_RANGE_IRQ (GT641XX_IRQ_BASE + 1)
+#define GT641XX_DMA_OUT_OF_RANGE_IRQ (GT641XX_IRQ_BASE + 2)
+#define GT641XX_CPU_ACCESS_OUT_OF_RANGE_IRQ (GT641XX_IRQ_BASE + 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_DMA0_IRQ (GT641XX_IRQ_BASE + 4)
+#define GT641XX_DMA1_IRQ (GT641XX_IRQ_BASE + 5)
+#define GT641XX_DMA2_IRQ (GT641XX_IRQ_BASE + 6)
+#define GT641XX_DMA3_IRQ (GT641XX_IRQ_BASE + 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_TIMER0_IRQ (GT641XX_IRQ_BASE + 8)
+#define GT641XX_TIMER1_IRQ (GT641XX_IRQ_BASE + 9)
+#define GT641XX_TIMER2_IRQ (GT641XX_IRQ_BASE + 10)
+#define GT641XX_TIMER3_IRQ (GT641XX_IRQ_BASE + 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_PCI_0_MASTER_READ_ERROR_IRQ (GT641XX_IRQ_BASE + 12)
+#define GT641XX_PCI_0_SLAVE_WRITE_ERROR_IRQ (GT641XX_IRQ_BASE + 13)
+#define GT641XX_PCI_0_MASTER_WRITE_ERROR_IRQ (GT641XX_IRQ_BASE + 14)
+#define GT641XX_PCI_0_SLAVE_READ_ERROR_IRQ (GT641XX_IRQ_BASE + 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_PCI_0_ADDRESS_ERROR_IRQ (GT641XX_IRQ_BASE + 16)
+#define GT641XX_MEMORY_ERROR_IRQ (GT641XX_IRQ_BASE + 17)
+#define GT641XX_PCI_0_MASTER_ABORT_IRQ (GT641XX_IRQ_BASE + 18)
+#define GT641XX_PCI_0_TARGET_ABORT_IRQ (GT641XX_IRQ_BASE + 19)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_PCI_0_RETRY_TIMEOUT_IRQ (GT641XX_IRQ_BASE + 20)
+#define GT641XX_CPU_INT0_IRQ (GT641XX_IRQ_BASE + 21)
+#define GT641XX_CPU_INT1_IRQ (GT641XX_IRQ_BASE + 22)
+#define GT641XX_CPU_INT2_IRQ (GT641XX_IRQ_BASE + 23)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_CPU_INT3_IRQ (GT641XX_IRQ_BASE + 24)
+#define GT641XX_CPU_INT4_IRQ (GT641XX_IRQ_BASE + 25)
+#define GT641XX_PCI_INT0_IRQ (GT641XX_IRQ_BASE + 26)
+#define GT641XX_PCI_INT1_IRQ (GT641XX_IRQ_BASE + 27)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GT641XX_PCI_INT2_IRQ (GT641XX_IRQ_BASE + 28)
+#define GT641XX_PCI_INT3_IRQ (GT641XX_IRQ_BASE + 29)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/irq_regs.h b/ndk/platforms/android-9/arch-mips/include/asm/irq_regs.h
new file mode 100644
index 0000000..5745c5f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/irq_regs.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_IRQ_REGS_H
+#define __ASM_IRQ_REGS_H
+#define ARCH_HAS_OWN_IRQ_REGS
+#include <linux/thread_info.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/jazz.h b/ndk/platforms/android-9/arch-mips/include/asm/jazz.h
new file mode 100644
index 0000000..5e6ea8f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/jazz.h
@@ -0,0 +1,168 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_JAZZ_H
+#define __ASM_JAZZ_H
+#define JAZZ_LOCAL_IO_SPACE 0xe0000000
+#define PICA_ASIC_REVISION 0xe0000008
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PICA_LED 0xe000f000
+#define LED_DOT 0x01
+#define LED_SPACE 0x00
+#define LED_0 0xfc
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LED_1 0x60
+#define LED_2 0xda
+#define LED_3 0xf2
+#define LED_4 0x66
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LED_5 0xb6
+#define LED_6 0xbe
+#define LED_7 0xe0
+#define LED_8 0xfe
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LED_9 0xf6
+#define LED_A 0xee
+#define LED_b 0x3e
+#define LED_C 0x9c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LED_d 0x7a
+#define LED_E 0x9e
+#define LED_F 0x8e
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define JAZZ_ETHERNET_BASE 0xe0001000
+#define JAZZ_SCSI_BASE 0xe0002000
+#define JAZZ_KEYBOARD_ADDRESS 0xe0005000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_KEYBOARD_DATA 0xe0005000
+#define JAZZ_KEYBOARD_COMMAND 0xe0005001
+#ifndef __ASSEMBLY__
+typedef struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char data;
+ unsigned char command;
+} jazz_keyboard_hardware;
+#define jazz_kh ((keyboard_hardware *) JAZZ_KEYBOARD_ADDRESS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct {
+ unsigned char pad0[3];
+ unsigned char data;
+ unsigned char pad1[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char command;
+} mips_keyboard_hardware;
+#define keyboard_hardware jazz_keyboard_hardware
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_KEYBOARD_ADDRESS 0xb9005000
+#define MIPS_KEYBOARD_DATA 0xb9005003
+#define MIPS_KEYBOARD_COMMAND 0xb9005007
+#define JAZZ_SERIAL1_BASE (unsigned int)0xe0006000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_SERIAL2_BASE (unsigned int)0xe0007000
+#define JAZZ_PARALLEL_BASE (unsigned int)0xe0008000
+#define JAZZ_DUMMY_DEVICE 0xe000d000
+#define JAZZ_TIMER_INTERVAL 0xe0000228
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_TIMER_REGISTER 0xe0000230
+#ifndef __ASSEMBLY__
+#ifdef __MIPSEL__
+typedef struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int bank2 : 3;
+ unsigned int bank1 : 3;
+ unsigned int mem_bus_width : 1;
+ unsigned int reserved2 : 1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int page_mode : 1;
+ unsigned int reserved1 : 23;
+} dram_configuration;
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct {
+ unsigned int reserved1 : 23;
+ unsigned int page_mode : 1;
+ unsigned int reserved2 : 1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int mem_bus_width : 1;
+ unsigned int bank1 : 3;
+ unsigned int bank2 : 3;
+} dram_configuration;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
+#define PICA_DRAM_CONFIG 0xe00fffe0
+#define JAZZ_IO_IRQ_SOURCE 0xe0010000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_IO_IRQ_ENABLE 0xe0010002
+#define JAZZ_IRQ_START 24
+#define JAZZ_IRQ_END (24 + 9)
+#define JAZZ_PARALLEL_IRQ (JAZZ_IRQ_START + 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_FLOPPY_IRQ (JAZZ_IRQ_START + 1)
+#define JAZZ_SOUND_IRQ (JAZZ_IRQ_START + 2)
+#define JAZZ_VIDEO_IRQ (JAZZ_IRQ_START + 3)
+#define JAZZ_ETHERNET_IRQ (JAZZ_IRQ_START + 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_SCSI_IRQ (JAZZ_IRQ_START + 5)
+#define JAZZ_KEYBOARD_IRQ (JAZZ_IRQ_START + 6)
+#define JAZZ_MOUSE_IRQ (JAZZ_IRQ_START + 7)
+#define JAZZ_SERIAL1_IRQ (JAZZ_IRQ_START + 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_SERIAL2_IRQ (JAZZ_IRQ_START + 9)
+#define JAZZ_TIMER_IRQ (MIPS_CPU_IRQ_BASE+6)
+#define JAZZ_SCSI_DMA 0  
+#define JAZZ_FLOPPY_DMA 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_AUDIOL_DMA 2  
+#define JAZZ_AUDIOR_DMA 3  
+#define JAZZ_R4030_CONFIG 0xE0000000  
+#define JAZZ_R4030_REVISION 0xE0000008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_R4030_INV_ADDR 0xE0000010  
+#define JAZZ_R4030_TRSTBL_BASE 0xE0000018  
+#define JAZZ_R4030_TRSTBL_LIM 0xE0000020  
+#define JAZZ_R4030_TRSTBL_INV 0xE0000028  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_R4030_CACHE_MTNC 0xE0000030  
+#define JAZZ_R4030_R_FAIL_ADDR 0xE0000038  
+#define JAZZ_R4030_M_FAIL_ADDR 0xE0000040  
+#define JAZZ_R4030_CACHE_PTAG 0xE0000048  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_R4030_CACHE_LTAG 0xE0000050  
+#define JAZZ_R4030_CACHE_BMASK 0xE0000058  
+#define JAZZ_R4030_CACHE_BWIN 0xE0000060  
+#define JAZZ_R4030_REM_SPEED 0xE0000070  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_R4030_IRQ_ENABLE 0xE00000E8  
+#define JAZZ_R4030_INVAL_ADDR 0xE0000010  
+#define JAZZ_R4030_IRQ_SOURCE 0xE0000200  
+#define JAZZ_R4030_I386_ERROR 0xE0000208  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_EISA_IRQ_ACK 0xE0000238  
+#ifndef __ASSEMBLY__
+#endif
+#define JAZZ_FDC_BASE 0xe0003000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_RTC_BASE 0xe0004000
+#define JAZZ_PORT_BASE 0xe2000000
+#define JAZZ_EISA_BASE 0xe3000000
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/jazzdma.h b/ndk/platforms/android-9/arch-mips/include/asm/jazzdma.h
new file mode 100644
index 0000000..7426807
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/jazzdma.h
@@ -0,0 +1,64 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_JAZZDMA_H
+#define _ASM_JAZZDMA_H
+#define VDMA_PAGESIZE 4096
+#define VDMA_PGTBL_ENTRIES 4096
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VDMA_PGTBL_SIZE (sizeof(VDMA_PGTBL_ENTRY) * VDMA_PGTBL_ENTRIES)
+#define VDMA_PAGE_EMPTY 0xff000000
+#define VDMA_PAGE(a) ((unsigned int)(a) >> 12)
+#define VDMA_OFFSET(a) ((unsigned int)(a) & (VDMA_PAGESIZE-1))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VDMA_ERROR 0xffffffff
+typedef volatile struct VDMA_PGTBL_ENTRY {
+ unsigned int frame;
+ unsigned int owner;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} VDMA_PGTBL_ENTRY;
+#define JAZZ_R4030_CHNL_MODE 0xE0000100  
+#define JAZZ_R4030_CHNL_ENABLE 0xE0000108  
+#define JAZZ_R4030_CHNL_COUNT 0xE0000110  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define JAZZ_R4030_CHNL_ADDR 0xE0000118  
+#define R4030_CHNL_ENABLE (1<<0)
+#define R4030_CHNL_WRITE (1<<1)
+#define R4030_TC_INTR (1<<8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R4030_MEM_INTR (1<<9)
+#define R4030_ADDR_INTR (1<<10)
+#define R4030_MODE_ATIME_40 (0)  
+#define R4030_MODE_ATIME_80 (1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R4030_MODE_ATIME_120 (2)
+#define R4030_MODE_ATIME_160 (3)
+#define R4030_MODE_ATIME_200 (4)
+#define R4030_MODE_ATIME_240 (5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R4030_MODE_ATIME_280 (6)
+#define R4030_MODE_ATIME_320 (7)
+#define R4030_MODE_WIDTH_8 (1<<3)  
+#define R4030_MODE_WIDTH_16 (2<<3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R4030_MODE_WIDTH_32 (3<<3)
+#define R4030_MODE_INTR_EN (1<<5)
+#define R4030_MODE_BURST (1<<6)  
+#define R4030_MODE_FAST_ACK (1<<7)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/kdebug.h b/ndk/platforms/android-9/arch-mips/include/asm/kdebug.h
new file mode 100644
index 0000000..695346d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/kdebug.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MIPS_KDEBUG_H
+#define _ASM_MIPS_KDEBUG_H
+#include <linux/notifier.h>
+enum die_val {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ DIE_OOPS = 1,
+ DIE_FP,
+ DIE_TRAP,
+ DIE_RI,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/kmap_types.h b/ndk/platforms/android-9/arch-mips/include/asm/kmap_types.h
new file mode 100644
index 0000000..e8b888d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/kmap_types.h
@@ -0,0 +1,44 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_KMAP_TYPES_H
+#define _ASM_KMAP_TYPES_H
+#define D(n)
+enum km_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+D(0) KM_BOUNCE_READ,
+D(1) KM_SKB_SUNRPC_DATA,
+D(2) KM_SKB_DATA_SOFTIRQ,
+D(3) KM_USER0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+D(4) KM_USER1,
+D(5) KM_BIO_SRC_IRQ,
+D(6) KM_BIO_DST_IRQ,
+D(7) KM_PTE0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+D(8) KM_PTE1,
+D(9) KM_IRQ0,
+D(10) KM_IRQ1,
+D(11) KM_SOFTIRQ0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+D(12) KM_SOFTIRQ1,
+D(13) KM_TYPE_NR
+};
+#undef D
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/lasat/lasat.h b/ndk/platforms/android-9/arch-mips/include/asm/lasat/lasat.h
new file mode 100644
index 0000000..aa255f6
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/lasat/lasat.h
@@ -0,0 +1,209 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _LASAT_H
+#define _LASAT_H
+#ifndef _LANGUAGE_ASSEMBLY
+enum lasat_mtdparts {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LASAT_MTD_BOOTLOADER,
+ LASAT_MTD_SERVICE,
+ LASAT_MTD_NORMAL,
+ LASAT_MTD_CONFIG,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LASAT_MTD_FS,
+ LASAT_MTD_LAST
+};
+#include <linux/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_EEPROM_VERSION 7
+struct lasat_eeprom_struct {
+ unsigned int version;
+ unsigned int cfg[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char hwaddr[6];
+ unsigned char print_partno[12];
+ unsigned char term0;
+ unsigned char print_serial[14];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char term1;
+ unsigned char prod_partno[12];
+ unsigned char term2;
+ unsigned char prod_serial[14];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char term3;
+ unsigned char passwd_hash[16];
+ unsigned char pwdnull;
+ unsigned char vendid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char ts_ref;
+ unsigned char ts_signoff;
+ unsigned char reserved[11];
+ unsigned char debugaccess;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short prid;
+ unsigned int serviceflag;
+ unsigned int ipaddr;
+ unsigned int netmask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int crc32;
+};
+struct lasat_eeprom_struct_pre7 {
+ unsigned int version;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int flags[3];
+ unsigned char hwaddr0[6];
+ unsigned char hwaddr1[6];
+ unsigned char print_partno[9];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char term0;
+ unsigned char print_serial[14];
+ unsigned char term1;
+ unsigned char prod_partno[9];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char term2;
+ unsigned char prod_serial[14];
+ unsigned char term3;
+ unsigned char passwd_hash[24];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char pwdnull;
+ unsigned char vendor;
+ unsigned char ts_ref;
+ unsigned char ts_signoff;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char reserved[6];
+ unsigned int writecount;
+ unsigned int ipaddr;
+ unsigned int netmask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int crc32;
+};
+#define LASAT_W0_DSCTYPE(v) (((v)) & 0xf)
+#define LASAT_W0_BMID(v) (((v) >> 0x04) & 0xf)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_W0_CPUTYPE(v) (((v) >> 0x08) & 0xf)
+#define LASAT_W0_BUSSPEED(v) (((v) >> 0x0c) & 0xf)
+#define LASAT_W0_CPUCLK(v) (((v) >> 0x10) & 0xf)
+#define LASAT_W0_SDRAMBANKSZ(v) (((v) >> 0x14) & 0xf)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_W0_SDRAMBANKS(v) (((v) >> 0x18) & 0xf)
+#define LASAT_W0_L2CACHE(v) (((v) >> 0x1c) & 0xf)
+#define LASAT_W1_EDHAC(v) (((v)) & 0xf)
+#define LASAT_W1_HIFN(v) (((v) >> 0x04) & 0x1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_W1_ISDN(v) (((v) >> 0x05) & 0x1)
+#define LASAT_W1_IDE(v) (((v) >> 0x06) & 0x1)
+#define LASAT_W1_HDLC(v) (((v) >> 0x07) & 0x1)
+#define LASAT_W1_USVERSION(v) (((v) >> 0x08) & 0x1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_W1_4MACS(v) (((v) >> 0x09) & 0x1)
+#define LASAT_W1_EXTSERIAL(v) (((v) >> 0x0a) & 0x1)
+#define LASAT_W1_FLASHSIZE(v) (((v) >> 0x0c) & 0xf)
+#define LASAT_W1_PCISLOTS(v) (((v) >> 0x10) & 0xf)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_W1_PCI1OPT(v) (((v) >> 0x14) & 0xf)
+#define LASAT_W1_PCI2OPT(v) (((v) >> 0x18) & 0xf)
+#define LASAT_W1_PCI3OPT(v) (((v) >> 0x1c) & 0xf)
+#define LASAT_BMID_MASQUERADE2 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_BMID_MASQUERADEPRO 1
+#define LASAT_BMID_SAFEPIPE25 2
+#define LASAT_BMID_SAFEPIPE50 3
+#define LASAT_BMID_SAFEPIPE100 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_BMID_SAFEPIPE5000 5
+#define LASAT_BMID_SAFEPIPE7000 6
+#define LASAT_BMID_SAFEPIPE1000 7
+#define LASAT_BMID_UNKNOWN 0xf
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_MAX_BMID_NAMES 9  
+#define LASAT_HAS_EDHAC (1 << 0)
+#define LASAT_EDHAC_FAST (1 << 1)
+#define LASAT_HAS_EADI (1 << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_HAS_HIFN (1 << 3)
+#define LASAT_HAS_ISDN (1 << 4)
+#define LASAT_HAS_LEASEDLINE_IF (1 << 5)
+#define LASAT_HAS_HDC (1 << 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_PRID_MASQUERADE2 0
+#define LASAT_PRID_MASQUERADEPRO 1
+#define LASAT_PRID_SAFEPIPE25 2
+#define LASAT_PRID_SAFEPIPE50 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_PRID_SAFEPIPE100 4
+#define LASAT_PRID_SAFEPIPE5000 5
+#define LASAT_PRID_SAFEPIPE7000 6
+#define LASAT_PRID_SAFEPIPE30 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_PRID_SAFEPIPE5100 8
+#define LASAT_PRID_SAFEPIPE7100 9
+#define LASAT_PRID_SAFEPIPE1110 10
+#define LASAT_PRID_SAFEPIPE3020 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_PRID_SAFEPIPE3030 12
+#define LASAT_PRID_SAFEPIPE5020 13
+#define LASAT_PRID_SAFEPIPE5030 14
+#define LASAT_PRID_SAFEPIPE1120 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_PRID_SAFEPIPE1130 16
+#define LASAT_PRID_SAFEPIPE6010 17
+#define LASAT_PRID_SAFEPIPE6110 18
+#define LASAT_PRID_SAFEPIPE6210 19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_PRID_SAFEPIPE1020 20
+#define LASAT_PRID_SAFEPIPE1040 21
+#define LASAT_PRID_SAFEPIPE1060 22
+struct lasat_info {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int li_cpu_hz;
+ unsigned int li_bus_hz;
+ unsigned int li_bmid;
+ unsigned int li_memsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int li_flash_size;
+ unsigned int li_prid;
+ unsigned char li_bmstr[16];
+ unsigned char li_namestr[32];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char li_typestr[16];
+ unsigned int li_flash_base;
+ unsigned long li_flashpart_base[LASAT_MTD_LAST];
+ unsigned long li_flashpart_size[LASAT_MTD_LAST];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct lasat_eeprom_struct li_eeprom_info;
+ unsigned int li_eeprom_upgrade_version;
+ unsigned int li_debugaccess;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_MACHTYPES 2
+#include <linux/delay.h>
+#define LASAT_100_DIVIDER 20
+#define LASAT_200_DIVIDER 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IS_LASAT_200() (current_cpu_data.cputype == CPU_R5000)
+#endif
+#define LASAT_SERVICEMODE_MAGIC_1 0xdeadbeef
+#define LASAT_SERVICEMODE_MAGIC_2 0xfedeabba
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LASAT_GT_BASE (KSEG1ADDR(0x14000000))
+#define Vrc5074_PHYS_BASE 0x1fa00000
+#define Vrc5074_BASE (KSEG1ADDR(Vrc5074_PHYS_BASE))
+#define PCI_WINDOW1 0x1a000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/linkage.h b/ndk/platforms/android-9/arch-mips/include/asm/linkage.h
new file mode 100644
index 0000000..0c77e27
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/linkage.h
@@ -0,0 +1,26 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_LINKAGE_H
+#define __ASM_LINKAGE_H
+#ifdef __ASSEMBLY__
+#include <asm/asm.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define __weak __attribute__((weak))
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/local.h b/ndk/platforms/android-9/arch-mips/include/asm/local.h
new file mode 100644
index 0000000..9d2172b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/local.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ARCH_MIPS_LOCAL_H
+#define _ARCH_MIPS_LOCAL_H
+#include <linux/percpu.h>
+#include <linux/bitops.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/atomic.h>
+#include <asm/cmpxchg.h>
+#include <asm/war.h>
+typedef struct
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+{
+ atomic_long_t a;
+} local_t;
+#define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define local_read(l) atomic_long_read(&(l)->a)
+#define local_set(l, i) atomic_long_set(&(l)->a, (i))
+#define local_add(i, l) atomic_long_add((i), (&(l)->a))
+#define local_sub(i, l) atomic_long_sub((i), (&(l)->a))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define local_inc(l) atomic_long_inc(&(l)->a)
+#define local_dec(l) atomic_long_dec(&(l)->a)
+#define local_cmpxchg(l, o, n)   ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
+#define local_xchg(l, n) (xchg_local(&((l)->a.counter), (n)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define local_add_unless(l, a, u)  ({   long c, old;   c = local_read(l);   while (c != (u) && (old = local_cmpxchg((l), c, c + (a))) != c)   c = old;   c != (u);  })
+#define local_inc_not_zero(l) local_add_unless((l), 1, 0)
+#define local_dec_return(l) local_sub_return(1, (l))
+#define local_inc_return(l) local_add_return(1, (l))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define local_sub_and_test(i, l) (local_sub_return((i), (l)) == 0)
+#define local_inc_and_test(l) (local_inc_return(l) == 0)
+#define local_dec_and_test(l) (local_sub_return(1, (l)) == 0)
+#define local_add_negative(i, l) (local_add_return(i, (l)) < 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __local_inc(l) ((l)->a.counter++)
+#define __local_dec(l) ((l)->a.counter++)
+#define __local_add(i, l) ((l)->a.counter+=(i))
+#define __local_sub(i, l) ((l)->a.counter-=(i))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_local_wrap_v(l)   ({ local_t res__;   preempt_disable();   res__ = (l);   preempt_enable();   res__; })
+#define cpu_local_wrap(l)   ({ preempt_disable();   l;   preempt_enable(); })  
+#define cpu_local_read(l) cpu_local_wrap_v(local_read(&__get_cpu_var(l)))
+#define cpu_local_set(l, i) cpu_local_wrap(local_set(&__get_cpu_var(l), (i)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define cpu_local_inc(l) cpu_local_wrap(local_inc(&__get_cpu_var(l)))
+#define cpu_local_dec(l) cpu_local_wrap(local_dec(&__get_cpu_var(l)))
+#define cpu_local_add(i, l) cpu_local_wrap(local_add((i), &__get_cpu_var(l)))
+#define cpu_local_sub(i, l) cpu_local_wrap(local_sub((i), &__get_cpu_var(l)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __cpu_local_inc(l) cpu_local_inc(l)
+#define __cpu_local_dec(l) cpu_local_dec(l)
+#define __cpu_local_add(i, l) cpu_local_add((i), (l))
+#define __cpu_local_sub(i, l) cpu_local_sub((i), (l))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mach-au1x00/au1000.h b/ndk/platforms/android-9/arch-mips/include/asm/mach-au1x00/au1000.h
new file mode 100644
index 0000000..c331879
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mach-au1x00/au1000.h
@@ -0,0 +1,898 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _AU1000_H_
+#define _AU1000_H_
+#ifndef _LANGUAGE_ASSEMBLY
+#include <linux/delay.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/types.h>
+#include <linux/io.h>
+#include <linux/irq.h>
+struct au1xxx_irqmap {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int im_irq;
+ int im_type;
+ int im_request;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define MEM_STCFG0 0xB4001000
+#define MEM_STTIME0 0xB4001004
+#define MEM_STADDR0 0xB4001008
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MEM_STCFG1 0xB4001010
+#define MEM_STTIME1 0xB4001014
+#define MEM_STADDR1 0xB4001018
+#define MEM_STCFG2 0xB4001020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MEM_STTIME2 0xB4001024
+#define MEM_STADDR2 0xB4001028
+#define MEM_STCFG3 0xB4001030
+#define MEM_STTIME3 0xB4001034
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MEM_STADDR3 0xB4001038
+#define IC0_CFG0RD 0xB0400040
+#define IC0_CFG0SET 0xB0400040
+#define IC0_CFG0CLR 0xB0400044
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_CFG1RD 0xB0400048
+#define IC0_CFG1SET 0xB0400048
+#define IC0_CFG1CLR 0xB040004C
+#define IC0_CFG2RD 0xB0400050
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_CFG2SET 0xB0400050
+#define IC0_CFG2CLR 0xB0400054
+#define IC0_REQ0INT 0xB0400054
+#define IC0_SRCRD 0xB0400058
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_SRCSET 0xB0400058
+#define IC0_SRCCLR 0xB040005C
+#define IC0_REQ1INT 0xB040005C
+#define IC0_ASSIGNRD 0xB0400060
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_ASSIGNSET 0xB0400060
+#define IC0_ASSIGNCLR 0xB0400064
+#define IC0_WAKERD 0xB0400068
+#define IC0_WAKESET 0xB0400068
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_WAKECLR 0xB040006C
+#define IC0_MASKRD 0xB0400070
+#define IC0_MASKSET 0xB0400070
+#define IC0_MASKCLR 0xB0400074
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_RISINGRD 0xB0400078
+#define IC0_RISINGCLR 0xB0400078
+#define IC0_FALLINGRD 0xB040007C
+#define IC0_FALLINGCLR 0xB040007C
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC0_TESTBIT 0xB0400080
+#define IC1_CFG0RD 0xB1800040
+#define IC1_CFG0SET 0xB1800040
+#define IC1_CFG0CLR 0xB1800044
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_CFG1RD 0xB1800048
+#define IC1_CFG1SET 0xB1800048
+#define IC1_CFG1CLR 0xB180004C
+#define IC1_CFG2RD 0xB1800050
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_CFG2SET 0xB1800050
+#define IC1_CFG2CLR 0xB1800054
+#define IC1_REQ0INT 0xB1800054
+#define IC1_SRCRD 0xB1800058
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_SRCSET 0xB1800058
+#define IC1_SRCCLR 0xB180005C
+#define IC1_REQ1INT 0xB180005C
+#define IC1_ASSIGNRD 0xB1800060
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_ASSIGNSET 0xB1800060
+#define IC1_ASSIGNCLR 0xB1800064
+#define IC1_WAKERD 0xB1800068
+#define IC1_WAKESET 0xB1800068
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_WAKECLR 0xB180006C
+#define IC1_MASKRD 0xB1800070
+#define IC1_MASKSET 0xB1800070
+#define IC1_MASKCLR 0xB1800074
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_RISINGRD 0xB1800078
+#define IC1_RISINGCLR 0xB1800078
+#define IC1_FALLINGRD 0xB180007C
+#define IC1_FALLINGCLR 0xB180007C
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IC1_TESTBIT 0xB1800080
+#define INTC_INT_DISABLED 0x0
+#define INTC_INT_RISE_EDGE 0x1
+#define INTC_INT_FALL_EDGE 0x2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INTC_INT_RISE_AND_FALL_EDGE 0x3
+#define INTC_INT_HIGH_LEVEL 0x5
+#define INTC_INT_LOW_LEVEL 0x6
+#define INTC_INT_HIGH_AND_LOW_LEVEL 0x7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
+#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
+#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_BASE + 32)
+#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST
+#define INTX 0xFF  
+#define SYS_BASE 0xB1900000
+#define SYS_COUNTER_CNTRL (SYS_BASE + 0x14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CNTRL_E1S (1 << 23)
+#define SYS_CNTRL_T1S (1 << 20)
+#define SYS_CNTRL_M21 (1 << 19)
+#define SYS_CNTRL_M11 (1 << 18)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CNTRL_M01 (1 << 17)
+#define SYS_CNTRL_C1S (1 << 16)
+#define SYS_CNTRL_BP (1 << 14)
+#define SYS_CNTRL_EN1 (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CNTRL_BT1 (1 << 12)
+#define SYS_CNTRL_EN0 (1 << 11)
+#define SYS_CNTRL_BT0 (1 << 10)
+#define SYS_CNTRL_E0 (1 << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CNTRL_E0S (1 << 7)
+#define SYS_CNTRL_32S (1 << 5)
+#define SYS_CNTRL_T0S (1 << 4)
+#define SYS_CNTRL_M20 (1 << 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CNTRL_M10 (1 << 2)
+#define SYS_CNTRL_M00 (1 << 1)
+#define SYS_CNTRL_C0S (1 << 0)
+#define SYS_TOYTRIM (SYS_BASE + 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_TOYWRITE (SYS_BASE + 4)
+#define SYS_TOYMATCH0 (SYS_BASE + 8)
+#define SYS_TOYMATCH1 (SYS_BASE + 0xC)
+#define SYS_TOYMATCH2 (SYS_BASE + 0x10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_TOYREAD (SYS_BASE + 0x40)
+#define SYS_RTCTRIM (SYS_BASE + 0x44)
+#define SYS_RTCWRITE (SYS_BASE + 0x48)
+#define SYS_RTCMATCH0 (SYS_BASE + 0x4C)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_RTCMATCH1 (SYS_BASE + 0x50)
+#define SYS_RTCMATCH2 (SYS_BASE + 0x54)
+#define SYS_RTCREAD (SYS_BASE + 0x58)
+#define I2S_DATA 0xB1000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_DATA_MASK 0xffffff
+#define I2S_CONFIG 0xB1000004
+#define I2S_CONFIG_XU (1 << 25)
+#define I2S_CONFIG_XO (1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_CONFIG_RU (1 << 23)
+#define I2S_CONFIG_RO (1 << 22)
+#define I2S_CONFIG_TR (1 << 21)
+#define I2S_CONFIG_TE (1 << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_CONFIG_TF (1 << 19)
+#define I2S_CONFIG_RR (1 << 18)
+#define I2S_CONFIG_RE (1 << 17)
+#define I2S_CONFIG_RF (1 << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_CONFIG_PD (1 << 11)
+#define I2S_CONFIG_LB (1 << 10)
+#define I2S_CONFIG_IC (1 << 9)
+#define I2S_CONFIG_FM_BIT 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_CONFIG_FM_MASK (0x3 << I2S_CONFIG_FM_BIT)
+#define I2S_CONFIG_FM_I2S (0x0 << I2S_CONFIG_FM_BIT)
+#define I2S_CONFIG_FM_LJ (0x1 << I2S_CONFIG_FM_BIT)
+#define I2S_CONFIG_FM_RJ (0x2 << I2S_CONFIG_FM_BIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_CONFIG_TN (1 << 6)
+#define I2S_CONFIG_RN (1 << 5)
+#define I2S_CONFIG_SZ_BIT 0
+#define I2S_CONFIG_SZ_MASK (0x1F << I2S_CONFIG_SZ_BIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define I2S_CONTROL 0xB1000008
+#define I2S_CONTROL_D (1 << 1)
+#define I2S_CONTROL_CE (1 << 0)
+#ifndef USB_OHCI_LEN
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USB_OHCI_LEN 0x00100000
+#endif
+#define USBD_EP0RD 0xB0200000
+#define USBD_EP0WR 0xB0200004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBD_EP2WR 0xB0200008
+#define USBD_EP3WR 0xB020000C
+#define USBD_EP4RD 0xB0200010
+#define USBD_EP5RD 0xB0200014
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBD_INTEN 0xB0200018
+#define USBD_INTSTAT 0xB020001C
+#define USBDEV_INT_SOF (1 << 12)
+#define USBDEV_INT_HF_BIT 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBDEV_INT_HF_MASK (0x3f << USBDEV_INT_HF_BIT)
+#define USBDEV_INT_CMPLT_BIT 0
+#define USBDEV_INT_CMPLT_MASK (0x3f << USBDEV_INT_CMPLT_BIT)
+#define USBD_CONFIG 0xB0200020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBD_EP0CS 0xB0200024
+#define USBD_EP2CS 0xB0200028
+#define USBD_EP3CS 0xB020002C
+#define USBD_EP4CS 0xB0200030
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBD_EP5CS 0xB0200034
+#define USBDEV_CS_SU (1 << 14)
+#define USBDEV_CS_NAK (1 << 13)
+#define USBDEV_CS_ACK (1 << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBDEV_CS_BUSY (1 << 11)
+#define USBDEV_CS_TSIZE_BIT 1
+#define USBDEV_CS_TSIZE_MASK (0x3ff << USBDEV_CS_TSIZE_BIT)
+#define USBDEV_CS_STALL (1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBD_EP0RDSTAT 0xB0200040
+#define USBD_EP0WRSTAT 0xB0200044
+#define USBD_EP2WRSTAT 0xB0200048
+#define USBD_EP3WRSTAT 0xB020004C
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBD_EP4RDSTAT 0xB0200050
+#define USBD_EP5RDSTAT 0xB0200054
+#define USBDEV_FSTAT_FLUSH (1 << 6)
+#define USBDEV_FSTAT_UF (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBDEV_FSTAT_OF (1 << 4)
+#define USBDEV_FSTAT_FCNT_BIT 0
+#define USBDEV_FSTAT_FCNT_MASK (0x0f << USBDEV_FSTAT_FCNT_BIT)
+#define USBD_ENABLE 0xB0200058
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define USBDEV_ENABLE (1 << 1)
+#define USBDEV_CE (1 << 0)
+#define MAC_CONTROL 0x0
+#define MAC_RX_ENABLE (1 << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_TX_ENABLE (1 << 3)
+#define MAC_DEF_CHECK (1 << 5)
+#define MAC_SET_BL(X) (((X) & 0x3) << 6)
+#define MAC_AUTO_PAD (1 << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_DISABLE_RETRY (1 << 10)
+#define MAC_DISABLE_BCAST (1 << 11)
+#define MAC_LATE_COL (1 << 12)
+#define MAC_HASH_MODE (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_HASH_ONLY (1 << 15)
+#define MAC_PASS_ALL (1 << 16)
+#define MAC_INVERSE_FILTER (1 << 17)
+#define MAC_PROMISCUOUS (1 << 18)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_PASS_ALL_MULTI (1 << 19)
+#define MAC_FULL_DUPLEX (1 << 20)
+#define MAC_NORMAL_MODE 0
+#define MAC_INT_LOOPBACK (1 << 21)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_EXT_LOOPBACK (1 << 22)
+#define MAC_DISABLE_RX_OWN (1 << 23)
+#define MAC_BIG_ENDIAN (1 << 30)
+#define MAC_RX_ALL (1 << 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_ADDRESS_HIGH 0x4
+#define MAC_ADDRESS_LOW 0x8
+#define MAC_MCAST_HIGH 0xC
+#define MAC_MCAST_LOW 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_MII_CNTRL 0x14
+#define MAC_MII_BUSY (1 << 0)
+#define MAC_MII_READ 0
+#define MAC_MII_WRITE (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_SET_MII_SELECT_REG(X) (((X) & 0x1f) << 6)
+#define MAC_SET_MII_SELECT_PHY(X) (((X) & 0x1f) << 11)
+#define MAC_MII_DATA 0x18
+#define MAC_FLOW_CNTRL 0x1C
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_FLOW_CNTRL_BUSY (1 << 0)
+#define MAC_FLOW_CNTRL_ENABLE (1 << 1)
+#define MAC_PASS_CONTROL (1 << 2)
+#define MAC_SET_PAUSE(X) (((X) & 0xffff) << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_VLAN1_TAG 0x20
+#define MAC_VLAN2_TAG 0x24
+#define MAC_EN_CLOCK_ENABLE (1 << 0)
+#define MAC_EN_RESET0 (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_EN_TOSS (0 << 2)
+#define MAC_EN_CACHEABLE (1 << 3)
+#define MAC_EN_RESET1 (1 << 4)
+#define MAC_EN_RESET2 (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_DMA_RESET (1 << 6)
+#define MAC0_TX_DMA_ADDR 0xB4004000
+#define MAC1_TX_DMA_ADDR 0xB4004200
+#define MAC_TX_BUFF0_STATUS 0x0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX_FRAME_ABORTED (1 << 0)
+#define TX_JAB_TIMEOUT (1 << 1)
+#define TX_NO_CARRIER (1 << 2)
+#define TX_LOSS_CARRIER (1 << 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX_EXC_DEF (1 << 4)
+#define TX_LATE_COLL_ABORT (1 << 5)
+#define TX_EXC_COLL (1 << 6)
+#define TX_UNDERRUN (1 << 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX_DEFERRED (1 << 8)
+#define TX_LATE_COLL (1 << 9)
+#define TX_COLL_CNT_MASK (0xF << 10)
+#define TX_PKT_RETRY (1 << 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_TX_BUFF0_ADDR 0x4
+#define TX_DMA_ENABLE (1 << 0)
+#define TX_T_DONE (1 << 1)
+#define TX_GET_DMA_BUFFER(X) (((X) >> 2) & 0x3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_TX_BUFF0_LEN 0x8
+#define MAC_TX_BUFF1_STATUS 0x10
+#define MAC_TX_BUFF1_ADDR 0x14
+#define MAC_TX_BUFF1_LEN 0x18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_TX_BUFF2_STATUS 0x20
+#define MAC_TX_BUFF2_ADDR 0x24
+#define MAC_TX_BUFF2_LEN 0x28
+#define MAC_TX_BUFF3_STATUS 0x30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_TX_BUFF3_ADDR 0x34
+#define MAC_TX_BUFF3_LEN 0x38
+#define MAC0_RX_DMA_ADDR 0xB4004100
+#define MAC1_RX_DMA_ADDR 0xB4004300
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_RX_BUFF0_STATUS 0x0
+#define RX_FRAME_LEN_MASK 0x3fff
+#define RX_WDOG_TIMER (1 << 14)
+#define RX_RUNT (1 << 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RX_OVERLEN (1 << 16)
+#define RX_COLL (1 << 17)
+#define RX_ETHER (1 << 18)
+#define RX_MII_ERROR (1 << 19)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RX_DRIBBLING (1 << 20)
+#define RX_CRC_ERROR (1 << 21)
+#define RX_VLAN1 (1 << 22)
+#define RX_VLAN2 (1 << 23)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RX_LEN_ERROR (1 << 24)
+#define RX_CNTRL_FRAME (1 << 25)
+#define RX_U_CNTRL_FRAME (1 << 26)
+#define RX_MCAST_FRAME (1 << 27)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RX_BCAST_FRAME (1 << 28)
+#define RX_FILTER_FAIL (1 << 29)
+#define RX_PACKET_FILTER (1 << 30)
+#define RX_MISSED_FRAME (1 << 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RX_ERROR (RX_WDOG_TIMER | RX_RUNT | RX_OVERLEN |   RX_COLL | RX_MII_ERROR | RX_CRC_ERROR |   RX_LEN_ERROR | RX_U_CNTRL_FRAME | RX_MISSED_FRAME)
+#define MAC_RX_BUFF0_ADDR 0x4
+#define RX_DMA_ENABLE (1 << 0)
+#define RX_T_DONE (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RX_GET_DMA_BUFFER(X) (((X) >> 2) & 0x3)
+#define RX_SET_BUFF_ADDR(X) ((X) & 0xffffffc0)
+#define MAC_RX_BUFF1_STATUS 0x10
+#define MAC_RX_BUFF1_ADDR 0x14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAC_RX_BUFF2_STATUS 0x20
+#define MAC_RX_BUFF2_ADDR 0x24
+#define MAC_RX_BUFF3_STATUS 0x30
+#define MAC_RX_BUFF3_ADDR 0x34
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_BASE UART0_ADDR
+#define UART_DEBUG_BASE UART3_ADDR
+#define UART_RX 0  
+#define UART_TX 4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_IER 8  
+#define UART_IIR 0xC  
+#define UART_FCR 0x10  
+#define UART_LCR 0x14  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_MCR 0x18  
+#define UART_LSR 0x1C  
+#define UART_MSR 0x20  
+#define UART_CLK 0x28  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_MOD_CNTRL 0x100  
+#define UART_FCR_ENABLE_FIFO 0x01  
+#define UART_FCR_CLEAR_RCVR 0x02  
+#define UART_FCR_CLEAR_XMIT 0x04  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_FCR_DMA_SELECT 0x08  
+#define UART_FCR_TRIGGER_MASK 0xF0  
+#define UART_FCR_R_TRIGGER_1 0x00  
+#define UART_FCR_R_TRIGGER_4 0x40  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_FCR_R_TRIGGER_8 0x80  
+#define UART_FCR_R_TRIGGER_14 0xA0  
+#define UART_FCR_T_TRIGGER_0 0x00  
+#define UART_FCR_T_TRIGGER_4 0x10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_FCR_T_TRIGGER_8 0x20  
+#define UART_FCR_T_TRIGGER_12 0x30  
+#define UART_LCR_SBC 0x40  
+#define UART_LCR_SPAR 0x20  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_LCR_EPAR 0x10  
+#define UART_LCR_PARITY 0x08  
+#define UART_LCR_STOP 0x04  
+#define UART_LCR_WLEN5 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_LCR_WLEN6 0x01  
+#define UART_LCR_WLEN7 0x02  
+#define UART_LCR_WLEN8 0x03  
+#define UART_LSR_TEMT 0x40  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_LSR_THRE 0x20  
+#define UART_LSR_BI 0x10  
+#define UART_LSR_FE 0x08  
+#define UART_LSR_PE 0x04  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_LSR_OE 0x02  
+#define UART_LSR_DR 0x01  
+#define UART_IIR_NO_INT 0x01  
+#define UART_IIR_ID 0x06  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_IIR_MSI 0x00  
+#define UART_IIR_THRI 0x02  
+#define UART_IIR_RDI 0x04  
+#define UART_IIR_RLSI 0x06  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_IER_MSI 0x08  
+#define UART_IER_RLSI 0x04  
+#define UART_IER_THRI 0x02  
+#define UART_IER_RDI 0x01  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_MCR_LOOP 0x10  
+#define UART_MCR_OUT2 0x08  
+#define UART_MCR_OUT1 0x04  
+#define UART_MCR_RTS 0x02  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_MCR_DTR 0x01  
+#define UART_MSR_DCD 0x80  
+#define UART_MSR_RI 0x40  
+#define UART_MSR_DSR 0x20  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_MSR_CTS 0x10  
+#define UART_MSR_DDCD 0x08  
+#define UART_MSR_TERI 0x04  
+#define UART_MSR_DDSR 0x02  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UART_MSR_DCTS 0x01  
+#define UART_MSR_ANY_DELTA 0x0F  
+#define SSI0_STATUS 0xB1600000
+#define SSI_STATUS_BF (1 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_STATUS_OF (1 << 3)
+#define SSI_STATUS_UF (1 << 2)
+#define SSI_STATUS_D (1 << 1)
+#define SSI_STATUS_B (1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI0_INT 0xB1600004
+#define SSI_INT_OI (1 << 3)
+#define SSI_INT_UI (1 << 2)
+#define SSI_INT_DI (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI0_INT_ENABLE 0xB1600008
+#define SSI_INTE_OIE (1 << 3)
+#define SSI_INTE_UIE (1 << 2)
+#define SSI_INTE_DIE (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI0_CONFIG 0xB1600020
+#define SSI_CONFIG_AO (1 << 24)
+#define SSI_CONFIG_DO (1 << 23)
+#define SSI_CONFIG_ALEN_BIT 20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_ALEN_MASK (0x7 << 20)
+#define SSI_CONFIG_DLEN_BIT 16
+#define SSI_CONFIG_DLEN_MASK (0x7 << 16)
+#define SSI_CONFIG_DD (1 << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_AD (1 << 10)
+#define SSI_CONFIG_BM_BIT 8
+#define SSI_CONFIG_BM_MASK (0x3 << 8)
+#define SSI_CONFIG_CE (1 << 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_DP (1 << 6)
+#define SSI_CONFIG_DL (1 << 5)
+#define SSI_CONFIG_EP (1 << 4)
+#define SSI0_ADATA 0xB1600024
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_AD_D (1 << 24)
+#define SSI_AD_ADDR_BIT 16
+#define SSI_AD_ADDR_MASK (0xff << 16)
+#define SSI_AD_DATA_BIT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_AD_DATA_MASK (0xfff << 0)
+#define SSI0_CLKDIV 0xB1600028
+#define SSI0_CONTROL 0xB1600100
+#define SSI_CONTROL_CD (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONTROL_E (1 << 0)
+#define SSI1_STATUS 0xB1680000
+#define SSI1_INT 0xB1680004
+#define SSI1_INT_ENABLE 0xB1680008
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI1_CONFIG 0xB1680020
+#define SSI1_ADATA 0xB1680024
+#define SSI1_CLKDIV 0xB1680028
+#define SSI1_ENABLE 0xB1680100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_STATUS_BF (1 << 4)
+#define SSI_STATUS_OF (1 << 3)
+#define SSI_STATUS_UF (1 << 2)
+#define SSI_STATUS_D (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_STATUS_B (1 << 0)
+#define SSI_INT_OI (1 << 3)
+#define SSI_INT_UI (1 << 2)
+#define SSI_INT_DI (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_INTEN_OIE (1 << 3)
+#define SSI_INTEN_UIE (1 << 2)
+#define SSI_INTEN_DIE (1 << 1)
+#define SSI_CONFIG_AO (1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_DO (1 << 23)
+#define SSI_CONFIG_ALEN (7 << 20)
+#define SSI_CONFIG_DLEN (15 << 16)
+#define SSI_CONFIG_DD (1 << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_AD (1 << 10)
+#define SSI_CONFIG_BM (3 << 8)
+#define SSI_CONFIG_CE (1 << 7)
+#define SSI_CONFIG_DP (1 << 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_DL (1 << 5)
+#define SSI_CONFIG_EP (1 << 4)
+#define SSI_CONFIG_ALEN_N(N) ((N-1) << 20)
+#define SSI_CONFIG_DLEN_N(N) ((N-1) << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_CONFIG_BM_HI (0 << 8)
+#define SSI_CONFIG_BM_LO (1 << 8)
+#define SSI_CONFIG_BM_CY (2 << 8)
+#define SSI_ADATA_D (1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_ADATA_ADDR (0xFF << 16)
+#define SSI_ADATA_DATA 0x0FFF
+#define SSI_ADATA_ADDR_N(N) (N << 16)
+#define SSI_ENABLE_CD (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSI_ENABLE_E (1 << 0)
+#define IRDA_BASE 0xB0300000
+#define IR_RING_PTR_STATUS (IRDA_BASE + 0x00)
+#define IR_RING_BASE_ADDR_H (IRDA_BASE + 0x04)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_RING_BASE_ADDR_L (IRDA_BASE + 0x08)
+#define IR_RING_SIZE (IRDA_BASE + 0x0C)
+#define IR_RING_PROMPT (IRDA_BASE + 0x10)
+#define IR_RING_ADDR_CMPR (IRDA_BASE + 0x14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_INT_CLEAR (IRDA_BASE + 0x18)
+#define IR_CONFIG_1 (IRDA_BASE + 0x20)
+#define IR_RX_INVERT_LED (1 << 0)
+#define IR_TX_INVERT_LED (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_ST (1 << 2)
+#define IR_SF (1 << 3)
+#define IR_SIR (1 << 4)
+#define IR_MIR (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_FIR (1 << 6)
+#define IR_16CRC (1 << 7)
+#define IR_TD (1 << 8)
+#define IR_RX_ALL (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_DMA_ENABLE (1 << 10)
+#define IR_RX_ENABLE (1 << 11)
+#define IR_TX_ENABLE (1 << 12)
+#define IR_LOOPBACK (1 << 14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_SIR_MODE (IR_SIR | IR_DMA_ENABLE |   IR_RX_ALL | IR_RX_ENABLE | IR_SF | IR_16CRC)
+#define IR_SIR_FLAGS (IRDA_BASE + 0x24)
+#define IR_ENABLE (IRDA_BASE + 0x28)
+#define IR_RX_STATUS (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_TX_STATUS (1 << 10)
+#define IR_READ_PHY_CONFIG (IRDA_BASE + 0x2C)
+#define IR_WRITE_PHY_CONFIG (IRDA_BASE + 0x30)
+#define IR_MAX_PKT_LEN (IRDA_BASE + 0x34)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_RX_BYTE_CNT (IRDA_BASE + 0x38)
+#define IR_CONFIG_2 (IRDA_BASE + 0x3C)
+#define IR_MODE_INV (1 << 0)
+#define IR_ONE_PIN (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IR_INTERFACE_CONFIG (IRDA_BASE + 0x40)
+#define SYS_PINFUNC 0xB190002C
+#define SYS_PF_USB (1 << 15)  
+#define SYS_PF_U3 (1 << 14)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_U2 (1 << 13)  
+#define SYS_PF_U1 (1 << 12)  
+#define SYS_PF_SRC (1 << 11)  
+#define SYS_PF_CK5 (1 << 10)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_CK4 (1 << 9)  
+#define SYS_PF_IRF (1 << 8)  
+#define SYS_PF_UR3 (1 << 7)  
+#define SYS_PF_I2D (1 << 6)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_I2S (1 << 5)  
+#define SYS_PF_NI2 (1 << 4)  
+#define SYS_PF_U0 (1 << 3)  
+#define SYS_PF_RD (1 << 2)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_A97 (1 << 1)  
+#define SYS_PF_S0 (1 << 0)  
+#define SYS_PF_PC (1 << 18)  
+#define SYS_PF_LCD (1 << 17)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_CS (1 << 16)  
+#define SYS_PF_EX0 (1 << 9)  
+#define SYS_PF_PSC2_MASK (7 << 17)
+#define SYS_PF_PSC2_AC97 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_PSC2_SPI 0
+#define SYS_PF_PSC2_I2S (1 << 17)
+#define SYS_PF_PSC2_SMBUS (3 << 17)
+#define SYS_PF_PSC2_GPIO (7 << 17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_PSC3_MASK (7 << 20)
+#define SYS_PF_PSC3_AC97 0
+#define SYS_PF_PSC3_SPI 0
+#define SYS_PF_PSC3_I2S (1 << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_PF_PSC3_SMBUS (3 << 20)
+#define SYS_PF_PSC3_GPIO (7 << 20)
+#define SYS_PF_PSC1_S1 (1 << 1)
+#define SYS_PF_MUST_BE_SET ((1 << 5) | (1 << 2))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_TRIOUTRD 0xB1900100
+#define SYS_TRIOUTCLR 0xB1900100
+#define SYS_OUTPUTRD 0xB1900108
+#define SYS_OUTPUTSET 0xB1900108
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_OUTPUTCLR 0xB190010C
+#define SYS_PINSTATERD 0xB1900110
+#define SYS_PININPUTEN 0xB1900110
+#define GPIO2_BASE 0xB1700000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GPIO2_DIR (GPIO2_BASE + 0)
+#define GPIO2_OUTPUT (GPIO2_BASE + 8)
+#define GPIO2_PINSTATE (GPIO2_BASE + 0xC)
+#define GPIO2_INTENABLE (GPIO2_BASE + 0x10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GPIO2_ENABLE (GPIO2_BASE + 0x14)
+#define SYS_SCRATCH0 0xB1900018
+#define SYS_SCRATCH1 0xB190001C
+#define SYS_WAKEMSK 0xB1900034
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_ENDIAN 0xB1900038
+#define SYS_POWERCTRL 0xB190003C
+#define SYS_WAKESRC 0xB190005C
+#define SYS_SLPPWR 0xB1900078
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_SLEEP 0xB190007C
+#define SYS_FREQCTRL0 0xB1900020
+#define SYS_FC_FRDIV2_BIT 22
+#define SYS_FC_FRDIV2_MASK (0xff << SYS_FC_FRDIV2_BIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_FC_FE2 (1 << 21)
+#define SYS_FC_FS2 (1 << 20)
+#define SYS_FC_FRDIV1_BIT 12
+#define SYS_FC_FRDIV1_MASK (0xff << SYS_FC_FRDIV1_BIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_FC_FE1 (1 << 11)
+#define SYS_FC_FS1 (1 << 10)
+#define SYS_FC_FRDIV0_BIT 2
+#define SYS_FC_FRDIV0_MASK (0xff << SYS_FC_FRDIV0_BIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_FC_FE0 (1 << 1)
+#define SYS_FC_FS0 (1 << 0)
+#define SYS_FREQCTRL1 0xB1900024
+#define SYS_FC_FRDIV5_BIT 22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_FC_FRDIV5_MASK (0xff << SYS_FC_FRDIV5_BIT)
+#define SYS_FC_FE5 (1 << 21)
+#define SYS_FC_FS5 (1 << 20)
+#define SYS_FC_FRDIV4_BIT 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_FC_FRDIV4_MASK (0xff << SYS_FC_FRDIV4_BIT)
+#define SYS_FC_FE4 (1 << 11)
+#define SYS_FC_FS4 (1 << 10)
+#define SYS_FC_FRDIV3_BIT 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_FC_FRDIV3_MASK (0xff << SYS_FC_FRDIV3_BIT)
+#define SYS_FC_FE3 (1 << 1)
+#define SYS_FC_FS3 (1 << 0)
+#define SYS_CLKSRC 0xB1900028
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_ME1_BIT 27
+#define SYS_CS_ME1_MASK (0x7 << SYS_CS_ME1_BIT)
+#define SYS_CS_DE1 (1 << 26)
+#define SYS_CS_CE1 (1 << 25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_ME0_BIT 22
+#define SYS_CS_ME0_MASK (0x7 << SYS_CS_ME0_BIT)
+#define SYS_CS_DE0 (1 << 21)
+#define SYS_CS_CE0 (1 << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_MI2_BIT 17
+#define SYS_CS_MI2_MASK (0x7 << SYS_CS_MI2_BIT)
+#define SYS_CS_DI2 (1 << 16)
+#define SYS_CS_CI2 (1 << 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_MUH_BIT 12
+#define SYS_CS_MUH_MASK (0x7 << SYS_CS_MUH_BIT)
+#define SYS_CS_DUH (1 << 11)
+#define SYS_CS_CUH (1 << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_MUD_BIT 7
+#define SYS_CS_MUD_MASK (0x7 << SYS_CS_MUD_BIT)
+#define SYS_CS_DUD (1 << 6)
+#define SYS_CS_CUD (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_MIR_BIT 2
+#define SYS_CS_MIR_MASK (0x7 << SYS_CS_MIR_BIT)
+#define SYS_CS_DIR (1 << 1)
+#define SYS_CS_CIR (1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_MUX_AUX 0x1
+#define SYS_CS_MUX_FQ0 0x2
+#define SYS_CS_MUX_FQ1 0x3
+#define SYS_CS_MUX_FQ2 0x4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_CS_MUX_FQ3 0x5
+#define SYS_CS_MUX_FQ4 0x6
+#define SYS_CS_MUX_FQ5 0x7
+#define SYS_CPUPLL 0xB1900060
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_AUXPLL 0xB1900064
+#define AC97C_CONFIG 0xB0000000
+#define AC97C_RECV_SLOTS_BIT 13
+#define AC97C_RECV_SLOTS_MASK (0x3ff << AC97C_RECV_SLOTS_BIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_XMIT_SLOTS_BIT 3
+#define AC97C_XMIT_SLOTS_MASK (0x3ff << AC97C_XMIT_SLOTS_BIT)
+#define AC97C_SG (1 << 2)
+#define AC97C_SYNC (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_RESET (1 << 0)
+#define AC97C_STATUS 0xB0000004
+#define AC97C_XU (1 << 11)
+#define AC97C_XO (1 << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_RU (1 << 9)
+#define AC97C_RO (1 << 8)
+#define AC97C_READY (1 << 7)
+#define AC97C_CP (1 << 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_TR (1 << 5)
+#define AC97C_TE (1 << 4)
+#define AC97C_TF (1 << 3)
+#define AC97C_RR (1 << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_RE (1 << 1)
+#define AC97C_RF (1 << 0)
+#define AC97C_DATA 0xB0000008
+#define AC97C_CMD 0xB000000C
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_WD_BIT 16
+#define AC97C_READ (1 << 7)
+#define AC97C_INDEX_MASK 0x7f
+#define AC97C_CNTRL 0xB0000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97C_RS (1 << 1)
+#define AC97C_CE (1 << 0)
+#define SD0_XMIT_FIFO 0xB0600000
+#define SD0_RECV_FIFO 0xB0600004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SD1_XMIT_FIFO 0xB0680000
+#define SD1_RECV_FIFO 0xB0680004
+#define IOPORT_RESOURCE_START 0x10000000
+#define IOPORT_RESOURCE_END 0xffffffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOMEM_RESOURCE_START 0x10000000
+#define IOMEM_RESOURCE_END 0xffffffff
+#define PCI_IO_START 0
+#define PCI_IO_END 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI_MEM_START 0
+#define PCI_MEM_END 0
+#define PCI_FIRST_DEVFN 0
+#define PCI_LAST_DEVFN 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef _LANGUAGE_ASSEMBLY
+typedef volatile struct {
+   u32 toytrim;
+   u32 toywrite;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 toymatch0;
+   u32 toymatch1;
+   u32 toymatch2;
+   u32 cntrctrl;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 scratch0;
+   u32 scratch1;
+   u32 freqctrl0;
+   u32 freqctrl1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 clksrc;
+   u32 pinfunc;
+   u32 reserved0;
+   u32 wakemsk;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 endian;
+   u32 powerctrl;
+   u32 toyread;
+   u32 rtctrim;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 rtcwrite;
+   u32 rtcmatch0;
+   u32 rtcmatch1;
+   u32 rtcmatch2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 rtcread;
+   u32 wakesrc;
+   u32 cpupll;
+   u32 auxpll;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 reserved1;
+   u32 reserved2;
+   u32 reserved3;
+   u32 reserved4;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 slppwr;
+   u32 sleep;
+   u32 reserved5[32];
+   u32 trioutrd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define trioutclr trioutrd
+   u32 reserved6;
+   u32 outputrd;
+#define outputset outputrd
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+   u32 outputclr;
+   u32 pinstaterd;
+#define pininputen pinstaterd
+} AU1X00_SYS;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef _LANGUAGE_ASSEMBLY
+struct cpu_spec {
+ unsigned int prid_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int prid_value;
+ char *cpu_name;
+ unsigned char cpu_od;
+ unsigned char cpu_bclk;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char cpu_pll_wo;
+};
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mach-au1x00/au1xxx_psc.h b/ndk/platforms/android-9/arch-mips/include/asm/mach-au1x00/au1xxx_psc.h
new file mode 100644
index 0000000..2f01be0
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mach-au1x00/au1xxx_psc.h
@@ -0,0 +1,449 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _AU1000_PSC_H_
+#define _AU1000_PSC_H_
+#define PSC_SEL_OFFSET 0x00000000
+#define PSC_CTRL_OFFSET 0x00000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SEL_CLK_MASK (3 << 4)
+#define PSC_SEL_CLK_INTCLK (0 << 4)
+#define PSC_SEL_CLK_EXTCLK (1 << 4)
+#define PSC_SEL_CLK_SERCLK (2 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SEL_PS_MASK 0x00000007
+#define PSC_SEL_PS_DISABLED 0
+#define PSC_SEL_PS_SPIMODE 2
+#define PSC_SEL_PS_I2SMODE 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SEL_PS_AC97MODE 4
+#define PSC_SEL_PS_SMBUSMODE 5
+#define PSC_CTRL_DISABLE 0
+#define PSC_CTRL_SUSPEND 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_CTRL_ENABLE 3
+#define PSC_AC97CFG_OFFSET 0x00000008
+#define PSC_AC97MSK_OFFSET 0x0000000c
+#define PSC_AC97PCR_OFFSET 0x00000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97STAT_OFFSET 0x00000014
+#define PSC_AC97EVNT_OFFSET 0x00000018
+#define PSC_AC97TXRX_OFFSET 0x0000001c
+#define PSC_AC97CDC_OFFSET 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97RST_OFFSET 0x00000024
+#define PSC_AC97GPO_OFFSET 0x00000028
+#define PSC_AC97GPI_OFFSET 0x0000002c
+#define AC97_PSC_SEL (AC97_PSC_BASE + PSC_SEL_OFFSET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define AC97_PSC_CTRL (AC97_PSC_BASE + PSC_CTRL_OFFSET)
+#define PSC_AC97CFG (AC97_PSC_BASE + PSC_AC97CFG_OFFSET)
+#define PSC_AC97MSK (AC97_PSC_BASE + PSC_AC97MSK_OFFSET)
+#define PSC_AC97PCR (AC97_PSC_BASE + PSC_AC97PCR_OFFSET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97STAT (AC97_PSC_BASE + PSC_AC97STAT_OFFSET)
+#define PSC_AC97EVNT (AC97_PSC_BASE + PSC_AC97EVNT_OFFSET)
+#define PSC_AC97TXRX (AC97_PSC_BASE + PSC_AC97TXRX_OFFSET)
+#define PSC_AC97CDC (AC97_PSC_BASE + PSC_AC97CDC_OFFSET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97RST (AC97_PSC_BASE + PSC_AC97RST_OFFSET)
+#define PSC_AC97GPO (AC97_PSC_BASE + PSC_AC97GPO_OFFSET)
+#define PSC_AC97GPI (AC97_PSC_BASE + PSC_AC97GPI_OFFSET)
+#define PSC_AC97CFG_RT_MASK (3 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97CFG_RT_FIFO1 (0 << 30)
+#define PSC_AC97CFG_RT_FIFO2 (1 << 30)
+#define PSC_AC97CFG_RT_FIFO4 (2 << 30)
+#define PSC_AC97CFG_RT_FIFO8 (3 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97CFG_TT_MASK (3 << 28)
+#define PSC_AC97CFG_TT_FIFO1 (0 << 28)
+#define PSC_AC97CFG_TT_FIFO2 (1 << 28)
+#define PSC_AC97CFG_TT_FIFO4 (2 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97CFG_TT_FIFO8 (3 << 28)
+#define PSC_AC97CFG_DD_DISABLE (1 << 27)
+#define PSC_AC97CFG_DE_ENABLE (1 << 26)
+#define PSC_AC97CFG_SE_ENABLE (1 << 25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97CFG_LEN_MASK (0xf << 21)
+#define PSC_AC97CFG_TXSLOT_MASK (0x3ff << 11)
+#define PSC_AC97CFG_RXSLOT_MASK (0x3ff << 1)
+#define PSC_AC97CFG_GE_ENABLE (1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97CFG_TXSLOT_ENA(x) (1 << (((x) - 3) + 11))
+#define PSC_AC97CFG_RXSLOT_ENA(x) (1 << (((x) - 3) + 1))
+#define PSC_AC97CFG_SET_LEN(x) (((((x) - 2) / 2) & 0xf) << 21)
+#define PSC_AC97CFG_GET_LEN(x) (((((x) >> 21) & 0xf) * 2) + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97MSK_GR (1 << 25)
+#define PSC_AC97MSK_CD (1 << 24)
+#define PSC_AC97MSK_RR (1 << 13)
+#define PSC_AC97MSK_RO (1 << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97MSK_RU (1 << 11)
+#define PSC_AC97MSK_TR (1 << 10)
+#define PSC_AC97MSK_TO (1 << 9)
+#define PSC_AC97MSK_TU (1 << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97MSK_RD (1 << 5)
+#define PSC_AC97MSK_TD (1 << 4)
+#define PSC_AC97MSK_ALLMASK (PSC_AC97MSK_GR | PSC_AC97MSK_CD |   PSC_AC97MSK_RR | PSC_AC97MSK_RO |   PSC_AC97MSK_RU | PSC_AC97MSK_TR |   PSC_AC97MSK_TO | PSC_AC97MSK_TU |   PSC_AC97MSK_RD | PSC_AC97MSK_TD)
+#define PSC_AC97PCR_RC (1 << 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97PCR_RP (1 << 5)
+#define PSC_AC97PCR_RS (1 << 4)
+#define PSC_AC97PCR_TC (1 << 2)
+#define PSC_AC97PCR_TP (1 << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97PCR_TS (1 << 0)
+#define PSC_AC97STAT_CB (1 << 26)
+#define PSC_AC97STAT_CP (1 << 25)
+#define PSC_AC97STAT_CR (1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97STAT_RF (1 << 13)
+#define PSC_AC97STAT_RE (1 << 12)
+#define PSC_AC97STAT_RR (1 << 11)
+#define PSC_AC97STAT_TF (1 << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97STAT_TE (1 << 9)
+#define PSC_AC97STAT_TR (1 << 8)
+#define PSC_AC97STAT_RB (1 << 5)
+#define PSC_AC97STAT_TB (1 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97STAT_DI (1 << 2)
+#define PSC_AC97STAT_DR (1 << 1)
+#define PSC_AC97STAT_SR (1 << 0)
+#define PSC_AC97EVNT_GR (1 << 25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97EVNT_CD (1 << 24)
+#define PSC_AC97EVNT_RR (1 << 13)
+#define PSC_AC97EVNT_RO (1 << 12)
+#define PSC_AC97EVNT_RU (1 << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97EVNT_TR (1 << 10)
+#define PSC_AC97EVNT_TO (1 << 9)
+#define PSC_AC97EVNT_TU (1 << 8)
+#define PSC_AC97EVNT_RD (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97EVNT_TD (1 << 4)
+#define PSC_AC97CDC_RD (1 << 25)
+#define PSC_AC97CDC_ID_MASK (3 << 23)
+#define PSC_AC97CDC_INDX_MASK (0x7f << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_AC97CDC_ID(x) (((x) & 0x03) << 23)
+#define PSC_AC97CDC_INDX(x) (((x) & 0x7f) << 16)
+#define PSC_AC97RST_RST (1 << 1)
+#define PSC_AC97RST_SNC (1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct psc_i2s {
+ u32 psc_sel;
+ u32 psc_ctrl;
+ u32 psc_i2scfg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 psc_i2smsk;
+ u32 psc_i2spcr;
+ u32 psc_i2sstat;
+ u32 psc_i2sevent;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 psc_i2stxrx;
+ u32 psc_i2sudf;
+} psc_i2s_t;
+#define PSC_I2SCFG_OFFSET 0x08
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SMASK_OFFSET 0x0C
+#define PSC_I2SPCR_OFFSET 0x10
+#define PSC_I2SSTAT_OFFSET 0x14
+#define PSC_I2SEVENT_OFFSET 0x18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SRXTX_OFFSET 0x1C
+#define PSC_I2SUDF_OFFSET 0x20
+#define PSC_I2SCFG_RT_MASK (3 << 30)
+#define PSC_I2SCFG_RT_FIFO1 (0 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_RT_FIFO2 (1 << 30)
+#define PSC_I2SCFG_RT_FIFO4 (2 << 30)
+#define PSC_I2SCFG_RT_FIFO8 (3 << 30)
+#define PSC_I2SCFG_TT_MASK (3 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_TT_FIFO1 (0 << 28)
+#define PSC_I2SCFG_TT_FIFO2 (1 << 28)
+#define PSC_I2SCFG_TT_FIFO4 (2 << 28)
+#define PSC_I2SCFG_TT_FIFO8 (3 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_DD_DISABLE (1 << 27)
+#define PSC_I2SCFG_DE_ENABLE (1 << 26)
+#define PSC_I2SCFG_SET_WS(x) (((((x) / 2) - 1) & 0x7f) << 16)
+#define PSC_I2SCFG_WS(n) ((n & 0xFF) << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_WS_MASK (PSC_I2SCFG_WS(0x3F))
+#define PSC_I2SCFG_WI (1 << 15)
+#define PSC_I2SCFG_DIV_MASK (3 << 13)
+#define PSC_I2SCFG_DIV2 (0 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_DIV4 (1 << 13)
+#define PSC_I2SCFG_DIV8 (2 << 13)
+#define PSC_I2SCFG_DIV16 (3 << 13)
+#define PSC_I2SCFG_BI (1 << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_BUF (1 << 11)
+#define PSC_I2SCFG_MLJ (1 << 10)
+#define PSC_I2SCFG_XM (1 << 9)
+#define PSC_I2SCFG_SET_LEN(x) ((((x) - 1) & 0x1f) << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SCFG_GET_LEN(x) ((((x) >> 4) & 0x1f) + 1)
+#define PSC_I2SCFG_LB (1 << 2)
+#define PSC_I2SCFG_MLF (1 << 1)
+#define PSC_I2SCFG_MS (1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SMSK_RR (1 << 13)
+#define PSC_I2SMSK_RO (1 << 12)
+#define PSC_I2SMSK_RU (1 << 11)
+#define PSC_I2SMSK_TR (1 << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SMSK_TO (1 << 9)
+#define PSC_I2SMSK_TU (1 << 8)
+#define PSC_I2SMSK_RD (1 << 5)
+#define PSC_I2SMSK_TD (1 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SMSK_ALLMASK (PSC_I2SMSK_RR | PSC_I2SMSK_RO |   PSC_I2SMSK_RU | PSC_I2SMSK_TR |   PSC_I2SMSK_TO | PSC_I2SMSK_TU |   PSC_I2SMSK_RD | PSC_I2SMSK_TD)
+#define PSC_I2SPCR_RC (1 << 6)
+#define PSC_I2SPCR_RP (1 << 5)
+#define PSC_I2SPCR_RS (1 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SPCR_TC (1 << 2)
+#define PSC_I2SPCR_TP (1 << 1)
+#define PSC_I2SPCR_TS (1 << 0)
+#define PSC_I2SSTAT_RF (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SSTAT_RE (1 << 12)
+#define PSC_I2SSTAT_RR (1 << 11)
+#define PSC_I2SSTAT_TF (1 << 10)
+#define PSC_I2SSTAT_TE (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SSTAT_TR (1 << 8)
+#define PSC_I2SSTAT_RB (1 << 5)
+#define PSC_I2SSTAT_TB (1 << 4)
+#define PSC_I2SSTAT_DI (1 << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SSTAT_DR (1 << 1)
+#define PSC_I2SSTAT_SR (1 << 0)
+#define PSC_I2SEVNT_RR (1 << 13)
+#define PSC_I2SEVNT_RO (1 << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SEVNT_RU (1 << 11)
+#define PSC_I2SEVNT_TR (1 << 10)
+#define PSC_I2SEVNT_TO (1 << 9)
+#define PSC_I2SEVNT_TU (1 << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_I2SEVNT_RD (1 << 5)
+#define PSC_I2SEVNT_TD (1 << 4)
+typedef struct psc_spi {
+ u32 psc_sel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 psc_ctrl;
+ u32 psc_spicfg;
+ u32 psc_spimsk;
+ u32 psc_spipcr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 psc_spistat;
+ u32 psc_spievent;
+ u32 psc_spitxrx;
+} psc_spi_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_RT_MASK (3 << 30)
+#define PSC_SPICFG_RT_FIFO1 (0 << 30)
+#define PSC_SPICFG_RT_FIFO2 (1 << 30)
+#define PSC_SPICFG_RT_FIFO4 (2 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_RT_FIFO8 (3 << 30)
+#define PSC_SPICFG_TT_MASK (3 << 28)
+#define PSC_SPICFG_TT_FIFO1 (0 << 28)
+#define PSC_SPICFG_TT_FIFO2 (1 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_TT_FIFO4 (2 << 28)
+#define PSC_SPICFG_TT_FIFO8 (3 << 28)
+#define PSC_SPICFG_DD_DISABLE (1 << 27)
+#define PSC_SPICFG_DE_ENABLE (1 << 26)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_CLR_BAUD(x) ((x) & ~((0x3f) << 15))
+#define PSC_SPICFG_SET_BAUD(x) (((x) & 0x3f) << 15)
+#define PSC_SPICFG_SET_DIV(x) (((x) & 0x03) << 13)
+#define PSC_SPICFG_DIV2 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_DIV4 1
+#define PSC_SPICFG_DIV8 2
+#define PSC_SPICFG_DIV16 3
+#define PSC_SPICFG_BI (1 << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_PSE (1 << 11)
+#define PSC_SPICFG_CGE (1 << 10)
+#define PSC_SPICFG_CDE (1 << 9)
+#define PSC_SPICFG_CLR_LEN(x) ((x) & ~((0x1f) << 4))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPICFG_SET_LEN(x) (((x-1) & 0x1f) << 4)
+#define PSC_SPICFG_LB (1 << 3)
+#define PSC_SPICFG_MLF (1 << 1)
+#define PSC_SPICFG_MO (1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPIMSK_MM (1 << 16)
+#define PSC_SPIMSK_RR (1 << 13)
+#define PSC_SPIMSK_RO (1 << 12)
+#define PSC_SPIMSK_RU (1 << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPIMSK_TR (1 << 10)
+#define PSC_SPIMSK_TO (1 << 9)
+#define PSC_SPIMSK_TU (1 << 8)
+#define PSC_SPIMSK_SD (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPIMSK_MD (1 << 4)
+#define PSC_SPIMSK_ALLMASK (PSC_SPIMSK_MM | PSC_SPIMSK_RR |   PSC_SPIMSK_RO | PSC_SPIMSK_TO |   PSC_SPIMSK_TU | PSC_SPIMSK_SD |   PSC_SPIMSK_MD)
+#define PSC_SPIPCR_RC (1 << 6)
+#define PSC_SPIPCR_SP (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPIPCR_SS (1 << 4)
+#define PSC_SPIPCR_TC (1 << 2)
+#define PSC_SPIPCR_MS (1 << 0)
+#define PSC_SPISTAT_RF (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPISTAT_RE (1 << 12)
+#define PSC_SPISTAT_RR (1 << 11)
+#define PSC_SPISTAT_TF (1 << 10)
+#define PSC_SPISTAT_TE (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPISTAT_TR (1 << 8)
+#define PSC_SPISTAT_SB (1 << 5)
+#define PSC_SPISTAT_MB (1 << 4)
+#define PSC_SPISTAT_DI (1 << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPISTAT_DR (1 << 1)
+#define PSC_SPISTAT_SR (1 << 0)
+#define PSC_SPIEVNT_MM (1 << 16)
+#define PSC_SPIEVNT_RR (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPIEVNT_RO (1 << 12)
+#define PSC_SPIEVNT_RU (1 << 11)
+#define PSC_SPIEVNT_TR (1 << 10)
+#define PSC_SPIEVNT_TO (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPIEVNT_TU (1 << 8)
+#define PSC_SPIEVNT_SD (1 << 5)
+#define PSC_SPIEVNT_MD (1 << 4)
+#define PSC_SPITXRX_LC (1 << 29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SPITXRX_SR (1 << 28)
+typedef struct psc_smb {
+ u32 psc_sel;
+ u32 psc_ctrl;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 psc_smbcfg;
+ u32 psc_smbmsk;
+ u32 psc_smbpcr;
+ u32 psc_smbstat;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 psc_smbevnt;
+ u32 psc_smbtxrx;
+ u32 psc_smbtmr;
+} psc_smb_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBCFG_RT_MASK (3 << 30)
+#define PSC_SMBCFG_RT_FIFO1 (0 << 30)
+#define PSC_SMBCFG_RT_FIFO2 (1 << 30)
+#define PSC_SMBCFG_RT_FIFO4 (2 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBCFG_RT_FIFO8 (3 << 30)
+#define PSC_SMBCFG_TT_MASK (3 << 28)
+#define PSC_SMBCFG_TT_FIFO1 (0 << 28)
+#define PSC_SMBCFG_TT_FIFO2 (1 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBCFG_TT_FIFO4 (2 << 28)
+#define PSC_SMBCFG_TT_FIFO8 (3 << 28)
+#define PSC_SMBCFG_DD_DISABLE (1 << 27)
+#define PSC_SMBCFG_DE_ENABLE (1 << 26)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBCFG_SET_DIV(x) (((x) & 0x03) << 13)
+#define PSC_SMBCFG_DIV2 0
+#define PSC_SMBCFG_DIV4 1
+#define PSC_SMBCFG_DIV8 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBCFG_DIV16 3
+#define PSC_SMBCFG_GCE (1 << 9)
+#define PSC_SMBCFG_SFM (1 << 8)
+#define PSC_SMBCFG_SET_SLV(x) (((x) & 0x7f) << 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBMSK_DN (1 << 30)
+#define PSC_SMBMSK_AN (1 << 29)
+#define PSC_SMBMSK_AL (1 << 28)
+#define PSC_SMBMSK_RR (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBMSK_RO (1 << 12)
+#define PSC_SMBMSK_RU (1 << 11)
+#define PSC_SMBMSK_TR (1 << 10)
+#define PSC_SMBMSK_TO (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBMSK_TU (1 << 8)
+#define PSC_SMBMSK_SD (1 << 5)
+#define PSC_SMBMSK_MD (1 << 4)
+#define PSC_SMBMSK_ALLMASK (PSC_SMBMSK_DN | PSC_SMBMSK_AN |   PSC_SMBMSK_AL | PSC_SMBMSK_RR |   PSC_SMBMSK_RO | PSC_SMBMSK_TO |   PSC_SMBMSK_TU | PSC_SMBMSK_SD |   PSC_SMBMSK_MD)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBPCR_DC (1 << 2)
+#define PSC_SMBPCR_MS (1 << 0)
+#define PSC_SMBSTAT_BB (1 << 28)
+#define PSC_SMBSTAT_RF (1 << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBSTAT_RE (1 << 12)
+#define PSC_SMBSTAT_RR (1 << 11)
+#define PSC_SMBSTAT_TF (1 << 10)
+#define PSC_SMBSTAT_TE (1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBSTAT_TR (1 << 8)
+#define PSC_SMBSTAT_SB (1 << 5)
+#define PSC_SMBSTAT_MB (1 << 4)
+#define PSC_SMBSTAT_DI (1 << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBSTAT_DR (1 << 1)
+#define PSC_SMBSTAT_SR (1 << 0)
+#define PSC_SMBEVNT_DN (1 << 30)
+#define PSC_SMBEVNT_AN (1 << 29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBEVNT_AL (1 << 28)
+#define PSC_SMBEVNT_RR (1 << 13)
+#define PSC_SMBEVNT_RO (1 << 12)
+#define PSC_SMBEVNT_RU (1 << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBEVNT_TR (1 << 10)
+#define PSC_SMBEVNT_TO (1 << 9)
+#define PSC_SMBEVNT_TU (1 << 8)
+#define PSC_SMBEVNT_SD (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBEVNT_MD (1 << 4)
+#define PSC_SMBEVNT_ALLCLR (PSC_SMBEVNT_DN | PSC_SMBEVNT_AN |   PSC_SMBEVNT_AL | PSC_SMBEVNT_RR |   PSC_SMBEVNT_RO | PSC_SMBEVNT_TO |   PSC_SMBEVNT_TU | PSC_SMBEVNT_SD |   PSC_SMBEVNT_MD)
+#define PSC_SMBTXRX_RSR (1 << 28)
+#define PSC_SMBTXRX_STP (1 << 29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBTXRX_DATAMASK 0xff
+#define PSC_SMBTMR_SET_TH(x) (((x) & 0x03) << 30)
+#define PSC_SMBTMR_SET_PS(x) (((x) & 0x1f) << 25)
+#define PSC_SMBTMR_SET_PU(x) (((x) & 0x1f) << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PSC_SMBTMR_SET_SH(x) (((x) & 0x1f) << 15)
+#define PSC_SMBTMR_SET_SU(x) (((x) & 0x1f) << 10)
+#define PSC_SMBTMR_SET_CL(x) (((x) & 0x1f) << 5)
+#define PSC_SMBTMR_SET_CH(x) (((x) & 0x1f) << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mach-generic/spaces.h b/ndk/platforms/android-9/arch-mips/include/asm/mach-generic/spaces.h
new file mode 100644
index 0000000..cbda237
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mach-generic/spaces.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MACH_GENERIC_SPACES_H
+#define _ASM_MACH_GENERIC_SPACES_H
+#include <linux/const.h>
+#ifndef PHYS_OFFSET
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PHYS_OFFSET _AC(0, UL)
+#endif
+#ifndef PAGE_OFFSET
+#define PAGE_OFFSET (CAC_BASE + PHYS_OFFSET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mach-ip22/ds1286.h b/ndk/platforms/android-9/arch-mips/include/asm/mach-ip22/ds1286.h
new file mode 100644
index 0000000..1ea8a7d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mach-ip22/ds1286.h
@@ -0,0 +1,25 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MACH_IP22_DS1286_H
+#define __ASM_MACH_IP22_DS1286_H
+#include <asm/sgi/hpc3.h>
+#define rtc_read(reg) (hpc3c0->rtcregs[(reg)] & 0xff)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define rtc_write(data, reg) do { hpc3c0->rtcregs[(reg)] = (data); } while(0)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mc146818rtc.h b/ndk/platforms/android-9/arch-mips/include/asm/mc146818rtc.h
new file mode 100644
index 0000000..6887ef4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mc146818rtc.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MC146818RTC_H
+#define _ASM_MC146818RTC_H
+#include <mc146818rtc.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/bonito64.h b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/bonito64.h
new file mode 100644
index 0000000..7561bbb
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/bonito64.h
@@ -0,0 +1,363 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MIPS_BOARDS_BONITO64_H
+#define _ASM_MIPS_BOARDS_BONITO64_H
+#ifdef __ASSEMBLY__
+#define BONITO(x) (x)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO(x) *(volatile u32 *)(_pcictrl_bonito + (x))
+#define BONITO_BOOT_BASE 0x1fc00000
+#define BONITO_BOOT_SIZE 0x00100000
+#define BONITO_BOOT_TOP (BONITO_BOOT_BASE+BONITO_BOOT_SIZE-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_FLASH_BASE 0x1c000000
+#define BONITO_FLASH_SIZE 0x03000000
+#define BONITO_FLASH_TOP (BONITO_FLASH_BASE+BONITO_FLASH_SIZE-1)
+#define BONITO_SOCKET_BASE 0x1f800000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SOCKET_SIZE 0x00400000
+#define BONITO_SOCKET_TOP (BONITO_SOCKET_BASE+BONITO_SOCKET_SIZE-1)
+#define BONITO_REG_BASE 0x1fe00000
+#define BONITO_REG_SIZE 0x00040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_REG_TOP (BONITO_REG_BASE+BONITO_REG_SIZE-1)
+#define BONITO_DEV_BASE 0x1ff00000
+#define BONITO_DEV_SIZE 0x00100000
+#define BONITO_DEV_TOP (BONITO_DEV_BASE+BONITO_DEV_SIZE-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCILO_BASE 0x10000000
+#define BONITO_PCILO_SIZE 0x0c000000
+#define BONITO_PCILO_TOP (BONITO_PCILO_BASE+BONITO_PCILO_SIZE-1)
+#define BONITO_PCILO0_BASE 0x10000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCILO1_BASE 0x14000000
+#define BONITO_PCILO2_BASE 0x18000000
+#define BONITO_PCIHI_BASE 0x20000000
+#define BONITO_PCIHI_SIZE 0x20000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIHI_TOP (BONITO_PCIHI_BASE+BONITO_PCIHI_SIZE-1)
+#define BONITO_PCIIO_BASE 0x1fd00000
+#define BONITO_PCIIO_SIZE 0x00100000
+#define BONITO_PCIIO_TOP (BONITO_PCIIO_BASE+BONITO_PCIIO_SIZE-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICFG_BASE 0x1fe80000
+#define BONITO_PCICFG_SIZE 0x00080000
+#define BONITO_PCICFG_TOP (BONITO_PCICFG_BASE+BONITO_PCICFG_SIZE-1)
+#define BONITO_PCICONFIGBASE 0x00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_REGBASE 0x100
+#define BONITO_PCI_REG(x) BONITO(BONITO_PCICONFIGBASE + (x))
+#define BONITO_PCIDID BONITO_PCI_REG(0x00)
+#define BONITO_PCICMD BONITO_PCI_REG(0x04)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICLASS BONITO_PCI_REG(0x08)
+#define BONITO_PCILTIMER BONITO_PCI_REG(0x0c)
+#define BONITO_PCIBASE0 BONITO_PCI_REG(0x10)
+#define BONITO_PCIBASE1 BONITO_PCI_REG(0x14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIBASE2 BONITO_PCI_REG(0x18)
+#define BONITO_PCIEXPRBASE BONITO_PCI_REG(0x30)
+#define BONITO_PCIINT BONITO_PCI_REG(0x3c)
+#define BONITO_PCICMD_PERR_CLR 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICMD_SERR_CLR 0x40000000
+#define BONITO_PCICMD_MABORT_CLR 0x20000000
+#define BONITO_PCICMD_MTABORT_CLR 0x10000000
+#define BONITO_PCICMD_TABORT_CLR 0x08000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICMD_MPERR_CLR 0x01000000
+#define BONITO_PCICMD_PERRRESPEN 0x00000040
+#define BONITO_PCICMD_ASTEPEN 0x00000080
+#define BONITO_PCICMD_SERREN 0x00000100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCILTIMER_BUSLATENCY 0x0000ff00
+#define BONITO_PCILTIMER_BUSLATENCY_SHIFT 8
+#define BONITO_BONPONCFG BONITO(BONITO_REGBASE + 0x00)
+#define BONITO_BONPONCFG_SYSCONTROLLERRD 0x00040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONPONCFG_ROMCS1SAMP 0x00020000
+#define BONITO_BONPONCFG_ROMCS0SAMP 0x00010000
+#define BONITO_BONPONCFG_CPUBIGEND 0x00004000
+#define BONITO_BONPONCFG_BURSTORDER 0x00001000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONPONCFG_CPUPARITY 0x00002000
+#define BONITO_BONPONCFG_CPUTYPE 0x00000007
+#define BONITO_BONPONCFG_CPUTYPE_SHIFT 0
+#define BONITO_BONPONCFG_PCIRESET_OUT 0x00000008
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONPONCFG_IS_ARBITER 0x00000010
+#define BONITO_BONPONCFG_ROMBOOT 0x000000c0
+#define BONITO_BONPONCFG_ROMBOOT_SHIFT 6
+#define BONITO_BONPONCFG_ROMBOOT_FLASH (0x0<<BONITO_BONPONCFG_ROMBOOT_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONPONCFG_ROMBOOT_SOCKET (0x1<<BONITO_BONPONCFG_ROMBOOT_SHIFT)
+#define BONITO_BONPONCFG_ROMBOOT_SDRAM (0x2<<BONITO_BONPONCFG_ROMBOOT_SHIFT)
+#define BONITO_BONPONCFG_ROMBOOT_CPURESET (0x3<<BONITO_BONPONCFG_ROMBOOT_SHIFT)
+#define BONITO_BONPONCFG_ROMCS0WIDTH 0x00000100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONPONCFG_ROMCS1WIDTH 0x00000200
+#define BONITO_BONPONCFG_ROMCS0FAST 0x00000400
+#define BONITO_BONPONCFG_ROMCS1FAST 0x00000800
+#define BONITO_BONPONCFG_CONFIG_DIS 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONGENCFG_OFFSET 0x4
+#define BONITO_BONGENCFG BONITO(BONITO_REGBASE + BONITO_BONGENCFG_OFFSET)
+#define BONITO_BONGENCFG_DEBUGMODE 0x00000001
+#define BONITO_BONGENCFG_SNOOPEN 0x00000002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONGENCFG_CPUSELFRESET 0x00000004
+#define BONITO_BONGENCFG_FORCE_IRQA 0x00000008
+#define BONITO_BONGENCFG_IRQA_ISOUT 0x00000010
+#define BONITO_BONGENCFG_IRQA_FROM_INT1 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONGENCFG_BYTESWAP 0x00000040
+#define BONITO_BONGENCFG_UNCACHED 0x00000080
+#define BONITO_BONGENCFG_PREFETCHEN 0x00000100
+#define BONITO_BONGENCFG_WBEHINDEN 0x00000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONGENCFG_CACHEALG 0x00000c00
+#define BONITO_BONGENCFG_CACHEALG_SHIFT 10
+#define BONITO_BONGENCFG_PCIQUEUE 0x00001000
+#define BONITO_BONGENCFG_CACHESTOP 0x00002000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONGENCFG_MSTRBYTESWAP 0x00004000
+#define BONITO_BONGENCFG_BUSERREN 0x00008000
+#define BONITO_BONGENCFG_NORETRYTIMEOUT 0x00010000
+#define BONITO_BONGENCFG_SHORTCOPYTIMEOUT 0x00020000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IODEVCFG BONITO(BONITO_REGBASE + 0x08)
+#define BONITO_SDCFG BONITO(BONITO_REGBASE + 0x0c)
+#define BONITO_PCIMAP BONITO(BONITO_REGBASE + 0x10)
+#define BONITO_PCIMEMBASECFG BONITO(BONITO_REGBASE + 0x14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMAP_CFG BONITO(BONITO_REGBASE + 0x18)
+#define BONITO_GPIODATA_OFFSET 0x1c
+#define BONITO_GPIODATA BONITO(BONITO_REGBASE + BONITO_GPIODATA_OFFSET)
+#define BONITO_GPIOIE BONITO(BONITO_REGBASE + 0x20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_INTEDGE BONITO(BONITO_REGBASE + 0x24)
+#define BONITO_INTSTEER BONITO(BONITO_REGBASE + 0x28)
+#define BONITO_INTPOL BONITO(BONITO_REGBASE + 0x2c)
+#define BONITO_INTENSET BONITO(BONITO_REGBASE + 0x30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_INTENCLR BONITO(BONITO_REGBASE + 0x34)
+#define BONITO_INTEN BONITO(BONITO_REGBASE + 0x38)
+#define BONITO_INTISR BONITO(BONITO_REGBASE + 0x3c)
+#define BONITO_PCIMAIL0_OFFSET 0x40
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMAIL1_OFFSET 0x44
+#define BONITO_PCIMAIL2_OFFSET 0x48
+#define BONITO_PCIMAIL3_OFFSET 0x4c
+#define BONITO_PCIMAIL0 BONITO(BONITO_REGBASE + 0x40)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMAIL1 BONITO(BONITO_REGBASE + 0x44)
+#define BONITO_PCIMAIL2 BONITO(BONITO_REGBASE + 0x48)
+#define BONITO_PCIMAIL3 BONITO(BONITO_REGBASE + 0x4c)
+#define BONITO_PCICACHECTRL BONITO(BONITO_REGBASE + 0x50)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICACHETAG BONITO(BONITO_REGBASE + 0x54)
+#define BONITO_PCIBADADDR BONITO(BONITO_REGBASE + 0x58)
+#define BONITO_PCIMSTAT BONITO(BONITO_REGBASE + 0x5c)
+#define BONITO_CONFIGBASE 0x000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_BONITOBASE 0x100
+#define BONITO_LDMABASE 0x200
+#define BONITO_COPBASE 0x300
+#define BONITO_REG_BLOCKMASK 0x300
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_LDMACTRL BONITO(BONITO_LDMABASE + 0x0)
+#define BONITO_LDMASTAT BONITO(BONITO_LDMABASE + 0x0)
+#define BONITO_LDMAADDR BONITO(BONITO_LDMABASE + 0x4)
+#define BONITO_LDMAGO BONITO(BONITO_LDMABASE + 0x8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_LDMADATA BONITO(BONITO_LDMABASE + 0xc)
+#define BONITO_COPCTRL BONITO(BONITO_COPBASE + 0x0)
+#define BONITO_COPSTAT BONITO(BONITO_COPBASE + 0x0)
+#define BONITO_COPPADDR BONITO(BONITO_COPBASE + 0x4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_COPDADDR BONITO(BONITO_COPBASE + 0x8)
+#define BONITO_COPGO BONITO(BONITO_COPBASE + 0xc)
+#define BONITO_IDECOPDADDR_DMA_DADDR 0x0ffffffc
+#define BONITO_IDECOPDADDR_DMA_DADDR_SHIFT 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IDECOPPADDR_DMA_PADDR 0xfffffffc
+#define BONITO_IDECOPPADDR_DMA_PADDR_SHIFT 2
+#define BONITO_IDECOPGO_DMA_SIZE 0x0000fffe
+#define BONITO_IDECOPGO_DMA_SIZE_SHIFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IDECOPGO_DMA_WRITE 0x00010000
+#define BONITO_IDECOPGO_DMAWCOUNT 0x000f0000
+#define BONITO_IDECOPGO_DMAWCOUNT_SHIFT 16
+#define BONITO_IDECOPCTRL_DMA_STARTBIT 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IDECOPCTRL_DMA_RSTBIT 0x40000000
+#define BONITO_SDCFG_AROWBITS 0x00000003
+#define BONITO_SDCFG_AROWBITS_SHIFT 0
+#define BONITO_SDCFG_ACOLBITS 0x0000000c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SDCFG_ACOLBITS_SHIFT 2
+#define BONITO_SDCFG_ABANKBIT 0x00000010
+#define BONITO_SDCFG_ASIDES 0x00000020
+#define BONITO_SDCFG_AABSENT 0x00000040
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SDCFG_AWIDTH64 0x00000080
+#define BONITO_SDCFG_BROWBITS 0x00000300
+#define BONITO_SDCFG_BROWBITS_SHIFT 8
+#define BONITO_SDCFG_BCOLBITS 0x00000c00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SDCFG_BCOLBITS_SHIFT 10
+#define BONITO_SDCFG_BBANKBIT 0x00001000
+#define BONITO_SDCFG_BSIDES 0x00002000
+#define BONITO_SDCFG_BABSENT 0x00004000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SDCFG_BWIDTH64 0x00008000
+#define BONITO_SDCFG_EXTRDDATA 0x00010000
+#define BONITO_SDCFG_EXTRASCAS 0x00020000
+#define BONITO_SDCFG_EXTPRECH 0x00040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SDCFG_EXTRASWIDTH 0x00180000
+#define BONITO_SDCFG_EXTRASWIDTH_SHIFT 19
+#define BONITO_SDCFG_DRAMMODESET 0x00200000
+#define BONITO_SDCFG_DRAMEXTREGS 0x00400000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_SDCFG_DRAMPARITY 0x00800000
+#define BONITO_SDCFG_DRAMBURSTLEN 0x03000000
+#define BONITO_SDCFG_DRAMBURSTLEN_SHIFT 24
+#define BONITO_SDCFG_DRAMMODESET_DONE 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICACHECTRL_CACHECMD 0x00000007
+#define BONITO_PCICACHECTRL_CACHECMD_SHIFT 0
+#define BONITO_PCICACHECTRL_CACHECMDLINE 0x00000018
+#define BONITO_PCICACHECTRL_CACHECMDLINE_SHIFT 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICACHECTRL_CMDEXEC 0x00000020
+#define BONITO_PCICACHECTRL_IOBCCOH_PRES 0x00000100
+#define BONITO_PCICACHECTRL_IOBCCOH_EN 0x00000200
+#define BONITO_PCICACHECTRL_CPUCOH_PRES 0x00000400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCICACHECTRL_CPUCOH_EN 0x00000800
+#define BONITO_IODEVCFG_BUFFBIT_CS0 0x00000001
+#define BONITO_IODEVCFG_SPEEDBIT_CS0 0x00000002
+#define BONITO_IODEVCFG_MOREABITS_CS0 0x00000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IODEVCFG_BUFFBIT_CS1 0x00000008
+#define BONITO_IODEVCFG_SPEEDBIT_CS1 0x00000010
+#define BONITO_IODEVCFG_MOREABITS_CS1 0x00000020
+#define BONITO_IODEVCFG_BUFFBIT_CS2 0x00000040
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IODEVCFG_SPEEDBIT_CS2 0x00000080
+#define BONITO_IODEVCFG_MOREABITS_CS2 0x00000100
+#define BONITO_IODEVCFG_BUFFBIT_CS3 0x00000200
+#define BONITO_IODEVCFG_SPEEDBIT_CS3 0x00000400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IODEVCFG_MOREABITS_CS3 0x00000800
+#define BONITO_IODEVCFG_BUFFBIT_IDE 0x00001000
+#define BONITO_IODEVCFG_SPEEDBIT_IDE 0x00002000
+#define BONITO_IODEVCFG_WORDSWAPBIT_IDE 0x00004000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IODEVCFG_MODEBIT_IDE 0x00008000
+#define BONITO_IODEVCFG_DMAON_IDE 0x001f0000
+#define BONITO_IODEVCFG_DMAON_IDE_SHIFT 16
+#define BONITO_IODEVCFG_DMAOFF_IDE 0x01e00000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_IODEVCFG_DMAOFF_IDE_SHIFT 21
+#define BONITO_IODEVCFG_EPROMSPLIT 0x02000000
+#define BONITO_IODEVCFG_CPUCLOCKPERIOD 0xfc000000
+#define BONITO_IODEVCFG_CPUCLOCKPERIOD_SHIFT 26
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_GPIO_GPIOW 0x000003ff
+#define BONITO_GPIO_GPIOW_SHIFT 0
+#define BONITO_GPIO_GPIOR 0x01ff0000
+#define BONITO_GPIO_GPIOR_SHIFT 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_GPIO_GPINR 0xfe000000
+#define BONITO_GPIO_GPINR_SHIFT 25
+#define BONITO_GPIO_IOW(N) (1<<(BONITO_GPIO_GPIOW_SHIFT+(N)))
+#define BONITO_GPIO_IOR(N) (1<<(BONITO_GPIO_GPIOR_SHIFT+(N)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_GPIO_INR(N) (1<<(BONITO_GPIO_GPINR_SHIFT+(N)))
+#define BONITO_ICU_MBOXES 0x0000000f
+#define BONITO_ICU_MBOXES_SHIFT 0
+#define BONITO_ICU_DMARDY 0x00000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_ICU_DMAEMPTY 0x00000020
+#define BONITO_ICU_COPYRDY 0x00000040
+#define BONITO_ICU_COPYEMPTY 0x00000080
+#define BONITO_ICU_COPYERR 0x00000100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_ICU_PCIIRQ 0x00000200
+#define BONITO_ICU_MASTERERR 0x00000400
+#define BONITO_ICU_SYSTEMERR 0x00000800
+#define BONITO_ICU_DRAMPERR 0x00001000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_ICU_RETRYERR 0x00002000
+#define BONITO_ICU_GPIOS 0x01ff0000
+#define BONITO_ICU_GPIOS_SHIFT 16
+#define BONITO_ICU_GPINS 0x7e000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_ICU_GPINS_SHIFT 25
+#define BONITO_ICU_MBOX(N) (1<<(BONITO_ICU_MBOXES_SHIFT+(N)))
+#define BONITO_ICU_GPIO(N) (1<<(BONITO_ICU_GPIOS_SHIFT+(N)))
+#define BONITO_ICU_GPIN(N) (1<<(BONITO_ICU_GPINS_SHIFT+(N)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMAP_PCIMAP_LO0 0x0000003f
+#define BONITO_PCIMAP_PCIMAP_LO0_SHIFT 0
+#define BONITO_PCIMAP_PCIMAP_LO1 0x00000fc0
+#define BONITO_PCIMAP_PCIMAP_LO1_SHIFT 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMAP_PCIMAP_LO2 0x0003f000
+#define BONITO_PCIMAP_PCIMAP_LO2_SHIFT 12
+#define BONITO_PCIMAP_PCIMAP_2 0x00040000
+#define BONITO_PCIMAP_WIN(WIN, ADDR) ((((ADDR)>>26) & BONITO_PCIMAP_PCIMAP_LO0) << ((WIN)*6))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMAP_WINSIZE (1<<26)
+#define BONITO_PCIMAP_WINOFFSET(ADDR) ((ADDR) & (BONITO_PCIMAP_WINSIZE - 1))
+#define BONITO_PCIMAP_WINBASE(ADDR) ((ADDR) << 26)
+#define BONITO_PCIMEMBASECFG_MASK 0xf0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMEMBASECFG_MEMBASE0_MASK 0x0000001f
+#define BONITO_PCIMEMBASECFG_MEMBASE0_MASK_SHIFT 0
+#define BONITO_PCIMEMBASECFG_MEMBASE0_TRANS 0x000003e0
+#define BONITO_PCIMEMBASECFG_MEMBASE0_TRANS_SHIFT 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMEMBASECFG_MEMBASE0_CACHED 0x00000400
+#define BONITO_PCIMEMBASECFG_MEMBASE0_IO 0x00000800
+#define BONITO_PCIMEMBASECFG_MEMBASE1_MASK 0x0001f000
+#define BONITO_PCIMEMBASECFG_MEMBASE1_MASK_SHIFT 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMEMBASECFG_MEMBASE1_TRANS 0x003e0000
+#define BONITO_PCIMEMBASECFG_MEMBASE1_TRANS_SHIFT 17
+#define BONITO_PCIMEMBASECFG_MEMBASE1_CACHED 0x00400000
+#define BONITO_PCIMEMBASECFG_MEMBASE1_IO 0x00800000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMEMBASECFG_ASHIFT 23
+#define BONITO_PCIMEMBASECFG_AMASK 0x007fffff
+#define BONITO_PCIMEMBASECFGSIZE(WIN, SIZE) (((~((SIZE)-1))>>(BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT)) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK)
+#define BONITO_PCIMEMBASECFGBASE(WIN, BASE) (((BASE)>>(BONITO_PCIMEMBASECFG_ASHIFT-BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS_SHIFT)) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCIMEMBASECFG_SIZE(WIN, CFG) (((((~(CFG)) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK)) << (BONITO_PCIMEMBASECFG_ASHIFT - BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT)) | BONITO_PCIMEMBASECFG_AMASK)
+#define BONITO_PCIMEMBASECFG_ADDRMASK(WIN, CFG) ((((CFG) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK) >> BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT) << BONITO_PCIMEMBASECFG_ASHIFT)
+#define BONITO_PCIMEMBASECFG_ADDRMASK(WIN, CFG) ((((CFG) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK) >> BONITO_PCIMEMBASECFG_MEMBASE##WIN##_MASK_SHIFT) << BONITO_PCIMEMBASECFG_ASHIFT)
+#define BONITO_PCIMEMBASECFG_ADDRTRANS(WIN, CFG) ((((CFG) & BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS) >> BONITO_PCIMEMBASECFG_MEMBASE##WIN##_TRANS_SHIFT) << BONITO_PCIMEMBASECFG_ASHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BONITO_PCITOPHYS(WIN, ADDR, CFG) (   (((ADDR) & (~(BONITO_PCIMEMBASECFG_MASK))) & (~(BONITO_PCIMEMBASECFG_ADDRMASK(WIN, CFG)))) |   (BONITO_PCIMEMBASECFG_ADDRTRANS(WIN, CFG))   )
+#define BONITO_PCICMD_MEMEN 0x00000002
+#define BONITO_PCICMD_MSTREN 0x00000004
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/generic.h b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/generic.h
new file mode 100644
index 0000000..fe07137
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/generic.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_BOARDS_GENERIC_H
+#define __ASM_MIPS_BOARDS_GENERIC_H
+#include <asm/addrspace.h>
+#include <asm/byteorder.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/mips-boards/bonito64.h>
+#define ASCII_DISPLAY_WORD_BASE 0x1f000410
+#define ASCII_DISPLAY_POS_BASE 0x1f000418
+#define YAMON_PROM_PRINT_ADDR 0x1fc00504
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SOFTRES_REG 0x1f000500
+#define GORESET 0x42
+#define MIPS_REVISION_REG 0x1fc00010
+#define MIPS_REVISION_CORID_QED_RM5261 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_CORID_CORE_LV 1
+#define MIPS_REVISION_CORID_BONITO64 2
+#define MIPS_REVISION_CORID_CORE_20K 3
+#define MIPS_REVISION_CORID_CORE_FPGA 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_CORID_CORE_MSC 5
+#define MIPS_REVISION_CORID_CORE_EMUL 6
+#define MIPS_REVISION_CORID_CORE_FPGA2 7
+#define MIPS_REVISION_CORID_CORE_FPGAR2 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_CORID_CORE_FPGA3 9
+#define MIPS_REVISION_CORID_CORE_24K 10
+#define MIPS_REVISION_CORID_CORE_FPGA4 11
+#define MIPS_REVISION_CORID_CORE_FPGA5 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_CORID_CORE_EMUL_BON -1
+#define MIPS_REVISION_CORID_CORE_EMUL_MSC -2
+#define MIPS_REVISION_CORID (((*(volatile u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 10) & 0x3f)
+#define MIPS_REVISION_SCON_OTHER 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_SCON_SOCITSC 1
+#define MIPS_REVISION_SCON_SOCITSCP 2
+#define MIPS_REVISION_SCON_UNKNOWN -1
+#define MIPS_REVISION_SCON_GT64120 -2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_SCON_BONITO -3
+#define MIPS_REVISION_SCON_BRTL -4
+#define MIPS_REVISION_SCON_SOCIT -5
+#define MIPS_REVISION_SCON_ROCIT -6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_REVISION_SCONID (((*(volatile u32 *)ioremap(MIPS_REVISION_REG, 4)) >> 24) & 0xff)
+#define mips_pcibios_init() do { } while (0)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/malta.h b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/malta.h
new file mode 100644
index 0000000..7cef7e0
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/malta.h
@@ -0,0 +1,60 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_BOARDS_MALTA_H
+#define __ASM_MIPS_BOARDS_MALTA_H
+#include <asm/addrspace.h>
+#include <asm/io.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/mips-boards/msc01_pci.h>
+#include <asm/gt64120.h>
+#define MIPS_MSC01_IC_REG_BASE 0x1bc40000
+#define MIPS_SOCITSC_IC_REG_BASE 0x1ffa0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MALTA_GT_PORT_BASE get_gt_port_base(GT_PCI0IOLD_OFS)
+#define MALTA_BONITO_PORT_BASE ((unsigned long)ioremap (0x1fd00000, 0x10000))
+#define MALTA_MSC_PORT_BASE get_msc_port_base(MSC01_PCI_SC2PIOBASL)
+#define GCMP_BASE_ADDR 0x1fbf8000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GCMP_ADDRSPACE_SZ (256 * 1024)
+#define GIC_BASE_ADDR 0x1bdc0000
+#define GIC_ADDRSPACE_SZ (128 * 1024)
+#define MSC01_BIU_REG_BASE 0x1bc80000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_BIU_ADDRSPACE_SZ (256 * 1024)
+#define MSC01_SC_CFG_OFS 0x0110
+#define MSC01_SC_CFG_GICPRES_MSK 0x00000004
+#define MSC01_SC_CFG_GICPRES_SHF 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_SC_CFG_GICENA_SHF 3
+#define MALTA_RTC_ADR_REG 0x70
+#define MALTA_RTC_DAT_REG 0x71
+#define SMSC_CONFIG_REG 0x3f0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SMSC_DATA_REG 0x3f1
+#define SMSC_CONFIG_DEVNUM 0x7
+#define SMSC_CONFIG_ACTIVATE 0x30
+#define SMSC_CONFIG_ENTER 0x55
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SMSC_CONFIG_EXIT 0xaa
+#define SMSC_CONFIG_DEVNUM_FLOPPY 0
+#define SMSC_CONFIG_ACTIVATE_ENABLE 1
+#define SMSC_WRITE(x, a) outb(x, a)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MALTA_JMPRS_REG 0x1f000210
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/msc01_pci.h b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/msc01_pci.h
new file mode 100644
index 0000000..6235847
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mips-boards/msc01_pci.h
@@ -0,0 +1,270 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_BOARDS_MSC01_PCI_H
+#define __ASM_MIPS_BOARDS_MSC01_PCI_H
+#define MSC01_PCI_ID_OFS 0x0000
+#define MSC01_PCI_SC2PMBASL_OFS 0x0208
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SC2PMMSKL_OFS 0x0218
+#define MSC01_PCI_SC2PMMAPL_OFS 0x0228
+#define MSC01_PCI_SC2PIOBASL_OFS 0x0248
+#define MSC01_PCI_SC2PIOMSKL_OFS 0x0258
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SC2PIOMAPL_OFS 0x0268
+#define MSC01_PCI_P2SCMSKL_OFS 0x0308
+#define MSC01_PCI_P2SCMAPL_OFS 0x0318
+#define MSC01_PCI_INTCFG_OFS 0x0600
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_OFS 0x0608
+#define MSC01_PCI_CFGADDR_OFS 0x0610
+#define MSC01_PCI_CFGDATA_OFS 0x0618
+#define MSC01_PCI_IACK_OFS 0x0620
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD0_OFS 0x2000  
+#define MSC01_PCI_HEAD1_OFS 0x2008  
+#define MSC01_PCI_HEAD2_OFS 0x2010  
+#define MSC01_PCI_HEAD3_OFS 0x2018  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD4_OFS 0x2020  
+#define MSC01_PCI_HEAD5_OFS 0x2028  
+#define MSC01_PCI_HEAD6_OFS 0x2030  
+#define MSC01_PCI_HEAD7_OFS 0x2038  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD8_OFS 0x2040  
+#define MSC01_PCI_HEAD9_OFS 0x2048  
+#define MSC01_PCI_HEAD10_OFS 0x2050  
+#define MSC01_PCI_HEAD11_OFS 0x2058  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD12_OFS 0x2060  
+#define MSC01_PCI_HEAD13_OFS 0x2068  
+#define MSC01_PCI_HEAD14_OFS 0x2070  
+#define MSC01_PCI_HEAD15_OFS 0x2078  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_BAR0_OFS 0x2220
+#define MSC01_PCI_CFG_OFS 0x2380
+#define MSC01_PCI_SWAP_OFS 0x2388
+#define MSC01_PCI_ID_ID_SHF 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_ID_ID_MSK 0x00ff0000
+#define MSC01_PCI_ID_ID_HOSTBRIDGE 82
+#define MSC01_PCI_ID_MAR_SHF 8
+#define MSC01_PCI_ID_MAR_MSK 0x0000ff00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_ID_MIR_SHF 0
+#define MSC01_PCI_ID_MIR_MSK 0x000000ff
+#define MSC01_PCI_SC2PMBASL_BAS_SHF 24
+#define MSC01_PCI_SC2PMBASL_BAS_MSK 0xff000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SC2PMMSKL_MSK_SHF 24
+#define MSC01_PCI_SC2PMMSKL_MSK_MSK 0xff000000
+#define MSC01_PCI_SC2PMMAPL_MAP_SHF 24
+#define MSC01_PCI_SC2PMMAPL_MAP_MSK 0xff000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SC2PIOBASL_BAS_SHF 24
+#define MSC01_PCI_SC2PIOBASL_BAS_MSK 0xff000000
+#define MSC01_PCI_SC2PIOMSKL_MSK_SHF 24
+#define MSC01_PCI_SC2PIOMSKL_MSK_MSK 0xff000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SC2PIOMAPL_MAP_SHF 24
+#define MSC01_PCI_SC2PIOMAPL_MAP_MSK 0xff000000
+#define MSC01_PCI_P2SCMSKL_MSK_SHF 24
+#define MSC01_PCI_P2SCMSKL_MSK_MSK 0xff000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_P2SCMAPL_MAP_SHF 24
+#define MSC01_PCI_P2SCMAPL_MAP_MSK 0xff000000
+#define MSC01_PCI_INTCFG_RST_SHF 10
+#define MSC01_PCI_INTCFG_RST_MSK 0x00000400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_RST_BIT 0x00000400
+#define MSC01_PCI_INTCFG_MWE_SHF 9
+#define MSC01_PCI_INTCFG_MWE_MSK 0x00000200
+#define MSC01_PCI_INTCFG_MWE_BIT 0x00000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_DTO_SHF 8
+#define MSC01_PCI_INTCFG_DTO_MSK 0x00000100
+#define MSC01_PCI_INTCFG_DTO_BIT 0x00000100
+#define MSC01_PCI_INTCFG_MA_SHF 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_MA_MSK 0x00000080
+#define MSC01_PCI_INTCFG_MA_BIT 0x00000080
+#define MSC01_PCI_INTCFG_TA_SHF 6
+#define MSC01_PCI_INTCFG_TA_MSK 0x00000040
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_TA_BIT 0x00000040
+#define MSC01_PCI_INTCFG_RTY_SHF 5
+#define MSC01_PCI_INTCFG_RTY_MSK 0x00000020
+#define MSC01_PCI_INTCFG_RTY_BIT 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_MWP_SHF 4
+#define MSC01_PCI_INTCFG_MWP_MSK 0x00000010
+#define MSC01_PCI_INTCFG_MWP_BIT 0x00000010
+#define MSC01_PCI_INTCFG_MRP_SHF 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_MRP_MSK 0x00000008
+#define MSC01_PCI_INTCFG_MRP_BIT 0x00000008
+#define MSC01_PCI_INTCFG_SWP_SHF 2
+#define MSC01_PCI_INTCFG_SWP_MSK 0x00000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_SWP_BIT 0x00000004
+#define MSC01_PCI_INTCFG_SRP_SHF 1
+#define MSC01_PCI_INTCFG_SRP_MSK 0x00000002
+#define MSC01_PCI_INTCFG_SRP_BIT 0x00000002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTCFG_SE_SHF 0
+#define MSC01_PCI_INTCFG_SE_MSK 0x00000001
+#define MSC01_PCI_INTCFG_SE_BIT 0x00000001
+#define MSC01_PCI_INTSTAT_RST_SHF 10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_RST_MSK 0x00000400
+#define MSC01_PCI_INTSTAT_RST_BIT 0x00000400
+#define MSC01_PCI_INTSTAT_MWE_SHF 9
+#define MSC01_PCI_INTSTAT_MWE_MSK 0x00000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_MWE_BIT 0x00000200
+#define MSC01_PCI_INTSTAT_DTO_SHF 8
+#define MSC01_PCI_INTSTAT_DTO_MSK 0x00000100
+#define MSC01_PCI_INTSTAT_DTO_BIT 0x00000100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_MA_SHF 7
+#define MSC01_PCI_INTSTAT_MA_MSK 0x00000080
+#define MSC01_PCI_INTSTAT_MA_BIT 0x00000080
+#define MSC01_PCI_INTSTAT_TA_SHF 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_TA_MSK 0x00000040
+#define MSC01_PCI_INTSTAT_TA_BIT 0x00000040
+#define MSC01_PCI_INTSTAT_RTY_SHF 5
+#define MSC01_PCI_INTSTAT_RTY_MSK 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_RTY_BIT 0x00000020
+#define MSC01_PCI_INTSTAT_MWP_SHF 4
+#define MSC01_PCI_INTSTAT_MWP_MSK 0x00000010
+#define MSC01_PCI_INTSTAT_MWP_BIT 0x00000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_MRP_SHF 3
+#define MSC01_PCI_INTSTAT_MRP_MSK 0x00000008
+#define MSC01_PCI_INTSTAT_MRP_BIT 0x00000008
+#define MSC01_PCI_INTSTAT_SWP_SHF 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_SWP_MSK 0x00000004
+#define MSC01_PCI_INTSTAT_SWP_BIT 0x00000004
+#define MSC01_PCI_INTSTAT_SRP_SHF 1
+#define MSC01_PCI_INTSTAT_SRP_MSK 0x00000002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_INTSTAT_SRP_BIT 0x00000002
+#define MSC01_PCI_INTSTAT_SE_SHF 0
+#define MSC01_PCI_INTSTAT_SE_MSK 0x00000001
+#define MSC01_PCI_INTSTAT_SE_BIT 0x00000001
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFGADDR_BNUM_SHF 16
+#define MSC01_PCI_CFGADDR_BNUM_MSK 0x00ff0000
+#define MSC01_PCI_CFGADDR_DNUM_SHF 11
+#define MSC01_PCI_CFGADDR_DNUM_MSK 0x0000f800
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFGADDR_FNUM_SHF 8
+#define MSC01_PCI_CFGADDR_FNUM_MSK 0x00000700
+#define MSC01_PCI_CFGADDR_RNUM_SHF 2
+#define MSC01_PCI_CFGADDR_RNUM_MSK 0x000000fc
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFGDATA_DATA_SHF 0
+#define MSC01_PCI_CFGDATA_DATA_MSK 0xffffffff
+#define MSC01_PCI_BAR0_SIZE_SHF 4
+#define MSC01_PCI_BAR0_SIZE_MSK 0xfffffff0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_BAR0_P_SHF 3
+#define MSC01_PCI_BAR0_P_MSK 0x00000008
+#define MSC01_PCI_BAR0_P_BIT MSC01_PCI_BAR0_P_MSK
+#define MSC01_PCI_BAR0_D_SHF 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_BAR0_D_MSK 0x00000006
+#define MSC01_PCI_BAR0_T_SHF 0
+#define MSC01_PCI_BAR0_T_MSK 0x00000001
+#define MSC01_PCI_BAR0_T_BIT MSC01_PCI_BAR0_T_MSK
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFG_RA_SHF 17
+#define MSC01_PCI_CFG_RA_MSK 0x00020000
+#define MSC01_PCI_CFG_RA_BIT MSC01_PCI_CFG_RA_MSK
+#define MSC01_PCI_CFG_G_SHF 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFG_G_MSK 0x00010000
+#define MSC01_PCI_CFG_G_BIT MSC01_PCI_CFG_G_MSK
+#define MSC01_PCI_CFG_EN_SHF 15
+#define MSC01_PCI_CFG_EN_MSK 0x00008000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFG_EN_BIT MSC01_PCI_CFG_EN_MSK
+#define MSC01_PCI_CFG_MAXRTRY_SHF 0
+#define MSC01_PCI_CFG_MAXRTRY_MSK 0x00000fff
+#define MSC01_PCI_SWAP_IO_SHF 18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SWAP_IO_MSK 0x000c0000
+#define MSC01_PCI_SWAP_MEM_SHF 16
+#define MSC01_PCI_SWAP_MEM_MSK 0x00030000
+#define MSC01_PCI_SWAP_BAR0_SHF 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SWAP_BAR0_MSK 0x00000003
+#define MSC01_PCI_SWAP_NOSWAP 0
+#define MSC01_PCI_SWAP_BYTESWAP 1
+#define MIPS_MSC01_PCI_REG_BASE 0x1bd00000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_SOCITSC_PCI_REG_BASE 0x1ff10000
+#define MSC01_PCI_REG_BASE _pcictrl_msc
+#define MSC_WRITE(reg, data) do { *(volatile u32 *)(reg) = data; } while (0)
+#define MSC_READ(reg, data) do { data = *(volatile u32 *)(reg); } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_ID (MSC01_PCI_REG_BASE + MSC01_PCI_ID_OFS)
+#define MSC01_PCI_SC2PMBASL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PMBASL_OFS)
+#define MSC01_PCI_SC2PMMSKL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PMMSKL_OFS)
+#define MSC01_PCI_SC2PMMAPL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PMMAPL_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SC2PIOBASL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PIOBASL_OFS)
+#define MSC01_PCI_SC2PIOMSKL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PIOMSKL_OFS)
+#define MSC01_PCI_SC2PIOMAPL (MSC01_PCI_REG_BASE + MSC01_PCI_SC2PIOMAPL_OFS)
+#define MSC01_PCI_P2SCMSKL (MSC01_PCI_REG_BASE + MSC01_PCI_P2SCMSKL_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_P2SCMAPL (MSC01_PCI_REG_BASE + MSC01_PCI_P2SCMAPL_OFS)
+#define MSC01_PCI_INTCFG (MSC01_PCI_REG_BASE + MSC01_PCI_INTCFG_OFS)
+#define MSC01_PCI_INTSTAT (MSC01_PCI_REG_BASE + MSC01_PCI_INTSTAT_OFS)
+#define MSC01_PCI_CFGADDR (MSC01_PCI_REG_BASE + MSC01_PCI_CFGADDR_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_CFGDATA (MSC01_PCI_REG_BASE + MSC01_PCI_CFGDATA_OFS)
+#define MSC01_PCI_IACK (MSC01_PCI_REG_BASE + MSC01_PCI_IACK_OFS)
+#define MSC01_PCI_HEAD0 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD0_OFS)
+#define MSC01_PCI_HEAD1 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD1_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD2 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD2_OFS)
+#define MSC01_PCI_HEAD3 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD3_OFS)
+#define MSC01_PCI_HEAD4 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD4_OFS)
+#define MSC01_PCI_HEAD5 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD5_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD6 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD6_OFS)
+#define MSC01_PCI_HEAD7 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD7_OFS)
+#define MSC01_PCI_HEAD8 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD8_OFS)
+#define MSC01_PCI_HEAD9 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD9_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD10 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD10_OFS)
+#define MSC01_PCI_HEAD11 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
+#define MSC01_PCI_HEAD12 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
+#define MSC01_PCI_HEAD13 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_HEAD14 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
+#define MSC01_PCI_HEAD15 (MSC01_PCI_REG_BASE + MSC01_PCI_HEAD11_OFS)
+#define MSC01_PCI_BAR0 (MSC01_PCI_REG_BASE + MSC01_PCI_BAR0_OFS)
+#define MSC01_PCI_CFG (MSC01_PCI_REG_BASE + MSC01_PCI_CFG_OFS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSC01_PCI_SWAP (MSC01_PCI_REG_BASE + MSC01_PCI_SWAP_OFS)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mips_mt.h b/ndk/platforms/android-9/arch-mips/include/asm/mips_mt.h
new file mode 100644
index 0000000..90f726a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mips_mt.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_MT_H
+#define __ASM_MIPS_MT_H
+#include <linux/cpumask.h>
+struct class;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mipsmtregs.h b/ndk/platforms/android-9/arch-mips/include/asm/mipsmtregs.h
new file mode 100644
index 0000000..1d4f342
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mipsmtregs.h
@@ -0,0 +1,214 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MIPSMTREGS_H
+#define _ASM_MIPSMTREGS_H
+#include <asm/mipsregs.h>
+#include <asm/war.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+#define read_c0_mvpcontrol() __read_32bit_c0_register($0, 1)
+#define write_c0_mvpcontrol(val) __write_32bit_c0_register($0, 1, val)
+#define read_c0_mvpconf0() __read_32bit_c0_register($0, 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_mvpconf1() __read_32bit_c0_register($0, 3)
+#define read_c0_vpecontrol() __read_32bit_c0_register($1, 1)
+#define write_c0_vpecontrol(val) __write_32bit_c0_register($1, 1, val)
+#define read_c0_vpeconf0() __read_32bit_c0_register($1, 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_vpeconf0(val) __write_32bit_c0_register($1, 2, val)
+#define read_c0_tcstatus() __read_32bit_c0_register($2, 1)
+#define write_c0_tcstatus(val) __write_32bit_c0_register($2, 1, val)
+#define read_c0_tcbind() __read_32bit_c0_register($2, 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_tccontext() __read_32bit_c0_register($2, 5)
+#define write_c0_tccontext(val) __write_32bit_c0_register($2, 5, val)
+#else
+#define CP0_MVPCONTROL $0, 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_MVPCONF0 $0, 2
+#define CP0_MVPCONF1 $0, 3
+#define CP0_VPECONTROL $1, 1
+#define CP0_VPECONF0 $1, 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_VPECONF1 $1, 3
+#define CP0_YQMASK $1, 4
+#define CP0_VPESCHEDULE $1, 5
+#define CP0_VPESCHEFBK $1, 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_TCSTATUS $2, 1
+#define CP0_TCBIND $2, 2
+#define CP0_TCRESTART $2, 3
+#define CP0_TCHALT $2, 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_TCCONTEXT $2, 5
+#define CP0_TCSCHEDULE $2, 6
+#define CP0_TCSCHEFBK $2, 7
+#define CP0_SRSCONF0 $6, 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_SRSCONF1 $6, 2
+#define CP0_SRSCONF2 $6, 3
+#define CP0_SRSCONF3 $6, 4
+#define CP0_SRSCONF4 $6, 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define MVPCONTROL_EVP (_ULCAST_(1))
+#define MVPCONTROL_VPC_SHIFT 1
+#define MVPCONTROL_VPC (_ULCAST_(1) << MVPCONTROL_VPC_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MVPCONTROL_STLB_SHIFT 2
+#define MVPCONTROL_STLB (_ULCAST_(1) << MVPCONTROL_STLB_SHIFT)
+#define MVPCONF0_PTC_SHIFT 0
+#define MVPCONF0_PTC ( _ULCAST_(0xff))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MVPCONF0_PVPE_SHIFT 10
+#define MVPCONF0_PVPE ( _ULCAST_(0xf) << MVPCONF0_PVPE_SHIFT)
+#define MVPCONF0_TCA_SHIFT 15
+#define MVPCONF0_TCA ( _ULCAST_(1) << MVPCONF0_TCA_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MVPCONF0_PTLBE_SHIFT 16
+#define MVPCONF0_PTLBE (_ULCAST_(0x3ff) << MVPCONF0_PTLBE_SHIFT)
+#define MVPCONF0_TLBS_SHIFT 29
+#define MVPCONF0_TLBS (_ULCAST_(1) << MVPCONF0_TLBS_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MVPCONF0_M_SHIFT 31
+#define MVPCONF0_M (_ULCAST_(0x1) << MVPCONF0_M_SHIFT)
+#define CONFIG3_MT_SHIFT 2
+#define CONFIG3_MT (_ULCAST_(1) << CONFIG3_MT_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VPECONTROL_TARGTC (_ULCAST_(0xff))
+#define VPECONTROL_TE_SHIFT 15
+#define VPECONTROL_TE (_ULCAST_(1) << VPECONTROL_TE_SHIFT)
+#define VPECONTROL_EXCPT_SHIFT 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VPECONTROL_EXCPT (_ULCAST_(0x7) << VPECONTROL_EXCPT_SHIFT)
+#define THREX_TU 0
+#define THREX_TO 1
+#define THREX_IYQ 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define THREX_GSX 3
+#define THREX_YSCH 4
+#define THREX_GSSCH 5
+#define VPECONTROL_GSI_SHIFT 20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VPECONTROL_GSI (_ULCAST_(1) << VPECONTROL_GSI_SHIFT)
+#define VPECONTROL_YSI_SHIFT 21
+#define VPECONTROL_YSI (_ULCAST_(1) << VPECONTROL_YSI_SHIFT)
+#define VPECONF0_VPA_SHIFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VPECONF0_VPA (_ULCAST_(1) << VPECONF0_VPA_SHIFT)
+#define VPECONF0_MVP_SHIFT 1
+#define VPECONF0_MVP (_ULCAST_(1) << VPECONF0_MVP_SHIFT)
+#define VPECONF0_XTC_SHIFT 21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VPECONF0_XTC (_ULCAST_(0xff) << VPECONF0_XTC_SHIFT)
+#define TCSTATUS_TASID (_ULCAST_(0xff))
+#define TCSTATUS_IXMT_SHIFT 10
+#define TCSTATUS_IXMT (_ULCAST_(1) << TCSTATUS_IXMT_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSTATUS_TKSU_SHIFT 11
+#define TCSTATUS_TKSU (_ULCAST_(3) << TCSTATUS_TKSU_SHIFT)
+#define TCSTATUS_A_SHIFT 13
+#define TCSTATUS_A (_ULCAST_(1) << TCSTATUS_A_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSTATUS_DA_SHIFT 15
+#define TCSTATUS_DA (_ULCAST_(1) << TCSTATUS_DA_SHIFT)
+#define TCSTATUS_DT_SHIFT 20
+#define TCSTATUS_DT (_ULCAST_(1) << TCSTATUS_DT_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSTATUS_TDS_SHIFT 21
+#define TCSTATUS_TDS (_ULCAST_(1) << TCSTATUS_TDS_SHIFT)
+#define TCSTATUS_TSST_SHIFT 22
+#define TCSTATUS_TSST (_ULCAST_(1) << TCSTATUS_TSST_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSTATUS_RNST_SHIFT 23
+#define TCSTATUS_RNST (_ULCAST_(3) << TCSTATUS_RNST_SHIFT)
+#define TC_RUNNING 0
+#define TC_WAITING 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TC_YIELDING 2
+#define TC_GATED 3
+#define TCSTATUS_TMX_SHIFT 27
+#define TCSTATUS_TMX (_ULCAST_(1) << TCSTATUS_TMX_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCBIND_CURVPE_SHIFT 0
+#define TCBIND_CURVPE (_ULCAST_(0xf))
+#define TCBIND_CURTC_SHIFT 21
+#define TCBIND_CURTC (_ULCAST_(0xff) << TCBIND_CURTC_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCHALT_H (_ULCAST_(1))
+#ifndef __ASSEMBLY__
+#define EVPE_ENABLE MVPCONTROL_EVP
+#define EMT_ENABLE VPECONTROL_TE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mftc0(rt,sel)  ({   unsigned long __res;     __asm__ __volatile__(   "	.set	push					\n"   "	.set	mips32r2				\n"   "	.set	noat					\n"   "	# mftc0	$1, $" #rt ", " #sel "			\n"   "	.word	0x41000800 | (" #rt " << 16) | " #sel "	\n"   "	move	%0, $1					\n"   "	.set	pop					\n"   : "=r" (__res));     __res;  })
+#define mftgpr(rt)  ({   unsigned long __res;     __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	.set	mips32r2				\n"   "	# mftgpr $1," #rt "				\n"   "	.word	0x41000820 | (" #rt " << 16)		\n"   "	move	%0, $1					\n"   "	.set	pop					\n"   : "=r" (__res));     __res;  })
+#define mftr(rt, u, sel)  ({   unsigned long __res;     __asm__ __volatile__(   "	mftr	%0, " #rt ", " #u ", " #sel "		\n"   : "=r" (__res));     __res;  })
+#define mttgpr(rd,v)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	mips32r2				\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mttgpr $1, " #rd "				\n"   "	.word	0x41810020 | (" #rd " << 11)		\n"   "	.set	pop					\n"   : : "r" (v));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mttc0(rd, sel, v)  ({   __asm__ __volatile__(   "	.set	push					\n"   "	.set	mips32r2				\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mttc0 %0," #rd ", " #sel "			\n"   "	.word	0x41810000 | (" #rd " << 11) | " #sel "	\n"   "	.set	pop					\n"   :   : "r" (v));  })
+#define mttr(rd, u, sel, v)  ({   __asm__ __volatile__(   "mttr	%0," #rd ", " #u ", " #sel   : : "r" (v));  })
+#define settc(tc)  do {   write_c0_vpecontrol((read_c0_vpecontrol()&~VPECONTROL_TARGTC) | (tc));   ehb();  } while (0)
+#define read_vpe_c0_vpecontrol() mftc0(1, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_vpe_c0_vpecontrol(val) mttc0(1, 1, val)
+#define read_vpe_c0_vpeconf0() mftc0(1, 2)
+#define write_vpe_c0_vpeconf0(val) mttc0(1, 2, val)
+#define read_vpe_c0_count() mftc0(9, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_vpe_c0_count(val) mttc0(9, 0, val)
+#define read_vpe_c0_status() mftc0(12, 0)
+#define write_vpe_c0_status(val) mttc0(12, 0, val)
+#define read_vpe_c0_cause() mftc0(13, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_vpe_c0_cause(val) mttc0(13, 0, val)
+#define read_vpe_c0_config() mftc0(16, 0)
+#define write_vpe_c0_config(val) mttc0(16, 0, val)
+#define read_vpe_c0_config1() mftc0(16, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_vpe_c0_config1(val) mttc0(16, 1, val)
+#define read_vpe_c0_config7() mftc0(16, 7)
+#define write_vpe_c0_config7(val) mttc0(16, 7, val)
+#define read_vpe_c0_ebase() mftc0(15, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_vpe_c0_ebase(val) mttc0(15, 1, val)
+#define write_vpe_c0_compare(val) mttc0(11, 0, val)
+#define read_vpe_c0_badvaddr() mftc0(8, 0)
+#define read_vpe_c0_epc() mftc0(14, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_vpe_c0_epc(val) mttc0(14, 0, val)
+#define read_tc_c0_tcstatus() mftc0(2, 1)
+#define write_tc_c0_tcstatus(val) mttc0(2, 1, val)
+#define read_tc_c0_tcbind() mftc0(2, 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_tc_c0_tcbind(val) mttc0(2, 2, val)
+#define read_tc_c0_tcrestart() mftc0(2, 3)
+#define write_tc_c0_tcrestart(val) mttc0(2, 3, val)
+#define read_tc_c0_tchalt() mftc0(2, 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_tc_c0_tchalt(val) mttc0(2, 4, val)
+#define read_tc_c0_tccontext() mftc0(2, 5)
+#define write_tc_c0_tccontext(val) mttc0(2, 5, val)
+#define read_tc_gpr_sp() mftgpr(29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_tc_gpr_sp(val) mttgpr(29, val)
+#define read_tc_gpr_gp() mftgpr(28)
+#define write_tc_gpr_gp(val) mttgpr(28, val)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mipsregs.h b/ndk/platforms/android-9/arch-mips/include/asm/mipsregs.h
new file mode 100644
index 0000000..0976939
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mipsregs.h
@@ -0,0 +1,721 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MIPSREGS_H
+#define _ASM_MIPSREGS_H
+#include <linux/linkage.h>
+#include <asm/hazards.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/war.h>
+#ifndef __STR
+#define __STR(x) #x
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef STR
+#define STR(x) __STR(x)
+#endif
+#ifdef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _ULCAST_
+#else
+#define _ULCAST_ (unsigned long)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_INDEX $0
+#define CP0_RANDOM $1
+#define CP0_ENTRYLO0 $2
+#define CP0_ENTRYLO1 $3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_CONF $3
+#define CP0_CONTEXT $4
+#define CP0_PAGEMASK $5
+#define CP0_WIRED $6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_INFO $7
+#define CP0_BADVADDR $8
+#define CP0_COUNT $9
+#define CP0_ENTRYHI $10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_COMPARE $11
+#define CP0_STATUS $12
+#define CP0_CAUSE $13
+#define CP0_EPC $14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_PRID $15
+#define CP0_CONFIG $16
+#define CP0_LLADDR $17
+#define CP0_WATCHLO $18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_WATCHHI $19
+#define CP0_XCONTEXT $20
+#define CP0_FRAMEMASK $21
+#define CP0_DIAGNOSTIC $22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_DEBUG $23
+#define CP0_DEPC $24
+#define CP0_PERFORMANCE $25
+#define CP0_ECC $26
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_CACHEERR $27
+#define CP0_TAGLO $28
+#define CP0_TAGHI $29
+#define CP0_ERROREPC $30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_DESAVE $31
+#define CP0_IBASE $0
+#define CP0_IBOUND $1
+#define CP0_DBASE $2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_DBOUND $3
+#define CP0_CALG $17
+#define CP0_IWATCH $18
+#define CP0_DWATCH $19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_S1_DERRADDR0 $26
+#define CP0_S1_DERRADDR1 $27
+#define CP0_S1_INTCONTROL $20
+#define CP0_S2_SRSCTL $12  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CP0_S3_SRSMAP $12  
+#define CP0_TX39_CACHE $7
+#define CP1_REVISION $0
+#define CP1_STATUS $31
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_FLUSH 0x01000000  
+#define FPU_CSR_COND 0x00800000  
+#define FPU_CSR_COND0 0x00800000  
+#define FPU_CSR_COND1 0x02000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_COND2 0x04000000  
+#define FPU_CSR_COND3 0x08000000  
+#define FPU_CSR_COND4 0x10000000  
+#define FPU_CSR_COND5 0x20000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_COND6 0x40000000  
+#define FPU_CSR_COND7 0x80000000  
+#define FPU_CSR_ALL_X 0x0003f000
+#define FPU_CSR_UNI_X 0x00020000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_INV_X 0x00010000
+#define FPU_CSR_DIV_X 0x00008000
+#define FPU_CSR_OVF_X 0x00004000
+#define FPU_CSR_UDF_X 0x00002000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_INE_X 0x00001000
+#define FPU_CSR_ALL_E 0x00000f80
+#define FPU_CSR_INV_E 0x00000800
+#define FPU_CSR_DIV_E 0x00000400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_OVF_E 0x00000200
+#define FPU_CSR_UDF_E 0x00000100
+#define FPU_CSR_INE_E 0x00000080
+#define FPU_CSR_ALL_S 0x0000007c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_INV_S 0x00000040
+#define FPU_CSR_DIV_S 0x00000020
+#define FPU_CSR_OVF_S 0x00000010
+#define FPU_CSR_UDF_S 0x00000008
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_INE_S 0x00000004
+#define FPU_CSR_RN 0x0  
+#define FPU_CSR_RZ 0x1  
+#define FPU_CSR_RU 0x2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPU_CSR_RD 0x3  
+#define PM_4K 0x00000000
+#define PM_16K 0x00006000
+#define PM_64K 0x0001e000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PM_256K 0x0007e000
+#define PM_1M 0x001fe000
+#define PM_4M 0x007fe000
+#define PM_16M 0x01ffe000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PM_64M 0x07ffe000
+#define PM_256M 0x1fffe000
+#error Bad page size configuration!
+#define PL_4K 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PL_16K 14
+#define PL_64K 16
+#define PL_256K 18
+#define PL_1M 20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PL_4M 22
+#define PL_16M 24
+#define PL_64M 26
+#define PL_256M 28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IE_SW0 (_ULCAST_(1) << 8)
+#define IE_SW1 (_ULCAST_(1) << 9)
+#define IE_IRQ0 (_ULCAST_(1) << 10)
+#define IE_IRQ1 (_ULCAST_(1) << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IE_IRQ2 (_ULCAST_(1) << 12)
+#define IE_IRQ3 (_ULCAST_(1) << 13)
+#define IE_IRQ4 (_ULCAST_(1) << 14)
+#define IE_IRQ5 (_ULCAST_(1) << 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define C_SW0 (_ULCAST_(1) << 8)
+#define C_SW1 (_ULCAST_(1) << 9)
+#define C_IRQ0 (_ULCAST_(1) << 10)
+#define C_IRQ1 (_ULCAST_(1) << 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define C_IRQ2 (_ULCAST_(1) << 12)
+#define C_IRQ3 (_ULCAST_(1) << 13)
+#define C_IRQ4 (_ULCAST_(1) << 14)
+#define C_IRQ5 (_ULCAST_(1) << 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_IE 0x00000001
+#define ST0_EXL 0x00000002
+#define ST0_ERL 0x00000004
+#define ST0_KSU 0x00000018
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KSU_USER 0x00000010
+#define KSU_SUPERVISOR 0x00000008
+#define KSU_KERNEL 0x00000000
+#define ST0_UX 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_SX 0x00000040
+#define ST0_KX 0x00000080
+#define ST0_DE 0x00010000
+#define ST0_CE 0x00020000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_CO 0x08000000
+#define ST0_IEC 0x00000001
+#define ST0_KUC 0x00000002
+#define ST0_IEP 0x00000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_KUP 0x00000008
+#define ST0_IEO 0x00000010
+#define ST0_KUO 0x00000020
+#define ST0_ISC 0x00010000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_SWC 0x00020000
+#define ST0_CM 0x00080000
+#define ST0_UM (_ULCAST_(1) << 4)
+#define ST0_IL (_ULCAST_(1) << 23)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_DL (_ULCAST_(1) << 24)
+#define ST0_MX 0x01000000
+#define TX39_CONF_ICS_SHIFT 19
+#define TX39_CONF_ICS_MASK 0x00380000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_ICS_1KB 0x00000000
+#define TX39_CONF_ICS_2KB 0x00080000
+#define TX39_CONF_ICS_4KB 0x00100000
+#define TX39_CONF_ICS_8KB 0x00180000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_ICS_16KB 0x00200000
+#define TX39_CONF_DCS_SHIFT 16
+#define TX39_CONF_DCS_MASK 0x00070000
+#define TX39_CONF_DCS_1KB 0x00000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_DCS_2KB 0x00010000
+#define TX39_CONF_DCS_4KB 0x00020000
+#define TX39_CONF_DCS_8KB 0x00030000
+#define TX39_CONF_DCS_16KB 0x00040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_CWFON 0x00004000
+#define TX39_CONF_WBON 0x00002000
+#define TX39_CONF_RF_SHIFT 10
+#define TX39_CONF_RF_MASK 0x00000c00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_DOZE 0x00000200
+#define TX39_CONF_HALT 0x00000100
+#define TX39_CONF_LOCK 0x00000080
+#define TX39_CONF_ICE 0x00000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_DCE 0x00000010
+#define TX39_CONF_IRSIZE_SHIFT 2
+#define TX39_CONF_IRSIZE_MASK 0x0000000c
+#define TX39_CONF_DRSIZE_SHIFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX39_CONF_DRSIZE_MASK 0x00000003
+#define ST0_IM 0x0000ff00
+#define STATUSB_IP0 8
+#define STATUSF_IP0 (_ULCAST_(1) << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP1 9
+#define STATUSF_IP1 (_ULCAST_(1) << 9)
+#define STATUSB_IP2 10
+#define STATUSF_IP2 (_ULCAST_(1) << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP3 11
+#define STATUSF_IP3 (_ULCAST_(1) << 11)
+#define STATUSB_IP4 12
+#define STATUSF_IP4 (_ULCAST_(1) << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP5 13
+#define STATUSF_IP5 (_ULCAST_(1) << 13)
+#define STATUSB_IP6 14
+#define STATUSF_IP6 (_ULCAST_(1) << 14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP7 15
+#define STATUSF_IP7 (_ULCAST_(1) << 15)
+#define STATUSB_IP8 0
+#define STATUSF_IP8 (_ULCAST_(1) << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP9 1
+#define STATUSF_IP9 (_ULCAST_(1) << 1)
+#define STATUSB_IP10 2
+#define STATUSF_IP10 (_ULCAST_(1) << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP11 3
+#define STATUSF_IP11 (_ULCAST_(1) << 3)
+#define STATUSB_IP12 4
+#define STATUSF_IP12 (_ULCAST_(1) << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP13 5
+#define STATUSF_IP13 (_ULCAST_(1) << 5)
+#define STATUSB_IP14 6
+#define STATUSF_IP14 (_ULCAST_(1) << 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STATUSB_IP15 7
+#define STATUSF_IP15 (_ULCAST_(1) << 7)
+#define ST0_CH 0x00040000
+#define ST0_SR 0x00100000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_TS 0x00200000
+#define ST0_BEV 0x00400000
+#define ST0_RE 0x02000000
+#define ST0_FR 0x04000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_CU 0xf0000000
+#define ST0_CU0 0x10000000
+#define ST0_CU1 0x20000000
+#define ST0_CU2 0x40000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ST0_CU3 0x80000000
+#define ST0_XX 0x80000000  
+#define CAUSEB_EXCCODE 2
+#define CAUSEF_EXCCODE (_ULCAST_(31) << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSEB_IP 8
+#define CAUSEF_IP (_ULCAST_(255) << 8)
+#define CAUSEB_IP0 8
+#define CAUSEF_IP0 (_ULCAST_(1) << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSEB_IP1 9
+#define CAUSEF_IP1 (_ULCAST_(1) << 9)
+#define CAUSEB_IP2 10
+#define CAUSEF_IP2 (_ULCAST_(1) << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSEB_IP3 11
+#define CAUSEF_IP3 (_ULCAST_(1) << 11)
+#define CAUSEB_IP4 12
+#define CAUSEF_IP4 (_ULCAST_(1) << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSEB_IP5 13
+#define CAUSEF_IP5 (_ULCAST_(1) << 13)
+#define CAUSEB_IP6 14
+#define CAUSEF_IP6 (_ULCAST_(1) << 14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSEB_IP7 15
+#define CAUSEF_IP7 (_ULCAST_(1) << 15)
+#define CAUSEB_IV 23
+#define CAUSEF_IV (_ULCAST_(1) << 23)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSEB_CE 28
+#define CAUSEF_CE (_ULCAST_(3) << 28)
+#define CAUSEB_BD 31
+#define CAUSEF_BD (_ULCAST_(1) << 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CONF_CM_CACHABLE_NO_WA 0
+#define CONF_CM_CACHABLE_WA 1
+#define CONF_CM_UNCACHED 2
+#define CONF_CM_CACHABLE_NONCOHERENT 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CONF_CM_CACHABLE_CE 4
+#define CONF_CM_CACHABLE_COW 5
+#define CONF_CM_CACHABLE_CUW 6
+#define CONF_CM_CACHABLE_ACCELERATED 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CONF_CM_CMASK 7
+#define CONF_BE (_ULCAST_(1) << 15)
+#define CONF_CU (_ULCAST_(1) << 3)
+#define CONF_DB (_ULCAST_(1) << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CONF_IB (_ULCAST_(1) << 5)
+#define CONF_DC (_ULCAST_(7) << 6)
+#define CONF_IC (_ULCAST_(7) << 9)
+#define CONF_EB (_ULCAST_(1) << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CONF_EM (_ULCAST_(1) << 14)
+#define CONF_SM (_ULCAST_(1) << 16)
+#define CONF_SC (_ULCAST_(1) << 17)
+#define CONF_EW (_ULCAST_(3) << 18)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CONF_EP (_ULCAST_(15)<< 24)
+#define CONF_EC (_ULCAST_(7) << 28)
+#define CONF_CM (_ULCAST_(1) << 31)
+#define R4K_CONF_SW (_ULCAST_(1) << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R4K_CONF_SS (_ULCAST_(1) << 21)
+#define R4K_CONF_SB (_ULCAST_(3) << 22)
+#define R5K_CONF_SE (_ULCAST_(1) << 12)
+#define R5K_CONF_SS (_ULCAST_(3) << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RM7K_CONF_SE (_ULCAST_(1) << 3)
+#define RM7K_CONF_TE (_ULCAST_(1) << 12)
+#define RM7K_CONF_CLK (_ULCAST_(1) << 16)
+#define RM7K_CONF_TC (_ULCAST_(1) << 17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RM7K_CONF_SI (_ULCAST_(3) << 20)
+#define RM7K_CONF_SC (_ULCAST_(1) << 31)
+#define R10K_CONF_DN (_ULCAST_(3) << 3)
+#define R10K_CONF_CT (_ULCAST_(1) << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R10K_CONF_PE (_ULCAST_(1) << 6)
+#define R10K_CONF_PM (_ULCAST_(3) << 7)
+#define R10K_CONF_EC (_ULCAST_(15)<< 9)
+#define R10K_CONF_SB (_ULCAST_(1) << 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R10K_CONF_SK (_ULCAST_(1) << 14)
+#define R10K_CONF_SS (_ULCAST_(7) << 16)
+#define R10K_CONF_SC (_ULCAST_(7) << 19)
+#define R10K_CONF_DC (_ULCAST_(7) << 26)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R10K_CONF_IC (_ULCAST_(7) << 29)
+#define VR41_CONF_CS (_ULCAST_(1) << 12)
+#define VR41_CONF_P4K (_ULCAST_(1) << 13)
+#define VR41_CONF_BP (_ULCAST_(1) << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VR41_CONF_M16 (_ULCAST_(1) << 20)
+#define VR41_CONF_AD (_ULCAST_(1) << 23)
+#define R30XX_CONF_FDM (_ULCAST_(1) << 19)
+#define R30XX_CONF_REV (_ULCAST_(1) << 22)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R30XX_CONF_AC (_ULCAST_(1) << 23)
+#define R30XX_CONF_RF (_ULCAST_(1) << 24)
+#define R30XX_CONF_HALT (_ULCAST_(1) << 25)
+#define R30XX_CONF_FPINT (_ULCAST_(7) << 26)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R30XX_CONF_DBR (_ULCAST_(1) << 29)
+#define R30XX_CONF_SB (_ULCAST_(1) << 30)
+#define R30XX_CONF_LOCK (_ULCAST_(1) << 31)
+#define TX49_CONF_DC (_ULCAST_(1) << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TX49_CONF_IC (_ULCAST_(1) << 17)  
+#define TX49_CONF_HALT (_ULCAST_(1) << 18)
+#define TX49_CONF_CWFON (_ULCAST_(1) << 27)
+#define MIPS_CONF_MT (_ULCAST_(7) << 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF_AR (_ULCAST_(7) << 10)
+#define MIPS_CONF_AT (_ULCAST_(3) << 13)
+#define MIPS_CONF_M (_ULCAST_(1) << 31)
+#define MIPS_CONF1_FP (_ULCAST_(1) << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF1_EP (_ULCAST_(1) << 1)
+#define MIPS_CONF1_CA (_ULCAST_(1) << 2)
+#define MIPS_CONF1_WR (_ULCAST_(1) << 3)
+#define MIPS_CONF1_PC (_ULCAST_(1) << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF1_MD (_ULCAST_(1) << 5)
+#define MIPS_CONF1_C2 (_ULCAST_(1) << 6)
+#define MIPS_CONF1_DA (_ULCAST_(7) << 7)
+#define MIPS_CONF1_DL (_ULCAST_(7) << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF1_DS (_ULCAST_(7) << 13)
+#define MIPS_CONF1_IA (_ULCAST_(7) << 16)
+#define MIPS_CONF1_IL (_ULCAST_(7) << 19)
+#define MIPS_CONF1_IS (_ULCAST_(7) << 22)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF1_TLBS (_ULCAST_(63)<< 25)
+#define MIPS_CONF2_SA (_ULCAST_(15)<< 0)
+#define MIPS_CONF2_SL (_ULCAST_(15)<< 4)
+#define MIPS_CONF2_SS (_ULCAST_(15)<< 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF2_SU (_ULCAST_(15)<< 12)
+#define MIPS_CONF2_TA (_ULCAST_(15)<< 16)
+#define MIPS_CONF2_TL (_ULCAST_(15)<< 20)
+#define MIPS_CONF2_TS (_ULCAST_(15)<< 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF2_TU (_ULCAST_(7) << 28)
+#define MIPS_CONF3_TL (_ULCAST_(1) << 0)
+#define MIPS_CONF3_SM (_ULCAST_(1) << 1)
+#define MIPS_CONF3_MT (_ULCAST_(1) << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF3_SP (_ULCAST_(1) << 4)
+#define MIPS_CONF3_VINT (_ULCAST_(1) << 5)
+#define MIPS_CONF3_VEIC (_ULCAST_(1) << 6)
+#define MIPS_CONF3_LPA (_ULCAST_(1) << 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_CONF3_DSP (_ULCAST_(1) << 10)
+#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13)
+#define MIPS_CONF7_WII (_ULCAST_(1) << 31)
+#define MIPS_CONF7_RPS (_ULCAST_(1) << 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_FPIR_S (_ULCAST_(1) << 16)
+#define MIPS_FPIR_D (_ULCAST_(1) << 17)
+#define MIPS_FPIR_PS (_ULCAST_(1) << 18)
+#define MIPS_FPIR_3D (_ULCAST_(1) << 19)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_FPIR_W (_ULCAST_(1) << 20)
+#define MIPS_FPIR_L (_ULCAST_(1) << 21)
+#define MIPS_FPIR_F64 (_ULCAST_(1) << 22)
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_r10k_perf_cntr(counter)  ({   unsigned int __res;   __asm__ __volatile__(   "mfpc\t%0, %1"   : "=r" (__res)   : "i" (counter));     __res;  })
+#define write_r10k_perf_cntr(counter,val)  do {   __asm__ __volatile__(   "mtpc\t%0, %1"   :   : "r" (val), "i" (counter));  } while (0)
+#define read_r10k_perf_event(counter)  ({   unsigned int __res;   __asm__ __volatile__(   "mfps\t%0, %1"   : "=r" (__res)   : "i" (counter));     __res;  })
+#define write_r10k_perf_cntl(counter,val)  do {   __asm__ __volatile__(   "mtps\t%0, %1"   :   : "r" (val), "i" (counter));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __read_32bit_c0_register(source, sel)  ({ int __res;   if (sel == 0)   __asm__ __volatile__(   "mfc0\t%0, " #source "\n\t"   : "=r" (__res));   else   __asm__ __volatile__(   ".set\tmips32\n\t"   "mfc0\t%0, " #source ", " #sel "\n\t"   ".set\tmips0\n\t"   : "=r" (__res));   __res;  })
+#define __read_64bit_c0_register(source, sel)  ({ unsigned long long __res;   if (sizeof(unsigned long) == 4)   __res = __read_64bit_c0_split(source, sel);   else if (sel == 0)   __asm__ __volatile__(   ".set\tmips3\n\t"   "dmfc0\t%0, " #source "\n\t"   ".set\tmips0"   : "=r" (__res));   else   __asm__ __volatile__(   ".set\tmips64\n\t"   "dmfc0\t%0, " #source ", " #sel "\n\t"   ".set\tmips0"   : "=r" (__res));   __res;  })
+#define __write_32bit_c0_register(register, sel, value)  do {   if (sel == 0)   __asm__ __volatile__(   "mtc0\t%z0, " #register "\n\t"   : : "Jr" ((unsigned int)(value)));   else   __asm__ __volatile__(   ".set\tmips32\n\t"   "mtc0\t%z0, " #register ", " #sel "\n\t"   ".set\tmips0"   : : "Jr" ((unsigned int)(value)));  } while (0)
+#define __write_64bit_c0_register(register, sel, value)  do {   if (sizeof(unsigned long) == 4)   __write_64bit_c0_split(register, sel, value);   else if (sel == 0)   __asm__ __volatile__(   ".set\tmips3\n\t"   "dmtc0\t%z0, " #register "\n\t"   ".set\tmips0"   : : "Jr" (value));   else   __asm__ __volatile__(   ".set\tmips64\n\t"   "dmtc0\t%z0, " #register ", " #sel "\n\t"   ".set\tmips0"   : : "Jr" (value));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __read_ulong_c0_register(reg, sel)   ((sizeof(unsigned long) == 4) ?   (unsigned long) __read_32bit_c0_register(reg, sel) :   (unsigned long) __read_64bit_c0_register(reg, sel))
+#define __write_ulong_c0_register(reg, sel, val)  do {   if (sizeof(unsigned long) == 4)   __write_32bit_c0_register(reg, sel, val);   else   __write_64bit_c0_register(reg, sel, val);  } while (0)
+#define __read_32bit_c0_ctrl_register(source)  ({ int __res;   __asm__ __volatile__(   "cfc0\t%0, " #source "\n\t"   : "=r" (__res));   __res;  })
+#define __write_32bit_c0_ctrl_register(register, value)  do {   __asm__ __volatile__(   "ctc0\t%z0, " #register "\n\t"   : : "Jr" ((unsigned int)(value)));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __read_64bit_c0_split(source, sel)  ({   unsigned long long __val;   unsigned long __flags;     local_irq_save(__flags);   if (sel == 0)   __asm__ __volatile__(   ".set\tmips64\n\t"   "dmfc0\t%M0, " #source "\n\t"   "dsll\t%L0, %M0, 32\n\t"   "dsrl\t%M0, %M0, 32\n\t"   "dsrl\t%L0, %L0, 32\n\t"   ".set\tmips0"   : "=r" (__val));   else   __asm__ __volatile__(   ".set\tmips64\n\t"   "dmfc0\t%M0, " #source ", " #sel "\n\t"   "dsll\t%L0, %M0, 32\n\t"   "dsrl\t%M0, %M0, 32\n\t"   "dsrl\t%L0, %L0, 32\n\t"   ".set\tmips0"   : "=r" (__val));   local_irq_restore(__flags);     __val;  })
+#define __write_64bit_c0_split(source, sel, val)  do {   unsigned long __flags;     local_irq_save(__flags);   if (sel == 0)   __asm__ __volatile__(   ".set\tmips64\n\t"   "dsll\t%L0, %L0, 32\n\t"   "dsrl\t%L0, %L0, 32\n\t"   "dsll\t%M0, %M0, 32\n\t"   "or\t%L0, %L0, %M0\n\t"   "dmtc0\t%L0, " #source "\n\t"   ".set\tmips0"   : : "r" (val));   else   __asm__ __volatile__(   ".set\tmips64\n\t"   "dsll\t%L0, %L0, 32\n\t"   "dsrl\t%L0, %L0, 32\n\t"   "dsll\t%M0, %M0, 32\n\t"   "or\t%L0, %L0, %M0\n\t"   "dmtc0\t%L0, " #source ", " #sel "\n\t"   ".set\tmips0"   : : "r" (val));   local_irq_restore(__flags);  } while (0)
+#define read_c0_index() __read_32bit_c0_register($0, 0)
+#define write_c0_index(val) __write_32bit_c0_register($0, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_random() __read_32bit_c0_register($1, 0)
+#define write_c0_random(val) __write_32bit_c0_register($1, 0, val)
+#define read_c0_entrylo0() __read_ulong_c0_register($2, 0)
+#define write_c0_entrylo0(val) __write_ulong_c0_register($2, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_entrylo1() __read_ulong_c0_register($3, 0)
+#define write_c0_entrylo1(val) __write_ulong_c0_register($3, 0, val)
+#define read_c0_conf() __read_32bit_c0_register($3, 0)
+#define write_c0_conf(val) __write_32bit_c0_register($3, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_context() __read_ulong_c0_register($4, 0)
+#define write_c0_context(val) __write_ulong_c0_register($4, 0, val)
+#define read_c0_userlocal() __read_ulong_c0_register($4, 2)
+#define write_c0_userlocal(val) __write_ulong_c0_register($4, 2, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_pagemask() __read_32bit_c0_register($5, 0)
+#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val)
+#define read_c0_wired() __read_32bit_c0_register($6, 0)
+#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_info() __read_32bit_c0_register($7, 0)
+#define read_c0_cache() __read_32bit_c0_register($7, 0)  
+#define write_c0_cache(val) __write_32bit_c0_register($7, 0, val)
+#define read_c0_badvaddr() __read_ulong_c0_register($8, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_badvaddr(val) __write_ulong_c0_register($8, 0, val)
+#define read_c0_count() __read_32bit_c0_register($9, 0)
+#define write_c0_count(val) __write_32bit_c0_register($9, 0, val)
+#define read_c0_count2() __read_32bit_c0_register($9, 6)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_count2(val) __write_32bit_c0_register($9, 6, val)
+#define read_c0_count3() __read_32bit_c0_register($9, 7)  
+#define write_c0_count3(val) __write_32bit_c0_register($9, 7, val)
+#define read_c0_entryhi() __read_ulong_c0_register($10, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_entryhi(val) __write_ulong_c0_register($10, 0, val)
+#define read_c0_compare() __read_32bit_c0_register($11, 0)
+#define write_c0_compare(val) __write_32bit_c0_register($11, 0, val)
+#define read_c0_compare2() __read_32bit_c0_register($11, 6)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_compare2(val) __write_32bit_c0_register($11, 6, val)
+#define read_c0_compare3() __read_32bit_c0_register($11, 7)  
+#define write_c0_compare3(val) __write_32bit_c0_register($11, 7, val)
+#define read_c0_status() __read_32bit_c0_register($12, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_status(val) __write_32bit_c0_register($12, 0, val)
+#define read_c0_cause() __read_32bit_c0_register($13, 0)
+#define write_c0_cause(val) __write_32bit_c0_register($13, 0, val)
+#define read_c0_epc() __read_ulong_c0_register($14, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_epc(val) __write_ulong_c0_register($14, 0, val)
+#define read_c0_prid() __read_32bit_c0_register($15, 0)
+#define read_c0_config() __read_32bit_c0_register($16, 0)
+#define read_c0_config1() __read_32bit_c0_register($16, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_config2() __read_32bit_c0_register($16, 2)
+#define read_c0_config3() __read_32bit_c0_register($16, 3)
+#define read_c0_config4() __read_32bit_c0_register($16, 4)
+#define read_c0_config5() __read_32bit_c0_register($16, 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_config6() __read_32bit_c0_register($16, 6)
+#define read_c0_config7() __read_32bit_c0_register($16, 7)
+#define write_c0_config(val) __write_32bit_c0_register($16, 0, val)
+#define write_c0_config1(val) __write_32bit_c0_register($16, 1, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_config2(val) __write_32bit_c0_register($16, 2, val)
+#define write_c0_config3(val) __write_32bit_c0_register($16, 3, val)
+#define write_c0_config4(val) __write_32bit_c0_register($16, 4, val)
+#define write_c0_config5(val) __write_32bit_c0_register($16, 5, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_config6(val) __write_32bit_c0_register($16, 6, val)
+#define write_c0_config7(val) __write_32bit_c0_register($16, 7, val)
+#define read_c0_watchlo0() __read_ulong_c0_register($18, 0)
+#define read_c0_watchlo1() __read_ulong_c0_register($18, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_watchlo2() __read_ulong_c0_register($18, 2)
+#define read_c0_watchlo3() __read_ulong_c0_register($18, 3)
+#define read_c0_watchlo4() __read_ulong_c0_register($18, 4)
+#define read_c0_watchlo5() __read_ulong_c0_register($18, 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_watchlo6() __read_ulong_c0_register($18, 6)
+#define read_c0_watchlo7() __read_ulong_c0_register($18, 7)
+#define write_c0_watchlo0(val) __write_ulong_c0_register($18, 0, val)
+#define write_c0_watchlo1(val) __write_ulong_c0_register($18, 1, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_watchlo2(val) __write_ulong_c0_register($18, 2, val)
+#define write_c0_watchlo3(val) __write_ulong_c0_register($18, 3, val)
+#define write_c0_watchlo4(val) __write_ulong_c0_register($18, 4, val)
+#define write_c0_watchlo5(val) __write_ulong_c0_register($18, 5, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_watchlo6(val) __write_ulong_c0_register($18, 6, val)
+#define write_c0_watchlo7(val) __write_ulong_c0_register($18, 7, val)
+#define read_c0_watchhi0() __read_32bit_c0_register($19, 0)
+#define read_c0_watchhi1() __read_32bit_c0_register($19, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_watchhi2() __read_32bit_c0_register($19, 2)
+#define read_c0_watchhi3() __read_32bit_c0_register($19, 3)
+#define read_c0_watchhi4() __read_32bit_c0_register($19, 4)
+#define read_c0_watchhi5() __read_32bit_c0_register($19, 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_watchhi6() __read_32bit_c0_register($19, 6)
+#define read_c0_watchhi7() __read_32bit_c0_register($19, 7)
+#define write_c0_watchhi0(val) __write_32bit_c0_register($19, 0, val)
+#define write_c0_watchhi1(val) __write_32bit_c0_register($19, 1, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_watchhi2(val) __write_32bit_c0_register($19, 2, val)
+#define write_c0_watchhi3(val) __write_32bit_c0_register($19, 3, val)
+#define write_c0_watchhi4(val) __write_32bit_c0_register($19, 4, val)
+#define write_c0_watchhi5(val) __write_32bit_c0_register($19, 5, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_watchhi6(val) __write_32bit_c0_register($19, 6, val)
+#define write_c0_watchhi7(val) __write_32bit_c0_register($19, 7, val)
+#define read_c0_xcontext() __read_ulong_c0_register($20, 0)
+#define write_c0_xcontext(val) __write_ulong_c0_register($20, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_intcontrol() __read_32bit_c0_ctrl_register($20)
+#define write_c0_intcontrol(val) __write_32bit_c0_ctrl_register($20, val)
+#define read_c0_framemask() __read_32bit_c0_register($21, 0)
+#define write_c0_framemask(val) __write_32bit_c0_register($21, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_perfcontrol() __read_32bit_c0_register($22, 0)
+#define write_c0_perfcontrol(val) __write_32bit_c0_register($22, 0, val)
+#define read_c0_diag() __read_32bit_c0_register($22, 0)
+#define write_c0_diag(val) __write_32bit_c0_register($22, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_diag1() __read_32bit_c0_register($22, 1)
+#define write_c0_diag1(val) __write_32bit_c0_register($22, 1, val)
+#define read_c0_diag2() __read_32bit_c0_register($22, 2)
+#define write_c0_diag2(val) __write_32bit_c0_register($22, 2, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_diag3() __read_32bit_c0_register($22, 3)
+#define write_c0_diag3(val) __write_32bit_c0_register($22, 3, val)
+#define read_c0_diag4() __read_32bit_c0_register($22, 4)
+#define write_c0_diag4(val) __write_32bit_c0_register($22, 4, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_diag5() __read_32bit_c0_register($22, 5)
+#define write_c0_diag5(val) __write_32bit_c0_register($22, 5, val)
+#define read_c0_debug() __read_32bit_c0_register($23, 0)
+#define write_c0_debug(val) __write_32bit_c0_register($23, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_depc() __read_ulong_c0_register($24, 0)
+#define write_c0_depc(val) __write_ulong_c0_register($24, 0, val)
+#define read_c0_perfctrl0() __read_32bit_c0_register($25, 0)
+#define write_c0_perfctrl0(val) __write_32bit_c0_register($25, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_perfcntr0() __read_32bit_c0_register($25, 1)
+#define write_c0_perfcntr0(val) __write_32bit_c0_register($25, 1, val)
+#define read_c0_perfctrl1() __read_32bit_c0_register($25, 2)
+#define write_c0_perfctrl1(val) __write_32bit_c0_register($25, 2, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_perfcntr1() __read_32bit_c0_register($25, 3)
+#define write_c0_perfcntr1(val) __write_32bit_c0_register($25, 3, val)
+#define read_c0_perfctrl2() __read_32bit_c0_register($25, 4)
+#define write_c0_perfctrl2(val) __write_32bit_c0_register($25, 4, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_perfcntr2() __read_32bit_c0_register($25, 5)
+#define write_c0_perfcntr2(val) __write_32bit_c0_register($25, 5, val)
+#define read_c0_perfctrl3() __read_32bit_c0_register($25, 6)
+#define write_c0_perfctrl3(val) __write_32bit_c0_register($25, 6, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_perfcntr3() __read_32bit_c0_register($25, 7)
+#define write_c0_perfcntr3(val) __write_32bit_c0_register($25, 7, val)
+#define read_c0_perfcount() __read_64bit_c0_register($25, 0)
+#define write_c0_perfcount(val) __write_64bit_c0_register($25, 0, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_ecc() __read_32bit_c0_register($26, 0)
+#define write_c0_ecc(val) __write_32bit_c0_register($26, 0, val)
+#define read_c0_derraddr0() __read_ulong_c0_register($26, 1)
+#define write_c0_derraddr0(val) __write_ulong_c0_register($26, 1, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define read_c0_cacheerr() __read_32bit_c0_register($27, 0)
+#define read_c0_derraddr1() __read_ulong_c0_register($27, 1)
+#define write_c0_derraddr1(val) __write_ulong_c0_register($27, 1, val)
+#define read_c0_taglo() __read_32bit_c0_register($28, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_taglo(val) __write_32bit_c0_register($28, 0, val)
+#define read_c0_dtaglo() __read_32bit_c0_register($28, 2)
+#define write_c0_dtaglo(val) __write_32bit_c0_register($28, 2, val)
+#define read_c0_taghi() __read_32bit_c0_register($29, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_taghi(val) __write_32bit_c0_register($29, 0, val)
+#define read_c0_errorepc() __read_ulong_c0_register($30, 0)
+#define write_c0_errorepc(val) __write_ulong_c0_register($30, 0, val)
+#define read_c0_hwrena() __read_32bit_c0_register($7, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_hwrena(val) __write_32bit_c0_register($7, 0, val)
+#define read_c0_intctl() __read_32bit_c0_register($12, 1)
+#define write_c0_intctl(val) __write_32bit_c0_register($12, 1, val)
+#define read_c0_srsctl() __read_32bit_c0_register($12, 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_srsctl(val) __write_32bit_c0_register($12, 2, val)
+#define read_c0_srsmap() __read_32bit_c0_register($12, 3)
+#define write_c0_srsmap(val) __write_32bit_c0_register($12, 3, val)
+#define read_c0_ebase() __read_32bit_c0_register($15, 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define write_c0_ebase(val) __write_32bit_c0_register($15, 1, val)
+#define read_32bit_cp1_register(source)  ({ int __res;   __asm__ __volatile__(   ".set\tpush\n\t"   ".set\treorder\n\t"   "cfc1\t%0,"STR(source)"\n\t"   ".set\tpop"   : "=r" (__res));   __res;})
+#define rddsp(mask)  ({   unsigned int __res;     __asm__ __volatile__(   "	.set	push				\n"   "	.set	noat				\n"   "	# rddsp $1, %x1				\n"   "	.word	0x7c000cb8 | (%x1 << 16)	\n"   "	move	%0, $1				\n"   "	.set	pop				\n"   : "=r" (__res)   : "i" (mask));   __res;  })
+#define wrdsp(val, mask)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# wrdsp $1, %x1					\n"   "	.word	0x7c2004f8 | (%x1 << 11)		\n"   "	.set	pop					\n"   :   : "r" (val), "i" (mask));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mfhi0()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mfhi	%0, $ac0		\n"   "	.word	0x00000810		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+#define mfhi1()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mfhi	%0, $ac1		\n"   "	.word	0x00200810		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+#define mfhi2()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mfhi	%0, $ac2		\n"   "	.word	0x00400810		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+#define mfhi3()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mfhi	%0, $ac3		\n"   "	.word	0x00600810		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mflo0()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mflo	%0, $ac0		\n"   "	.word	0x00000812		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+#define mflo1()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mflo	%0, $ac1		\n"   "	.word	0x00200812		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+#define mflo2()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mflo	%0, $ac2		\n"   "	.word	0x00400812		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+#define mflo3()  ({   unsigned long __treg;     __asm__ __volatile__(   "	.set	push			\n"   "	.set	noat			\n"   "	# mflo	%0, $ac3		\n"   "	.word	0x00600812		\n"   "	move	%0, $1			\n"   "	.set	pop			\n"   : "=r" (__treg));   __treg;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mthi0(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mthi	$1, $ac0				\n"   "	.word	0x00200011				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+#define mthi1(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mthi	$1, $ac1				\n"   "	.word	0x00200811				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+#define mthi2(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mthi	$1, $ac2				\n"   "	.word	0x00201011				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+#define mthi3(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mthi	$1, $ac3				\n"   "	.word	0x00201811				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mtlo0(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mtlo	$1, $ac0				\n"   "	.word	0x00200013				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+#define mtlo1(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mtlo	$1, $ac1				\n"   "	.word	0x00200813				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+#define mtlo2(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mtlo	$1, $ac2				\n"   "	.word	0x00201013				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+#define mtlo3(x)  do {   __asm__ __volatile__(   "	.set	push					\n"   "	.set	noat					\n"   "	move	$1, %0					\n"   "	# mtlo	$1, $ac3				\n"   "	.word	0x00201813				\n"   "	.set	pop					\n"   :   : "r" (x));  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if MIPS34K_MISSED_ITLB_WAR
+#endif
+#if MIPS34K_MISSED_ITLB_WAR
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __BUILD_SET_C0(name)  static inline unsigned int  set_c0_##name(unsigned int set)  {   unsigned int res;     res = read_c0_##name();   res |= set;   write_c0_##name(res);     return res;  }    static inline unsigned int  clear_c0_##name(unsigned int clear)  {   unsigned int res;     res = read_c0_##name();   res &= ~clear;   write_c0_##name(res);     return res;  }    static inline unsigned int  change_c0_##name(unsigned int change, unsigned int new)  {   unsigned int res;     res = read_c0_##name();   res &= ~change;   res |= (new & change);   write_c0_##name(res);     return res;  }
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mman.h b/ndk/platforms/android-9/arch-mips/include/asm/mman.h
new file mode 100644
index 0000000..9e51c67
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mman.h
@@ -0,0 +1,68 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MMAN_H
+#define _ASM_MMAN_H
+#define PROT_NONE 0x00  
+#define PROT_READ 0x01  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROT_WRITE 0x02  
+#define PROT_EXEC 0x04  
+#define PROT_SEM 0x10  
+#define PROT_GROWSDOWN 0x01000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROT_GROWSUP 0x02000000  
+#define MAP_SHARED 0x001  
+#define MAP_PRIVATE 0x002  
+#define MAP_TYPE 0x00f  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAP_FIXED 0x010  
+#define MAP_RENAME 0x020  
+#define MAP_AUTOGROW 0x040  
+#define MAP_LOCAL 0x080  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAP_AUTORSRV 0x100  
+#define MAP_NORESERVE 0x0400  
+#define MAP_ANONYMOUS 0x0800  
+#define MAP_GROWSDOWN 0x1000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAP_DENYWRITE 0x2000  
+#define MAP_EXECUTABLE 0x4000  
+#define MAP_LOCKED 0x8000  
+#define MAP_POPULATE 0x10000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MAP_NONBLOCK 0x20000  
+#define MS_ASYNC 0x0001  
+#define MS_INVALIDATE 0x0002  
+#define MS_SYNC 0x0004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MCL_CURRENT 1  
+#define MCL_FUTURE 2  
+#define MADV_NORMAL 0  
+#define MADV_RANDOM 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MADV_SEQUENTIAL 2  
+#define MADV_WILLNEED 3  
+#define MADV_DONTNEED 4  
+#define MADV_REMOVE 9  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MADV_DONTFORK 10  
+#define MADV_DOFORK 11  
+#define MAP_FILE 0
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mmu.h b/ndk/platforms/android-9/arch-mips/include/asm/mmu.h
new file mode 100644
index 0000000..ef62db4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mmu.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MMU_H
+#define __ASM_MMU_H
+typedef unsigned long mm_context_t[NR_CPUS];
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mmzone.h b/ndk/platforms/android-9/arch-mips/include/asm/mmzone.h
new file mode 100644
index 0000000..2f7e1c4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mmzone.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MMZONE_H_
+#define _ASM_MMZONE_H_
+#include <asm/page.h>
+#include <mmzone.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/module.h b/ndk/platforms/android-9/arch-mips/include/asm/module.h
new file mode 100644
index 0000000..45808e9
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/module.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MODULE_H
+#define _ASM_MODULE_H
+#include <linux/list.h>
+#include <asm/uaccess.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct mod_arch_specific {
+ struct list_head dbe_list;
+ const struct exception_table_entry *dbe_start;
+ const struct exception_table_entry *dbe_end;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+typedef uint8_t Elf64_Byte;
+typedef struct {
+ Elf64_Addr r_offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ Elf64_Word r_sym;
+ Elf64_Byte r_ssym;
+ Elf64_Byte r_type3;
+ Elf64_Byte r_type2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ Elf64_Byte r_type;
+} Elf64_Mips_Rel;
+typedef struct {
+ Elf64_Addr r_offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ Elf64_Word r_sym;
+ Elf64_Byte r_ssym;
+ Elf64_Byte r_type3;
+ Elf64_Byte r_type2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ Elf64_Byte r_type;
+ Elf64_Sxword r_addend;
+} Elf64_Mips_Rela;
+#error MODULE_PROC_FAMILY undefined for your processor configuration
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MODULE_KERNEL_SMTC ""
+#define MODULE_ARCH_VERMAGIC   MODULE_PROC_FAMILY MODULE_KERNEL_TYPE MODULE_KERNEL_SMTC
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/msgbuf.h b/ndk/platforms/android-9/arch-mips/include/asm/msgbuf.h
new file mode 100644
index 0000000..31a1887
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/msgbuf.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MSGBUF_H
+#define _ASM_MSGBUF_H
+struct msqid64_ds {
+ struct ipc64_perm msg_perm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __kernel_time_t msg_stime;
+ __kernel_time_t msg_rtime;
+ __kernel_time_t msg_ctime;
+ unsigned long msg_cbytes;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long msg_qnum;
+ unsigned long msg_qbytes;
+ __kernel_pid_t msg_lspid;
+ __kernel_pid_t msg_lrpid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long __unused4;
+ unsigned long __unused5;
+};
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/mutex.h b/ndk/platforms/android-9/arch-mips/include/asm/mutex.h
new file mode 100644
index 0000000..74f7c18
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/mutex.h
@@ -0,0 +1,19 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#include <asm-generic/mutex-dec.h>
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/page.h b/ndk/platforms/android-9/arch-mips/include/asm/page.h
new file mode 100644
index 0000000..93eb390
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/page.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PAGE_H
+#define _ASM_PAGE_H
+#ifndef PAGE_SHIFT
+#define PAGE_SHIFT 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define PAGE_SIZE (1UL << PAGE_SHIFT)
+#define PAGE_MASK (~((1 << PAGE_SHIFT) - 1))
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/param.h b/ndk/platforms/android-9/arch-mips/include/asm/param.h
new file mode 100644
index 0000000..9378027
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/param.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PARAM_H
+#define _ASM_PARAM_H
+#ifndef HZ
+#define HZ 100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define EXEC_PAGESIZE 65536
+#ifndef NOGROUP
+#define NOGROUP (-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/pci/bridge.h b/ndk/platforms/android-9/arch-mips/include/asm/pci/bridge.h
new file mode 100644
index 0000000..cd2fde4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/pci/bridge.h
@@ -0,0 +1,676 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PCI_BRIDGE_H
+#define _ASM_PCI_BRIDGE_H
+#include <linux/types.h>
+#include <linux/pci.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/xtalk/xwidget.h>  
+#include <asm/sn/types.h>
+#define IOPFNSHIFT 12  
+#define IOPGSIZE (1 << IOPFNSHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOPG(x) ((x) >> IOPFNSHIFT)
+#define IOPGOFF(x) ((x) & (IOPGSIZE-1))
+#define BRIDGE_ATE_RAM_SIZE 0x00000400  
+#define BRIDGE_CONFIG_BASE 0x20000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CONFIG1_BASE 0x28000
+#define BRIDGE_CONFIG_END 0x30000
+#define BRIDGE_CONFIG_SLOT_SIZE 0x1000
+#define BRIDGE_SSRAM_512K 0x00080000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_SSRAM_128K 0x00020000  
+#define BRIDGE_SSRAM_64K 0x00010000  
+#define BRIDGE_SSRAM_0K 0x00000000  
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef u32 bridgereg_t;
+typedef u64 bridge_ate_t;
+typedef volatile bridge_ate_t *bridge_ate_p;
+typedef volatile struct bridge_s {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widget_cfg_t b_widget;
+#define b_wid_id b_widget.w_id
+#define b_wid_stat b_widget.w_status
+#define b_wid_err_upper b_widget.w_err_upper_addr
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define b_wid_err_lower b_widget.w_err_lower_addr
+#define b_wid_control b_widget.w_control
+#define b_wid_req_timeout b_widget.w_req_timeout
+#define b_wid_int_upper b_widget.w_intdest_upper_addr
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define b_wid_int_lower b_widget.w_intdest_lower_addr
+#define b_wid_err_cmdword b_widget.w_err_cmd_word
+#define b_wid_llp b_widget.w_llp_cfg
+#define b_wid_tflush b_widget.w_tflush
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_000058;
+ bridgereg_t b_wid_aux_err;
+ bridgereg_t _pad_000060;
+ bridgereg_t b_wid_resp_upper;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_000068;
+ bridgereg_t b_wid_resp_lower;
+ bridgereg_t _pad_000070;
+ bridgereg_t b_wid_tst_pin_ctrl;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_000078[2];
+ bridgereg_t _pad_000080;
+ bridgereg_t b_dir_map;
+ bridgereg_t _pad_000088[2];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_000090;
+ bridgereg_t b_ram_perr;
+ bridgereg_t _pad_000098[2];
+ bridgereg_t _pad_0000A0;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t b_arb;
+ bridgereg_t _pad_0000A8[2];
+ bridgereg_t _pad_0000B0;
+ bridgereg_t b_nic;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_0000B8[2];
+ bridgereg_t _pad_0000C0;
+ bridgereg_t b_bus_timeout;
+#define b_pci_bus_timeout b_bus_timeout
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_0000C8;
+ bridgereg_t b_pci_cfg;
+ bridgereg_t _pad_0000D0;
+ bridgereg_t b_pci_err_upper;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_0000D8;
+ bridgereg_t b_pci_err_lower;
+ bridgereg_t _pad_0000E0[8];
+#define b_gio_err_lower b_pci_err_lower
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define b_gio_err_upper b_pci_err_upper
+ bridgereg_t _pad_000100;
+ bridgereg_t b_int_status;
+ bridgereg_t _pad_000108;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t b_int_enable;
+ bridgereg_t _pad_000110;
+ bridgereg_t b_int_rst_stat;
+ bridgereg_t _pad_000118;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t b_int_mode;
+ bridgereg_t _pad_000120;
+ bridgereg_t b_int_device;
+ bridgereg_t _pad_000128;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t b_int_host_err;
+ struct {
+ bridgereg_t __pad;
+ bridgereg_t addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } b_int_addr[8];
+ bridgereg_t _pad_000170[36];
+ struct {
+ bridgereg_t __pad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t reg;
+ } b_device[8];
+ struct {
+ bridgereg_t __pad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t reg;
+ } b_wr_req_buf[8];
+ struct {
+ bridgereg_t __pad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t reg;
+ } b_rrb_map[2];
+#define b_even_resp b_rrb_map[0].reg  
+#define b_odd_resp b_rrb_map[1].reg  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_000290;
+ bridgereg_t b_resp_status;
+ bridgereg_t _pad_000298;
+ bridgereg_t b_resp_clear;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t _pad_0002A0[24];
+ char _pad_000300[0x10000 - 0x000300];
+ union {
+ bridge_ate_t wr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ bridgereg_t _p_pad;
+ bridgereg_t rd;
+ } hi;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } b_int_ate_ram[128];
+ char _pad_010400[0x11000 - 0x010400];
+ struct {
+ bridgereg_t _p_pad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bridgereg_t rd;
+ } b_int_ate_ram_lo[128];
+ char _pad_011400[0x20000 - 0x011400];
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 c[0x1000 / 1];
+ u16 s[0x1000 / 2];
+ u32 l[0x1000 / 4];
+ u64 d[0x1000 / 8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ union {
+ u8 c[0x100 / 1];
+ u16 s[0x100 / 2];
+ u32 l[0x100 / 4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 d[0x100 / 8];
+ } f[8];
+ } b_type0_cfg_dev[8];
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 c[0x1000 / 1];
+ u16 s[0x1000 / 2];
+ u32 l[0x1000 / 4];
+ u64 d[0x1000 / 8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } b_type1_cfg;
+ char _pad_029000[0x007000];
+ union {
+ u8 c[8 / 1];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u16 s[8 / 2];
+ u32 l[8 / 4];
+ u64 d[8 / 8];
+ } b_pci_iack;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 _pad_030007[0x04fff8];
+ bridge_ate_t b_ext_ate_ram[0x10000];
+ char _pad_100000[0x200000-0x100000];
+ union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 c[0x100000 / 1];
+ u16 s[0x100000 / 2];
+ u32 l[0x100000 / 4];
+ u64 d[0x100000 / 8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } b_devio_raw[10];
+#define b_devio(n) b_devio_raw[((n)<2)?(n*2):(n+2)]
+ union {
+ u8 c[0x400000 / 1];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u16 s[0x400000 / 2];
+ u32 l[0x400000 / 4];
+ u64 d[0x400000 / 8];
+ } b_external_flash;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} bridge_t;
+typedef struct bridge_err_cmdword_s {
+ union {
+ u32 cmd_word;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ u32 didn:4,
+ sidn:4,
+ pactyp:4,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ tnum:5,
+ coh:1,
+ ds:2,
+ gbr:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ vbpm:1,
+ error:1,
+ barr:1,
+ rsvd:8;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } berr_st;
+ } berr_un;
+} bridge_err_cmdword_t;
+#define berr_field berr_un.berr_st
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define BRIDGE_WID_ID WIDGET_ID
+#define BRIDGE_WID_STAT WIDGET_STATUS
+#define BRIDGE_WID_ERR_UPPER WIDGET_ERR_UPPER_ADDR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_WID_ERR_LOWER WIDGET_ERR_LOWER_ADDR
+#define BRIDGE_WID_CONTROL WIDGET_CONTROL
+#define BRIDGE_WID_REQ_TIMEOUT WIDGET_REQ_TIMEOUT
+#define BRIDGE_WID_INT_UPPER WIDGET_INTDEST_UPPER_ADDR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_WID_INT_LOWER WIDGET_INTDEST_LOWER_ADDR
+#define BRIDGE_WID_ERR_CMDWORD WIDGET_ERR_CMD_WORD
+#define BRIDGE_WID_LLP WIDGET_LLP_CFG
+#define BRIDGE_WID_TFLUSH WIDGET_TFLUSH
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_WID_AUX_ERR 0x00005C  
+#define BRIDGE_WID_RESP_UPPER 0x000064  
+#define BRIDGE_WID_RESP_LOWER 0x00006C  
+#define BRIDGE_WID_TST_PIN_CTRL 0x000074  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DIR_MAP 0x000084  
+#define BRIDGE_RAM_PERR 0x000094  
+#define BRIDGE_ARB 0x0000A4  
+#define BRIDGE_NIC 0x0000B4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_BUS_TIMEOUT 0x0000C4  
+#define BRIDGE_PCI_BUS_TIMEOUT BRIDGE_BUS_TIMEOUT
+#define BRIDGE_PCI_CFG 0x0000CC  
+#define BRIDGE_PCI_ERR_UPPER 0x0000D4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_PCI_ERR_LOWER 0x0000DC  
+#define BRIDGE_INT_STATUS 0x000104  
+#define BRIDGE_INT_ENABLE 0x00010C  
+#define BRIDGE_INT_RST_STAT 0x000114  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_INT_MODE 0x00011C  
+#define BRIDGE_INT_DEVICE 0x000124  
+#define BRIDGE_INT_HOST_ERR 0x00012C  
+#define BRIDGE_INT_ADDR0 0x000134  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_INT_ADDR_OFF 0x000008  
+#define BRIDGE_INT_ADDR(x) (BRIDGE_INT_ADDR0+(x)*BRIDGE_INT_ADDR_OFF)
+#define BRIDGE_DEVICE0 0x000204  
+#define BRIDGE_DEVICE_OFF 0x000008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEVICE(x) (BRIDGE_DEVICE0+(x)*BRIDGE_DEVICE_OFF)
+#define BRIDGE_WR_REQ_BUF0 0x000244  
+#define BRIDGE_WR_REQ_BUF_OFF 0x000008  
+#define BRIDGE_WR_REQ_BUF(x) (BRIDGE_WR_REQ_BUF0+(x)*BRIDGE_WR_REQ_BUF_OFF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_EVEN_RESP 0x000284  
+#define BRIDGE_ODD_RESP 0x00028C  
+#define BRIDGE_RESP_STATUS 0x000294  
+#define BRIDGE_RESP_CLEAR 0x00029C  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ATE_RAM 0x00010000  
+#define BRIDGE_TYPE0_CFG_DEV0 0x00020000  
+#define BRIDGE_TYPE0_CFG_SLOT_OFF 0x00001000  
+#define BRIDGE_TYPE0_CFG_FUNC_OFF 0x00000100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_TYPE0_CFG_DEV(s) (BRIDGE_TYPE0_CFG_DEV0+  (s)*BRIDGE_TYPE0_CFG_SLOT_OFF)
+#define BRIDGE_TYPE0_CFG_DEVF(s, f) (BRIDGE_TYPE0_CFG_DEV0+  (s)*BRIDGE_TYPE0_CFG_SLOT_OFF+  (f)*BRIDGE_TYPE0_CFG_FUNC_OFF)
+#define BRIDGE_TYPE1_CFG 0x00028000  
+#define BRIDGE_PCI_IACK 0x00030000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_EXT_SSRAM 0x00080000  
+#define BRIDGE_DEV_CNT 8  
+#define BRIDGE_DEVIO0 0x00200000  
+#define BRIDGE_DEVIO1 0x00400000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEVIO2 0x00600000  
+#define BRIDGE_DEVIO_OFF 0x00100000  
+#define BRIDGE_DEVIO_2MB 0x00200000  
+#define BRIDGE_DEVIO_1MB 0x00100000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEVIO(x) ((x)<=1 ? BRIDGE_DEVIO0+(x)*BRIDGE_DEVIO_2MB : BRIDGE_DEVIO2+((x)-2)*BRIDGE_DEVIO_1MB)
+#define BRIDGE_EXTERNAL_FLASH 0x00C00000  
+#define BRIDGE_WIDGET_PART_NUM 0xc002
+#define XBRIDGE_WIDGET_PART_NUM 0xd002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_WIDGET_MFGR_NUM 0x036
+#define XBRIDGE_WIDGET_MFGR_NUM 0x024
+#define BRIDGE_REV_A 0x1
+#define BRIDGE_REV_B 0x2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_REV_C 0x3
+#define BRIDGE_REV_D 0x4
+#define BRIDGE_STAT_LLP_REC_CNT (0xFFu << 24)
+#define BRIDGE_STAT_LLP_TX_CNT (0xFF << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_STAT_FLASH_SELECT (0x1 << 6)
+#define BRIDGE_STAT_PCI_GIO_N (0x1 << 5)
+#define BRIDGE_STAT_PENDING (0x1F << 0)
+#define BRIDGE_CTRL_FLASH_WR_EN (0x1ul << 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_EN_CLK50 (0x1 << 30)
+#define BRIDGE_CTRL_EN_CLK40 (0x1 << 29)
+#define BRIDGE_CTRL_EN_CLK33 (0x1 << 28)
+#define BRIDGE_CTRL_RST(n) ((n) << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_RST_MASK (BRIDGE_CTRL_RST(0xF))
+#define BRIDGE_CTRL_RST_PIN(x) (BRIDGE_CTRL_RST(0x1 << (x)))
+#define BRIDGE_CTRL_IO_SWAP (0x1 << 23)
+#define BRIDGE_CTRL_MEM_SWAP (0x1 << 22)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_PAGE_SIZE (0x1 << 21)
+#define BRIDGE_CTRL_SS_PAR_BAD (0x1 << 20)
+#define BRIDGE_CTRL_SS_PAR_EN (0x1 << 19)
+#define BRIDGE_CTRL_SSRAM_SIZE(n) ((n) << 17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_SSRAM_SIZE_MASK (BRIDGE_CTRL_SSRAM_SIZE(0x3))
+#define BRIDGE_CTRL_SSRAM_512K (BRIDGE_CTRL_SSRAM_SIZE(0x3))
+#define BRIDGE_CTRL_SSRAM_128K (BRIDGE_CTRL_SSRAM_SIZE(0x2))
+#define BRIDGE_CTRL_SSRAM_64K (BRIDGE_CTRL_SSRAM_SIZE(0x1))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_SSRAM_1K (BRIDGE_CTRL_SSRAM_SIZE(0x0))
+#define BRIDGE_CTRL_F_BAD_PKT (0x1 << 16)
+#define BRIDGE_CTRL_LLP_XBAR_CRD(n) ((n) << 12)
+#define BRIDGE_CTRL_LLP_XBAR_CRD_MASK (BRIDGE_CTRL_LLP_XBAR_CRD(0xf))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_CLR_RLLP_CNT (0x1 << 11)
+#define BRIDGE_CTRL_CLR_TLLP_CNT (0x1 << 10)
+#define BRIDGE_CTRL_SYS_END (0x1 << 9)
+#define BRIDGE_CTRL_MAX_TRANS(n) ((n) << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_CTRL_MAX_TRANS_MASK (BRIDGE_CTRL_MAX_TRANS(0x1f))
+#define BRIDGE_CTRL_WIDGET_ID(n) ((n) << 0)
+#define BRIDGE_CTRL_WIDGET_ID_MASK (BRIDGE_CTRL_WIDGET_ID(0xf))
+#define BRIDGE_RESP_ERRUPPR_DEVNUM_SHFT (20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_RESP_ERRUPPR_DEVNUM_MASK (0x7 << BRIDGE_RESP_ERRUPPR_DEVNUM_SHFT)
+#define BRIDGE_RESP_ERRUPPR_BUFNUM_SHFT (16)
+#define BRIDGE_RESP_ERRUPPR_BUFNUM_MASK (0xF << BRIDGE_RESP_ERRUPPR_BUFNUM_SHFT)
+#define BRIDGE_RESP_ERRRUPPR_BUFMASK (0xFFFF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_RESP_ERRUPPR_BUFNUM(x)   (((x) & BRIDGE_RESP_ERRUPPR_BUFNUM_MASK) >>   BRIDGE_RESP_ERRUPPR_BUFNUM_SHFT)
+#define BRIDGE_RESP_ERRUPPR_DEVICE(x)   (((x) & BRIDGE_RESP_ERRUPPR_DEVNUM_MASK) >>   BRIDGE_RESP_ERRUPPR_DEVNUM_SHFT)
+#define BRIDGE_DIRMAP_W_ID_SHFT 20
+#define BRIDGE_DIRMAP_W_ID (0xf << BRIDGE_DIRMAP_W_ID_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DIRMAP_RMF_64 (0x1 << 18)
+#define BRIDGE_DIRMAP_ADD512 (0x1 << 17)
+#define BRIDGE_DIRMAP_OFF (0x1ffff << 0)
+#define BRIDGE_DIRMAP_OFF_ADDRSHFT (31)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ARB_REQ_WAIT_TICK(x) ((x) << 16)
+#define BRIDGE_ARB_REQ_WAIT_TICK_MASK BRIDGE_ARB_REQ_WAIT_TICK(0x3)
+#define BRIDGE_ARB_REQ_WAIT_EN(x) ((x) << 8)
+#define BRIDGE_ARB_REQ_WAIT_EN_MASK BRIDGE_ARB_REQ_WAIT_EN(0xff)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ARB_FREEZE_GNT (1 << 6)
+#define BRIDGE_ARB_HPRI_RING_B2 (1 << 5)
+#define BRIDGE_ARB_HPRI_RING_B1 (1 << 4)
+#define BRIDGE_ARB_HPRI_RING_B0 (1 << 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ARB_LPRI_RING_B2 (1 << 2)
+#define BRIDGE_ARB_LPRI_RING_B1 (1 << 1)
+#define BRIDGE_ARB_LPRI_RING_B0 (1 << 0)
+#define BRIDGE_BUS_PCI_RETRY_HLD(x) ((x) << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_BUS_PCI_RETRY_HLD_MASK BRIDGE_BUS_PCI_RETRY_HLD(0x1f)
+#define BRIDGE_BUS_GIO_TIMEOUT (1 << 12)
+#define BRIDGE_BUS_PCI_RETRY_CNT(x) ((x) << 0)
+#define BRIDGE_BUS_PCI_RETRY_MASK BRIDGE_BUS_PCI_RETRY_CNT(0x3ff)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_MULTI_ERR (0x1u << 31)
+#define BRIDGE_ISR_PMU_ESIZE_FAULT (0x1 << 30)
+#define BRIDGE_ISR_UNEXP_RESP (0x1 << 29)
+#define BRIDGE_ISR_BAD_XRESP_PKT (0x1 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_BAD_XREQ_PKT (0x1 << 27)
+#define BRIDGE_ISR_RESP_XTLK_ERR (0x1 << 26)
+#define BRIDGE_ISR_REQ_XTLK_ERR (0x1 << 25)
+#define BRIDGE_ISR_INVLD_ADDR (0x1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_UNSUPPORTED_XOP (0x1 << 23)
+#define BRIDGE_ISR_XREQ_FIFO_OFLOW (0x1 << 22)
+#define BRIDGE_ISR_LLP_REC_SNERR (0x1 << 21)
+#define BRIDGE_ISR_LLP_REC_CBERR (0x1 << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_LLP_RCTY (0x1 << 19)
+#define BRIDGE_ISR_LLP_TX_RETRY (0x1 << 18)
+#define BRIDGE_ISR_LLP_TCTY (0x1 << 17)
+#define BRIDGE_ISR_SSRAM_PERR (0x1 << 16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_PCI_ABORT (0x1 << 15)
+#define BRIDGE_ISR_PCI_PARITY (0x1 << 14)
+#define BRIDGE_ISR_PCI_SERR (0x1 << 13)
+#define BRIDGE_ISR_PCI_PERR (0x1 << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_PCI_MST_TIMEOUT (0x1 << 11)
+#define BRIDGE_ISR_GIO_MST_TIMEOUT BRIDGE_ISR_PCI_MST_TIMEOUT
+#define BRIDGE_ISR_PCI_RETRY_CNT (0x1 << 10)
+#define BRIDGE_ISR_XREAD_REQ_TIMEOUT (0x1 << 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_GIO_B_ENBL_ERR (0x1 << 8)
+#define BRIDGE_ISR_INT_MSK (0xff << 0)
+#define BRIDGE_ISR_INT(x) (0x1 << (x))
+#define BRIDGE_ISR_LINK_ERROR   (BRIDGE_ISR_LLP_REC_SNERR|BRIDGE_ISR_LLP_REC_CBERR|   BRIDGE_ISR_LLP_RCTY|BRIDGE_ISR_LLP_TX_RETRY|   BRIDGE_ISR_LLP_TCTY)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_PCIBUS_PIOERR   (BRIDGE_ISR_PCI_MST_TIMEOUT|BRIDGE_ISR_PCI_ABORT)
+#define BRIDGE_ISR_PCIBUS_ERROR   (BRIDGE_ISR_PCIBUS_PIOERR|BRIDGE_ISR_PCI_PERR|   BRIDGE_ISR_PCI_SERR|BRIDGE_ISR_PCI_RETRY_CNT|   BRIDGE_ISR_PCI_PARITY)
+#define BRIDGE_ISR_XTALK_ERROR   (BRIDGE_ISR_XREAD_REQ_TIMEOUT|BRIDGE_ISR_XREQ_FIFO_OFLOW|  BRIDGE_ISR_UNSUPPORTED_XOP|BRIDGE_ISR_INVLD_ADDR|   BRIDGE_ISR_REQ_XTLK_ERR|BRIDGE_ISR_RESP_XTLK_ERR|   BRIDGE_ISR_BAD_XREQ_PKT|BRIDGE_ISR_BAD_XRESP_PKT|   BRIDGE_ISR_UNEXP_RESP)
+#define BRIDGE_ISR_ERRORS   (BRIDGE_ISR_LINK_ERROR|BRIDGE_ISR_PCIBUS_ERROR|   BRIDGE_ISR_XTALK_ERROR|BRIDGE_ISR_SSRAM_PERR|   BRIDGE_ISR_PMU_ESIZE_FAULT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ISR_ERROR_FATAL   ((BRIDGE_ISR_XTALK_ERROR & ~BRIDGE_ISR_XREAD_REQ_TIMEOUT)|  BRIDGE_ISR_PCI_SERR|BRIDGE_ISR_PCI_PARITY )
+#define BRIDGE_ISR_ERROR_DUMP   (BRIDGE_ISR_PCIBUS_ERROR|BRIDGE_ISR_PMU_ESIZE_FAULT|   BRIDGE_ISR_XTALK_ERROR|BRIDGE_ISR_SSRAM_PERR)
+#define BRIDGE_IMR_UNEXP_RESP BRIDGE_ISR_UNEXP_RESP
+#define BRIDGE_IMR_PMU_ESIZE_FAULT BRIDGE_ISR_PMU_ESIZE_FAULT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IMR_BAD_XRESP_PKT BRIDGE_ISR_BAD_XRESP_PKT
+#define BRIDGE_IMR_BAD_XREQ_PKT BRIDGE_ISR_BAD_XREQ_PKT
+#define BRIDGE_IMR_RESP_XTLK_ERR BRIDGE_ISR_RESP_XTLK_ERR
+#define BRIDGE_IMR_REQ_XTLK_ERR BRIDGE_ISR_REQ_XTLK_ERR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IMR_INVLD_ADDR BRIDGE_ISR_INVLD_ADDR
+#define BRIDGE_IMR_UNSUPPORTED_XOP BRIDGE_ISR_UNSUPPORTED_XOP
+#define BRIDGE_IMR_XREQ_FIFO_OFLOW BRIDGE_ISR_XREQ_FIFO_OFLOW
+#define BRIDGE_IMR_LLP_REC_SNERR BRIDGE_ISR_LLP_REC_SNERR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IMR_LLP_REC_CBERR BRIDGE_ISR_LLP_REC_CBERR
+#define BRIDGE_IMR_LLP_RCTY BRIDGE_ISR_LLP_RCTY
+#define BRIDGE_IMR_LLP_TX_RETRY BRIDGE_ISR_LLP_TX_RETRY
+#define BRIDGE_IMR_LLP_TCTY BRIDGE_ISR_LLP_TCTY
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IMR_SSRAM_PERR BRIDGE_ISR_SSRAM_PERR
+#define BRIDGE_IMR_PCI_ABORT BRIDGE_ISR_PCI_ABORT
+#define BRIDGE_IMR_PCI_PARITY BRIDGE_ISR_PCI_PARITY
+#define BRIDGE_IMR_PCI_SERR BRIDGE_ISR_PCI_SERR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IMR_PCI_PERR BRIDGE_ISR_PCI_PERR
+#define BRIDGE_IMR_PCI_MST_TIMEOUT BRIDGE_ISR_PCI_MST_TIMEOUT
+#define BRIDGE_IMR_GIO_MST_TIMEOUT BRIDGE_ISR_GIO_MST_TIMEOUT
+#define BRIDGE_IMR_PCI_RETRY_CNT BRIDGE_ISR_PCI_RETRY_CNT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IMR_XREAD_REQ_TIMEOUT BRIDGE_ISR_XREAD_REQ_TIMEOUT
+#define BRIDGE_IMR_GIO_B_ENBL_ERR BRIDGE_ISR_GIO_B_ENBL_ERR
+#define BRIDGE_IMR_INT_MSK BRIDGE_ISR_INT_MSK
+#define BRIDGE_IMR_INT(x) BRIDGE_ISR_INT(x)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IRR_MULTI_CLR (0x1 << 6)
+#define BRIDGE_IRR_CRP_GRP_CLR (0x1 << 5)
+#define BRIDGE_IRR_RESP_BUF_GRP_CLR (0x1 << 4)
+#define BRIDGE_IRR_REQ_DSP_GRP_CLR (0x1 << 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IRR_LLP_GRP_CLR (0x1 << 2)
+#define BRIDGE_IRR_SSRAM_GRP_CLR (0x1 << 1)
+#define BRIDGE_IRR_PCI_GRP_CLR (0x1 << 0)
+#define BRIDGE_IRR_GIO_GRP_CLR (0x1 << 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IRR_ALL_CLR 0x7f
+#define BRIDGE_IRR_CRP_GRP (BRIDGE_ISR_UNEXP_RESP |   BRIDGE_ISR_XREQ_FIFO_OFLOW)
+#define BRIDGE_IRR_RESP_BUF_GRP (BRIDGE_ISR_BAD_XRESP_PKT |   BRIDGE_ISR_RESP_XTLK_ERR |   BRIDGE_ISR_XREAD_REQ_TIMEOUT)
+#define BRIDGE_IRR_REQ_DSP_GRP (BRIDGE_ISR_UNSUPPORTED_XOP |   BRIDGE_ISR_BAD_XREQ_PKT |   BRIDGE_ISR_REQ_XTLK_ERR |   BRIDGE_ISR_INVLD_ADDR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_IRR_LLP_GRP (BRIDGE_ISR_LLP_REC_SNERR |   BRIDGE_ISR_LLP_REC_CBERR |   BRIDGE_ISR_LLP_RCTY |   BRIDGE_ISR_LLP_TX_RETRY |   BRIDGE_ISR_LLP_TCTY)
+#define BRIDGE_IRR_SSRAM_GRP (BRIDGE_ISR_SSRAM_PERR |   BRIDGE_ISR_PMU_ESIZE_FAULT)
+#define BRIDGE_IRR_PCI_GRP (BRIDGE_ISR_PCI_ABORT |   BRIDGE_ISR_PCI_PARITY |   BRIDGE_ISR_PCI_SERR |   BRIDGE_ISR_PCI_PERR |   BRIDGE_ISR_PCI_MST_TIMEOUT |   BRIDGE_ISR_PCI_RETRY_CNT)
+#define BRIDGE_IRR_GIO_GRP (BRIDGE_ISR_GIO_B_ENBL_ERR |   BRIDGE_ISR_GIO_MST_TIMEOUT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_INT_DEV_SHFT(n) ((n)*3)
+#define BRIDGE_INT_DEV_MASK(n) (0x7 << BRIDGE_INT_DEV_SHFT(n))
+#define BRIDGE_INT_DEV_SET(_dev, _line) (_dev << BRIDGE_INT_DEV_SHFT(_line))
+#define BRIDGE_INT_ADDR_HOST 0x0003FF00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_INT_ADDR_FLD 0x000000FF
+#define BRIDGE_TMO_PCI_RETRY_HLD_MASK 0x1f0000
+#define BRIDGE_TMO_GIO_TIMEOUT_MASK 0x001000
+#define BRIDGE_TMO_PCI_RETRY_CNT_MASK 0x0003ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_TMO_PCI_RETRY_CNT_MAX 0x3ff
+#define BRIDGE_INT_ADDR_NASID_SHFT 8
+#define BRIDGE_INT_ADDR_DEST_IO (1 << 17)
+#define BRIDGE_INT_ADDR_DEST_MEM 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_INT_ADDR_MASK (1 << 17)
+#define BRIDGE_DEV_ERR_LOCK_EN 0x10000000
+#define BRIDGE_DEV_PAGE_CHK_DIS 0x08000000
+#define BRIDGE_DEV_FORCE_PCI_PAR 0x04000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEV_VIRTUAL_EN 0x02000000
+#define BRIDGE_DEV_PMU_WRGA_EN 0x01000000
+#define BRIDGE_DEV_DIR_WRGA_EN 0x00800000
+#define BRIDGE_DEV_DEV_SIZE 0x00400000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEV_RT 0x00200000
+#define BRIDGE_DEV_SWAP_PMU 0x00100000
+#define BRIDGE_DEV_SWAP_DIR 0x00080000
+#define BRIDGE_DEV_PREF 0x00040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEV_PRECISE 0x00020000
+#define BRIDGE_DEV_COH 0x00010000
+#define BRIDGE_DEV_BARRIER 0x00008000
+#define BRIDGE_DEV_GBR 0x00004000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEV_DEV_SWAP 0x00002000
+#define BRIDGE_DEV_DEV_IO_MEM 0x00001000
+#define BRIDGE_DEV_OFF_MASK 0x00000fff
+#define BRIDGE_DEV_OFF_ADDR_SHFT 20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DEV_PMU_BITS (BRIDGE_DEV_PMU_WRGA_EN |   BRIDGE_DEV_SWAP_PMU)
+#define BRIDGE_DEV_D32_BITS (BRIDGE_DEV_DIR_WRGA_EN |   BRIDGE_DEV_SWAP_DIR |   BRIDGE_DEV_PREF |   BRIDGE_DEV_PRECISE |   BRIDGE_DEV_COH |   BRIDGE_DEV_BARRIER)
+#define BRIDGE_DEV_D64_BITS (BRIDGE_DEV_DIR_WRGA_EN |   BRIDGE_DEV_SWAP_DIR |   BRIDGE_DEV_COH |   BRIDGE_DEV_BARRIER)
+#define BRIDGE_ERRUPPR_DEVMASTER (0x1 << 20)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ERRUPPR_PCIVDEV (0x1 << 19)  
+#define BRIDGE_ERRUPPR_DEVNUM_SHFT (16)
+#define BRIDGE_ERRUPPR_DEVNUM_MASK (0x7 << BRIDGE_ERRUPPR_DEVNUM_SHFT)
+#define BRIDGE_ERRUPPR_DEVICE(err) (((err) >> BRIDGE_ERRUPPR_DEVNUM_SHFT) & 0x7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_ERRUPPR_ADDRMASK (0xFFFF)
+#define BRIDGE_INTMODE_CLR_PKT_EN(x) (0x1 << (x))
+#define BRIDGE_CREDIT 3
+#define BRIDGE_RRB_EN 0x8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_RRB_DEV 0x7  
+#define BRIDGE_RRB_VDEV 0x4  
+#define BRIDGE_RRB_PDEV 0x3  
+#define BRIDGE_RRB_VALID(r) (0x00010000<<(r))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_RRB_INUSE(r) (0x00000001<<(r))
+#define BRIDGE_RRB_CLEAR(r) (0x00000001<<(r))
+#define XBOX_BRIDGE_WID 8
+#define FLASH_PROM1_BASE 0xE00000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XBOX_RPS_EXISTS 1 << 6  
+#define XBOX_RPS_FAIL 1 << 4  
+#define BRIDGE_PIO32_XTALK_ALIAS_BASE 0x000040000000L
+#define BRIDGE_PIO32_XTALK_ALIAS_LIMIT 0x00007FFFFFFFL
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_PIO64_XTALK_ALIAS_BASE 0x000080000000L
+#define BRIDGE_PIO64_XTALK_ALIAS_LIMIT 0x0000BFFFFFFFL
+#define BRIDGE_PCIIO_XTALK_ALIAS_BASE 0x000100000000L
+#define BRIDGE_PCIIO_XTALK_ALIAS_LIMIT 0x0001FFFFFFFFL
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_MIN_PIO_ADDR_MEM 0x00000000  
+#define BRIDGE_MAX_PIO_ADDR_MEM 0x3fffffff
+#define BRIDGE_MIN_PIO_ADDR_IO 0x00000000  
+#define BRIDGE_MAX_PIO_ADDR_IO 0xffffffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_PCI_MEM32_BASE BRIDGE_PIO32_XTALK_ALIAS_BASE
+#define BRIDGE_PCI_MEM32_LIMIT BRIDGE_PIO32_XTALK_ALIAS_LIMIT
+#define BRIDGE_PCI_MEM64_BASE BRIDGE_PIO64_XTALK_ALIAS_BASE
+#define BRIDGE_PCI_MEM64_LIMIT BRIDGE_PIO64_XTALK_ALIAS_LIMIT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_PCI_IO_BASE BRIDGE_PCIIO_XTALK_ALIAS_BASE
+#define BRIDGE_PCI_IO_LIMIT BRIDGE_PCIIO_XTALK_ALIAS_LIMIT
+#define BRIDGE_LOCAL_BASE 0
+#define BRIDGE_DMA_MAPPED_BASE 0x40000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BRIDGE_DMA_MAPPED_SIZE 0x40000000  
+#define BRIDGE_DMA_DIRECT_BASE 0x80000000
+#define BRIDGE_DMA_DIRECT_SIZE 0x80000000  
+#define PCI32_LOCAL_BASE BRIDGE_LOCAL_BASE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI32_MAPPED_BASE BRIDGE_DMA_MAPPED_BASE
+#define PCI32_DIRECT_BASE BRIDGE_DMA_DIRECT_BASE
+#define IS_PCI32_LOCAL(x) ((ulong_t)(x) < PCI32_MAPPED_BASE)
+#define IS_PCI32_MAPPED(x) ((ulong_t)(x) < PCI32_DIRECT_BASE &&   (ulong_t)(x) >= PCI32_MAPPED_BASE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IS_PCI32_DIRECT(x) ((ulong_t)(x) >= PCI32_MAPPED_BASE)
+#define IS_PCI64(x) ((ulong_t)(x) >= PCI64_BASE)
+#define BRIDGE_GIO_MEM32_BASE BRIDGE_PIO32_XTALK_ALIAS_BASE
+#define BRIDGE_GIO_MEM32_LIMIT BRIDGE_PIO32_XTALK_ALIAS_LIMIT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GIO_LOCAL_BASE BRIDGE_LOCAL_BASE
+#define GIO_MAPPED_BASE BRIDGE_DMA_MAPPED_BASE
+#define GIO_DIRECT_BASE BRIDGE_DMA_DIRECT_BASE
+#define IS_GIO_LOCAL(x) ((ulong_t)(x) < GIO_MAPPED_BASE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IS_GIO_MAPPED(x) ((ulong_t)(x) < GIO_DIRECT_BASE &&   (ulong_t)(x) >= GIO_MAPPED_BASE)
+#define IS_GIO_DIRECT(x) ((ulong_t)(x) >= GIO_MAPPED_BASE)
+#define BRIDGE_DIRECT_32_SEG_SIZE BRIDGE_DMA_DIRECT_SIZE
+#define BRIDGE_DIRECT_32_TO_XTALK(dir_off,adr)   ((dir_off) * BRIDGE_DIRECT_32_SEG_SIZE +   ((adr) & (BRIDGE_DIRECT_32_SEG_SIZE - 1)) + PHYS_RAMBASE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI64_ATTR_TARG_MASK 0xf000000000000000
+#define PCI64_ATTR_TARG_SHFT 60
+#define PCI64_ATTR_PREF 0x0800000000000000
+#define PCI64_ATTR_PREC 0x0400000000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI64_ATTR_VIRTUAL 0x0200000000000000
+#define PCI64_ATTR_BAR 0x0100000000000000
+#define PCI64_ATTR_RMF_MASK 0x00ff000000000000
+#define PCI64_ATTR_RMF_SHFT 48
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+typedef union ate_u {
+ u64 ent;
+ struct ate_s {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 rmf:16;
+ u64 addr:36;
+ u64 targ:4;
+ u64 reserved:3;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 barrier:1;
+ u64 prefetch:1;
+ u64 precise:1;
+ u64 coherent:1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 valid:1;
+ } field;
+} ate_t;
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ATE_V 0x01
+#define ATE_CO 0x02
+#define ATE_PREC 0x04
+#define ATE_PREF 0x08
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ATE_BAR 0x10
+#define ATE_PFNSHIFT 12
+#define ATE_TIDSHIFT 8
+#define ATE_RMFSHIFT 48
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define mkate(xaddr, xid, attr) ((xaddr) & 0x0000fffffffff000ULL) |   ((xid)<<ATE_TIDSHIFT) |   (attr)
+#define BRIDGE_INTERNAL_ATES 128
+struct bridge_controller {
+ struct pci_controller pc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct resource mem;
+ struct resource io;
+ bridge_t *base;
+ nasid_t nasid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int widget_id;
+ unsigned int irq_cpu;
+ dma64_addr_t baddr;
+ unsigned int pci_int[8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define BRIDGE_CONTROLLER(bus)   ((struct bridge_controller *)((bus)->sysdata))
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/percpu.h b/ndk/platforms/android-9/arch-mips/include/asm/percpu.h
new file mode 100644
index 0000000..3af8904
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/percpu.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_PERCPU_H
+#define __ASM_PERCPU_H
+#include <asm-generic/percpu.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/pgalloc.h b/ndk/platforms/android-9/arch-mips/include/asm/pgalloc.h
new file mode 100644
index 0000000..e3ef3b8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/pgalloc.h
@@ -0,0 +1,29 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PGALLOC_H
+#define _ASM_PGALLOC_H
+#include <linux/highmem.h>
+#include <linux/mm.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/sched.h>
+#define pmd_pgtable(pmd) pmd_page(pmd)
+#define __pte_free_tlb(tlb,pte)  do {   pgtable_page_dtor(pte);   tlb_remove_page((tlb), pte);  } while (0)
+#define check_pgt_cache() do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/pgtable-bits.h b/ndk/platforms/android-9/arch-mips/include/asm/pgtable-bits.h
new file mode 100644
index 0000000..3df2c3d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/pgtable-bits.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PGTABLE_BITS_H
+#define _ASM_PGTABLE_BITS_H
+#define _PAGE_PRESENT (1<<0)  
+#define _PAGE_READ (1<<1)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _PAGE_WRITE (1<<2)  
+#define _PAGE_ACCESSED (1<<3)  
+#define _PAGE_MODIFIED (1<<4)  
+#define _PAGE_FILE (1<<4)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _PAGE_R4KBUG (1<<5)  
+#define _PAGE_GLOBAL (1<<6)
+#define _PAGE_VALID (1<<7)
+#define _PAGE_SILENT_READ (1<<7)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _PAGE_DIRTY (1<<8)  
+#define _PAGE_SILENT_WRITE (1<<8)
+#define _CACHE_SHIFT 9
+#define _CACHE_MASK (7<<9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _CACHE_CACHABLE_NO_WA (0<<_CACHE_SHIFT)  
+#define _CACHE_CACHABLE_WA (1<<_CACHE_SHIFT)  
+#define _CACHE_UNCACHED (2<<_CACHE_SHIFT)  
+#define _CACHE_CACHABLE_NONCOHERENT (3<<_CACHE_SHIFT)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _CACHE_CACHABLE_CE (4<<_CACHE_SHIFT)  
+#define _CACHE_CACHABLE_COW (5<<_CACHE_SHIFT)  
+#define _CACHE_CACHABLE_COHERENT (5<<_CACHE_SHIFT)  
+#define _CACHE_CACHABLE_CUW (6<<_CACHE_SHIFT)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _CACHE_UNCACHED_ACCELERATED (7<<_CACHE_SHIFT)  
+#define __READABLE (_PAGE_READ | _PAGE_SILENT_READ | _PAGE_ACCESSED)
+#define __WRITEABLE (_PAGE_WRITE | _PAGE_SILENT_WRITE | _PAGE_MODIFIED)
+#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/pgtable.h b/ndk/platforms/android-9/arch-mips/include/asm/pgtable.h
new file mode 100644
index 0000000..ceb4343
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/pgtable.h
@@ -0,0 +1,78 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PGTABLE_H
+#define _ASM_PGTABLE_H
+#include <asm/io.h>
+#include <asm/pgtable-bits.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct mm_struct;
+struct vm_area_struct;
+#define PAGE_NONE __pgprot(_PAGE_PRESENT | _CACHE_CACHABLE_NONCOHERENT)
+#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE |   _page_cachable_default)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_READ |   _page_cachable_default)
+#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_READ |   _page_cachable_default)
+#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE |   _PAGE_GLOBAL | _page_cachable_default)
+#define PAGE_USERIO __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE |   _page_cachable_default)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PAGE_KERNEL_UNCACHED __pgprot(_PAGE_PRESENT | __READABLE |   __WRITEABLE | _PAGE_GLOBAL | _CACHE_UNCACHED)
+#define __P000 __pgprot(0)
+#define __P001 __pgprot(0)
+#define __P010 __pgprot(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __P011 __pgprot(0)
+#define __P100 __pgprot(0)
+#define __P101 __pgprot(0)
+#define __P110 __pgprot(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __P111 __pgprot(0)
+#define __S000 __pgprot(0)
+#define __S001 __pgprot(0)
+#define __S010 __pgprot(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __S011 __pgprot(0)
+#define __S100 __pgprot(0)
+#define __S101 __pgprot(0)
+#define __S110 __pgprot(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __S111 __pgprot(0)
+#define ZERO_PAGE(vaddr)   (virt_to_page((void *)(empty_zero_page + (((unsigned long)(vaddr)) & zero_page_mask))))
+#define pmd_phys(pmd) virt_to_phys((void *)pmd_val(pmd))
+#define pmd_page(pmd) (pfn_to_page(pmd_phys(pmd) >> PAGE_SHIFT))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define pmd_page_vaddr(pmd) pmd_val(pmd)
+#define pte_none(pte) (!(pte_val(pte) & ~_PAGE_GLOBAL))
+#define pte_present(pte) (pte_val(pte) & _PAGE_PRESENT)
+#define set_pte_at(mm, addr, ptep, pteval) set_pte(ptep, pteval)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define set_pmd(pmdptr, pmdval) do { *(pmdptr) = (pmdval); } while(0)
+#define PGD_T_LOG2 (__builtin_ffs(sizeof(pgd_t)) - 1)
+#define PMD_T_LOG2 (__builtin_ffs(sizeof(pmd_t)) - 1)
+#define PTE_T_LOG2 (__builtin_ffs(sizeof(pte_t)) - 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define pgprot_noncached pgprot_noncached
+#define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
+#define kern_addr_valid(addr) (1)
+#define io_remap_pfn_range(vma, vaddr, pfn, size, prot)   remap_pfn_range(vma, vaddr, pfn, size, prot)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm-generic/pgtable.h>
+#define HAVE_ARCH_UNMAPPED_AREA
+#define pgtable_cache_init() do { } while (0)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/poll.h b/ndk/platforms/android-9/arch-mips/include/asm/poll.h
new file mode 100644
index 0000000..8d6a297
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/poll.h
@@ -0,0 +1,25 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_POLL_H
+#define __ASM_POLL_H
+#define POLLWRNORM POLLOUT
+#define POLLWRBAND 0x0100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm-generic/poll.h>
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/posix_types.h b/ndk/platforms/android-9/arch-mips/include/asm/posix_types.h
new file mode 100644
index 0000000..99a2896
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/posix_types.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_POSIX_TYPES_H
+#define _ASM_POSIX_TYPES_H
+#include <asm/sgidefs.h>
+typedef unsigned long __kernel_ino_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned int __kernel_mode_t;
+#if _MIPS_SZLONG == 32
+typedef unsigned long __kernel_nlink_t;
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SZLONG == 64
+typedef unsigned int __kernel_nlink_t;
+#endif
+typedef long __kernel_off_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef int __kernel_pid_t;
+typedef int __kernel_ipc_pid_t;
+typedef unsigned int __kernel_uid_t;
+typedef unsigned int __kernel_gid_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SZLONG == 32
+typedef unsigned int __kernel_size_t;
+typedef int __kernel_ssize_t;
+typedef int __kernel_ptrdiff_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SZLONG == 64
+typedef unsigned long __kernel_size_t;
+typedef long __kernel_ssize_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef long __kernel_ptrdiff_t;
+#endif
+typedef long __kernel_time_t;
+typedef long __kernel_suseconds_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef long __kernel_clock_t;
+typedef int __kernel_timer_t;
+typedef int __kernel_clockid_t;
+typedef long __kernel_daddr_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef char * __kernel_caddr_t;
+typedef unsigned short __kernel_uid16_t;
+typedef unsigned short __kernel_gid16_t;
+typedef unsigned int __kernel_uid32_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned int __kernel_gid32_t;
+typedef __kernel_uid_t __kernel_old_uid_t;
+typedef __kernel_gid_t __kernel_old_gid_t;
+typedef unsigned int __kernel_old_dev_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef __GNUC__
+typedef long long __kernel_loff_t;
+#endif
+typedef struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SZLONG == 32
+ long val[2];
+#endif
+#if _MIPS_SZLONG == 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int val[2];
+#endif
+} __kernel_fsid_t;
+#if !defined(__GLIBC__) || __GLIBC__ < 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#undef __FD_SET
+#define __FD_SET(fd, fdsetp) (((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] |= (1<<((fd) & 31)))
+#undef __FD_CLR
+#define __FD_CLR(fd, fdsetp) (((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] &= ~(1<<((fd) & 31)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#undef __FD_ISSET
+#define __FD_ISSET(fd, fdsetp) ((((fd_set *)(fdsetp))->fds_bits[(fd) >> 5] & (1<<((fd) & 31))) != 0)
+#undef __FD_ZERO
+#define __FD_ZERO(fdsetp) (memset (fdsetp, 0, sizeof (*(fd_set *)(fdsetp))))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/prefetch.h b/ndk/platforms/android-9/arch-mips/include/asm/prefetch.h
new file mode 100644
index 0000000..a4386be
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/prefetch.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_PREFETCH_H
+#define __ASM_PREFETCH_H
+#define Pref_Load 0
+#define Pref_Store 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Pref_LoadStreamed 4
+#define Pref_StoreStreamed 5
+#define Pref_LoadRetained 6
+#define Pref_StoreRetained 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define Pref_WriteBackInvalidate 25
+#define Pref_PrepareForStore 30
+#ifdef __ASSEMBLY__
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/processor.h b/ndk/platforms/android-9/arch-mips/include/asm/processor.h
new file mode 100644
index 0000000..3563121
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/processor.h
@@ -0,0 +1,89 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PROCESSOR_H
+#define _ASM_PROCESSOR_H
+#include <linux/cpumask.h>
+#include <linux/threads.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/cachectl.h>
+#include <asm/cpu.h>
+#include <asm/cpu-info.h>
+#include <asm/mipsregs.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/prefetch.h>
+#include <asm/system.h>
+#define current_text_addr() ({ __label__ _l; _l: &&_l;})
+#define NUM_FPU_REGS 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef __u64 fpureg_t;
+struct mips_fpu_struct {
+ fpureg_t fpr[NUM_FPU_REGS];
+ unsigned int fcr31;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define NUM_DSP_REGS 6
+typedef __u32 dspreg_t;
+struct mips_dsp_state {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ dspreg_t dspr[NUM_DSP_REGS];
+ unsigned int dspcontrol;
+};
+#define INIT_CPUMASK {   {0,}  }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct {
+ unsigned long seg;
+} mm_segment_t;
+#define ARCH_MIN_TASKALIGN 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct mips_abi;
+struct thread_struct {
+ unsigned long reg16;
+ unsigned long reg17, reg18, reg19, reg20, reg21, reg22, reg23;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long reg29, reg30, reg31;
+ unsigned long cp0_status;
+ struct mips_fpu_struct fpu;
+ struct mips_dsp_state dsp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long cp0_badvaddr;
+ unsigned long cp0_baduaddr;
+ unsigned long error_code;
+ unsigned long trap_no;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long irix_trampoline;
+ unsigned long irix_oldctx;
+ struct mips_abi *abi;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPAFF_INIT
+#define INIT_THREAD {       .reg16 = 0,   .reg17 = 0,   .reg18 = 0,   .reg19 = 0,   .reg20 = 0,   .reg21 = 0,   .reg22 = 0,   .reg23 = 0,   .reg29 = 0,   .reg30 = 0,   .reg31 = 0,       .cp0_status = 0,       .fpu = {   .fpr = {0,},   .fcr31 = 0,   },       FPAFF_INIT       .dsp = {   .dspr = {0, },   .dspcontrol = 0,   },       .cp0_badvaddr = 0,   .cp0_baduaddr = 0,   .error_code = 0,   .trap_no = 0,   .irix_trampoline = 0,   .irix_oldctx = 0,  }
+struct task_struct;
+#define release_thread(thread) do { } while(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define prepare_to_copy(tsk) do { } while (0)
+#define __KSTK_TOS(tsk) ((unsigned long)task_stack_page(tsk) + THREAD_SIZE - 32)
+#define task_pt_regs(tsk) ((struct pt_regs *)__KSTK_TOS(tsk) - 1)
+#define KSTK_EIP(tsk) (task_pt_regs(tsk)->cp0_epc)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KSTK_ESP(tsk) (task_pt_regs(tsk)->regs[29])
+#define KSTK_STATUS(tsk) (task_pt_regs(tsk)->cp0_status)
+#define cpu_relax() barrier()
+#define return_address() ({__asm__ __volatile__("":::"$31");__builtin_return_address(0);})
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/ptrace.h b/ndk/platforms/android-9/arch-mips/include/asm/ptrace.h
new file mode 100644
index 0000000..2b71e70
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/ptrace.h
@@ -0,0 +1,61 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_PTRACE_H
+#define _ASM_PTRACE_H
+#define FPR_BASE 32
+#define PC 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CAUSE 65
+#define BADVADDR 66
+#define MMHI 67
+#define MMLO 68
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FPC_CSR 69
+#define FPC_EIR 70
+#define DSP_BASE 71  
+#define DSP_CONTROL 77
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ACX 78
+struct pt_regs {
+ unsigned long regs[32];
+ unsigned long cp0_status;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long hi;
+ unsigned long lo;
+ unsigned long cp0_badvaddr;
+ unsigned long cp0_cause;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long cp0_epc;
+} __attribute__ ((aligned (8)));
+#define PTRACE_GETREGS 12
+#define PTRACE_SETREGS 13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTRACE_GETFPREGS 14
+#define PTRACE_SETFPREGS 15
+#define PTRACE_OLDSETOPTIONS 21
+#define PTRACE_GET_THREAD_AREA 25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTRACE_SET_THREAD_AREA 26
+#define PTRACE_PEEKTEXT_3264 0xc0
+#define PTRACE_PEEKDATA_3264 0xc1
+#define PTRACE_POKETEXT_3264 0xc2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PTRACE_POKEDATA_3264 0xc3
+#define PTRACE_GET_THREAD_AREA_3264 0xc4
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/reg.h b/ndk/platforms/android-9/arch-mips/include/asm/reg.h
new file mode 100644
index 0000000..9174e27
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/reg.h
@@ -0,0 +1,74 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_MIPS_REG_H
+#define __ASM_MIPS_REG_H
+#ifdef WANT_COMPAT_REG_H
+#define EF_R0 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R1 7
+#define EF_R2 8
+#define EF_R3 9
+#define EF_R4 10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R5 11
+#define EF_R6 12
+#define EF_R7 13
+#define EF_R8 14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R9 15
+#define EF_R10 16
+#define EF_R11 17
+#define EF_R12 18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R13 19
+#define EF_R14 20
+#define EF_R15 21
+#define EF_R16 22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R17 23
+#define EF_R18 24
+#define EF_R19 25
+#define EF_R20 26
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R21 27
+#define EF_R22 28
+#define EF_R23 29
+#define EF_R24 30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R25 31
+#define EF_R26 32
+#define EF_R27 33
+#define EF_R28 34
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_R29 35
+#define EF_R30 36
+#define EF_R31 37
+#define EF_LO 38
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_HI 39
+#define EF_CP0_EPC 40
+#define EF_CP0_BADVADDR 41
+#define EF_CP0_STATUS 42
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_CP0_CAUSE 43
+#define EF_UNUSED0 44
+#define EF_SIZE 180
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/regdef.h b/ndk/platforms/android-9/arch-mips/include/asm/regdef.h
new file mode 100644
index 0000000..12d9c42
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/regdef.h
@@ -0,0 +1,118 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_REGDEF_H
+#define _ASM_REGDEF_H
+#include <asm/sgidefs.h>
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define zero $0  
+#define AT $1  
+#define v0 $2  
+#define v1 $3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a0 $4  
+#define a1 $5
+#define a2 $6
+#define a3 $7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t0 $8  
+#define t1 $9
+#define t2 $10
+#define t3 $11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t4 $12
+#define t5 $13
+#define t6 $14
+#define t7 $15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s0 $16  
+#define s1 $17
+#define s2 $18
+#define s3 $19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s4 $20
+#define s5 $21
+#define s6 $22
+#define s7 $23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t8 $24  
+#define t9 $25
+#define jp $25  
+#define k0 $26  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define k1 $27
+#define gp $28  
+#define sp $29  
+#define fp $30  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s8 $30  
+#define ra $31  
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define zero $0  
+#define AT $at  
+#define v0 $2  
+#define v1 $3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a0 $4  
+#define a1 $5
+#define a2 $6
+#define a3 $7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a4 $8  
+#define ta0 $8
+#define a5 $9
+#define ta1 $9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define a6 $10
+#define ta2 $10
+#define a7 $11
+#define ta3 $11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t0 $12  
+#define t1 $13
+#define t2 $14
+#define t3 $15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s0 $16  
+#define s1 $17
+#define s2 $18
+#define s3 $19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s4 $20
+#define s5 $21
+#define s6 $22
+#define s7 $23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define t8 $24  
+#define t9 $25  
+#define jp $25  
+#define k0 $26  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define k1 $27
+#define gp $28  
+#define sp $29  
+#define fp $30  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define s8 $30  
+#define ra $31  
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/resource.h b/ndk/platforms/android-9/arch-mips/include/asm/resource.h
new file mode 100644
index 0000000..e841072
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/resource.h
@@ -0,0 +1,29 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_RESOURCE_H
+#define _ASM_RESOURCE_H
+#define RLIMIT_NOFILE 5  
+#define RLIMIT_AS 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RLIMIT_RSS 7  
+#define RLIMIT_NPROC 8  
+#define RLIMIT_MEMLOCK 9  
+#include <asm-generic/resource.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/scatterlist.h b/ndk/platforms/android-9/arch-mips/include/asm/scatterlist.h
new file mode 100644
index 0000000..fd697b0
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/scatterlist.h
@@ -0,0 +1,34 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_SCATTERLIST_H
+#define __ASM_SCATTERLIST_H
+#include <asm/types.h>
+struct scatterlist {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long page_link;
+ unsigned int offset;
+ dma_addr_t dma_address;
+ unsigned int length;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define sg_dma_address(sg) ((sg)->dma_address)
+#define sg_dma_len(sg) ((sg)->length)
+#define ISA_DMA_THRESHOLD (0x00ffffffUL)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sections.h b/ndk/platforms/android-9/arch-mips/include/asm/sections.h
new file mode 100644
index 0000000..ee51096
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sections.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SECTIONS_H
+#define _ASM_SECTIONS_H
+#include <asm-generic/sections.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/segment.h b/ndk/platforms/android-9/arch-mips/include/asm/segment.h
new file mode 100644
index 0000000..e417612
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/segment.h
@@ -0,0 +1,21 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SEGMENT_H
+#define _ASM_SEGMENT_H
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sembuf.h b/ndk/platforms/android-9/arch-mips/include/asm/sembuf.h
new file mode 100644
index 0000000..b524f68
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sembuf.h
@@ -0,0 +1,31 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SEMBUF_H
+#define _ASM_SEMBUF_H
+struct semid64_ds {
+ struct ipc64_perm sem_perm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __kernel_time_t sem_otime;
+ __kernel_time_t sem_ctime;
+ unsigned long sem_nsems;
+ unsigned long __unused1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long __unused2;
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/setup.h b/ndk/platforms/android-9/arch-mips/include/asm/setup.h
new file mode 100644
index 0000000..731e993
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/setup.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _MIPS_SETUP_H
+#define _MIPS_SETUP_H
+#define COMMAND_LINE_SIZE 256
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sgi/hpc3.h b/ndk/platforms/android-9/arch-mips/include/asm/sgi/hpc3.h
new file mode 100644
index 0000000..d4f4280
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sgi/hpc3.h
@@ -0,0 +1,290 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _SGI_HPC3_H
+#define _SGI_HPC3_H
+#include <linux/types.h>
+#include <asm/page.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct hpc_dma_desc {
+ u32 pbuf;
+ u32 cntinfo;
+#define HPCDMA_EOX 0x80000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPCDMA_EOR 0x80000000  
+#define HPCDMA_EOXP 0x40000000  
+#define HPCDMA_EORP 0x40000000  
+#define HPCDMA_XIE 0x20000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPCDMA_XIU 0x01000000  
+#define HPCDMA_EIPC 0x00ff0000  
+#define HPCDMA_ETXD 0x00008000  
+#define HPCDMA_OWN 0x00004000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPCDMA_BCNT 0x00003fff  
+ u32 pnext;
+};
+struct hpc3_pbus_dmacregs {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 pbdma_bptr;
+ volatile u32 pbdma_dptr;
+ u32 _unused0[0x1000/4 - 2];
+ volatile u32 pbdma_ctrl;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PDMACTRL_INT 0x00000001  
+#define HPC3_PDMACTRL_ISACT 0x00000002  
+#define HPC3_PDMACTRL_SEL 0x00000002  
+#define HPC3_PDMACTRL_RCV 0x00000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PDMACTRL_FLSH 0x00000008  
+#define HPC3_PDMACTRL_ACT 0x00000010  
+#define HPC3_PDMACTRL_LD 0x00000020  
+#define HPC3_PDMACTRL_RT 0x00000040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PDMACTRL_HW 0x0000ff00  
+#define HPC3_PDMACTRL_FB 0x003f0000  
+#define HPC3_PDMACTRL_FE 0x3f000000  
+ u32 _unused1[0x1000/4 - 1];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct hpc3_scsiregs {
+ volatile u32 cbptr;
+ volatile u32 ndptr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused0[0x1000/4 - 2];
+ volatile u32 bcd;
+#define HPC3_SBCD_BCNTMSK 0x00003fff  
+#define HPC3_SBCD_XIE 0x00004000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SBCD_EOX 0x00008000  
+ volatile u32 ctrl;
+#define HPC3_SCTRL_IRQ 0x01  
+#define HPC3_SCTRL_ENDIAN 0x02  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SCTRL_DIR 0x04  
+#define HPC3_SCTRL_FLUSH 0x08  
+#define HPC3_SCTRL_ACTIVE 0x10  
+#define HPC3_SCTRL_AMASK 0x20  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SCTRL_CRESET 0x40  
+#define HPC3_SCTRL_PERR 0x80  
+ volatile u32 gfptr;
+ volatile u32 dfptr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 dconfig;
+#define HPC3_SDCFG_HCLK 0x00001  
+#define HPC3_SDCFG_D1 0x00006  
+#define HPC3_SDCFG_D2 0x00038  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SDCFG_D3 0x001c0  
+#define HPC3_SDCFG_HWAT 0x00e00  
+#define HPC3_SDCFG_HW 0x01000  
+#define HPC3_SDCFG_SWAP 0x02000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SDCFG_EPAR 0x04000  
+#define HPC3_SDCFG_POLL 0x08000  
+#define HPC3_SDCFG_ERLY 0x30000  
+ volatile u32 pconfig;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SPCFG_P3 0x0003  
+#define HPC3_SPCFG_P2W 0x001c  
+#define HPC3_SPCFG_P2R 0x01e0  
+#define HPC3_SPCFG_P1 0x0e00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_SPCFG_HW 0x1000  
+#define HPC3_SPCFG_SWAP 0x2000  
+#define HPC3_SPCFG_EPAR 0x4000  
+#define HPC3_SPCFG_FUJI 0x8000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused1[0x1000/4 - 6];
+};
+struct hpc3_ethregs {
+ volatile u32 rx_cbptr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 rx_ndptr;
+ u32 _unused0[0x1000/4 - 2];
+ volatile u32 rx_bcd;
+#define HPC3_ERXBCD_BCNTMSK 0x00003fff  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ERXBCD_XIE 0x20000000  
+#define HPC3_ERXBCD_EOX 0x80000000  
+ volatile u32 rx_ctrl;
+#define HPC3_ERXCTRL_STAT50 0x0000003f  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ERXCTRL_STAT6 0x00000040  
+#define HPC3_ERXCTRL_STAT7 0x00000080  
+#define HPC3_ERXCTRL_ENDIAN 0x00000100  
+#define HPC3_ERXCTRL_ACTIVE 0x00000200  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ERXCTRL_AMASK 0x00000400  
+#define HPC3_ERXCTRL_RBO 0x00000800  
+ volatile u32 rx_gfptr;
+ volatile u32 rx_dfptr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused1;
+ volatile u32 reset;
+#define HPC3_ERST_CRESET 0x1  
+#define HPC3_ERST_CLRIRQ 0x2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ERST_LBACK 0x4  
+ volatile u32 dconfig;
+#define HPC3_EDCFG_D1 0x0000f  
+#define HPC3_EDCFG_D2 0x000f0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_EDCFG_D3 0x00f00  
+#define HPC3_EDCFG_WCTRL 0x01000  
+#define HPC3_EDCFG_FRXDC 0x02000  
+#define HPC3_EDCFG_FEOP 0x04000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_EDCFG_FIRQ 0x08000  
+#define HPC3_EDCFG_PTO 0x30000  
+ volatile u32 pconfig;
+#define HPC3_EPCFG_P1 0x000f  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_EPCFG_P2 0x00f0  
+#define HPC3_EPCFG_P3 0x0f00  
+#define HPC3_EPCFG_TST 0x1000  
+ u32 _unused2[0x1000/4 - 8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 tx_cbptr;
+ volatile u32 tx_ndptr;
+ u32 _unused3[0x1000/4 - 2];
+ volatile u32 tx_bcd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ETXBCD_BCNTMSK 0x00003fff  
+#define HPC3_ETXBCD_ESAMP 0x10000000  
+#define HPC3_ETXBCD_XIE 0x20000000  
+#define HPC3_ETXBCD_EOP 0x40000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ETXBCD_EOX 0x80000000  
+ volatile u32 tx_ctrl;
+#define HPC3_ETXCTRL_STAT30 0x0000000f  
+#define HPC3_ETXCTRL_STAT4 0x00000010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ETXCTRL_STAT75 0x000000e0  
+#define HPC3_ETXCTRL_ENDIAN 0x00000100  
+#define HPC3_ETXCTRL_ACTIVE 0x00000200  
+#define HPC3_ETXCTRL_AMASK 0x00000400  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 tx_gfptr;
+ volatile u32 tx_dfptr;
+ u32 _unused4[0x1000/4 - 4];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct hpc3_regs {
+ struct hpc3_pbus_dmacregs pbdma[8];
+ struct hpc3_scsiregs scsi_chan0, scsi_chan1;
+ struct hpc3_ethregs ethregs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused0[0x18000/4];
+ volatile u32 istat0;
+#define HPC3_ISTAT_PBIMASK 0x0ff  
+#define HPC3_ISTAT_SC0MASK 0x100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_ISTAT_SC1MASK 0x200  
+ volatile u32 gio_misc;
+#define HPC3_GIOMISC_ERTIME 0x1  
+#define HPC3_GIOMISC_DENDIAN 0x2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 eeprom;
+#define HPC3_EEPROM_EPROT 0x01  
+#define HPC3_EEPROM_CSEL 0x02  
+#define HPC3_EEPROM_ECLK 0x04  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_EEPROM_DATO 0x08  
+#define HPC3_EEPROM_DATI 0x10  
+ volatile u32 istat1;
+ volatile u32 bestat;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_BESTAT_BLMASK 0x000ff  
+#define HPC3_BESTAT_CTYPE 0x00100  
+#define HPC3_BESTAT_PIDSHIFT 9
+#define HPC3_BESTAT_PIDMASK 0x3f700  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused1[0x14000/4 - 5];
+ volatile u32 scsi0_ext[256];
+ u32 _unused2[0x7c00/4];
+ volatile u32 scsi1_ext[256];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused3[0x7c00/4];
+ volatile u32 eth_ext[320];
+ u32 _unused4[0x3b00/4];
+ volatile u32 pbus_extregs[16][256];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 pbus_dmacfg[8][128];
+#define HPC3_DMACFG_D3R_MASK 0x00000001
+#define HPC3_DMACFG_D3R_SHIFT 0
+#define HPC3_DMACFG_D4R_MASK 0x0000001e
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_DMACFG_D4R_SHIFT 1
+#define HPC3_DMACFG_D5R_MASK 0x000001e0
+#define HPC3_DMACFG_D5R_SHIFT 5
+#define HPC3_DMACFG_D3W_MASK 0x00000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_DMACFG_D3W_SHIFT 9
+#define HPC3_DMACFG_D4W_MASK 0x00003c00
+#define HPC3_DMACFG_D4W_SHIFT 10
+#define HPC3_DMACFG_D5W_MASK 0x0003c000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_DMACFG_D5W_SHIFT 14
+#define HPC3_DMACFG_DS16 0x00040000
+#define HPC3_DMACFG_EVENHI 0x00080000
+#define HPC3_DMACFG_RTIME 0x00200000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_DMACFG_BURST_MASK 0x07c00000
+#define HPC3_DMACFG_BURST_SHIFT 22
+#define HPC3_DMACFG_DRQLIVE 0x08000000
+ volatile u32 pbus_piocfg[16][64];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PIOCFG_P2R_MASK 0x00001
+#define HPC3_PIOCFG_P2R_SHIFT 0
+#define HPC3_PIOCFG_P3R_MASK 0x0001e
+#define HPC3_PIOCFG_P3R_SHIFT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PIOCFG_P4R_MASK 0x001e0
+#define HPC3_PIOCFG_P4R_SHIFT 5
+#define HPC3_PIOCFG_P2W_MASK 0x00200
+#define HPC3_PIOCFG_P2W_SHIFT 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PIOCFG_P3W_MASK 0x03c00
+#define HPC3_PIOCFG_P3W_SHIFT 10
+#define HPC3_PIOCFG_P4W_MASK 0x3c000
+#define HPC3_PIOCFG_P4W_SHIFT 14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_PIOCFG_DS16 0x40000
+#define HPC3_PIOCFG_EVENHI 0x80000
+ volatile u32 pbus_promwe;
+#define HPC3_PROM_WENAB 0x1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused5[0x0800/4 - 1];
+ volatile u32 pbus_promswap;
+#define HPC3_PROM_SWAP 0x1  
+ u32 _unused6[0x0800/4 - 1];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 pbus_gout;
+#define HPC3_PROM_STAT 0x1  
+ u32 _unused7[0x1000/4 - 1];
+ volatile u32 rtcregs[14];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused8[50];
+ volatile u32 bbram[8192-50-14];
+};
+#define HPC3_CHIP0_BASE 0x1fb80000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HPC3_CHIP1_BASE 0x1fb00000  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sgi/ioc.h b/ndk/platforms/android-9/arch-mips/include/asm/sgi/ioc.h
new file mode 100644
index 0000000..db75b20
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sgi/ioc.h
@@ -0,0 +1,221 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _SGI_IOC_H
+#define _SGI_IOC_H
+#include <linux/types.h>
+#include <asm/sgi/pi1.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct sgioc_uart_regs {
+ u8 _ctrl1[3];
+ volatile u8 ctrl1;
+ u8 _data1[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 data1;
+ u8 _ctrl2[3];
+ volatile u8 ctrl2;
+ u8 _data2[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 data2;
+};
+struct sgioc_keyb_regs {
+ u8 _data[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 data;
+ u8 _command[3];
+ volatile u8 command;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct sgint_regs {
+ u8 _istat0[3];
+ volatile u8 istat0;
+#define SGINT_ISTAT0_FFULL 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_ISTAT0_SCSI0 0x02
+#define SGINT_ISTAT0_SCSI1 0x04
+#define SGINT_ISTAT0_ENET 0x08
+#define SGINT_ISTAT0_GFXDMA 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_ISTAT0_PPORT 0x20
+#define SGINT_ISTAT0_HPC2 0x40
+#define SGINT_ISTAT0_LIO2 0x80
+ u8 _imask0[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 imask0;
+ u8 _istat1[3];
+ volatile u8 istat1;
+#define SGINT_ISTAT1_ISDNI 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_ISTAT1_PWR 0x02
+#define SGINT_ISTAT1_ISDNH 0x04
+#define SGINT_ISTAT1_LIO3 0x08
+#define SGINT_ISTAT1_HPC3 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_ISTAT1_AFAIL 0x20
+#define SGINT_ISTAT1_VIDEO 0x40
+#define SGINT_ISTAT1_GIO2 0x80
+ u8 _imask1[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 imask1;
+ u8 _vmeistat[3];
+ volatile u8 vmeistat;
+ u8 _cmeimask0[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 cmeimask0;
+ u8 _cmeimask1[3];
+ volatile u8 cmeimask1;
+ u8 _cmepol[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 cmepol;
+ u8 _tclear[3];
+ volatile u8 tclear;
+ u8 _errstat[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 errstat;
+ u32 _unused0[2];
+ u8 _tcnt0[3];
+ volatile u8 tcnt0;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 _tcnt1[3];
+ volatile u8 tcnt1;
+ u8 _tcnt2[3];
+ volatile u8 tcnt2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 _tcword[3];
+ volatile u8 tcword;
+#define SGINT_TCWORD_BCD 0x01  
+#define SGINT_TCWORD_MMASK 0x0e  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_TCWORD_MITC 0x00  
+#define SGINT_TCWORD_MOS 0x02  
+#define SGINT_TCWORD_MRGEN 0x04  
+#define SGINT_TCWORD_MSWGEN 0x06  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_TCWORD_MSWST 0x08  
+#define SGINT_TCWORD_MHWST 0x0a  
+#define SGINT_TCWORD_CMASK 0x30  
+#define SGINT_TCWORD_CLAT 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_TCWORD_CLSB 0x10  
+#define SGINT_TCWORD_CMSB 0x20  
+#define SGINT_TCWORD_CALL 0x30  
+#define SGINT_TCWORD_CNT0 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_TCWORD_CNT1 0x40  
+#define SGINT_TCWORD_CNT2 0x80  
+#define SGINT_TCWORD_CRBCK 0xc0  
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGINT_TIMER_CLOCK 1000000
+#define SGINT_TCSAMP_COUNTER ((SGINT_TIMER_CLOCK / HZ) + 255)
+struct sgioc_regs {
+ struct pi1_regs pport;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused0[2];
+ struct sgioc_uart_regs uart;
+ struct sgioc_keyb_regs kbdmouse;
+ u8 _gcsel[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 gcsel;
+ u8 _genctrl[3];
+ volatile u8 genctrl;
+ u8 _panel[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 panel;
+#define SGIOC_PANEL_POWERON 0x01
+#define SGIOC_PANEL_POWERINTR 0x02
+#define SGIOC_PANEL_VOLDNINTR 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_PANEL_VOLDNHOLD 0x20
+#define SGIOC_PANEL_VOLUPINTR 0x40
+#define SGIOC_PANEL_VOLUPHOLD 0x80
+ u32 _unused1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 _sysid[3];
+ volatile u8 sysid;
+#define SGIOC_SYSID_FULLHOUSE 0x01
+#define SGIOC_SYSID_BOARDREV(x) (((x) & 0x1e) >> 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_SYSID_CHIPREV(x) (((x) & 0xe0) >> 5)
+ u32 _unused2;
+ u8 _read[3];
+ volatile u8 read;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 _unused3;
+ u8 _dmasel[3];
+ volatile u8 dmasel;
+#define SGIOC_DMASEL_SCLK10MHZ 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_DMASEL_ISDNB 0x01  
+#define SGIOC_DMASEL_ISDNA 0x02  
+#define SGIOC_DMASEL_PPORT 0x04  
+#define SGIOC_DMASEL_SCLK667MHZ 0x10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_DMASEL_SCLKEXT 0x20  
+ u32 _unused4;
+ u8 _reset[3];
+ volatile u8 reset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_RESET_PPORT 0x01  
+#define SGIOC_RESET_KBDMOUSE 0x02  
+#define SGIOC_RESET_EISA 0x04  
+#define SGIOC_RESET_ISDN 0x08  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_RESET_LC0OFF 0x10  
+#define SGIOC_RESET_LC1OFF 0x20  
+ u32 _unused5;
+ u8 _write[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 write;
+#define SGIOC_WRITE_NTHRESH 0x01  
+#define SGIOC_WRITE_TPSPEED 0x02  
+#define SGIOC_WRITE_EPSEL 0x04  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_WRITE_EASEL 0x08  
+#define SGIOC_WRITE_U1AMODE 0x10  
+#define SGIOC_WRITE_U0AMODE 0x20  
+#define SGIOC_WRITE_MLO 0x40  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIOC_WRITE_MHI 0x80  
+ u32 _unused6;
+ struct sgint_regs int3;
+ u32 _unused7[16];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 extio;
+#define EXTIO_S0_IRQ_3 0x8000  
+#define EXTIO_S0_IRQ_2 0x4000  
+#define EXTIO_S0_IRQ_1 0x2000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EXTIO_S0_RETRACE 0x1000
+#define EXTIO_SG_IRQ_3 0x0800  
+#define EXTIO_SG_IRQ_2 0x0400  
+#define EXTIO_SG_IRQ_1 0x0200  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EXTIO_SG_RETRACE 0x0100
+#define EXTIO_GIO_33MHZ 0x0080
+#define EXTIO_EISA_BUSERR 0x0040
+#define EXTIO_MC_BUSERR 0x0020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EXTIO_HPC3_BUSERR 0x0010
+#define EXTIO_S0_STAT_1 0x0008
+#define EXTIO_S0_STAT_0 0x0004
+#define EXTIO_SG_STAT_1 0x0002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EXTIO_SG_STAT_0 0x0001
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sgi/pi1.h b/ndk/platforms/android-9/arch-mips/include/asm/sgi/pi1.h
new file mode 100644
index 0000000..1aa0438
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sgi/pi1.h
@@ -0,0 +1,99 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _SGI_PI1_H
+#define _SGI_PI1_H
+struct pi1_regs {
+ u8 _data[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 data;
+ u8 _ctrl[3];
+ volatile u8 ctrl;
+#define PI1_CTRL_STROBE_N 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_CTRL_AFD_N 0x02
+#define PI1_CTRL_INIT_N 0x04
+#define PI1_CTRL_SLIN_N 0x08
+#define PI1_CTRL_IRQ_ENA 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_CTRL_DIR 0x20
+#define PI1_CTRL_SEL 0x40
+ u8 _status[3];
+ volatile u8 status;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_STAT_DEVID 0x03  
+#define PI1_STAT_NOINK 0x04  
+#define PI1_STAT_ERROR 0x08
+#define PI1_STAT_ONLINE 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_STAT_PE 0x20
+#define PI1_STAT_ACK 0x40
+#define PI1_STAT_BUSY 0x80
+ u8 _dmactrl[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 dmactrl;
+#define PI1_DMACTRL_FIFO_EMPTY 0x01  
+#define PI1_DMACTRL_ABORT 0x02  
+#define PI1_DMACTRL_STDMODE 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_DMACTRL_SGIMODE 0x04  
+#define PI1_DMACTRL_RICOHMODE 0x08  
+#define PI1_DMACTRL_HPMODE 0x0c  
+#define PI1_DMACTRL_BLKMODE 0x10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_DMACTRL_FIFO_CLEAR 0x20  
+#define PI1_DMACTRL_READ 0x40  
+#define PI1_DMACTRL_RUN 0x80  
+ u8 _intstat[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 intstat;
+#define PI1_INTSTAT_ACK 0x04
+#define PI1_INTSTAT_FEMPTY 0x08
+#define PI1_INTSTAT_NOINK 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_INTSTAT_ONLINE 0x20
+#define PI1_INTSTAT_ERR 0x40
+#define PI1_INTSTAT_PE 0x80
+ u8 _intmask[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 intmask;
+#define PI1_INTMASK_ACK 0x04
+#define PI1_INTMASK_FIFO_EMPTY 0x08
+#define PI1_INTMASK_NOINK 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_INTMASK_ONLINE 0x20
+#define PI1_INTMASK_ERR 0x40
+#define PI1_INTMASK_PE 0x80
+ u8 _timer1[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 timer1;
+#define PI1_TIME1 0x27
+ u8 _timer2[3];
+ volatile u8 timer2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI1_TIME2 0x13
+ u8 _timer3[3];
+ volatile u8 timer3;
+#define PI1_TIME3 0x10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 _timer4[3];
+ volatile u8 timer4;
+#define PI1_TIME4 0x00
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sgiarcs.h b/ndk/platforms/android-9/arch-mips/include/asm/sgiarcs.h
new file mode 100644
index 0000000..5fe0d47
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sgiarcs.h
@@ -0,0 +1,360 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SGIARCS_H
+#define _ASM_SGIARCS_H
+#include <asm/types.h>
+#include <asm/fw/arc/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_ESUCCESS 0x00
+#define PROM_E2BIG 0x01
+#define PROM_EACCESS 0x02
+#define PROM_EAGAIN 0x03
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_EBADF 0x04
+#define PROM_EBUSY 0x05
+#define PROM_EFAULT 0x06
+#define PROM_EINVAL 0x07
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_EIO 0x08
+#define PROM_EISDIR 0x09
+#define PROM_EMFILE 0x0a
+#define PROM_EMLINK 0x0b
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_ENAMETOOLONG 0x0c
+#define PROM_ENODEV 0x0d
+#define PROM_ENOENT 0x0e
+#define PROM_ENOEXEC 0x0f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_ENOMEM 0x10
+#define PROM_ENOSPC 0x11
+#define PROM_ENOTDIR 0x12
+#define PROM_ENOTTY 0x13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_ENXIO 0x14
+#define PROM_EROFS 0x15
+#define PROM_EADDRNOTAVAIL 0x1f
+#define PROM_ETIMEDOUT 0x20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROM_ECONNABORTED 0x21
+#define PROM_ENOCONNECT 0x22
+enum linux_devclass {
+ system, processor, cache, adapter, controller, peripheral, memory
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum linux_devtypes {
+ Arc, Cpu, Fpu,
+ picache, pdcache,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sicache, sdcache, sccache,
+ memdev, eisa_adapter, tc_adapter, scsi_adapter, dti_adapter,
+ multifunc_adapter, dsk_controller, tp_controller, cdrom_controller,
+ worm_controller, serial_controller, net_controller, disp_controller,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ parallel_controller, ptr_controller, kbd_controller, audio_controller,
+ misc_controller, disk_peripheral, flpy_peripheral, tp_peripheral,
+ modem_peripheral, monitor_peripheral, printer_peripheral,
+ ptr_peripheral, kbd_peripheral, term_peripheral, line_peripheral,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ net_peripheral, misc_peripheral, anon
+};
+enum linux_identifier {
+ bogus, ronly, removable, consin, consout, input, output
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct linux_component {
+ enum linux_devclass class;
+ enum linux_devtypes type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum linux_identifier iflags;
+ USHORT vers;
+ USHORT rev;
+ ULONG key;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ULONG amask;
+ ULONG cdsize;
+ ULONG ilen;
+ _PULONG iname;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+typedef struct linux_component pcomponent;
+struct linux_sysid {
+ char vend[8], prod[8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+enum arcs_memtypes {
+ arcs_eblock,
+ arcs_rvpage,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ arcs_fcontig,
+ arcs_free,
+ arcs_bmem,
+ arcs_prog,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ arcs_atmp,
+ arcs_aperm,
+};
+enum arc_memtypes {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ arc_eblock,
+ arc_rvpage,
+ arc_free,
+ arc_bmem,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ arc_prog,
+ arc_atmp,
+ arc_aperm,
+ arc_fcontig,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+union linux_memtypes {
+ enum arcs_memtypes arcs;
+ enum arc_memtypes arc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct linux_mdesc {
+ union linux_memtypes type;
+ ULONG base;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ULONG pages;
+};
+struct linux_tinfo {
+ unsigned short yr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short mnth;
+ unsigned short day;
+ unsigned short hr;
+ unsigned short min;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short sec;
+ unsigned short msec;
+};
+struct linux_vdirent {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ULONG namelen;
+ unsigned char attr;
+ char fname[32];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum linux_omode {
+ rdonly, wronly, rdwr, wronly_creat, rdwr_creat,
+ wronly_ssede, rdwr_ssede, dirent, dirent_creat
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+enum linux_seekmode {
+ absolute, relative
+};
+enum linux_mountops {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ media_load, media_unload
+};
+struct linux_bigint {
+#ifdef __MIPSEL__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 lo;
+ s32 hi;
+#else
+ s32 hi;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 lo;
+#endif
+};
+struct linux_finfo {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct linux_bigint begin;
+ struct linux_bigint end;
+ struct linux_bigint cur;
+ enum linux_devtypes dtype;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long namelen;
+ unsigned char attr;
+ char name[32];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct linux_romvec {
+ LONG load;
+ LONG invoke;
+ LONG exec;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG halt;
+ LONG pdown;
+ LONG restart;
+ LONG reboot;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG imode;
+ LONG _unused1;
+ LONG next_component;
+ LONG child_component;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG parent_component;
+ LONG component_data;
+ LONG child_add;
+ LONG comp_del;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG component_by_path;
+ LONG cfg_save;
+ LONG get_sysid;
+ LONG get_mdesc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG _unused2;
+ LONG get_tinfo;
+ LONG get_rtime;
+ LONG get_vdirent;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG open;
+ LONG close;
+ LONG read;
+ LONG get_rstatus;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG write;
+ LONG seek;
+ LONG mount;
+ LONG get_evar;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG set_evar;
+ LONG get_finfo;
+ LONG set_finfo;
+ LONG cache_flush;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ LONG TestUnicodeCharacter;
+ LONG GetDisplayStatus;
+};
+typedef struct _SYSTEM_PARAMETER_BLOCK {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ULONG magic;
+#define PROMBLOCK_MAGIC 0x53435241
+ ULONG len;
+ USHORT ver;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ USHORT rev;
+ _PLONG rs_block;
+ _PLONG dbg_block;
+ _PLONG gevect;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ _PLONG utlbvect;
+ ULONG rveclen;
+ _PVOID romvec;
+ ULONG pveclen;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ _PVOID pvector;
+ ULONG adap_cnt;
+ ULONG adap_typ0;
+ ULONG adap_vcnt0;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ _PVOID adap_vector;
+ ULONG adap_typ1;
+ ULONG adap_vcnt1;
+ _PVOID adap_vector1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} SYSTEM_PARAMETER_BLOCK, *PSYSTEM_PARAMETER_BLOCK;
+#define PROMBLOCK ((PSYSTEM_PARAMETER_BLOCK) (int)0xA0001000)
+#define ROMVECTOR ((struct linux_romvec *) (long)(PROMBLOCK)->romvec)
+union linux_cache_key {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct param {
+#ifdef __MIPSEL__
+ unsigned short size;
+ unsigned char lsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char bsize;
+#else
+ unsigned char bsize;
+ unsigned char lsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short size;
+#endif
+ } info;
+ unsigned long allinfo;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct linux_cdata {
+ char *name;
+ int mlen;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ enum linux_devtypes type;
+};
+#define SGIPROM_STDIN 0
+#define SGIPROM_STDOUT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIPROM_ROFILE 0x01  
+#define SGIPROM_HFILE 0x02  
+#define SGIPROM_SFILE 0x04  
+#define SGIPROM_AFILE 0x08  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIPROM_DFILE 0x10  
+#define SGIPROM_DELFILE 0x20  
+struct sgi_partition {
+ unsigned char flag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIPART_UNUSED 0x00
+#define SGIPART_ACTIVE 0x80
+ unsigned char shead, ssect, scyl;
+ unsigned char systype;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char ehead, esect, ecyl;
+ unsigned char rsect0, rsect1, rsect2, rsect3;
+ unsigned char tsect0, tsect1, tsect2, tsect3;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SGIBBLOCK_MAGIC 0xaa55
+#define SGIBBLOCK_MAXPART 0x0004
+struct sgi_bootblock {
+ unsigned char _unused[446];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct sgi_partition partitions[SGIBBLOCK_MAXPART];
+ unsigned short magic;
+};
+struct sgi_bparm_block {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short bytes_sect;
+ unsigned char sect_clust;
+ unsigned short sect_resv;
+ unsigned char nfats;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short nroot_dirents;
+ unsigned short sect_volume;
+ unsigned char media_type;
+ unsigned short sect_fat;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short sect_track;
+ unsigned short nheads;
+ unsigned short nhsects;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct sgi_bsector {
+ unsigned char jmpinfo[3];
+ unsigned char manuf_name[8];
+ struct sgi_bparm_block info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define SMB_DEBUG_MAGIC 0xfeeddead
+struct linux_smonblock {
+ unsigned long magic;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void (*handler)(void);
+ unsigned long dtable_base;
+ int (*printf)(const char *fmt, ...);
+ unsigned long btable_base;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long mpflushreqs;
+ unsigned long ntab;
+ unsigned long stab;
+ int smax;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sgidefs.h b/ndk/platforms/android-9/arch-mips/include/asm/sgidefs.h
new file mode 100644
index 0000000..d63f15e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sgidefs.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_SGIDEFS_H
+#define __ASM_SGIDEFS_H
+#ifndef __linux__
+#error Use a Linux compiler or give up.
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define _MIPS_ISA_MIPS1 1
+#define _MIPS_ISA_MIPS2 2
+#define _MIPS_ISA_MIPS3 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _MIPS_ISA_MIPS4 4
+#define _MIPS_ISA_MIPS5 5
+#define _MIPS_ISA_MIPS32 6
+#define _MIPS_ISA_MIPS64 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _MIPS_SIM_ABI32 1
+#define _MIPS_SIM_NABI32 2
+#define _MIPS_SIM_ABI64 3
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/shmbuf.h b/ndk/platforms/android-9/arch-mips/include/asm/shmbuf.h
new file mode 100644
index 0000000..3f7d0b1
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/shmbuf.h
@@ -0,0 +1,50 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SHMBUF_H
+#define _ASM_SHMBUF_H
+struct shmid64_ds {
+ struct ipc64_perm shm_perm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ size_t shm_segsz;
+ __kernel_time_t shm_atime;
+ __kernel_time_t shm_dtime;
+ __kernel_time_t shm_ctime;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __kernel_pid_t shm_cpid;
+ __kernel_pid_t shm_lpid;
+ unsigned long shm_nattch;
+ unsigned long __unused1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long __unused2;
+};
+struct shminfo64 {
+ unsigned long shmmax;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long shmmin;
+ unsigned long shmmni;
+ unsigned long shmseg;
+ unsigned long shmall;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long __unused1;
+ unsigned long __unused2;
+ unsigned long __unused3;
+ unsigned long __unused4;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/shmparam.h b/ndk/platforms/android-9/arch-mips/include/asm/shmparam.h
new file mode 100644
index 0000000..d5ec78f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/shmparam.h
@@ -0,0 +1,24 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SHMPARAM_H
+#define _ASM_SHMPARAM_H
+#define __ARCH_FORCE_SHMLBA 1
+#define SHMLBA 0x40000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sibyte/bcm1480_int.h b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/bcm1480_int.h
new file mode 100644
index 0000000..b14f1ca
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/bcm1480_int.h
@@ -0,0 +1,295 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _BCM1480_INT_H
+#define _BCM1480_INT_H
+#include "sb1250_defs.h"
+#define K_BCM1480_INT_SOURCES 128
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _BCM1480_INT_HIGH(k) (k)
+#define _BCM1480_INT_LOW(k) ((k)+64)
+#define K_BCM1480_INT_ADDR_TRAP _BCM1480_INT_HIGH(1)
+#define K_BCM1480_INT_GPIO_0 _BCM1480_INT_HIGH(4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_GPIO_1 _BCM1480_INT_HIGH(5)
+#define K_BCM1480_INT_GPIO_2 _BCM1480_INT_HIGH(6)
+#define K_BCM1480_INT_GPIO_3 _BCM1480_INT_HIGH(7)
+#define K_BCM1480_INT_PCI_INTA _BCM1480_INT_HIGH(8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_PCI_INTB _BCM1480_INT_HIGH(9)
+#define K_BCM1480_INT_PCI_INTC _BCM1480_INT_HIGH(10)
+#define K_BCM1480_INT_PCI_INTD _BCM1480_INT_HIGH(11)
+#define K_BCM1480_INT_CYCLE_CP0 _BCM1480_INT_HIGH(12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_CYCLE_CP1 _BCM1480_INT_HIGH(13)
+#define K_BCM1480_INT_CYCLE_CP2 _BCM1480_INT_HIGH(14)
+#define K_BCM1480_INT_CYCLE_CP3 _BCM1480_INT_HIGH(15)
+#define K_BCM1480_INT_TIMER_0 _BCM1480_INT_HIGH(20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_TIMER_1 _BCM1480_INT_HIGH(21)
+#define K_BCM1480_INT_TIMER_2 _BCM1480_INT_HIGH(22)
+#define K_BCM1480_INT_TIMER_3 _BCM1480_INT_HIGH(23)
+#define K_BCM1480_INT_DM_CH_0 _BCM1480_INT_HIGH(28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_DM_CH_1 _BCM1480_INT_HIGH(29)
+#define K_BCM1480_INT_DM_CH_2 _BCM1480_INT_HIGH(30)
+#define K_BCM1480_INT_DM_CH_3 _BCM1480_INT_HIGH(31)
+#define K_BCM1480_INT_MAC_0 _BCM1480_INT_HIGH(36)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_MAC_0_CH1 _BCM1480_INT_HIGH(37)
+#define K_BCM1480_INT_MAC_1 _BCM1480_INT_HIGH(38)
+#define K_BCM1480_INT_MAC_1_CH1 _BCM1480_INT_HIGH(39)
+#define K_BCM1480_INT_MAC_2 _BCM1480_INT_HIGH(40)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_MAC_2_CH1 _BCM1480_INT_HIGH(41)
+#define K_BCM1480_INT_MAC_3 _BCM1480_INT_HIGH(42)
+#define K_BCM1480_INT_MAC_3_CH1 _BCM1480_INT_HIGH(43)
+#define K_BCM1480_INT_PMI_LOW _BCM1480_INT_HIGH(52)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_PMI_HIGH _BCM1480_INT_HIGH(53)
+#define K_BCM1480_INT_PMO_LOW _BCM1480_INT_HIGH(54)
+#define K_BCM1480_INT_PMO_HIGH _BCM1480_INT_HIGH(55)
+#define K_BCM1480_INT_MBOX_0_0 _BCM1480_INT_HIGH(56)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_MBOX_0_1 _BCM1480_INT_HIGH(57)
+#define K_BCM1480_INT_MBOX_0_2 _BCM1480_INT_HIGH(58)
+#define K_BCM1480_INT_MBOX_0_3 _BCM1480_INT_HIGH(59)
+#define K_BCM1480_INT_MBOX_1_0 _BCM1480_INT_HIGH(60)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_MBOX_1_1 _BCM1480_INT_HIGH(61)
+#define K_BCM1480_INT_MBOX_1_2 _BCM1480_INT_HIGH(62)
+#define K_BCM1480_INT_MBOX_1_3 _BCM1480_INT_HIGH(63)
+#define K_BCM1480_INT_BAD_ECC _BCM1480_INT_LOW(1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_COR_ECC _BCM1480_INT_LOW(2)
+#define K_BCM1480_INT_IO_BUS _BCM1480_INT_LOW(3)
+#define K_BCM1480_INT_PERF_CNT _BCM1480_INT_LOW(4)
+#define K_BCM1480_INT_SW_PERF_CNT _BCM1480_INT_LOW(5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_TRACE_FREEZE _BCM1480_INT_LOW(6)
+#define K_BCM1480_INT_SW_TRACE_FREEZE _BCM1480_INT_LOW(7)
+#define K_BCM1480_INT_WATCHDOG_TIMER_0 _BCM1480_INT_LOW(8)
+#define K_BCM1480_INT_WATCHDOG_TIMER_1 _BCM1480_INT_LOW(9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_WATCHDOG_TIMER_2 _BCM1480_INT_LOW(10)
+#define K_BCM1480_INT_WATCHDOG_TIMER_3 _BCM1480_INT_LOW(11)
+#define K_BCM1480_INT_PCI_ERROR _BCM1480_INT_LOW(16)
+#define K_BCM1480_INT_PCI_RESET _BCM1480_INT_LOW(17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_NODE_CONTROLLER _BCM1480_INT_LOW(18)
+#define K_BCM1480_INT_HOST_BRIDGE _BCM1480_INT_LOW(19)
+#define K_BCM1480_INT_PORT_0_FATAL _BCM1480_INT_LOW(20)
+#define K_BCM1480_INT_PORT_0_NONFATAL _BCM1480_INT_LOW(21)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_PORT_1_FATAL _BCM1480_INT_LOW(22)
+#define K_BCM1480_INT_PORT_1_NONFATAL _BCM1480_INT_LOW(23)
+#define K_BCM1480_INT_PORT_2_FATAL _BCM1480_INT_LOW(24)
+#define K_BCM1480_INT_PORT_2_NONFATAL _BCM1480_INT_LOW(25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_LDT_SMI _BCM1480_INT_LOW(32)
+#define K_BCM1480_INT_LDT_NMI _BCM1480_INT_LOW(33)
+#define K_BCM1480_INT_LDT_INIT _BCM1480_INT_LOW(34)
+#define K_BCM1480_INT_LDT_STARTUP _BCM1480_INT_LOW(35)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_LDT_EXT _BCM1480_INT_LOW(36)
+#define K_BCM1480_INT_SMB_0 _BCM1480_INT_LOW(40)
+#define K_BCM1480_INT_SMB_1 _BCM1480_INT_LOW(41)
+#define K_BCM1480_INT_PCMCIA _BCM1480_INT_LOW(42)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_UART_0 _BCM1480_INT_LOW(44)
+#define K_BCM1480_INT_UART_1 _BCM1480_INT_LOW(45)
+#define K_BCM1480_INT_UART_2 _BCM1480_INT_LOW(46)
+#define K_BCM1480_INT_UART_3 _BCM1480_INT_LOW(47)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_GPIO_4 _BCM1480_INT_LOW(52)
+#define K_BCM1480_INT_GPIO_5 _BCM1480_INT_LOW(53)
+#define K_BCM1480_INT_GPIO_6 _BCM1480_INT_LOW(54)
+#define K_BCM1480_INT_GPIO_7 _BCM1480_INT_LOW(55)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_GPIO_8 _BCM1480_INT_LOW(56)
+#define K_BCM1480_INT_GPIO_9 _BCM1480_INT_LOW(57)
+#define K_BCM1480_INT_GPIO_10 _BCM1480_INT_LOW(58)
+#define K_BCM1480_INT_GPIO_11 _BCM1480_INT_LOW(59)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_GPIO_12 _BCM1480_INT_LOW(60)
+#define K_BCM1480_INT_GPIO_13 _BCM1480_INT_LOW(61)
+#define K_BCM1480_INT_GPIO_14 _BCM1480_INT_LOW(62)
+#define K_BCM1480_INT_GPIO_15 _BCM1480_INT_LOW(63)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define _BCM1480_INT_MASK(w, n) _SB_MAKEMASK(w, ((n) & 0x3F))
+#define _BCM1480_INT_MASK1(n) _SB_MAKEMASK1(((n) & 0x3F))
+#define _BCM1480_INT_OFFSET(n) (((n) & 0x40) << 6)
+#define M_BCM1480_INT_CASCADE _BCM1480_INT_MASK1(_BCM1480_INT_HIGH(0))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_ADDR_TRAP _BCM1480_INT_MASK1(K_BCM1480_INT_ADDR_TRAP)
+#define M_BCM1480_INT_GPIO_0 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_0)
+#define M_BCM1480_INT_GPIO_1 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_1)
+#define M_BCM1480_INT_GPIO_2 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_GPIO_3 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_3)
+#define M_BCM1480_INT_PCI_INTA _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTA)
+#define M_BCM1480_INT_PCI_INTB _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTB)
+#define M_BCM1480_INT_PCI_INTC _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_PCI_INTD _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_INTD)
+#define M_BCM1480_INT_CYCLE_CP0 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP0)
+#define M_BCM1480_INT_CYCLE_CP1 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP1)
+#define M_BCM1480_INT_CYCLE_CP2 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_CYCLE_CP3 _BCM1480_INT_MASK1(K_BCM1480_INT_CYCLE_CP3)
+#define M_BCM1480_INT_TIMER_0 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_0)
+#define M_BCM1480_INT_TIMER_1 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_1)
+#define M_BCM1480_INT_TIMER_2 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_TIMER_3 _BCM1480_INT_MASK1(K_BCM1480_INT_TIMER_3)
+#define M_BCM1480_INT_DM_CH_0 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_0)
+#define M_BCM1480_INT_DM_CH_1 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_1)
+#define M_BCM1480_INT_DM_CH_2 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_DM_CH_3 _BCM1480_INT_MASK1(K_BCM1480_INT_DM_CH_3)
+#define M_BCM1480_INT_MAC_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_0)
+#define M_BCM1480_INT_MAC_0_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_0_CH1)
+#define M_BCM1480_INT_MAC_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_MAC_1_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_1_CH1)
+#define M_BCM1480_INT_MAC_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_2)
+#define M_BCM1480_INT_MAC_2_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_2_CH1)
+#define M_BCM1480_INT_MAC_3 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_MAC_3_CH1 _BCM1480_INT_MASK1(K_BCM1480_INT_MAC_3_CH1)
+#define M_BCM1480_INT_PMI_LOW _BCM1480_INT_MASK1(K_BCM1480_INT_PMI_LOW)
+#define M_BCM1480_INT_PMI_HIGH _BCM1480_INT_MASK1(K_BCM1480_INT_PMI_HIGH)
+#define M_BCM1480_INT_PMO_LOW _BCM1480_INT_MASK1(K_BCM1480_INT_PMO_LOW)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_PMO_HIGH _BCM1480_INT_MASK1(K_BCM1480_INT_PMO_HIGH)
+#define M_BCM1480_INT_MBOX_ALL _BCM1480_INT_MASK(8, K_BCM1480_INT_MBOX_0_0)
+#define M_BCM1480_INT_MBOX_0_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_0)
+#define M_BCM1480_INT_MBOX_0_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_MBOX_0_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_2)
+#define M_BCM1480_INT_MBOX_0_3 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_0_3)
+#define M_BCM1480_INT_MBOX_1_0 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_0)
+#define M_BCM1480_INT_MBOX_1_1 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_MBOX_1_2 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_2)
+#define M_BCM1480_INT_MBOX_1_3 _BCM1480_INT_MASK1(K_BCM1480_INT_MBOX_1_3)
+#define M_BCM1480_INT_BAD_ECC _BCM1480_INT_MASK1(K_BCM1480_INT_BAD_ECC)
+#define M_BCM1480_INT_COR_ECC _BCM1480_INT_MASK1(K_BCM1480_INT_COR_ECC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_IO_BUS _BCM1480_INT_MASK1(K_BCM1480_INT_IO_BUS)
+#define M_BCM1480_INT_PERF_CNT _BCM1480_INT_MASK1(K_BCM1480_INT_PERF_CNT)
+#define M_BCM1480_INT_SW_PERF_CNT _BCM1480_INT_MASK1(K_BCM1480_INT_SW_PERF_CNT)
+#define M_BCM1480_INT_TRACE_FREEZE _BCM1480_INT_MASK1(K_BCM1480_INT_TRACE_FREEZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_SW_TRACE_FREEZE _BCM1480_INT_MASK1(K_BCM1480_INT_SW_TRACE_FREEZE)
+#define M_BCM1480_INT_WATCHDOG_TIMER_0 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_0)
+#define M_BCM1480_INT_WATCHDOG_TIMER_1 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_1)
+#define M_BCM1480_INT_WATCHDOG_TIMER_2 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_WATCHDOG_TIMER_3 _BCM1480_INT_MASK1(K_BCM1480_INT_WATCHDOG_TIMER_3)
+#define M_BCM1480_INT_PCI_ERROR _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_ERROR)
+#define M_BCM1480_INT_PCI_RESET _BCM1480_INT_MASK1(K_BCM1480_INT_PCI_RESET)
+#define M_BCM1480_INT_NODE_CONTROLLER _BCM1480_INT_MASK1(K_BCM1480_INT_NODE_CONTROLLER)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_HOST_BRIDGE _BCM1480_INT_MASK1(K_BCM1480_INT_HOST_BRIDGE)
+#define M_BCM1480_INT_PORT_0_FATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_0_FATAL)
+#define M_BCM1480_INT_PORT_0_NONFATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_0_NONFATAL)
+#define M_BCM1480_INT_PORT_1_FATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_1_FATAL)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_PORT_1_NONFATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_1_NONFATAL)
+#define M_BCM1480_INT_PORT_2_FATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_2_FATAL)
+#define M_BCM1480_INT_PORT_2_NONFATAL _BCM1480_INT_MASK1(K_BCM1480_INT_PORT_2_NONFATAL)
+#define M_BCM1480_INT_LDT_SMI _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_SMI)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_LDT_NMI _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_NMI)
+#define M_BCM1480_INT_LDT_INIT _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_INIT)
+#define M_BCM1480_INT_LDT_STARTUP _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_STARTUP)
+#define M_BCM1480_INT_LDT_EXT _BCM1480_INT_MASK1(K_BCM1480_INT_LDT_EXT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_SMB_0 _BCM1480_INT_MASK1(K_BCM1480_INT_SMB_0)
+#define M_BCM1480_INT_SMB_1 _BCM1480_INT_MASK1(K_BCM1480_INT_SMB_1)
+#define M_BCM1480_INT_PCMCIA _BCM1480_INT_MASK1(K_BCM1480_INT_PCMCIA)
+#define M_BCM1480_INT_UART_0 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_UART_1 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_1)
+#define M_BCM1480_INT_UART_2 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_2)
+#define M_BCM1480_INT_UART_3 _BCM1480_INT_MASK1(K_BCM1480_INT_UART_3)
+#define M_BCM1480_INT_GPIO_4 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_GPIO_5 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_5)
+#define M_BCM1480_INT_GPIO_6 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_6)
+#define M_BCM1480_INT_GPIO_7 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_7)
+#define M_BCM1480_INT_GPIO_8 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_GPIO_9 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_9)
+#define M_BCM1480_INT_GPIO_10 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_10)
+#define M_BCM1480_INT_GPIO_11 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_11)
+#define M_BCM1480_INT_GPIO_12 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_GPIO_13 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_13)
+#define M_BCM1480_INT_GPIO_14 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_14)
+#define M_BCM1480_INT_GPIO_15 _BCM1480_INT_MASK1(K_BCM1480_INT_GPIO_15)
+#define K_BCM1480_INT_MAP_I0 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_MAP_I1 1
+#define K_BCM1480_INT_MAP_I2 2
+#define K_BCM1480_INT_MAP_I3 3
+#define K_BCM1480_INT_MAP_I4 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_MAP_I5 5
+#define K_BCM1480_INT_MAP_NMI 6  
+#define K_BCM1480_INT_MAP_DINT 7  
+#define S_BCM1480_INT_HT_INTMSG 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_INT_HT_INTMSG _SB_MAKEMASK(3, S_BCM1480_INT_HT_INTMSG)
+#define V_BCM1480_INT_HT_INTMSG(x) _SB_MAKEVALUE(x, S_BCM1480_INT_HT_INTMSG)
+#define G_BCM1480_INT_HT_INTMSG(x) _SB_GETVALUE(x, S_BCM1480_INT_HT_INTMSG, M_BCM1480_INT_HT_INTMSG)
+#define K_BCM1480_INT_HT_INTMSG_FIXED 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_HT_INTMSG_ARBITRATED 1
+#define K_BCM1480_INT_HT_INTMSG_SMI 2
+#define K_BCM1480_INT_HT_INTMSG_NMI 3
+#define K_BCM1480_INT_HT_INTMSG_INIT 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_INT_HT_INTMSG_STARTUP 5
+#define K_BCM1480_INT_HT_INTMSG_EXTINT 6
+#define K_BCM1480_INT_HT_INTMSG_RESERVED 7
+#define M_BCM1480_INT_HT_TRIGGERMODE _SB_MAKEMASK1(3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V_BCM1480_INT_HT_EDGETRIGGER 0
+#define V_BCM1480_INT_HT_LEVELTRIGGER M_BCM1480_INT_HT_TRIGGERMODE
+#define M_BCM1480_INT_HT_DESTMODE _SB_MAKEMASK1(4)
+#define V_BCM1480_INT_HT_PHYSICALDEST 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V_BCM1480_INT_HT_LOGICALDEST M_BCM1480_INT_HT_DESTMODE
+#define S_BCM1480_INT_HT_INTDEST 5
+#define M_BCM1480_INT_HT_INTDEST _SB_MAKEMASK(8, S_BCM1480_INT_HT_INTDEST)
+#define V_BCM1480_INT_HT_INTDEST(x) _SB_MAKEVALUE(x, S_BCM1480_INT_HT_INTDEST)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_INT_HT_INTDEST(x) _SB_GETVALUE(x, S_BCM1480_INT_HT_INTDEST, M_BCM1480_INT_HT_INTDEST)
+#define S_BCM1480_INT_HT_VECTOR 13
+#define M_BCM1480_INT_HT_VECTOR _SB_MAKEMASK(8, S_BCM1480_INT_HT_VECTOR)
+#define V_BCM1480_INT_HT_VECTOR(x) _SB_MAKEVALUE(x, S_BCM1480_INT_HT_VECTOR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_INT_HT_VECTOR(x) _SB_GETVALUE(x, S_BCM1480_INT_HT_VECTOR, M_BCM1480_INT_HT_VECTOR)
+#define M_BCM1480_HTVECT_RAISE_INTLDT_HIGH 0x00
+#define M_BCM1480_HTVECT_RAISE_MBOX_0 0x40
+#define M_BCM1480_HTVECT_RAISE_INTLDT_LO 0x80
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_HTVECT_RAISE_MBOX_1 0xC0
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sibyte/bcm1480_scd.h b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/bcm1480_scd.h
new file mode 100644
index 0000000..250aca8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/bcm1480_scd.h
@@ -0,0 +1,209 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _BCM1480_SCD_H
+#define _BCM1480_SCD_H
+#include "sb1250_defs.h"
+#include "sb1250_scd.h"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_PART_BCM1480 0x1406
+#define K_SYS_PART_BCM1280 0x1206
+#define K_SYS_PART_BCM1455 0x1407
+#define K_SYS_PART_BCM1255 0x1257
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_PART_BCM1158 0x1156
+#define M_BCM1480_SYS_RESERVED0 _SB_MAKEMASK1(0)
+#define M_BCM1480_SYS_HT_MINRSTCNT _SB_MAKEMASK1(1)
+#define M_BCM1480_SYS_RESERVED2 _SB_MAKEMASK1(2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_RESERVED3 _SB_MAKEMASK1(3)
+#define M_BCM1480_SYS_RESERVED4 _SB_MAKEMASK1(4)
+#define M_BCM1480_SYS_IOB_DIV _SB_MAKEMASK1(5)
+#define S_BCM1480_SYS_PLL_DIV _SB_MAKE64(6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_PLL_DIV _SB_MAKEMASK(5, S_BCM1480_SYS_PLL_DIV)
+#define V_BCM1480_SYS_PLL_DIV(x) _SB_MAKEVALUE(x, S_BCM1480_SYS_PLL_DIV)
+#define G_BCM1480_SYS_PLL_DIV(x) _SB_GETVALUE(x, S_BCM1480_SYS_PLL_DIV, M_BCM1480_SYS_PLL_DIV)
+#define S_BCM1480_SYS_SW_DIV _SB_MAKE64(11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_SW_DIV _SB_MAKEMASK(5, S_BCM1480_SYS_SW_DIV)
+#define V_BCM1480_SYS_SW_DIV(x) _SB_MAKEVALUE(x, S_BCM1480_SYS_SW_DIV)
+#define G_BCM1480_SYS_SW_DIV(x) _SB_GETVALUE(x, S_BCM1480_SYS_SW_DIV, M_BCM1480_SYS_SW_DIV)
+#define M_BCM1480_SYS_PCMCIA_ENABLE _SB_MAKEMASK1(16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_DUART1_ENABLE _SB_MAKEMASK1(17)
+#define S_BCM1480_SYS_BOOT_MODE _SB_MAKE64(18)
+#define M_BCM1480_SYS_BOOT_MODE _SB_MAKEMASK(2, S_BCM1480_SYS_BOOT_MODE)
+#define V_BCM1480_SYS_BOOT_MODE(x) _SB_MAKEVALUE(x, S_BCM1480_SYS_BOOT_MODE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_SYS_BOOT_MODE(x) _SB_GETVALUE(x, S_BCM1480_SYS_BOOT_MODE, M_BCM1480_SYS_BOOT_MODE)
+#define K_BCM1480_SYS_BOOT_MODE_ROM32 0
+#define K_BCM1480_SYS_BOOT_MODE_ROM8 1
+#define K_BCM1480_SYS_BOOT_MODE_SMBUS_SMALL 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_SYS_BOOT_MODE_SMBUS_BIG 3
+#define M_BCM1480_SYS_BOOT_MODE_SMBUS _SB_MAKEMASK1(19)
+#define M_BCM1480_SYS_PCI_HOST _SB_MAKEMASK1(20)
+#define M_BCM1480_SYS_PCI_ARBITER _SB_MAKEMASK1(21)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_BIG_ENDIAN _SB_MAKEMASK1(22)
+#define M_BCM1480_SYS_GENCLK_EN _SB_MAKEMASK1(23)
+#define M_BCM1480_SYS_GEN_PARITY_EN _SB_MAKEMASK1(24)
+#define M_BCM1480_SYS_RESERVED25 _SB_MAKEMASK1(25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_BCM1480_SYS_CONFIG 26
+#define M_BCM1480_SYS_CONFIG _SB_MAKEMASK(6, S_BCM1480_SYS_CONFIG)
+#define V_BCM1480_SYS_CONFIG(x) _SB_MAKEVALUE(x, S_BCM1480_SYS_CONFIG)
+#define G_BCM1480_SYS_CONFIG(x) _SB_GETVALUE(x, S_BCM1480_SYS_CONFIG, M_BCM1480_SYS_CONFIG)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_RESERVED32 _SB_MAKEMASK(32, 15)
+#define S_BCM1480_SYS_NODEID 47
+#define M_BCM1480_SYS_NODEID _SB_MAKEMASK(4, S_BCM1480_SYS_NODEID)
+#define V_BCM1480_SYS_NODEID(x) _SB_MAKEVALUE(x, S_BCM1480_SYS_NODEID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_SYS_NODEID(x) _SB_GETVALUE(x, S_BCM1480_SYS_NODEID, M_BCM1480_SYS_NODEID)
+#define M_BCM1480_SYS_CCNUMA_EN _SB_MAKEMASK1(51)
+#define M_BCM1480_SYS_CPU_RESET_0 _SB_MAKEMASK1(52)
+#define M_BCM1480_SYS_CPU_RESET_1 _SB_MAKEMASK1(53)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_CPU_RESET_2 _SB_MAKEMASK1(54)
+#define M_BCM1480_SYS_CPU_RESET_3 _SB_MAKEMASK1(55)
+#define S_BCM1480_SYS_DISABLECPU0 56
+#define M_BCM1480_SYS_DISABLECPU0 _SB_MAKEMASK1(S_BCM1480_SYS_DISABLECPU0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_BCM1480_SYS_DISABLECPU1 57
+#define M_BCM1480_SYS_DISABLECPU1 _SB_MAKEMASK1(S_BCM1480_SYS_DISABLECPU1)
+#define S_BCM1480_SYS_DISABLECPU2 58
+#define M_BCM1480_SYS_DISABLECPU2 _SB_MAKEMASK1(S_BCM1480_SYS_DISABLECPU2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_BCM1480_SYS_DISABLECPU3 59
+#define M_BCM1480_SYS_DISABLECPU3 _SB_MAKEMASK1(S_BCM1480_SYS_DISABLECPU3)
+#define M_BCM1480_SYS_SB_SOFTRES _SB_MAKEMASK1(60)
+#define M_BCM1480_SYS_EXT_RESET _SB_MAKEMASK1(61)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SYS_SYSTEM_RESET _SB_MAKEMASK1(62)
+#define M_BCM1480_SYS_SW_FLAG _SB_MAKEMASK1(63)
+#define M_BCM1480_SCD_WDOG_ENABLE _SB_MAKEMASK1(0)
+#define S_BCM1480_SCD_WDOG_RESET_TYPE 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SCD_WDOG_RESET_TYPE _SB_MAKEMASK(5, S_BCM1480_SCD_WDOG_RESET_TYPE)
+#define V_BCM1480_SCD_WDOG_RESET_TYPE(x) _SB_MAKEVALUE(x, S_BCM1480_SCD_WDOG_RESET_TYPE)
+#define G_BCM1480_SCD_WDOG_RESET_TYPE(x) _SB_GETVALUE(x, S_BCM1480_SCD_WDOG_RESET_TYPE, M_BCM1480_SCD_WDOG_RESET_TYPE)
+#define K_BCM1480_SCD_WDOG_RESET_FULL 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_SCD_WDOG_RESET_SOFT 1
+#define K_BCM1480_SCD_WDOG_RESET_CPU0 3
+#define K_BCM1480_SCD_WDOG_RESET_CPU1 5
+#define K_BCM1480_SCD_WDOG_RESET_CPU2 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_SCD_WDOG_RESET_CPU3 17
+#define K_BCM1480_SCD_WDOG_RESET_ALL_CPUS 31
+#define M_BCM1480_SCD_WDOG_HAS_RESET _SB_MAKEMASK1(8)
+#define S_SPC_CFG_SRC4 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC4 _SB_MAKEMASK(8, S_SPC_CFG_SRC4)
+#define V_SPC_CFG_SRC4(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC4)
+#define G_SPC_CFG_SRC4(x) _SB_GETVALUE(x, S_SPC_CFG_SRC4, M_SPC_CFG_SRC4)
+#define S_SPC_CFG_SRC5 40
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC5 _SB_MAKEMASK(8, S_SPC_CFG_SRC5)
+#define V_SPC_CFG_SRC5(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC5)
+#define G_SPC_CFG_SRC5(x) _SB_GETVALUE(x, S_SPC_CFG_SRC5, M_SPC_CFG_SRC5)
+#define S_SPC_CFG_SRC6 48
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC6 _SB_MAKEMASK(8, S_SPC_CFG_SRC6)
+#define V_SPC_CFG_SRC6(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC6)
+#define G_SPC_CFG_SRC6(x) _SB_GETVALUE(x, S_SPC_CFG_SRC6, M_SPC_CFG_SRC6)
+#define S_SPC_CFG_SRC7 56
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC7 _SB_MAKEMASK(8, S_SPC_CFG_SRC7)
+#define V_SPC_CFG_SRC7(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC7)
+#define G_SPC_CFG_SRC7(x) _SB_GETVALUE(x, S_SPC_CFG_SRC7, M_SPC_CFG_SRC7)
+#define M_BCM1480_SPC_CFG_CLEAR _SB_MAKEMASK1(0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SPC_CFG_ENABLE _SB_MAKEMASK1(1)
+#if ???
+#define M_SPC_CFG_CLEAR M_BCM1480_SPC_CFG_CLEAR
+#define M_SPC_CFG_ENABLE M_BCM1480_SPC_CFG_ENABLE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define S_BCM1480_SPC_CNT_COUNT 0
+#define M_BCM1480_SPC_CNT_COUNT _SB_MAKEMASK(40, S_BCM1480_SPC_CNT_COUNT)
+#define V_BCM1480_SPC_CNT_COUNT(x) _SB_MAKEVALUE(x, S_BCM1480_SPC_CNT_COUNT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_SPC_CNT_COUNT(x) _SB_GETVALUE(x, S_BCM1480_SPC_CNT_COUNT, M_BCM1480_SPC_CNT_COUNT)
+#define M_BCM1480_SPC_CNT_OFLOW _SB_MAKEMASK1(40)
+#define M_BCM1480_ATRAP_INDEX _SB_MAKEMASK(4, 0)
+#define M_BCM1480_ATRAP_ADDRESS _SB_MAKEMASK(40, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_BCM1480_ATRAP_CFG_CNT 0
+#define M_BCM1480_ATRAP_CFG_CNT _SB_MAKEMASK(3, S_BCM1480_ATRAP_CFG_CNT)
+#define V_BCM1480_ATRAP_CFG_CNT(x) _SB_MAKEVALUE(x, S_BCM1480_ATRAP_CFG_CNT)
+#define G_BCM1480_ATRAP_CFG_CNT(x) _SB_GETVALUE(x, S_BCM1480_ATRAP_CFG_CNT, M_BCM1480_ATRAP_CFG_CNT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_ATRAP_CFG_WRITE _SB_MAKEMASK1(3)
+#define M_BCM1480_ATRAP_CFG_ALL _SB_MAKEMASK1(4)
+#define M_BCM1480_ATRAP_CFG_INV _SB_MAKEMASK1(5)
+#define M_BCM1480_ATRAP_CFG_USESRC _SB_MAKEMASK1(6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_ATRAP_CFG_SRCINV _SB_MAKEMASK1(7)
+#define S_BCM1480_ATRAP_CFG_AGENTID 8
+#define M_BCM1480_ATRAP_CFG_AGENTID _SB_MAKEMASK(4, S_BCM1480_ATRAP_CFG_AGENTID)
+#define V_BCM1480_ATRAP_CFG_AGENTID(x) _SB_MAKEVALUE(x, S_BCM1480_ATRAP_CFG_AGENTID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_ATRAP_CFG_AGENTID(x) _SB_GETVALUE(x, S_BCM1480_ATRAP_CFG_AGENTID, M_BCM1480_ATRAP_CFG_AGENTID)
+#define K_BCM1480_BUS_AGENT_CPU0 0
+#define K_BCM1480_BUS_AGENT_CPU1 1
+#define K_BCM1480_BUS_AGENT_NC 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_BUS_AGENT_IOB 3
+#define K_BCM1480_BUS_AGENT_SCD 4
+#define K_BCM1480_BUS_AGENT_L2C 6
+#define K_BCM1480_BUS_AGENT_MC 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_BUS_AGENT_CPU2 8
+#define K_BCM1480_BUS_AGENT_CPU3 9
+#define K_BCM1480_BUS_AGENT_PM 10
+#define S_BCM1480_ATRAP_CFG_CATTR 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_ATRAP_CFG_CATTR _SB_MAKEMASK(2, S_BCM1480_ATRAP_CFG_CATTR)
+#define V_BCM1480_ATRAP_CFG_CATTR(x) _SB_MAKEVALUE(x, S_BCM1480_ATRAP_CFG_CATTR)
+#define G_BCM1480_ATRAP_CFG_CATTR(x) _SB_GETVALUE(x, S_BCM1480_ATRAP_CFG_CATTR, M_BCM1480_ATRAP_CFG_CATTR)
+#define K_BCM1480_ATRAP_CFG_CATTR_IGNORE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BCM1480_ATRAP_CFG_CATTR_UNC 1
+#define K_BCM1480_ATRAP_CFG_CATTR_NONCOH 2
+#define K_BCM1480_ATRAP_CFG_CATTR_COHERENT 3
+#define M_BCM1480_ATRAP_CFG_CATTRINV _SB_MAKEMASK1(14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_BCM1480_SCD_TRSEQ_TID_MATCH_EN _SB_MAKEMASK1(25)
+#define S_BCM1480_SCD_TRSEQ_SWFUNC 26
+#define M_BCM1480_SCD_TRSEQ_SWFUNC _SB_MAKEMASK(2, S_BCM1480_SCD_TRSEQ_SWFUNC)
+#define V_BCM1480_SCD_TRSEQ_SWFUNC(x) _SB_MAKEVALUE(x, S_BCM1480_SCD_TRSEQ_SWFUNC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_SCD_TRSEQ_SWFUNC(x) _SB_GETVALUE(x, S_BCM1480_SCD_TRSEQ_SWFUNC, M_BCM1480_SCD_TRSEQ_SWFUNC)
+#define S_BCM1480_SCD_TRACE_CFG_MODE 16
+#define M_BCM1480_SCD_TRACE_CFG_MODE _SB_MAKEMASK(2, S_BCM1480_SCD_TRACE_CFG_MODE)
+#define V_BCM1480_SCD_TRACE_CFG_MODE(x) _SB_MAKEVALUE(x, S_BCM1480_SCD_TRACE_CFG_MODE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_BCM1480_SCD_TRACE_CFG_MODE(x) _SB_GETVALUE(x, S_BCM1480_SCD_TRACE_CFG_MODE, M_BCM1480_SCD_TRACE_CFG_MODE)
+#define K_BCM1480_SCD_TRACE_CFG_MODE_BLOCKERS 0
+#define K_BCM1480_SCD_TRACE_CFG_MODE_BYTEEN_INT 1
+#define K_BCM1480_SCD_TRACE_CFG_MODE_FLOW_ID 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250.h b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250.h
new file mode 100644
index 0000000..d2738dd
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250.h
@@ -0,0 +1,36 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SIBYTE_SB1250_H
+#define _ASM_SIBYTE_SB1250_H
+#define SIBYTE_RELEASE 0x02111403
+#define SB1250_NR_IRQS 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BCM1480_NR_IRQS 128
+#define BCM1480_NR_IRQS_HALF 64
+#define SB1250_DUART_MINOR_BASE 64
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/addrspace.h>
+#include <asm/sibyte/sb1250_scd.h>
+#include <asm/sibyte/bcm1480_scd.h>
+#define AT_spin   __asm__ __volatile__ (   ".set noat\n"   "li $at, 0\n"   "1: beqz $at, 1b\n"   ".set at\n"   )
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define IOADDR(a) ((void __iomem *)(IO_BASE + (a)))
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250_int.h b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250_int.h
new file mode 100644
index 0000000..0b01b75
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250_int.h
@@ -0,0 +1,238 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _SB1250_INT_H
+#define _SB1250_INT_H
+#include "sb1250_defs.h"
+#define K_INT_SOURCES 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_WATCHDOG_TIMER_0 0
+#define K_INT_WATCHDOG_TIMER_1 1
+#define K_INT_TIMER_0 2
+#define K_INT_TIMER_1 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_TIMER_2 4
+#define K_INT_TIMER_3 5
+#define K_INT_SMB_0 6
+#define K_INT_SMB_1 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_UART_0 8
+#define K_INT_UART_1 9
+#define K_INT_SER_0 10
+#define K_INT_SER_1 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_PCMCIA 12
+#define K_INT_ADDR_TRAP 13
+#define K_INT_PERF_CNT 14
+#define K_INT_TRACE_FREEZE 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_BAD_ECC 16
+#define K_INT_COR_ECC 17
+#define K_INT_IO_BUS 18
+#define K_INT_MAC_0 19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_MAC_1 20
+#define K_INT_MAC_2 21
+#define K_INT_DM_CH_0 22
+#define K_INT_DM_CH_1 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_DM_CH_2 24
+#define K_INT_DM_CH_3 25
+#define K_INT_MBOX_0 26
+#define K_INT_MBOX_1 27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_MBOX_2 28
+#define K_INT_MBOX_3 29
+#if ??? || ???
+#define K_INT_CYCLE_CP0_INT 30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_CYCLE_CP1_INT 31
+#endif
+#define K_INT_GPIO_0 32
+#define K_INT_GPIO_1 33
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_GPIO_2 34
+#define K_INT_GPIO_3 35
+#define K_INT_GPIO_4 36
+#define K_INT_GPIO_5 37
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_GPIO_6 38
+#define K_INT_GPIO_7 39
+#define K_INT_GPIO_8 40
+#define K_INT_GPIO_9 41
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_GPIO_10 42
+#define K_INT_GPIO_11 43
+#define K_INT_GPIO_12 44
+#define K_INT_GPIO_13 45
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_GPIO_14 46
+#define K_INT_GPIO_15 47
+#define K_INT_LDT_FATAL 48
+#define K_INT_LDT_NONFATAL 49
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_LDT_SMI 50
+#define K_INT_LDT_NMI 51
+#define K_INT_LDT_INIT 52
+#define K_INT_LDT_STARTUP 53
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_LDT_EXT 54
+#define K_INT_PCI_ERROR 55
+#define K_INT_PCI_INTA 56
+#define K_INT_PCI_INTB 57
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_PCI_INTC 58
+#define K_INT_PCI_INTD 59
+#define K_INT_SPARE_2 60
+#if ??? || ???
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_MAC_0_CH1 61
+#define K_INT_MAC_1_CH1 62
+#define K_INT_MAC_2_CH1 63
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_WATCHDOG_TIMER_0 _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_0)
+#define M_INT_WATCHDOG_TIMER_1 _SB_MAKEMASK1(K_INT_WATCHDOG_TIMER_1)
+#define M_INT_TIMER_0 _SB_MAKEMASK1(K_INT_TIMER_0)
+#define M_INT_TIMER_1 _SB_MAKEMASK1(K_INT_TIMER_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_TIMER_2 _SB_MAKEMASK1(K_INT_TIMER_2)
+#define M_INT_TIMER_3 _SB_MAKEMASK1(K_INT_TIMER_3)
+#define M_INT_SMB_0 _SB_MAKEMASK1(K_INT_SMB_0)
+#define M_INT_SMB_1 _SB_MAKEMASK1(K_INT_SMB_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_UART_0 _SB_MAKEMASK1(K_INT_UART_0)
+#define M_INT_UART_1 _SB_MAKEMASK1(K_INT_UART_1)
+#define M_INT_SER_0 _SB_MAKEMASK1(K_INT_SER_0)
+#define M_INT_SER_1 _SB_MAKEMASK1(K_INT_SER_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_PCMCIA _SB_MAKEMASK1(K_INT_PCMCIA)
+#define M_INT_ADDR_TRAP _SB_MAKEMASK1(K_INT_ADDR_TRAP)
+#define M_INT_PERF_CNT _SB_MAKEMASK1(K_INT_PERF_CNT)
+#define M_INT_TRACE_FREEZE _SB_MAKEMASK1(K_INT_TRACE_FREEZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_BAD_ECC _SB_MAKEMASK1(K_INT_BAD_ECC)
+#define M_INT_COR_ECC _SB_MAKEMASK1(K_INT_COR_ECC)
+#define M_INT_IO_BUS _SB_MAKEMASK1(K_INT_IO_BUS)
+#define M_INT_MAC_0 _SB_MAKEMASK1(K_INT_MAC_0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_MAC_1 _SB_MAKEMASK1(K_INT_MAC_1)
+#define M_INT_MAC_2 _SB_MAKEMASK1(K_INT_MAC_2)
+#define M_INT_DM_CH_0 _SB_MAKEMASK1(K_INT_DM_CH_0)
+#define M_INT_DM_CH_1 _SB_MAKEMASK1(K_INT_DM_CH_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_DM_CH_2 _SB_MAKEMASK1(K_INT_DM_CH_2)
+#define M_INT_DM_CH_3 _SB_MAKEMASK1(K_INT_DM_CH_3)
+#define M_INT_MBOX_0 _SB_MAKEMASK1(K_INT_MBOX_0)
+#define M_INT_MBOX_1 _SB_MAKEMASK1(K_INT_MBOX_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_MBOX_2 _SB_MAKEMASK1(K_INT_MBOX_2)
+#define M_INT_MBOX_3 _SB_MAKEMASK1(K_INT_MBOX_3)
+#define M_INT_MBOX_ALL _SB_MAKEMASK(4, K_INT_MBOX_0)
+#if ??? || ???
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_CYCLE_CP0_INT _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
+#define M_INT_CYCLE_CP1_INT _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
+#endif
+#define M_INT_GPIO_0 _SB_MAKEMASK1(K_INT_GPIO_0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_GPIO_1 _SB_MAKEMASK1(K_INT_GPIO_1)
+#define M_INT_GPIO_2 _SB_MAKEMASK1(K_INT_GPIO_2)
+#define M_INT_GPIO_3 _SB_MAKEMASK1(K_INT_GPIO_3)
+#define M_INT_GPIO_4 _SB_MAKEMASK1(K_INT_GPIO_4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_GPIO_5 _SB_MAKEMASK1(K_INT_GPIO_5)
+#define M_INT_GPIO_6 _SB_MAKEMASK1(K_INT_GPIO_6)
+#define M_INT_GPIO_7 _SB_MAKEMASK1(K_INT_GPIO_7)
+#define M_INT_GPIO_8 _SB_MAKEMASK1(K_INT_GPIO_8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_GPIO_9 _SB_MAKEMASK1(K_INT_GPIO_9)
+#define M_INT_GPIO_10 _SB_MAKEMASK1(K_INT_GPIO_10)
+#define M_INT_GPIO_11 _SB_MAKEMASK1(K_INT_GPIO_11)
+#define M_INT_GPIO_12 _SB_MAKEMASK1(K_INT_GPIO_12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_GPIO_13 _SB_MAKEMASK1(K_INT_GPIO_13)
+#define M_INT_GPIO_14 _SB_MAKEMASK1(K_INT_GPIO_14)
+#define M_INT_GPIO_15 _SB_MAKEMASK1(K_INT_GPIO_15)
+#define M_INT_LDT_FATAL _SB_MAKEMASK1(K_INT_LDT_FATAL)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_LDT_NONFATAL _SB_MAKEMASK1(K_INT_LDT_NONFATAL)
+#define M_INT_LDT_SMI _SB_MAKEMASK1(K_INT_LDT_SMI)
+#define M_INT_LDT_NMI _SB_MAKEMASK1(K_INT_LDT_NMI)
+#define M_INT_LDT_INIT _SB_MAKEMASK1(K_INT_LDT_INIT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_LDT_STARTUP _SB_MAKEMASK1(K_INT_LDT_STARTUP)
+#define M_INT_LDT_EXT _SB_MAKEMASK1(K_INT_LDT_EXT)
+#define M_INT_PCI_ERROR _SB_MAKEMASK1(K_INT_PCI_ERROR)
+#define M_INT_PCI_INTA _SB_MAKEMASK1(K_INT_PCI_INTA)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_PCI_INTB _SB_MAKEMASK1(K_INT_PCI_INTB)
+#define M_INT_PCI_INTC _SB_MAKEMASK1(K_INT_PCI_INTC)
+#define M_INT_PCI_INTD _SB_MAKEMASK1(K_INT_PCI_INTD)
+#define M_INT_SPARE_2 _SB_MAKEMASK1(K_INT_SPARE_2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if ??? || ???
+#define M_INT_MAC_0_CH1 _SB_MAKEMASK1(K_INT_MAC_0_CH1)
+#define M_INT_MAC_1_CH1 _SB_MAKEMASK1(K_INT_MAC_1_CH1)
+#define M_INT_MAC_2_CH1 _SB_MAKEMASK1(K_INT_MAC_2_CH1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define K_INT_MAP_I0 0  
+#define K_INT_MAP_I1 1
+#define K_INT_MAP_I2 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_MAP_I3 3
+#define K_INT_MAP_I4 4
+#define K_INT_MAP_I5 5
+#define K_INT_MAP_NMI 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_MAP_DINT 7  
+#define S_INT_LDT_INTMSG 0
+#define M_INT_LDT_INTMSG _SB_MAKEMASK(3, S_INT_LDT_INTMSG)
+#define V_INT_LDT_INTMSG(x) _SB_MAKEVALUE(x, S_INT_LDT_INTMSG)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_INT_LDT_INTMSG(x) _SB_GETVALUE(x, S_INT_LDT_INTMSG, M_INT_LDT_INTMSG)
+#define K_INT_LDT_INTMSG_FIXED 0
+#define K_INT_LDT_INTMSG_ARBITRATED 1
+#define K_INT_LDT_INTMSG_SMI 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_LDT_INTMSG_NMI 3
+#define K_INT_LDT_INTMSG_INIT 4
+#define K_INT_LDT_INTMSG_STARTUP 5
+#define K_INT_LDT_INTMSG_EXTINT 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_INT_LDT_INTMSG_RESERVED 7
+#define M_INT_LDT_EDGETRIGGER 0
+#define M_INT_LDT_LEVELTRIGGER _SB_MAKEMASK1(3)
+#define M_INT_LDT_PHYSICALDEST 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_INT_LDT_LOGICALDEST _SB_MAKEMASK1(4)
+#define S_INT_LDT_INTDEST 5
+#define M_INT_LDT_INTDEST _SB_MAKEMASK(10, S_INT_LDT_INTDEST)
+#define V_INT_LDT_INTDEST(x) _SB_MAKEVALUE(x, S_INT_LDT_INTDEST)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_INT_LDT_INTDEST(x) _SB_GETVALUE(x, S_INT_LDT_INTDEST, M_INT_LDT_INTDEST)
+#define S_INT_LDT_VECTOR 13
+#define M_INT_LDT_VECTOR _SB_MAKEMASK(8, S_INT_LDT_VECTOR)
+#define V_INT_LDT_VECTOR(x) _SB_MAKEVALUE(x, S_INT_LDT_VECTOR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_INT_LDT_VECTOR(x) _SB_GETVALUE(x, S_INT_LDT_VECTOR, M_INT_LDT_VECTOR)
+#define M_LDTVECT_RAISEINT 0x00
+#define M_LDTVECT_RAISEMBOX 0x40
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250_scd.h b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250_scd.h
new file mode 100644
index 0000000..55e4a5a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sibyte/sb1250_scd.h
@@ -0,0 +1,539 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _SB1250_SCD_H
+#define _SB1250_SCD_H
+#include "sb1250_defs.h"
+#define M_SYS_RESERVED _SB_MAKEMASK(8, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SYS_REVISION _SB_MAKE64(8)
+#define M_SYS_REVISION _SB_MAKEMASK(8, S_SYS_REVISION)
+#define V_SYS_REVISION(x) _SB_MAKEVALUE(x, S_SYS_REVISION)
+#define G_SYS_REVISION(x) _SB_GETVALUE(x, S_SYS_REVISION, M_SYS_REVISION)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM1250_PASS1 0x01
+#define K_SYS_REVISION_BCM1250_PASS2 0x03
+#define K_SYS_REVISION_BCM1250_A1 0x03  
+#define K_SYS_REVISION_BCM1250_A2 0x04  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM1250_A3 0x05  
+#define K_SYS_REVISION_BCM1250_A4 0x06  
+#define K_SYS_REVISION_BCM1250_A6 0x07  
+#define K_SYS_REVISION_BCM1250_A8 0x0b  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM1250_A9 0x08
+#define K_SYS_REVISION_BCM1250_A10 K_SYS_REVISION_BCM1250_A8
+#define K_SYS_REVISION_BCM1250_PASS2_2 0x10
+#define K_SYS_REVISION_BCM1250_B0 K_SYS_REVISION_BCM1250_B1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM1250_B1 0x10
+#define K_SYS_REVISION_BCM1250_B2 0x11
+#define K_SYS_REVISION_BCM1250_C0 0x20
+#define K_SYS_REVISION_BCM1250_C1 0x21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM1250_C2 0x22
+#define K_SYS_REVISION_BCM1250_C3 0x23
+#if ???
+#define K_SYS_REVISION_PASS1 K_SYS_REVISION_BCM1250_PASS1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_PASS2 K_SYS_REVISION_BCM1250_PASS2
+#define K_SYS_REVISION_PASS2_2 K_SYS_REVISION_BCM1250_PASS2_2
+#define K_SYS_REVISION_PASS3 K_SYS_REVISION_BCM1250_PASS3
+#define K_SYS_REVISION_BCM1250_PASS3 K_SYS_REVISION_BCM1250_C0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define K_SYS_REVISION_BCM112x_A1 0x20
+#define K_SYS_REVISION_BCM112x_A2 0x21
+#define K_SYS_REVISION_BCM112x_A3 0x22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM112x_A4 0x23
+#define K_SYS_REVISION_BCM112x_B0 0x30
+#define K_SYS_REVISION_BCM1480_S0 0x01
+#define K_SYS_REVISION_BCM1480_A1 0x02
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_REVISION_BCM1480_A2 0x03
+#define K_SYS_REVISION_BCM1480_A3 0x04
+#define K_SYS_REVISION_BCM1480_B0 0x11
+#define S_SYS_L2C_SIZE _SB_MAKE64(20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_L2C_SIZE _SB_MAKEMASK(4, S_SYS_L2C_SIZE)
+#define V_SYS_L2C_SIZE(x) _SB_MAKEVALUE(x, S_SYS_L2C_SIZE)
+#define G_SYS_L2C_SIZE(x) _SB_GETVALUE(x, S_SYS_L2C_SIZE, M_SYS_L2C_SIZE)
+#define K_SYS_L2C_SIZE_1MB 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_L2C_SIZE_512KB 5
+#define K_SYS_L2C_SIZE_256KB 2
+#define K_SYS_L2C_SIZE_128KB 1
+#define K_SYS_L2C_SIZE_BCM1250 K_SYS_L2C_SIZE_512KB
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_L2C_SIZE_BCM1125 K_SYS_L2C_SIZE_256KB
+#define K_SYS_L2C_SIZE_BCM1122 K_SYS_L2C_SIZE_128KB
+#define S_SYS_NUM_CPUS _SB_MAKE64(24)
+#define M_SYS_NUM_CPUS _SB_MAKEMASK(4, S_SYS_NUM_CPUS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V_SYS_NUM_CPUS(x) _SB_MAKEVALUE(x, S_SYS_NUM_CPUS)
+#define G_SYS_NUM_CPUS(x) _SB_GETVALUE(x, S_SYS_NUM_CPUS, M_SYS_NUM_CPUS)
+#define S_SYS_PART _SB_MAKE64(16)
+#define M_SYS_PART _SB_MAKEMASK(16, S_SYS_PART)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V_SYS_PART(x) _SB_MAKEVALUE(x, S_SYS_PART)
+#define G_SYS_PART(x) _SB_GETVALUE(x, S_SYS_PART, M_SYS_PART)
+#define K_SYS_PART_SB1250 0x1250
+#define K_SYS_PART_BCM1120 0x1121
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_PART_BCM1125 0x1123
+#define K_SYS_PART_BCM1125H 0x1124
+#define K_SYS_PART_BCM1122 0x1113
+#define S_SYS_SOC_TYPE _SB_MAKE64(16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_SOC_TYPE _SB_MAKEMASK(4, S_SYS_SOC_TYPE)
+#define V_SYS_SOC_TYPE(x) _SB_MAKEVALUE(x, S_SYS_SOC_TYPE)
+#define G_SYS_SOC_TYPE(x) _SB_GETVALUE(x, S_SYS_SOC_TYPE, M_SYS_SOC_TYPE)
+#define K_SYS_SOC_TYPE_BCM1250 0x0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_SOC_TYPE_BCM1120 0x1
+#define K_SYS_SOC_TYPE_BCM1250_ALT 0x2  
+#define K_SYS_SOC_TYPE_BCM1125 0x3
+#define K_SYS_SOC_TYPE_BCM1125H 0x4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_SOC_TYPE_BCM1250_ALT2 0x5  
+#define K_SYS_SOC_TYPE_BCM1x80 0x6
+#define K_SYS_SOC_TYPE_BCM1x55 0x7
+#ifdef __ASSEMBLER__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYS_SOC_TYPE(dest, sysrev)   .set push ;   .set reorder ;   dsrl dest, sysrev, S_SYS_SOC_TYPE ;   andi dest, dest, (M_SYS_SOC_TYPE >> S_SYS_SOC_TYPE);   beq dest, K_SYS_SOC_TYPE_BCM1250_ALT, 991f ;   beq dest, K_SYS_SOC_TYPE_BCM1250_ALT2, 991f ;   b 992f ;  991: li dest, K_SYS_SOC_TYPE_BCM1250 ;  992:   .set pop
+#else
+#define SYS_SOC_TYPE(sysrev)   ((G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT   || G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT2)   ? K_SYS_SOC_TYPE_BCM1250 : G_SYS_SOC_TYPE(sysrev))
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SYS_WID _SB_MAKE64(32)
+#define M_SYS_WID _SB_MAKEMASK(32, S_SYS_WID)
+#define V_SYS_WID(x) _SB_MAKEVALUE(x, S_SYS_WID)
+#define G_SYS_WID(x) _SB_GETVALUE(x, S_SYS_WID, M_SYS_WID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if SIBYTE_HDR_FEATURE_1250_112x
+#define S_SYS_WAFERID1_200 _SB_MAKE64(0)
+#define M_SYS_WAFERID1_200 _SB_MAKEMASK(32, S_SYS_WAFERID1_200)
+#define V_SYS_WAFERID1_200(x) _SB_MAKEVALUE(x, S_SYS_WAFERID1_200)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_WAFERID1_200(x) _SB_GETVALUE(x, S_SYS_WAFERID1_200, M_SYS_WAFERID1_200)
+#define S_SYS_BIN _SB_MAKE64(32)
+#define M_SYS_BIN _SB_MAKEMASK(4, S_SYS_BIN)
+#define V_SYS_BIN(x) _SB_MAKEVALUE(x, S_SYS_BIN)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_BIN(x) _SB_GETVALUE(x, S_SYS_BIN, M_SYS_BIN)
+#define S_SYS_WAFERID2_200 _SB_MAKE64(36)
+#define M_SYS_WAFERID2_200 _SB_MAKEMASK(4, S_SYS_WAFERID2_200)
+#define V_SYS_WAFERID2_200(x) _SB_MAKEVALUE(x, S_SYS_WAFERID2_200)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_WAFERID2_200(x) _SB_GETVALUE(x, S_SYS_WAFERID2_200, M_SYS_WAFERID2_200)
+#define S_SYS_WAFERID_300 _SB_MAKE64(0)
+#define M_SYS_WAFERID_300 _SB_MAKEMASK(40, S_SYS_WAFERID_300)
+#define V_SYS_WAFERID_300(x) _SB_MAKEVALUE(x, S_SYS_WAFERID_300)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_WAFERID_300(x) _SB_GETVALUE(x, S_SYS_WAFERID_300, M_SYS_WAFERID_300)
+#define S_SYS_XPOS _SB_MAKE64(40)
+#define M_SYS_XPOS _SB_MAKEMASK(6, S_SYS_XPOS)
+#define V_SYS_XPOS(x) _SB_MAKEVALUE(x, S_SYS_XPOS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_XPOS(x) _SB_GETVALUE(x, S_SYS_XPOS, M_SYS_XPOS)
+#define S_SYS_YPOS _SB_MAKE64(46)
+#define M_SYS_YPOS _SB_MAKEMASK(6, S_SYS_YPOS)
+#define V_SYS_YPOS(x) _SB_MAKEVALUE(x, S_SYS_YPOS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_YPOS(x) _SB_GETVALUE(x, S_SYS_YPOS, M_SYS_YPOS)
+#endif
+#if SIBYTE_HDR_FEATURE_1250_112x
+#define M_SYS_LDT_PLL_BYP _SB_MAKEMASK1(3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_PCI_SYNC_TEST_MODE _SB_MAKEMASK1(4)
+#define M_SYS_IOB0_DIV _SB_MAKEMASK1(5)
+#define M_SYS_IOB1_DIV _SB_MAKEMASK1(6)
+#define S_SYS_PLL_DIV _SB_MAKE64(7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_PLL_DIV _SB_MAKEMASK(5, S_SYS_PLL_DIV)
+#define V_SYS_PLL_DIV(x) _SB_MAKEVALUE(x, S_SYS_PLL_DIV)
+#define G_SYS_PLL_DIV(x) _SB_GETVALUE(x, S_SYS_PLL_DIV, M_SYS_PLL_DIV)
+#define M_SYS_SER0_ENABLE _SB_MAKEMASK1(12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_SER0_RSTB_EN _SB_MAKEMASK1(13)
+#define M_SYS_SER1_ENABLE _SB_MAKEMASK1(14)
+#define M_SYS_SER1_RSTB_EN _SB_MAKEMASK1(15)
+#define M_SYS_PCMCIA_ENABLE _SB_MAKEMASK1(16)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SYS_BOOT_MODE _SB_MAKE64(17)
+#define M_SYS_BOOT_MODE _SB_MAKEMASK(2, S_SYS_BOOT_MODE)
+#define V_SYS_BOOT_MODE(x) _SB_MAKEVALUE(x, S_SYS_BOOT_MODE)
+#define G_SYS_BOOT_MODE(x) _SB_GETVALUE(x, S_SYS_BOOT_MODE, M_SYS_BOOT_MODE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SYS_BOOT_MODE_ROM32 0
+#define K_SYS_BOOT_MODE_ROM8 1
+#define K_SYS_BOOT_MODE_SMBUS_SMALL 2
+#define K_SYS_BOOT_MODE_SMBUS_BIG 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_PCI_HOST _SB_MAKEMASK1(19)
+#define M_SYS_PCI_ARBITER _SB_MAKEMASK1(20)
+#define M_SYS_SOUTH_ON_LDT _SB_MAKEMASK1(21)
+#define M_SYS_BIG_ENDIAN _SB_MAKEMASK1(22)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_GENCLK_EN _SB_MAKEMASK1(23)
+#define M_SYS_LDT_TEST_EN _SB_MAKEMASK1(24)
+#define M_SYS_GEN_PARITY_EN _SB_MAKEMASK1(25)
+#define S_SYS_CONFIG 26
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_CONFIG _SB_MAKEMASK(6, S_SYS_CONFIG)
+#define V_SYS_CONFIG(x) _SB_MAKEVALUE(x, S_SYS_CONFIG)
+#define G_SYS_CONFIG(x) _SB_GETVALUE(x, S_SYS_CONFIG, M_SYS_CONFIG)
+#define M_SYS_CLKSTOP _SB_MAKEMASK1(32)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_CLKSTEP _SB_MAKEMASK1(33)
+#define S_SYS_CLKCOUNT 34
+#define M_SYS_CLKCOUNT _SB_MAKEMASK(8, S_SYS_CLKCOUNT)
+#define V_SYS_CLKCOUNT(x) _SB_MAKEVALUE(x, S_SYS_CLKCOUNT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SYS_CLKCOUNT(x) _SB_GETVALUE(x, S_SYS_CLKCOUNT, M_SYS_CLKCOUNT)
+#define M_SYS_PLL_BYPASS _SB_MAKEMASK1(42)
+#define S_SYS_PLL_IREF 43
+#define M_SYS_PLL_IREF _SB_MAKEMASK(2, S_SYS_PLL_IREF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SYS_PLL_VCO 45
+#define M_SYS_PLL_VCO _SB_MAKEMASK(2, S_SYS_PLL_VCO)
+#define S_SYS_PLL_VREG 47
+#define M_SYS_PLL_VREG _SB_MAKEMASK(2, S_SYS_PLL_VREG)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_MEM_RESET _SB_MAKEMASK1(49)
+#define M_SYS_L2C_RESET _SB_MAKEMASK1(50)
+#define M_SYS_IO_RESET_0 _SB_MAKEMASK1(51)
+#define M_SYS_IO_RESET_1 _SB_MAKEMASK1(52)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_SCD_RESET _SB_MAKEMASK1(53)
+#define M_SYS_CPU_RESET_0 _SB_MAKEMASK1(54)
+#define M_SYS_CPU_RESET_1 _SB_MAKEMASK1(55)
+#define M_SYS_UNICPU0 _SB_MAKEMASK1(56)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_UNICPU1 _SB_MAKEMASK1(57)
+#define M_SYS_SB_SOFTRES _SB_MAKEMASK1(58)
+#define M_SYS_EXT_RESET _SB_MAKEMASK1(59)
+#define M_SYS_SYSTEM_RESET _SB_MAKEMASK1(60)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SYS_MISR_MODE _SB_MAKEMASK1(61)
+#define M_SYS_MISR_RESET _SB_MAKEMASK1(62)
+#if ??? || ???
+#define M_SYS_SW_FLAG _SB_MAKEMASK1(63)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
+#define S_MBOX_INT_3 0
+#define M_MBOX_INT_3 _SB_MAKEMASK(16, S_MBOX_INT_3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_MBOX_INT_2 16
+#define M_MBOX_INT_2 _SB_MAKEMASK(16, S_MBOX_INT_2)
+#define S_MBOX_INT_1 32
+#define M_MBOX_INT_1 _SB_MAKEMASK(16, S_MBOX_INT_1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_MBOX_INT_0 48
+#define M_MBOX_INT_0 _SB_MAKEMASK(16, S_MBOX_INT_0)
+#define V_SCD_WDOG_FREQ 1000000
+#define S_SCD_WDOG_INIT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_WDOG_INIT _SB_MAKEMASK(23, S_SCD_WDOG_INIT)
+#define S_SCD_WDOG_CNT 0
+#define M_SCD_WDOG_CNT _SB_MAKEMASK(23, S_SCD_WDOG_CNT)
+#define S_SCD_WDOG_ENABLE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_WDOG_ENABLE _SB_MAKEMASK1(S_SCD_WDOG_ENABLE)
+#define S_SCD_WDOG_RESET_TYPE 2
+#define M_SCD_WDOG_RESET_TYPE _SB_MAKEMASK(3, S_SCD_WDOG_RESET_TYPE)
+#define V_SCD_WDOG_RESET_TYPE(x) _SB_MAKEVALUE(x, S_SCD_WDOG_RESET_TYPE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SCD_WDOG_RESET_TYPE(x) _SB_GETVALUE(x, S_SCD_WDOG_RESET_TYPE, M_SCD_WDOG_RESET_TYPE)
+#define K_SCD_WDOG_RESET_FULL 0  
+#define K_SCD_WDOG_RESET_SOFT 1
+#define K_SCD_WDOG_RESET_CPU0 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_WDOG_RESET_CPU1 5
+#define K_SCD_WDOG_RESET_BOTH_CPUS 7
+#if ???
+#define S_SCD_WDOG_HAS_RESET 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_WDOG_HAS_RESET _SB_MAKEMASK1(S_SCD_WDOG_HAS_RESET)
+#endif
+#define V_SCD_TIMER_FREQ 1000000
+#define S_SCD_TIMER_INIT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_TIMER_INIT _SB_MAKEMASK(23, S_SCD_TIMER_INIT)
+#define V_SCD_TIMER_INIT(x) _SB_MAKEVALUE(x, S_SCD_TIMER_INIT)
+#define G_SCD_TIMER_INIT(x) _SB_GETVALUE(x, S_SCD_TIMER_INIT, M_SCD_TIMER_INIT)
+#define V_SCD_TIMER_WIDTH 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TIMER_CNT 0
+#define M_SCD_TIMER_CNT _SB_MAKEMASK(V_SCD_TIMER_WIDTH, S_SCD_TIMER_CNT)
+#define V_SCD_TIMER_CNT(x) _SB_MAKEVALUE(x, S_SCD_TIMER_CNT)
+#define G_SCD_TIMER_CNT(x) _SB_GETVALUE(x, S_SCD_TIMER_CNT, M_SCD_TIMER_CNT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_TIMER_ENABLE _SB_MAKEMASK1(0)
+#define M_SCD_TIMER_MODE _SB_MAKEMASK1(1)
+#define M_SCD_TIMER_MODE_CONTINUOUS M_SCD_TIMER_MODE
+#define S_SPC_CFG_SRC0 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC0 _SB_MAKEMASK(8, S_SPC_CFG_SRC0)
+#define V_SPC_CFG_SRC0(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC0)
+#define G_SPC_CFG_SRC0(x) _SB_GETVALUE(x, S_SPC_CFG_SRC0, M_SPC_CFG_SRC0)
+#define S_SPC_CFG_SRC1 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC1 _SB_MAKEMASK(8, S_SPC_CFG_SRC1)
+#define V_SPC_CFG_SRC1(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC1)
+#define G_SPC_CFG_SRC1(x) _SB_GETVALUE(x, S_SPC_CFG_SRC1, M_SPC_CFG_SRC1)
+#define S_SPC_CFG_SRC2 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC2 _SB_MAKEMASK(8, S_SPC_CFG_SRC2)
+#define V_SPC_CFG_SRC2(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC2)
+#define G_SPC_CFG_SRC2(x) _SB_GETVALUE(x, S_SPC_CFG_SRC2, M_SPC_CFG_SRC2)
+#define S_SPC_CFG_SRC3 24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_SRC3 _SB_MAKEMASK(8, S_SPC_CFG_SRC3)
+#define V_SPC_CFG_SRC3(x) _SB_MAKEVALUE(x, S_SPC_CFG_SRC3)
+#define G_SPC_CFG_SRC3(x) _SB_GETVALUE(x, S_SPC_CFG_SRC3, M_SPC_CFG_SRC3)
+#if SIBYTE_HDR_FEATURE_1250_112x
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SPC_CFG_CLEAR _SB_MAKEMASK1(32)
+#define M_SPC_CFG_ENABLE _SB_MAKEMASK1(33)
+#endif
+#define S_SCD_BERR_TID 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_BERR_TID _SB_MAKEMASK(10, S_SCD_BERR_TID)
+#define V_SCD_BERR_TID(x) _SB_MAKEVALUE(x, S_SCD_BERR_TID)
+#define G_SCD_BERR_TID(x) _SB_GETVALUE(x, S_SCD_BERR_TID, M_SCD_BERR_TID)
+#define S_SCD_BERR_RID 18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_BERR_RID _SB_MAKEMASK(4, S_SCD_BERR_RID)
+#define V_SCD_BERR_RID(x) _SB_MAKEVALUE(x, S_SCD_BERR_RID)
+#define G_SCD_BERR_RID(x) _SB_GETVALUE(x, S_SCD_BERR_RID, M_SCD_BERR_RID)
+#define S_SCD_BERR_DCODE 22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_BERR_DCODE _SB_MAKEMASK(3, S_SCD_BERR_DCODE)
+#define V_SCD_BERR_DCODE(x) _SB_MAKEVALUE(x, S_SCD_BERR_DCODE)
+#define G_SCD_BERR_DCODE(x) _SB_GETVALUE(x, S_SCD_BERR_DCODE, M_SCD_BERR_DCODE)
+#define M_SCD_BERR_MULTERRS _SB_MAKEMASK1(30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_L2ECC_CORR_D 0
+#define M_SCD_L2ECC_CORR_D _SB_MAKEMASK(8, S_SCD_L2ECC_CORR_D)
+#define V_SCD_L2ECC_CORR_D(x) _SB_MAKEVALUE(x, S_SCD_L2ECC_CORR_D)
+#define G_SCD_L2ECC_CORR_D(x) _SB_GETVALUE(x, S_SCD_L2ECC_CORR_D, M_SCD_L2ECC_CORR_D)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_L2ECC_BAD_D 8
+#define M_SCD_L2ECC_BAD_D _SB_MAKEMASK(8, S_SCD_L2ECC_BAD_D)
+#define V_SCD_L2ECC_BAD_D(x) _SB_MAKEVALUE(x, S_SCD_L2ECC_BAD_D)
+#define G_SCD_L2ECC_BAD_D(x) _SB_GETVALUE(x, S_SCD_L2ECC_BAD_D, M_SCD_L2ECC_BAD_D)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_L2ECC_CORR_T 16
+#define M_SCD_L2ECC_CORR_T _SB_MAKEMASK(8, S_SCD_L2ECC_CORR_T)
+#define V_SCD_L2ECC_CORR_T(x) _SB_MAKEVALUE(x, S_SCD_L2ECC_CORR_T)
+#define G_SCD_L2ECC_CORR_T(x) _SB_GETVALUE(x, S_SCD_L2ECC_CORR_T, M_SCD_L2ECC_CORR_T)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_L2ECC_BAD_T 24
+#define M_SCD_L2ECC_BAD_T _SB_MAKEMASK(8, S_SCD_L2ECC_BAD_T)
+#define V_SCD_L2ECC_BAD_T(x) _SB_MAKEVALUE(x, S_SCD_L2ECC_BAD_T)
+#define G_SCD_L2ECC_BAD_T(x) _SB_GETVALUE(x, S_SCD_L2ECC_BAD_T, M_SCD_L2ECC_BAD_T)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_MEM_ECC_CORR 0
+#define M_SCD_MEM_ECC_CORR _SB_MAKEMASK(8, S_SCD_MEM_ECC_CORR)
+#define V_SCD_MEM_ECC_CORR(x) _SB_MAKEVALUE(x, S_SCD_MEM_ECC_CORR)
+#define G_SCD_MEM_ECC_CORR(x) _SB_GETVALUE(x, S_SCD_MEM_ECC_CORR, M_SCD_MEM_ECC_CORR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_MEM_ECC_BAD 8
+#define M_SCD_MEM_ECC_BAD _SB_MAKEMASK(8, S_SCD_MEM_ECC_BAD)
+#define V_SCD_MEM_ECC_BAD(x) _SB_MAKEVALUE(x, S_SCD_MEM_ECC_BAD)
+#define G_SCD_MEM_ECC_BAD(x) _SB_GETVALUE(x, S_SCD_MEM_ECC_BAD, M_SCD_MEM_ECC_BAD)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_MEM_BUSERR 16
+#define M_SCD_MEM_BUSERR _SB_MAKEMASK(8, S_SCD_MEM_BUSERR)
+#define V_SCD_MEM_BUSERR(x) _SB_MAKEVALUE(x, S_SCD_MEM_BUSERR)
+#define G_SCD_MEM_BUSERR(x) _SB_GETVALUE(x, S_SCD_MEM_BUSERR, M_SCD_MEM_BUSERR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if SIBYTE_HDR_FEATURE_1250_112x
+#define M_ATRAP_INDEX _SB_MAKEMASK(4, 0)
+#define M_ATRAP_ADDRESS _SB_MAKEMASK(40, 0)
+#define S_ATRAP_CFG_CNT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_ATRAP_CFG_CNT _SB_MAKEMASK(3, S_ATRAP_CFG_CNT)
+#define V_ATRAP_CFG_CNT(x) _SB_MAKEVALUE(x, S_ATRAP_CFG_CNT)
+#define G_ATRAP_CFG_CNT(x) _SB_GETVALUE(x, S_ATRAP_CFG_CNT, M_ATRAP_CFG_CNT)
+#define M_ATRAP_CFG_WRITE _SB_MAKEMASK1(3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_ATRAP_CFG_ALL _SB_MAKEMASK1(4)
+#define M_ATRAP_CFG_INV _SB_MAKEMASK1(5)
+#define M_ATRAP_CFG_USESRC _SB_MAKEMASK1(6)
+#define M_ATRAP_CFG_SRCINV _SB_MAKEMASK1(7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_ATRAP_CFG_AGENTID 8
+#define M_ATRAP_CFG_AGENTID _SB_MAKEMASK(4, S_ATRAP_CFG_AGENTID)
+#define V_ATRAP_CFG_AGENTID(x) _SB_MAKEVALUE(x, S_ATRAP_CFG_AGENTID)
+#define G_ATRAP_CFG_AGENTID(x) _SB_GETVALUE(x, S_ATRAP_CFG_AGENTID, M_ATRAP_CFG_AGENTID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BUS_AGENT_CPU0 0
+#define K_BUS_AGENT_CPU1 1
+#define K_BUS_AGENT_IOB0 2
+#define K_BUS_AGENT_IOB1 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_BUS_AGENT_SCD 4
+#define K_BUS_AGENT_L2C 6
+#define K_BUS_AGENT_MC 7
+#define S_ATRAP_CFG_CATTR 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_ATRAP_CFG_CATTR _SB_MAKEMASK(3, S_ATRAP_CFG_CATTR)
+#define V_ATRAP_CFG_CATTR(x) _SB_MAKEVALUE(x, S_ATRAP_CFG_CATTR)
+#define G_ATRAP_CFG_CATTR(x) _SB_GETVALUE(x, S_ATRAP_CFG_CATTR, M_ATRAP_CFG_CATTR)
+#define K_ATRAP_CFG_CATTR_IGNORE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_ATRAP_CFG_CATTR_UNC 1
+#define K_ATRAP_CFG_CATTR_CACHEABLE 2
+#define K_ATRAP_CFG_CATTR_NONCOH 3
+#define K_ATRAP_CFG_CATTR_COHERENT 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_ATRAP_CFG_CATTR_NOTUNC 5
+#define K_ATRAP_CFG_CATTR_NOTNONCOH 6
+#define K_ATRAP_CFG_CATTR_NOTCOHERENT 7
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_TRACE_CFG_RESET _SB_MAKEMASK1(0)
+#define M_SCD_TRACE_CFG_START_READ _SB_MAKEMASK1(1)
+#define M_SCD_TRACE_CFG_START _SB_MAKEMASK1(2)
+#define M_SCD_TRACE_CFG_STOP _SB_MAKEMASK1(3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_TRACE_CFG_FREEZE _SB_MAKEMASK1(4)
+#define M_SCD_TRACE_CFG_FREEZE_FULL _SB_MAKEMASK1(5)
+#define M_SCD_TRACE_CFG_DEBUG_FULL _SB_MAKEMASK1(6)
+#define M_SCD_TRACE_CFG_FULL _SB_MAKEMASK1(7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if ??? || ??? || ???
+#define M_SCD_TRACE_CFG_FORCECNT _SB_MAKEMASK1(8)
+#endif
+#if SIBYTE_HDR_FEATURE_1250_112x
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TRACE_CFG_CUR_ADDR 10
+#else
+#if ???
+#define S_SCD_TRACE_CFG_CUR_ADDR 24
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
+#define M_SCD_TRACE_CFG_CUR_ADDR _SB_MAKEMASK(8, S_SCD_TRACE_CFG_CUR_ADDR)
+#define V_SCD_TRACE_CFG_CUR_ADDR(x) _SB_MAKEVALUE(x, S_SCD_TRACE_CFG_CUR_ADDR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SCD_TRACE_CFG_CUR_ADDR(x) _SB_GETVALUE(x, S_SCD_TRACE_CFG_CUR_ADDR, M_SCD_TRACE_CFG_CUR_ADDR)
+#define S_SCD_TREVT_ADDR_MATCH 0
+#define M_SCD_TREVT_ADDR_MATCH _SB_MAKEMASK(4, S_SCD_TREVT_ADDR_MATCH)
+#define V_SCD_TREVT_ADDR_MATCH(x) _SB_MAKEVALUE(x, S_SCD_TREVT_ADDR_MATCH)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SCD_TREVT_ADDR_MATCH(x) _SB_GETVALUE(x, S_SCD_TREVT_ADDR_MATCH, M_SCD_TREVT_ADDR_MATCH)
+#define M_SCD_TREVT_REQID_MATCH _SB_MAKEMASK1(4)
+#define M_SCD_TREVT_DATAID_MATCH _SB_MAKEMASK1(5)
+#define M_SCD_TREVT_RESPID_MATCH _SB_MAKEMASK1(6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_TREVT_INTERRUPT _SB_MAKEMASK1(7)
+#define M_SCD_TREVT_DEBUG_PIN _SB_MAKEMASK1(9)
+#define M_SCD_TREVT_WRITE _SB_MAKEMASK1(10)
+#define M_SCD_TREVT_READ _SB_MAKEMASK1(11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TREVT_REQID 12
+#define M_SCD_TREVT_REQID _SB_MAKEMASK(4, S_SCD_TREVT_REQID)
+#define V_SCD_TREVT_REQID(x) _SB_MAKEVALUE(x, S_SCD_TREVT_REQID)
+#define G_SCD_TREVT_REQID(x) _SB_GETVALUE(x, S_SCD_TREVT_REQID, M_SCD_TREVT_REQID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TREVT_RESPID 16
+#define M_SCD_TREVT_RESPID _SB_MAKEMASK(4, S_SCD_TREVT_RESPID)
+#define V_SCD_TREVT_RESPID(x) _SB_MAKEVALUE(x, S_SCD_TREVT_RESPID)
+#define G_SCD_TREVT_RESPID(x) _SB_GETVALUE(x, S_SCD_TREVT_RESPID, M_SCD_TREVT_RESPID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TREVT_DATAID 20
+#define M_SCD_TREVT_DATAID _SB_MAKEMASK(4, S_SCD_TREVT_DATAID)
+#define V_SCD_TREVT_DATAID(x) _SB_MAKEVALUE(x, S_SCD_TREVT_DATAID)
+#define G_SCD_TREVT_DATAID(x) _SB_GETVALUE(x, S_SCD_TREVT_DATAID, M_SCD_TREVT_DATID)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TREVT_COUNT 24
+#define M_SCD_TREVT_COUNT _SB_MAKEMASK(8, S_SCD_TREVT_COUNT)
+#define V_SCD_TREVT_COUNT(x) _SB_MAKEVALUE(x, S_SCD_TREVT_COUNT)
+#define G_SCD_TREVT_COUNT(x) _SB_GETVALUE(x, S_SCD_TREVT_COUNT, M_SCD_TREVT_COUNT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TRSEQ_EVENT4 0
+#define M_SCD_TRSEQ_EVENT4 _SB_MAKEMASK(4, S_SCD_TRSEQ_EVENT4)
+#define V_SCD_TRSEQ_EVENT4(x) _SB_MAKEVALUE(x, S_SCD_TRSEQ_EVENT4)
+#define G_SCD_TRSEQ_EVENT4(x) _SB_GETVALUE(x, S_SCD_TRSEQ_EVENT4, M_SCD_TRSEQ_EVENT4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TRSEQ_EVENT3 4
+#define M_SCD_TRSEQ_EVENT3 _SB_MAKEMASK(4, S_SCD_TRSEQ_EVENT3)
+#define V_SCD_TRSEQ_EVENT3(x) _SB_MAKEVALUE(x, S_SCD_TRSEQ_EVENT3)
+#define G_SCD_TRSEQ_EVENT3(x) _SB_GETVALUE(x, S_SCD_TRSEQ_EVENT3, M_SCD_TRSEQ_EVENT3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TRSEQ_EVENT2 8
+#define M_SCD_TRSEQ_EVENT2 _SB_MAKEMASK(4, S_SCD_TRSEQ_EVENT2)
+#define V_SCD_TRSEQ_EVENT2(x) _SB_MAKEVALUE(x, S_SCD_TRSEQ_EVENT2)
+#define G_SCD_TRSEQ_EVENT2(x) _SB_GETVALUE(x, S_SCD_TRSEQ_EVENT2, M_SCD_TRSEQ_EVENT2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define S_SCD_TRSEQ_EVENT1 12
+#define M_SCD_TRSEQ_EVENT1 _SB_MAKEMASK(4, S_SCD_TRSEQ_EVENT1)
+#define V_SCD_TRSEQ_EVENT1(x) _SB_MAKEVALUE(x, S_SCD_TRSEQ_EVENT1)
+#define G_SCD_TRSEQ_EVENT1(x) _SB_GETVALUE(x, S_SCD_TRSEQ_EVENT1, M_SCD_TRSEQ_EVENT1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_TRSEQ_E0 0
+#define K_SCD_TRSEQ_E1 1
+#define K_SCD_TRSEQ_E2 2
+#define K_SCD_TRSEQ_E3 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_TRSEQ_E0_E1 4
+#define K_SCD_TRSEQ_E1_E2 5
+#define K_SCD_TRSEQ_E2_E3 6
+#define K_SCD_TRSEQ_E0_E1_E2 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_TRSEQ_E0_E1_E2_E3 8
+#define K_SCD_TRSEQ_E0E1 9
+#define K_SCD_TRSEQ_E0E1E2 10
+#define K_SCD_TRSEQ_E0E1E2E3 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_TRSEQ_E0E1_E2 12
+#define K_SCD_TRSEQ_E0E1_E2E3 13
+#define K_SCD_TRSEQ_E0E1_E2_E3 14
+#define K_SCD_TRSEQ_IGNORED 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_TRSEQ_TRIGGER_ALL (V_SCD_TRSEQ_EVENT1(K_SCD_TRSEQ_IGNORED) |   V_SCD_TRSEQ_EVENT2(K_SCD_TRSEQ_IGNORED) |   V_SCD_TRSEQ_EVENT3(K_SCD_TRSEQ_IGNORED) |   V_SCD_TRSEQ_EVENT4(K_SCD_TRSEQ_IGNORED))
+#define S_SCD_TRSEQ_FUNCTION 16
+#define M_SCD_TRSEQ_FUNCTION _SB_MAKEMASK(4, S_SCD_TRSEQ_FUNCTION)
+#define V_SCD_TRSEQ_FUNCTION(x) _SB_MAKEVALUE(x, S_SCD_TRSEQ_FUNCTION)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define G_SCD_TRSEQ_FUNCTION(x) _SB_GETVALUE(x, S_SCD_TRSEQ_FUNCTION, M_SCD_TRSEQ_FUNCTION)
+#define K_SCD_TRSEQ_FUNC_NOP 0
+#define K_SCD_TRSEQ_FUNC_START 1
+#define K_SCD_TRSEQ_FUNC_STOP 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K_SCD_TRSEQ_FUNC_FREEZE 3
+#define V_SCD_TRSEQ_FUNC_NOP V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_NOP)
+#define V_SCD_TRSEQ_FUNC_START V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_START)
+#define V_SCD_TRSEQ_FUNC_STOP V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_STOP)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define V_SCD_TRSEQ_FUNC_FREEZE V_SCD_TRSEQ_FUNCTION(K_SCD_TRSEQ_FUNC_FREEZE)
+#define M_SCD_TRSEQ_ASAMPLE _SB_MAKEMASK1(18)
+#define M_SCD_TRSEQ_DSAMPLE _SB_MAKEMASK1(19)
+#define M_SCD_TRSEQ_DEBUGPIN _SB_MAKEMASK1(20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define M_SCD_TRSEQ_DEBUGCPU _SB_MAKEMASK1(21)
+#define M_SCD_TRSEQ_CLEARUSE _SB_MAKEMASK1(22)
+#define M_SCD_TRSEQ_ALLD_A _SB_MAKEMASK1(23)
+#define M_SCD_TRSEQ_ALL_A _SB_MAKEMASK1(24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sigcontext.h b/ndk/platforms/android-9/arch-mips/include/asm/sigcontext.h
new file mode 100644
index 0000000..d3742f3
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sigcontext.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SIGCONTEXT_H
+#define _ASM_SIGCONTEXT_H
+#include <asm/sgidefs.h>
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct sigcontext {
+ unsigned int sc_regmask;
+ unsigned int sc_status;
+ unsigned long long sc_pc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long long sc_regs[32];
+ unsigned long long sc_fpregs[32];
+ unsigned int sc_acx;
+ unsigned int sc_fpc_csr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int sc_fpc_eir;
+ unsigned int sc_used_math;
+ unsigned int sc_dsp;
+ unsigned long long sc_mdhi;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long long sc_mdlo;
+ unsigned long sc_hi1;
+ unsigned long sc_lo1;
+ unsigned long sc_hi2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long sc_lo2;
+ unsigned long sc_hi3;
+ unsigned long sc_lo3;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _MIPS_SIM_NABI32
+#include <linux/posix_types.h>
+struct sigcontext {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u64 sc_regs[32];
+ __u64 sc_fpregs[32];
+ __u64 sc_mdhi;
+ __u64 sc_hi1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u64 sc_hi2;
+ __u64 sc_hi3;
+ __u64 sc_mdlo;
+ __u64 sc_lo1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u64 sc_lo2;
+ __u64 sc_lo3;
+ __u64 sc_pc;
+ __u32 sc_fpc_csr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 sc_used_math;
+ __u32 sc_dsp;
+ __u32 sc_reserved;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/siginfo.h b/ndk/platforms/android-9/arch-mips/include/asm/siginfo.h
new file mode 100644
index 0000000..f3e508a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/siginfo.h
@@ -0,0 +1,96 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SIGINFO_H
+#define _ASM_SIGINFO_H
+#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(long) + 2*sizeof(int))
+#undef __ARCH_SI_TRAPNO  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HAVE_ARCH_SIGINFO_T
+#define HAVE_ARCH_COPY_SIGINFO
+struct siginfo;
+#include <asm-generic/siginfo.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct siginfo {
+ int si_signo;
+ int si_code;
+ int si_errno;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int __pad0[SI_MAX_SIZE / sizeof(int) - SI_PAD_SIZE - 3];
+ union {
+ int _pad[SI_PAD_SIZE];
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pid_t _pid;
+ __ARCH_SI_UID_T _uid;
+ } _kill;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ timer_t _tid;
+ int _overrun;
+ char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
+ sigval_t _sigval;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int _sys_private;
+ } _timer;
+ struct {
+ pid_t _pid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __ARCH_SI_UID_T _uid;
+ sigval_t _sigval;
+ } _rt;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pid_t _pid;
+ __ARCH_SI_UID_T _uid;
+ int _status;
+ clock_t _utime;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ clock_t _stime;
+ } _sigchld;
+ struct {
+ pid_t _pid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ clock_t _utime;
+ int _status;
+ clock_t _stime;
+ } _irix_sigchld;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ void __user *_addr;
+#ifdef __ARCH_SI_TRAPNO
+ int _trapno;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+ } _sigfault;
+ struct {
+ __ARCH_SI_BAND_T _band;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ int _fd;
+ } _sigpoll;
+ } _sifields;
+} siginfo_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#undef SI_ASYNCIO
+#undef SI_TIMER
+#undef SI_MESGQ
+#define SI_ASYNCIO -2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SI_TIMER __SI_CODE(__SI_TIMER, -3)  
+#define SI_MESGQ __SI_CODE(__SI_MESGQ, -4)  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/signal.h b/ndk/platforms/android-9/arch-mips/include/asm/signal.h
new file mode 100644
index 0000000..5f5ac77
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/signal.h
@@ -0,0 +1,124 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SIGNAL_H
+#define _ASM_SIGNAL_H
+#include <linux/types.h>
+#define _NSIG 128
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NSIG 128
+#define _NSIG_BPW (sizeof(unsigned long) * 8)
+#define _NSIG_WORDS (_NSIG / _NSIG_BPW)
+typedef struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long sig[_NSIG_WORDS];
+} sigset_t;
+typedef unsigned long old_sigset_t;
+#define SIGHUP 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGINT 2  
+#define SIGQUIT 3  
+#define SIGILL 4  
+#define SIGTRAP 5  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGIOT 6  
+#define SIGABRT SIGIOT  
+#define SIGEMT 7
+#define SIGFPE 8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGKILL 9  
+#define SIGBUS 10  
+#define SIGSEGV 11  
+#define SIGSYS 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGPIPE 13  
+#define SIGALRM 14  
+#define SIGTERM 15  
+#define SIGUSR1 16  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGUSR2 17  
+#define SIGCHLD 18  
+#define SIGCLD SIGCHLD  
+#define SIGPWR 19  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGWINCH 20  
+#define SIGURG 21  
+#define SIGIO 22  
+#define SIGPOLL SIGIO  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGSTOP 23  
+#define SIGTSTP 24  
+#define SIGCONT 25  
+#define SIGTTIN 26  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGTTOU 27  
+#define SIGVTALRM 28  
+#define SIGPROF 29  
+#define SIGXCPU 30  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGXFSZ 31  
+#define SIGRTMIN 32
+#define SIGRTMAX _NSIG
+#define SA_ONSTACK 0x08000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SA_RESETHAND 0x80000000
+#define SA_RESTART 0x10000000
+#define SA_SIGINFO 0x00000008
+#define SA_NODEFER 0x40000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SA_NOCLDWAIT 0x00010000
+#define SA_NOCLDSTOP 0x00000001
+#define SA_NOMASK SA_NODEFER
+#define SA_ONESHOT SA_RESETHAND
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SA_RESTORER 0x04000000  
+#define SS_ONSTACK 1
+#define SS_DISABLE 2
+#define MINSIGSTKSZ 2048
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIGSTKSZ 8192
+struct siginfo;
+#define SIG_BLOCK 1  
+#define SIG_UNBLOCK 2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIG_SETMASK 3  
+#include <asm-generic/signal.h>
+struct sigaction {
+ unsigned int sa_flags;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ union {
+ __sighandler_t sa_handler;
+ void (*sa_sigaction) (int, struct siginfo *, void *);
+ } __sigaction_handler;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define sa_handler __sigaction_handler.sa_handler
+#define sa_sigaction __sigaction_handler.sa_sigaction
+ sigset_t sa_mask;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct k_sigaction {
+ struct sigaction sa;
+};
+typedef struct sigaltstack {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ void *ss_sp;
+ size_t ss_size;
+ int ss_flags;
+} stack_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/smp-ops.h b/ndk/platforms/android-9/arch-mips/include/asm/smp-ops.h
new file mode 100644
index 0000000..f80f01c
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/smp-ops.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_SMP_OPS_H
+#define __ASM_SMP_OPS_H
+struct plat_smp_ops;
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/smp.h b/ndk/platforms/android-9/arch-mips/include/asm/smp.h
new file mode 100644
index 0000000..87eea88
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/smp.h
@@ -0,0 +1,38 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_SMP_H
+#define __ASM_SMP_H
+#include <linux/bitops.h>
+#include <linux/linkage.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/threads.h>
+#include <linux/cpumask.h>
+#include <asm/atomic.h>
+#include <asm/smp-ops.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define raw_smp_processor_id() (current_thread_info()->cpu)
+#define cpu_number_map(cpu) __cpu_number_map[cpu]
+#define cpu_logical_map(cpu) __cpu_logical_map[cpu]
+#define NO_PROC_ID (-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SMP_RESCHEDULE_YOURSELF 0x1  
+#define SMP_CALL_FUNCTION 0x2
+#define cpu_possible_map phys_cpu_present_map
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/addrs.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/addrs.h
new file mode 100644
index 0000000..d243613
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/addrs.h
@@ -0,0 +1,188 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_ADDRS_H
+#define _ASM_SN_ADDRS_H
+#ifndef __ASSEMBLY__
+#include <linux/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#include <asm/addrspace.h>
+#include <asm/sn/kldir.h>
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PS_UINT_CAST (unsigned long)
+#define UINT64_CAST (unsigned long)
+#define HUBREG_CAST (volatile hubreg_t *)
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PS_UINT_CAST
+#define UINT64_CAST
+#define HUBREG_CAST
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NASID_GET_META(_n) ((_n) >> NASID_LOCAL_BITS)
+#define NASID_MAKE(_m, _l) (((_m) << NASID_LOCAL_BITS) | (_l))
+#define NODE_ADDRSPACE_MASK (NODE_ADDRSPACE_SIZE - 1)
+#define TO_NODE_ADDRSPACE(_pa) (UINT64_CAST (_pa) & NODE_ADDRSPACE_MASK)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CHANGE_ADDR_NASID(_pa, _nasid)   ((UINT64_CAST(_pa) & ~NASID_MASK) |   (UINT64_CAST(_nasid) << NASID_SHFT))
+#define NODE_OFFSET(_n) (UINT64_CAST (_n) << NODE_SIZE_BITS)
+#define NODE_CAC_BASE(_n) (CAC_BASE + NODE_OFFSET(_n))
+#define NODE_HSPEC_BASE(_n) (HSPEC_BASE + NODE_OFFSET(_n))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NODE_IO_BASE(_n) (IO_BASE + NODE_OFFSET(_n))
+#define NODE_MSPEC_BASE(_n) (MSPEC_BASE + NODE_OFFSET(_n))
+#define NODE_UNCAC_BASE(_n) (UNCAC_BASE + NODE_OFFSET(_n))
+#define TO_NODE(_n, _x) (NODE_OFFSET(_n) | ((_x) ))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TO_NODE_CAC(_n, _x) (NODE_CAC_BASE(_n) | ((_x) & TO_PHYS_MASK))
+#define TO_NODE_UNCAC(_n, _x) (NODE_UNCAC_BASE(_n) | ((_x) & TO_PHYS_MASK))
+#define TO_NODE_MSPEC(_n, _x) (NODE_MSPEC_BASE(_n) | ((_x) & TO_PHYS_MASK))
+#define TO_NODE_HSPEC(_n, _x) (NODE_HSPEC_BASE(_n) | ((_x) & TO_PHYS_MASK))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RAW_NODE_SWIN_BASE(nasid, widget)   (NODE_IO_BASE(nasid) + (UINT64_CAST(widget) << SWIN_SIZE_BITS))
+#define WIDGETID_GET(addr) ((unsigned char)((addr >> SWIN_SIZE_BITS) & 0xff))
+#define SWIN_SIZE_BITS 24
+#define SWIN_SIZE (UINT64_CAST 1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SWIN_SIZEMASK (SWIN_SIZE - 1)
+#define SWIN_WIDGET_MASK 0xF
+#define SWIN_WIDGETADDR(addr) ((addr) & SWIN_SIZEMASK)
+#define SWIN_WIDGETNUM(addr) (((addr) >> SWIN_SIZE_BITS) & SWIN_WIDGET_MASK)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NODE_SWIN_ADDR(nasid, addr)   (((addr) >= NODE_SWIN_BASE(nasid, 0)) &&   ((addr) < (NODE_SWIN_BASE(nasid, HUB_NUM_WIDGET) + SWIN_SIZE)  ))
+#define UALIAS_BASE HSPEC_BASE
+#define UALIAS_SIZE 0x10000000  
+#define UALIAS_LIMIT (UALIAS_BASE + UALIAS_SIZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HUB_REGISTER_WIDGET 1
+#define IALIAS_BASE NODE_SWIN_BASE(0, HUB_REGISTER_WIDGET)
+#define IALIAS_SIZE 0x800000  
+#define IS_IALIAS(_a) (((_a) >= IALIAS_BASE) &&   ((_a) < (IALIAS_BASE + IALIAS_SIZE)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NODE_BDOOR_BASE(_n) (NODE_HSPEC_BASE(_n) + (NODE_ADDRSPACE_SIZE/2))
+#define NODE_BDECC_BASE(_n) (NODE_BDOOR_BASE(_n))
+#define NODE_BDDIR_BASE(_n) (NODE_BDOOR_BASE(_n) + (NODE_ADDRSPACE_SIZE/4))
+#define LOCAL_HUB_ADDR(_x) (HUBREG_CAST (IALIAS_BASE + (_x)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define REMOTE_HUB_ADDR(_n, _x) (HUBREG_CAST (NODE_SWIN_BASE(_n, 1) +   0x800000 + (_x)))
+#ifndef __ASSEMBLY__
+#define HUB_L(_a) *(_a)
+#define HUB_S(_a, _d) *(_a) = (_d)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LOCAL_HUB_L(_r) HUB_L(LOCAL_HUB_ADDR(_r))
+#define LOCAL_HUB_S(_r, _d) HUB_S(LOCAL_HUB_ADDR(_r), (_d))
+#define REMOTE_HUB_L(_n, _r) HUB_L(REMOTE_HUB_ADDR((_n), (_r)))
+#define REMOTE_HUB_S(_n, _r, _d) HUB_S(REMOTE_HUB_ADDR((_n), (_r)), (_d))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define REMOTE_HUB_PI_L(_n, _sn, _r) HUB_L(REMOTE_HUB_PI_ADDR((_n), (_sn), (_r)))
+#define REMOTE_HUB_PI_S(_n, _sn, _r, _d) HUB_S(REMOTE_HUB_PI_ADDR((_n), (_sn), (_r)), (_d))
+#endif
+#define HUB_REG_PTR(_base, _off)   (HUBREG_CAST((__psunsigned_t)(_base) + (__psunsigned_t)(_off)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HUB_REG_PTR_L(_base, _off)   HUB_L(HUB_REG_PTR((_base), (_off)))
+#define HUB_REG_PTR_S(_base, _off, _data)   HUB_S(HUB_REG_PTR((_base), (_off)), (_data))
+#define PHYS_RAMBASE 0x0
+#define K0_RAMBASE PHYS_TO_K0(PHYS_RAMBASE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EX_HANDLER_OFFSET(slice) ((slice) << 16)
+#define EX_HANDLER_ADDR(nasid, slice)   PHYS_TO_K0(NODE_OFFSET(nasid) | EX_HANDLER_OFFSET(slice))
+#define EX_HANDLER_SIZE 0x0400
+#define EX_FRAME_OFFSET(slice) ((slice) << 16 | 0x400)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EX_FRAME_ADDR(nasid, slice)   PHYS_TO_K0(NODE_OFFSET(nasid) | EX_FRAME_OFFSET(slice))
+#define EX_FRAME_SIZE 0x0c00
+#define ARCS_SPB_OFFSET 0x1000
+#define ARCS_SPB_ADDR(nasid)   PHYS_TO_K0(NODE_OFFSET(nasid) | ARCS_SPB_OFFSET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ARCS_SPB_SIZE 0x0400
+#define KLDIR_OFFSET 0x2000
+#define KLDIR_ADDR(nasid)   TO_NODE_UNCAC((nasid), KLDIR_OFFSET)
+#define KLDIR_SIZE 0x0400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLI_LAUNCH 0  
+#define KLI_KLCONFIG 1
+#define KLI_NMI 2
+#define KLI_GDA 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLI_FREEMEM 4
+#define KLI_SYMMON_STK 5
+#define KLI_PI_ERROR 6
+#define KLI_KERN_VARS 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLI_KERN_XP 8
+#define KLI_KERN_PARTID 9
+#ifndef __ASSEMBLY__
+#define KLD_BASE(nasid) ((kldir_ent_t *) KLDIR_ADDR(nasid))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLD_LAUNCH(nasid) (KLD_BASE(nasid) + KLI_LAUNCH)
+#define KLD_NMI(nasid) (KLD_BASE(nasid) + KLI_NMI)
+#define KLD_KLCONFIG(nasid) (KLD_BASE(nasid) + KLI_KLCONFIG)
+#define KLD_PI_ERROR(nasid) (KLD_BASE(nasid) + KLI_PI_ERROR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLD_GDA(nasid) (KLD_BASE(nasid) + KLI_GDA)
+#define KLD_SYMMON_STK(nasid) (KLD_BASE(nasid) + KLI_SYMMON_STK)
+#define KLD_FREEMEM(nasid) (KLD_BASE(nasid) + KLI_FREEMEM)
+#define KLD_KERN_VARS(nasid) (KLD_BASE(nasid) + KLI_KERN_VARS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLD_KERN_XP(nasid) (KLD_BASE(nasid) + KLI_KERN_XP)
+#define KLD_KERN_PARTID(nasid) (KLD_BASE(nasid) + KLI_KERN_PARTID)
+#define LAUNCH_OFFSET(nasid, slice)   (KLD_LAUNCH(nasid)->offset +   KLD_LAUNCH(nasid)->stride * (slice))
+#define LAUNCH_ADDR(nasid, slice)   TO_NODE_UNCAC((nasid), LAUNCH_OFFSET(nasid, slice))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define LAUNCH_SIZE(nasid) KLD_LAUNCH(nasid)->size
+#define NMI_OFFSET(nasid, slice)   (KLD_NMI(nasid)->offset +   KLD_NMI(nasid)->stride * (slice))
+#define NMI_ADDR(nasid, slice)   TO_NODE_UNCAC((nasid), NMI_OFFSET(nasid, slice))
+#define NMI_SIZE(nasid) KLD_NMI(nasid)->size
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLCONFIG_OFFSET(nasid) KLD_KLCONFIG(nasid)->offset
+#define KLCONFIG_ADDR(nasid)   TO_NODE_UNCAC((nasid), KLCONFIG_OFFSET(nasid))
+#define KLCONFIG_SIZE(nasid) KLD_KLCONFIG(nasid)->size
+#define GDA_ADDR(nasid) KLD_GDA(nasid)->pointer
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GDA_SIZE(nasid) KLD_GDA(nasid)->size
+#define SYMMON_STK_OFFSET(nasid, slice)   (KLD_SYMMON_STK(nasid)->offset +   KLD_SYMMON_STK(nasid)->stride * (slice))
+#define SYMMON_STK_STRIDE(nasid) KLD_SYMMON_STK(nasid)->stride
+#define SYMMON_STK_ADDR(nasid, slice)   TO_NODE_CAC((nasid), SYMMON_STK_OFFSET(nasid, slice))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYMMON_STK_SIZE(nasid) KLD_SYMMON_STK(nasid)->stride
+#define SYMMON_STK_END(nasid) (SYMMON_STK_ADDR(nasid, 0) + KLD_SYMMON_STK(nasid)->size)
+#define UNIX_DEBUG_LOADADDR 0x300000
+#define SYMMON_LOADADDR(nasid)   TO_NODE(nasid, PHYS_TO_K0(UNIX_DEBUG_LOADADDR - 0x1000))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FREEMEM_OFFSET(nasid) KLD_FREEMEM(nasid)->offset
+#define FREEMEM_ADDR(nasid) SYMMON_STK_END(nasid)
+#define FREEMEM_SIZE(nasid) KLD_FREEMEM(nasid)->size
+#define PI_ERROR_OFFSET(nasid) KLD_PI_ERROR(nasid)->offset
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERROR_ADDR(nasid)   TO_NODE_UNCAC((nasid), PI_ERROR_OFFSET(nasid))
+#define PI_ERROR_SIZE(nasid) KLD_PI_ERROR(nasid)->size
+#define NODE_OFFSET_TO_K0(_nasid, _off)   PHYS_TO_K0((NODE_OFFSET(_nasid) + (_off)) | CAC_BASE)
+#define NODE_OFFSET_TO_K1(_nasid, _off)   TO_UNCAC((NODE_OFFSET(_nasid) + (_off)) | UNCAC_BASE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define K0_TO_NODE_OFFSET(_k0addr)   ((__psunsigned_t)(_k0addr) & NODE_ADDRSPACE_MASK)
+#define KERN_VARS_ADDR(nasid) KLD_KERN_VARS(nasid)->pointer
+#define KERN_VARS_SIZE(nasid) KLD_KERN_VARS(nasid)->size
+#define KERN_XP_ADDR(nasid) KLD_KERN_XP(nasid)->pointer
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KERN_XP_SIZE(nasid) KLD_KERN_XP(nasid)->size
+#define GPDA_ADDR(nasid) TO_NODE_CAC(nasid, GPDA_OFFSET)
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/arch.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/arch.h
new file mode 100644
index 0000000..f6ceb20
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/arch.h
@@ -0,0 +1,40 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_ARCH_H
+#define _ASM_SN_ARCH_H
+#include <linux/types.h>
+#include <asm/sn/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef u64 hubreg_t;
+#define cputonasid(cpu) (sn_cpu_info[(cpu)].p_nasid)
+#define cputoslice(cpu) (sn_cpu_info[(cpu)].p_slice)
+#define makespnum(_nasid, _slice)   (((_nasid) << CPUS_PER_NODE_SHFT) | (_slice))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INVALID_NASID (nasid_t)-1
+#define INVALID_CNODEID (cnodeid_t)-1
+#define INVALID_PNODEID (pnodeid_t)-1
+#define INVALID_MODULE (moduleid_t)-1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INVALID_PARTID (partid_t)-1
+#define NASID_TO_REGION(nnode)   ((nnode) >>   (is_fine_dirmode() ? NASID_TO_FINEREG_SHFT : NASID_TO_COARSEREG_SHFT))
+#define NASID_TO_COMPACT_NODEID(nnode) (nasid_to_compact_node[nnode])
+#define COMPACT_TO_NASID_NODEID(cnode) (compact_to_nasid_node[cnode])
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CPUID_TO_COMPACT_NODEID(cpu) (cpuid_to_compact_node[(cpu)])
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/hub.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/hub.h
new file mode 100644
index 0000000..cbb1dbd
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/hub.h
@@ -0,0 +1,29 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_SN_HUB_H
+#define __ASM_SN_HUB_H
+#include <linux/types.h>
+#include <linux/cpumask.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/sn/types.h>
+#include <asm/sn/io.h>
+#include <asm/sn/klkernvars.h>
+#include <asm/xtalk/xtalk.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/io.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/io.h
new file mode 100644
index 0000000..2b8a101
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/io.h
@@ -0,0 +1,44 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_IO_H
+#define _ASM_SN_IO_H
+#define IIO_ITTE_BASE 0x400160  
+#define IIO_ITTE(bigwin) (IIO_ITTE_BASE + 8*(bigwin))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ITTE_OFFSET_BITS 5  
+#define IIO_ITTE_OFFSET_MASK ((1<<IIO_ITTE_OFFSET_BITS)-1)
+#define IIO_ITTE_OFFSET_SHIFT 0
+#define IIO_ITTE_WIDGET_BITS 4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ITTE_WIDGET_MASK ((1<<IIO_ITTE_WIDGET_BITS)-1)
+#define IIO_ITTE_WIDGET_SHIFT 8
+#define IIO_ITTE_IOSP 1  
+#define IIO_ITTE_IOSP_MASK 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ITTE_IOSP_SHIFT 12
+#define HUB_PIO_MAP_TO_MEM 0
+#define HUB_PIO_MAP_TO_IO 1
+#define IIO_ITTE_INVALID_WIDGET 3  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ITTE_PUT(nasid, bigwin, io_or_mem, widget, addr)   REMOTE_HUB_S((nasid), IIO_ITTE(bigwin),   (((((addr) >> BWIN_SIZE_BITS) &   IIO_ITTE_OFFSET_MASK) << IIO_ITTE_OFFSET_SHIFT) |   (io_or_mem << IIO_ITTE_IOSP_SHIFT) |   (((widget) & IIO_ITTE_WIDGET_MASK) << IIO_ITTE_WIDGET_SHIFT)))
+#define IIO_ITTE_DISABLE(nasid, bigwin)   IIO_ITTE_PUT((nasid), HUB_PIO_MAP_TO_MEM,   (bigwin), IIO_ITTE_INVALID_WIDGET, 0)
+#define IIO_ITTE_GET(nasid, bigwin) REMOTE_HUB_ADDR((nasid), IIO_ITTE(bigwin))
+#define IIO_IOPRB(_x) (IIO_IOPRB_0 + ( ( (_x) < HUB_WIDGET_ID_MIN ?   (_x) :   (_x) - (HUB_WIDGET_ID_MIN-1)) << 3) )
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/ioc3.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/ioc3.h
new file mode 100644
index 0000000..9771304
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/ioc3.h
@@ -0,0 +1,645 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _IOC3_H
+#define _IOC3_H
+#include <linux/types.h>
+typedef volatile struct ioc3_uartregs {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ union {
+ volatile u8 rbr;
+ volatile u8 thr;
+ volatile u8 dll;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } u1;
+ union {
+ volatile u8 ier;
+ volatile u8 dlm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } u2;
+ union {
+ volatile u8 iir;
+ volatile u8 fcr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } u3;
+ volatile u8 iu_lcr;
+ volatile u8 iu_mcr;
+ volatile u8 iu_lsr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 iu_msr;
+ volatile u8 iu_scr;
+} ioc3_uregs_t;
+#define iu_rbr u1.rbr
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iu_thr u1.thr
+#define iu_dll u1.dll
+#define iu_ier u2.ier
+#define iu_dlm u2.dlm
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iu_iir u3.iir
+#define iu_fcr u3.fcr
+struct ioc3_sioregs {
+ volatile u8 fill[0x141];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 uartc;
+ volatile u8 kbdcg;
+ volatile u8 fill0[0x150 - 0x142 - 1];
+ volatile u8 pp_data;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 pp_dsr;
+ volatile u8 pp_dcr;
+ volatile u8 fill1[0x158 - 0x152 - 1];
+ volatile u8 pp_fifa;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 pp_cfgb;
+ volatile u8 pp_ecr;
+ volatile u8 fill2[0x168 - 0x15a - 1];
+ volatile u8 rtcad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u8 rtcdat;
+ volatile u8 fill3[0x170 - 0x169 - 1];
+ struct ioc3_uartregs uartb;
+ struct ioc3_uartregs uarta;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct ioc3 {
+ volatile u32 pad0[7];
+ volatile u32 sio_ir;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 sio_ies;
+ volatile u32 sio_iec;
+ volatile u32 sio_cr;
+ volatile u32 int_out;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 mcr;
+ volatile u32 gpcr_s;
+ volatile u32 gpcr_c;
+ volatile u32 gpdr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 gppr_0;
+ volatile u32 gppr_1;
+ volatile u32 gppr_2;
+ volatile u32 gppr_3;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 gppr_4;
+ volatile u32 gppr_5;
+ volatile u32 gppr_6;
+ volatile u32 gppr_7;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 gppr_8;
+ volatile u32 gppr_9;
+ volatile u32 gppr_10;
+ volatile u32 gppr_11;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 gppr_12;
+ volatile u32 gppr_13;
+ volatile u32 gppr_14;
+ volatile u32 gppr_15;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 ppbr_h_a;
+ volatile u32 ppbr_l_a;
+ volatile u32 ppcr_a;
+ volatile u32 ppcr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 ppbr_h_b;
+ volatile u32 ppbr_l_b;
+ volatile u32 ppcr_b;
+ volatile u32 km_csr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 k_rd;
+ volatile u32 m_rd;
+ volatile u32 k_wd;
+ volatile u32 m_wd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 sbbr_h;
+ volatile u32 sbbr_l;
+ volatile u32 sscr_a;
+ volatile u32 stpir_a;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 stcir_a;
+ volatile u32 srpir_a;
+ volatile u32 srcir_a;
+ volatile u32 srtr_a;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 shadow_a;
+ volatile u32 sscr_b;
+ volatile u32 stpir_b;
+ volatile u32 stcir_b;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 srpir_b;
+ volatile u32 srcir_b;
+ volatile u32 srtr_b;
+ volatile u32 shadow_b;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 emcr;
+ volatile u32 eisr;
+ volatile u32 eier;
+ volatile u32 ercsr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 erbr_h;
+ volatile u32 erbr_l;
+ volatile u32 erbar;
+ volatile u32 ercir;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 erpir;
+ volatile u32 ertr;
+ volatile u32 etcsr;
+ volatile u32 ersr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 etcdc;
+ volatile u32 ebir;
+ volatile u32 etbr_h;
+ volatile u32 etbr_l;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 etcir;
+ volatile u32 etpir;
+ volatile u32 emar_h;
+ volatile u32 emar_l;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 ehar_h;
+ volatile u32 ehar_l;
+ volatile u32 micr;
+ volatile u32 midr_r;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 midr_w;
+ volatile u32 pad1[(0x20000 - 0x00154) / 4];
+ struct ioc3_sioregs sregs;
+ volatile u32 pad2[(0x40000 - 0x20180) / 4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ volatile u32 ssram[(0x80000 - 0x40000) / 4];
+};
+struct ioc3_erxbuf {
+ u32 w0;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 err;
+};
+#define ERXBUF_IPCKSUM_MASK 0x0000ffff
+#define ERXBUF_BYTECNT_MASK 0x07ff0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_BYTECNT_SHIFT 16
+#define ERXBUF_V 0x80000000
+#define ERXBUF_CRCERR 0x00000001  
+#define ERXBUF_FRAMERR 0x00000002  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_CODERR 0x00000004  
+#define ERXBUF_INVPREAMB 0x00000008  
+#define ERXBUF_LOLEN 0x00007000  
+#define ERXBUF_HILEN 0x03ff0000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_MULTICAST 0x04000000  
+#define ERXBUF_BROADCAST 0x08000000  
+#define ERXBUF_LONGEVENT 0x10000000  
+#define ERXBUF_BADPKT 0x20000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_GOODPKT 0x40000000  
+#define ERXBUF_CARRIER 0x80000000  
+#define ETXD_DATALEN 104
+struct ioc3_etxd {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u32 cmd;
+ u32 bufcnt;
+ u64 p1;
+ u64 p2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u8 data[ETXD_DATALEN];
+};
+#define ETXD_BYTECNT_MASK 0x000007ff  
+#define ETXD_INTWHENDONE 0x00001000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_D0V 0x00010000  
+#define ETXD_B1V 0x00020000  
+#define ETXD_B2V 0x00040000  
+#define ETXD_DOCHECKSUM 0x00080000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_CHKOFF_MASK 0x07f00000  
+#define ETXD_CHKOFF_SHIFT 20
+#define ETXD_D0CNT_MASK 0x0000007f
+#define ETXD_B1CNT_MASK 0x0007ff00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_B1CNT_SHIFT 8
+#define ETXD_B2CNT_MASK 0x7ff00000
+#define ETXD_B2CNT_SHIFT 20
+#define IOC3_BYTEBUS_DEV0 0x80000L
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_BYTEBUS_DEV1 0xa0000L
+#define IOC3_BYTEBUS_DEV2 0xc0000L
+#define IOC3_BYTEBUS_DEV3 0xe0000L
+#define IOC3_SIO_BASE 0x20000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_SIO_UARTC (IOC3_SIO_BASE+0x141)  
+#define IOC3_SIO_KBDCG (IOC3_SIO_BASE+0x142)  
+#define IOC3_SIO_PP_BASE (IOC3_SIO_BASE+PP_BASE)  
+#define IOC3_SIO_RTC_BASE (IOC3_SIO_BASE+0x168)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_SIO_UB_BASE (IOC3_SIO_BASE+UARTB_BASE)  
+#define IOC3_SIO_UA_BASE (IOC3_SIO_BASE+UARTA_BASE)  
+#define IOC3_SSRAM IOC3_RAM_OFF  
+#define IOC3_SSRAM_LEN 0x40000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_SSRAM_DM 0x0000ffff  
+#define IOC3_SSRAM_PM 0x00010000  
+#define PCI_SCR_PAR_RESP_EN 0x00000040  
+#define PCI_SCR_SERR_EN 0x00000100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI_SCR_DROP_MODE_EN 0x00008000  
+#define PCI_SCR_RX_SERR (0x1 << 16)
+#define PCI_SCR_DROP_MODE (0x1 << 17)
+#define PCI_SCR_SIG_PAR_ERR (0x1 << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI_SCR_SIG_TAR_ABRT (0x1 << 27)
+#define PCI_SCR_RX_TAR_ABRT (0x1 << 28)
+#define PCI_SCR_SIG_MST_ABRT (0x1 << 29)
+#define PCI_SCR_SIG_SERR (0x1 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PCI_SCR_PAR_ERR (0x1 << 31)
+#define KM_CSR_K_WRT_PEND 0x00000001  
+#define KM_CSR_M_WRT_PEND 0x00000002  
+#define KM_CSR_K_LCB 0x00000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_CSR_M_LCB 0x00000008  
+#define KM_CSR_K_DATA 0x00000010  
+#define KM_CSR_K_CLK 0x00000020  
+#define KM_CSR_K_PULL_DATA 0x00000040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_CSR_K_PULL_CLK 0x00000080  
+#define KM_CSR_M_DATA 0x00000100  
+#define KM_CSR_M_CLK 0x00000200  
+#define KM_CSR_M_PULL_DATA 0x00000400  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_CSR_M_PULL_CLK 0x00000800  
+#define KM_CSR_EMM_MODE 0x00001000  
+#define KM_CSR_SIM_MODE 0x00002000  
+#define KM_CSR_K_SM_IDLE 0x00004000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_CSR_M_SM_IDLE 0x00008000  
+#define KM_CSR_K_TO 0x00010000  
+#define KM_CSR_M_TO 0x00020000  
+#define KM_CSR_K_TO_EN 0x00040000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_CSR_M_TO_EN 0x00080000  
+#define KM_CSR_K_CLAMP_ONE 0x00100000  
+#define KM_CSR_M_CLAMP_ONE 0x00200000  
+#define KM_CSR_K_CLAMP_THREE 0x00400000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_CSR_M_CLAMP_THREE 0x00800000  
+#define KM_RD_DATA_2 0x000000ff  
+#define KM_RD_DATA_2_SHIFT 0
+#define KM_RD_DATA_1 0x0000ff00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_RD_DATA_1_SHIFT 8
+#define KM_RD_DATA_0 0x00ff0000  
+#define KM_RD_DATA_0_SHIFT 16
+#define KM_RD_FRAME_ERR_2 0x01000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_RD_FRAME_ERR_1 0x02000000  
+#define KM_RD_FRAME_ERR_0 0x04000000  
+#define KM_RD_KBD_MSE 0x08000000  
+#define KM_RD_OFLO 0x10000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_RD_VALID_2 0x20000000  
+#define KM_RD_VALID_1 0x40000000  
+#define KM_RD_VALID_0 0x80000000  
+#define KM_RD_VALID_ALL (KM_RD_VALID_0|KM_RD_VALID_1|KM_RD_VALID_2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KM_WD_WRT_DATA 0x000000ff  
+#define KM_WD_WRT_DATA_SHIFT 0
+#define RXSB_OVERRUN 0x01  
+#define RXSB_PAR_ERR 0x02  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RXSB_FRAME_ERR 0x04  
+#define RXSB_BREAK 0x08  
+#define RXSB_CTS 0x10  
+#define RXSB_DCD 0x20  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RXSB_MODEM_VALID 0x40  
+#define RXSB_DATA_VALID 0x80  
+#define TXCB_INT_WHEN_DONE 0x20  
+#define TXCB_INVALID 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TXCB_VALID 0x40  
+#define TXCB_MCR 0x80  
+#define TXCB_DELAY 0xc0  
+#define SBBR_L_SIZE 0x00000001  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SBBR_L_BASE 0xfffff000  
+#define SSCR_RX_THRESHOLD 0x000001ff  
+#define SSCR_TX_TIMER_BUSY 0x00010000  
+#define SSCR_HFC_EN 0x00020000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSCR_RX_RING_DCD 0x00040000  
+#define SSCR_RX_RING_CTS 0x00080000  
+#define SSCR_HIGH_SPD 0x00100000  
+#define SSCR_DIAG 0x00200000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSCR_RX_DRAIN 0x08000000  
+#define SSCR_DMA_EN 0x10000000  
+#define SSCR_DMA_PAUSE 0x20000000  
+#define SSCR_PAUSE_STATE 0x40000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SSCR_RESET 0x80000000  
+#define PROD_CONS_PTR_4K 0x00000ff8  
+#define PROD_CONS_PTR_1K 0x000003f8  
+#define PROD_CONS_PTR_OFF 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SRCIR_ARM 0x80000000  
+#define SRPIR_BYTE_CNT 0x07000000  
+#define SRPIR_BYTE_CNT_SHIFT 24
+#define STCIR_BYTE_CNT 0x0f000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STCIR_BYTE_CNT_SHIFT 24
+#define SHADOW_DR 0x00000001  
+#define SHADOW_OE 0x00000002  
+#define SHADOW_PE 0x00000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHADOW_FE 0x00000008  
+#define SHADOW_BI 0x00000010  
+#define SHADOW_THRE 0x00000020  
+#define SHADOW_TEMT 0x00000040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHADOW_RFCE 0x00000080  
+#define SHADOW_DCTS 0x00010000  
+#define SHADOW_DDCD 0x00080000  
+#define SHADOW_CTS 0x00100000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHADOW_DCD 0x00800000  
+#define SHADOW_DTR 0x01000000  
+#define SHADOW_RTS 0x02000000  
+#define SHADOW_OUT1 0x04000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SHADOW_OUT2 0x08000000  
+#define SHADOW_LOOP 0x10000000  
+#define SRTR_CNT 0x00000fff  
+#define SRTR_CNT_VAL 0x0fff0000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SRTR_CNT_VAL_SHIFT 16
+#define SRTR_HZ 16000  
+#define SIO_IR_SA_TX_MT 0x00000001  
+#define SIO_IR_SA_RX_FULL 0x00000002  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_SA_RX_HIGH 0x00000004  
+#define SIO_IR_SA_RX_TIMER 0x00000008  
+#define SIO_IR_SA_DELTA_DCD 0x00000010  
+#define SIO_IR_SA_DELTA_CTS 0x00000020  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_SA_INT 0x00000040  
+#define SIO_IR_SA_TX_EXPLICIT 0x00000080  
+#define SIO_IR_SA_MEMERR 0x00000100  
+#define SIO_IR_SB_TX_MT 0x00000200  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_SB_RX_FULL 0x00000400  
+#define SIO_IR_SB_RX_HIGH 0x00000800  
+#define SIO_IR_SB_RX_TIMER 0x00001000  
+#define SIO_IR_SB_DELTA_DCD 0x00002000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_SB_DELTA_CTS 0x00004000  
+#define SIO_IR_SB_INT 0x00008000  
+#define SIO_IR_SB_TX_EXPLICIT 0x00010000  
+#define SIO_IR_SB_MEMERR 0x00020000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_PP_INT 0x00040000  
+#define SIO_IR_PP_INTA 0x00080000  
+#define SIO_IR_PP_INTB 0x00100000  
+#define SIO_IR_PP_MEMERR 0x00200000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_KBD_INT 0x00400000  
+#define SIO_IR_RT_INT 0x08000000  
+#define SIO_IR_GEN_INT1 0x10000000  
+#define SIO_IR_GEN_INT_SHIFT 28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_IR_SA (SIO_IR_SA_TX_MT | SIO_IR_SA_RX_FULL |   SIO_IR_SA_RX_HIGH | SIO_IR_SA_RX_TIMER |   SIO_IR_SA_DELTA_DCD | SIO_IR_SA_DELTA_CTS |   SIO_IR_SA_INT | SIO_IR_SA_TX_EXPLICIT |   SIO_IR_SA_MEMERR)
+#define SIO_IR_SB (SIO_IR_SB_TX_MT | SIO_IR_SB_RX_FULL |   SIO_IR_SB_RX_HIGH | SIO_IR_SB_RX_TIMER |   SIO_IR_SB_DELTA_DCD | SIO_IR_SB_DELTA_CTS |   SIO_IR_SB_INT | SIO_IR_SB_TX_EXPLICIT |   SIO_IR_SB_MEMERR)
+#define SIO_IR_PP (SIO_IR_PP_INT | SIO_IR_PP_INTA |   SIO_IR_PP_INTB | SIO_IR_PP_MEMERR)
+#define SIO_IR_RT (SIO_IR_RT_INT | SIO_IR_GEN_INT1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_PENDING_INTRS(mem) (PCI_INW(&((mem)->sio_ir)) &   PCI_INW(&((mem)->sio_ies_ro)))
+#define SIO_CR_SIO_RESET 0x00000001  
+#define SIO_CR_SER_A_BASE 0x000000fe  
+#define SIO_CR_SER_A_BASE_SHIFT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_CR_SER_B_BASE 0x00007f00  
+#define SIO_CR_SER_B_BASE_SHIFT 8
+#define SIO_SR_CMD_PULSE 0x00078000  
+#define SIO_CR_CMD_PULSE_SHIFT 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_CR_ARB_DIAG 0x00380000  
+#define SIO_CR_ARB_DIAG_TXA 0x00000000
+#define SIO_CR_ARB_DIAG_RXA 0x00080000
+#define SIO_CR_ARB_DIAG_TXB 0x00100000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIO_CR_ARB_DIAG_RXB 0x00180000
+#define SIO_CR_ARB_DIAG_PP 0x00200000
+#define SIO_CR_ARB_DIAG_IDLE 0x00400000  
+#define INT_OUT_COUNT 0x0000ffff  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_OUT_MODE 0x00070000  
+#define INT_OUT_MODE_0 0x00000000  
+#define INT_OUT_MODE_1 0x00040000  
+#define INT_OUT_MODE_1PULSE 0x00050000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_OUT_MODE_PULSES 0x00060000  
+#define INT_OUT_MODE_SQW 0x00070000  
+#define INT_OUT_DIAG 0x40000000  
+#define INT_OUT_INT_OUT 0x80000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_OUT_NS_PER_TICK (30 * 260)  
+#define INT_OUT_TICKS_PER_PULSE 3  
+#define INT_OUT_US_TO_COUNT(x)     (((x) * 10 + INT_OUT_NS_PER_TICK / 200) *   100 / INT_OUT_NS_PER_TICK - 1)
+#define INT_OUT_COUNT_TO_US(x)     (((x) + 1) * INT_OUT_NS_PER_TICK / 1000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT_OUT_MIN_TICKS 3  
+#define INT_OUT_MAX_TICKS INT_OUT_COUNT  
+#define GPCR_DIR 0x000000ff  
+#define GPCR_DIR_PIN(x) (1<<(x))  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GPCR_EDGE 0x000f0000  
+#define GPCR_EDGE_PIN(x) (1<<((x)+15))  
+#define GPCR_INT_OUT_EN 0x00100000  
+#define GPCR_MLAN_EN 0x00200000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GPCR_DIR_SERA_XCVR 0x00000080  
+#define GPCR_DIR_SERB_XCVR 0x00000040  
+#define GPCR_DIR_PHY_RST 0x00000020  
+#define GPCR_PHY_RESET 0x20  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GPCR_UARTB_MODESEL 0x40  
+#define GPCR_UARTA_MODESEL 0x80  
+#define GPPR_PHY_RESET_PIN 5  
+#define GPPR_UARTB_MODESEL_PIN 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GPPR_UARTA_MODESEL_PIN 7  
+#define EMCR_DUPLEX 0x00000001
+#define EMCR_PROMISC 0x00000002
+#define EMCR_PADEN 0x00000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EMCR_RXOFF_MASK 0x000001f8
+#define EMCR_RXOFF_SHIFT 3
+#define EMCR_RAMPAR 0x00000200
+#define EMCR_BADPAR 0x00000800
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EMCR_BUFSIZ 0x00001000
+#define EMCR_TXDMAEN 0x00002000
+#define EMCR_TXEN 0x00004000
+#define EMCR_RXDMAEN 0x00008000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EMCR_RXEN 0x00010000
+#define EMCR_LOOPBACK 0x00020000
+#define EMCR_ARB_DIAG 0x001c0000
+#define EMCR_ARB_DIAG_IDLE 0x00200000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EMCR_RST 0x80000000
+#define EISR_RXTIMERINT 0x00000001
+#define EISR_RXTHRESHINT 0x00000002
+#define EISR_RXOFLO 0x00000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EISR_RXBUFOFLO 0x00000008
+#define EISR_RXMEMERR 0x00000010
+#define EISR_RXPARERR 0x00000020
+#define EISR_TXEMPTY 0x00010000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EISR_TXRTRY 0x00020000
+#define EISR_TXEXDEF 0x00040000
+#define EISR_TXLCOL 0x00080000
+#define EISR_TXGIANT 0x00100000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EISR_TXBUFUFLO 0x00200000
+#define EISR_TXEXPLICIT 0x00400000
+#define EISR_TXCOLLWRAP 0x00800000
+#define EISR_TXDEFERWRAP 0x01000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EISR_TXMEMERR 0x02000000
+#define EISR_TXPARERR 0x04000000
+#define ERCSR_THRESH_MASK 0x000001ff  
+#define ERCSR_RX_TMR 0x40000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERCSR_DIAG_OFLO 0x80000000  
+#define ERBR_ALIGNMENT 4096
+#define ERBR_L_RXRINGBASE_MASK 0xfffff000
+#define ERBAR_BARRIER_BIT 0x0100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERBAR_RXBARR_MASK 0xffff0000
+#define ERBAR_RXBARR_SHIFT 16
+#define ERCIR_RXCONSUME_MASK 0x00000fff
+#define ERPIR_RXPRODUCE_MASK 0x00000fff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERPIR_ARM 0x80000000
+#define ERTR_CNT_MASK 0x000007ff
+#define ETCSR_IPGT_MASK 0x0000007f
+#define ETCSR_IPGR1_MASK 0x00007f00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETCSR_IPGR1_SHIFT 8
+#define ETCSR_IPGR2_MASK 0x007f0000
+#define ETCSR_IPGR2_SHIFT 16
+#define ETCSR_NOTXCLK 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETCDC_COLLCNT_MASK 0x0000ffff
+#define ETCDC_DEFERCNT_MASK 0xffff0000
+#define ETCDC_DEFERCNT_SHIFT 16
+#define ETBR_ALIGNMENT (64*1024)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETBR_L_RINGSZ_MASK 0x00000001
+#define ETBR_L_RINGSZ128 0
+#define ETBR_L_RINGSZ512 1
+#define ETBR_L_TXRINGBASE_MASK 0xffffc000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETCIR_TXCONSUME_MASK 0x0000ffff
+#define ETCIR_IDLE 0x80000000
+#define ETPIR_TXPRODUCE_MASK 0x0000ffff
+#define EBIR_TXBUFPROD_MASK 0x0000001f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EBIR_TXBUFCONS_MASK 0x00001f00
+#define EBIR_TXBUFCONS_SHIFT 8
+#define EBIR_RXBUFPROD_MASK 0x007fc000
+#define EBIR_RXBUFPROD_SHIFT 14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EBIR_RXBUFCONS_MASK 0xff800000
+#define EBIR_RXBUFCONS_SHIFT 23
+#define MICR_REGADDR_MASK 0x0000001f
+#define MICR_PHYADDR_MASK 0x000003e0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MICR_PHYADDR_SHIFT 5
+#define MICR_READTRIG 0x00000400
+#define MICR_BUSY 0x00000800
+#define MIDR_DATA_MASK 0x0000ffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_IPCKSUM_MASK 0x0000ffff
+#define ERXBUF_BYTECNT_MASK 0x07ff0000
+#define ERXBUF_BYTECNT_SHIFT 16
+#define ERXBUF_V 0x80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_CRCERR 0x00000001  
+#define ERXBUF_FRAMERR 0x00000002  
+#define ERXBUF_CODERR 0x00000004  
+#define ERXBUF_INVPREAMB 0x00000008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_LOLEN 0x00007000  
+#define ERXBUF_HILEN 0x03ff0000  
+#define ERXBUF_MULTICAST 0x04000000  
+#define ERXBUF_BROADCAST 0x08000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERXBUF_LONGEVENT 0x10000000  
+#define ERXBUF_BADPKT 0x20000000  
+#define ERXBUF_GOODPKT 0x40000000  
+#define ERXBUF_CARRIER 0x80000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_BYTECNT_MASK 0x000007ff  
+#define ETXD_INTWHENDONE 0x00001000  
+#define ETXD_D0V 0x00010000  
+#define ETXD_B1V 0x00020000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_B2V 0x00040000  
+#define ETXD_DOCHECKSUM 0x00080000  
+#define ETXD_CHKOFF_MASK 0x07f00000  
+#define ETXD_CHKOFF_SHIFT 20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_D0CNT_MASK 0x0000007f
+#define ETXD_B1CNT_MASK 0x0007ff00
+#define ETXD_B1CNT_SHIFT 8
+#define ETXD_B2CNT_MASK 0x7ff00000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ETXD_B2CNT_SHIFT 20
+typedef enum ioc3_subdevs_e {
+ ioc3_subdev_ether,
+ ioc3_subdev_generic,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ioc3_subdev_nic,
+ ioc3_subdev_kbms,
+ ioc3_subdev_ttya,
+ ioc3_subdev_ttyb,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ioc3_subdev_ecpp,
+ ioc3_subdev_rt,
+ ioc3_nsubdevs
+} ioc3_subdev_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_SDB_ETHER (1<<ioc3_subdev_ether)
+#define IOC3_SDB_GENERIC (1<<ioc3_subdev_generic)
+#define IOC3_SDB_NIC (1<<ioc3_subdev_nic)
+#define IOC3_SDB_KBMS (1<<ioc3_subdev_kbms)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_SDB_TTYA (1<<ioc3_subdev_ttya)
+#define IOC3_SDB_TTYB (1<<ioc3_subdev_ttyb)
+#define IOC3_SDB_ECPP (1<<ioc3_subdev_ecpp)
+#define IOC3_SDB_RT (1<<ioc3_subdev_rt)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_ALL_SUBDEVS ((1<<ioc3_nsubdevs)-1)
+#define IOC3_SDB_SERIAL (IOC3_SDB_TTYA|IOC3_SDB_TTYB)
+#define IOC3_STD_SUBDEVS IOC3_ALL_SUBDEVS
+#define IOC3_INTA_SUBDEVS IOC3_SDB_ETHER
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IOC3_INTB_SUBDEVS (IOC3_SDB_GENERIC|IOC3_SDB_KBMS|IOC3_SDB_SERIAL|IOC3_SDB_ECPP|IOC3_SDB_RT)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/kldir.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/kldir.h
new file mode 100644
index 0000000..6c663ca
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/kldir.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_KLDIR_H
+#define _ASM_SN_KLDIR_H
+#define KLDIR_MAGIC 0x434d5f53505f5357
+#ifdef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLDIR_OFF_MAGIC 0x00
+#define KLDIR_OFF_OFFSET 0x08
+#define KLDIR_OFF_POINTER 0x10
+#define KLDIR_OFF_SIZE 0x18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KLDIR_OFF_COUNT 0x20
+#define KLDIR_OFF_STRIDE 0x28
+#endif
+#define SYMMON_STACK_SIZE 0x8000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifdef PROM
+#define IP27_LAUNCH_OFFSET 0x2400
+#define IP27_LAUNCH_SIZE 0x400
+#define IP27_LAUNCH_COUNT 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_LAUNCH_STRIDE 0x200
+#define IP27_KLCONFIG_OFFSET 0x4000
+#define IP27_KLCONFIG_SIZE 0xc000
+#define IP27_KLCONFIG_COUNT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_KLCONFIG_STRIDE 0
+#define IP27_NMI_OFFSET 0x3000
+#define IP27_NMI_SIZE 0x40
+#define IP27_NMI_COUNT 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_NMI_STRIDE 0x40
+#define IP27_PI_ERROR_OFFSET 0x12000
+#define IP27_PI_ERROR_SIZE 0x4000
+#define IP27_PI_ERROR_COUNT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_PI_ERROR_STRIDE 0
+#define IP27_SYMMON_STK_OFFSET 0x25000
+#define IP27_SYMMON_STK_SIZE 0xe000
+#define IP27_SYMMON_STK_COUNT 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_SYMMON_STK_STRIDE 0x7000
+#define IP27_FREEMEM_OFFSET 0x19000
+#define IP27_FREEMEM_SIZE -1
+#define IP27_FREEMEM_COUNT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_FREEMEM_STRIDE 0
+#endif
+#define IO6_GDA_OFFSET 0x11000
+#define IO6_GDA_SIZE 0x400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO6_GDA_COUNT 1
+#define IO6_GDA_STRIDE 0
+#define IP27_NMI_KREGS_OFFSET 0x11400
+#define IP27_NMI_KREGS_CPU_SIZE 0x200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27_NMI_EFRAME_OFFSET 0x11800
+#define IP27_NMI_EFRAME_SIZE 0x200
+#define KLDIR_ENT_SIZE 0x40
+#define KLDIR_MAX_ENTRIES (0x400 / 0x40)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+typedef struct kldir_ent_s {
+ u64 magic;
+ off_t offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long pointer;
+ size_t size;
+ u64 count;
+ size_t stride;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char rsvd[16];
+} kldir_ent_t;
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/klkernvars.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/klkernvars.h
new file mode 100644
index 0000000..a0c7512
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/klkernvars.h
@@ -0,0 +1,39 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_SN_KLKERNVARS_H
+#define __ASM_SN_KLKERNVARS_H
+#define KV_MAGIC_OFFSET 0x0
+#define KV_RO_NASID_OFFSET 0x4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KV_RW_NASID_OFFSET 0x6
+#define KV_MAGIC 0x5f4b565f
+#ifndef __ASSEMBLY__
+#include <asm/sn/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct kern_vars_s {
+ int kv_magic;
+ nasid_t kv_ro_nasid;
+ nasid_t kv_rw_nasid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long kv_ro_baseaddr;
+ unsigned long kv_rw_baseaddr;
+} kern_vars_t;
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/addrs.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/addrs.h
new file mode 100644
index 0000000..5c056ed
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/addrs.h
@@ -0,0 +1,174 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_SN0_ADDRS_H
+#define _ASM_SN_SN0_ADDRS_H
+#define NODE_SIZE_BITS 32
+#define BWIN_SIZE_BITS 29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NASID_BITMASK (0xffLL)
+#define NASID_BITS 8
+#define NASID_SHFT 32
+#define NASID_META_BITS 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NASID_LOCAL_BITS 4
+#define BDDIR_UPPER_MASK (UINT64_CAST 0xfffff << 10)
+#define BDECC_UPPER_MASK (UINT64_CAST 0x7ffffff << 3)
+#define NODE_ADDRSPACE_SIZE (UINT64_CAST 1 << NODE_SIZE_BITS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NASID_MASK (UINT64_CAST NASID_BITMASK << NASID_SHFT)
+#define NASID_GET(_pa) (int) ((UINT64_CAST (_pa) >>   NASID_SHFT) & NASID_BITMASK)
+#ifndef __ASSEMBLY__
+#define NODE_SWIN_BASE(nasid, widget)   ((widget == 0) ? NODE_BWIN_BASE((nasid), SWIN0_BIGWIN)   : RAW_NODE_SWIN_BASE(nasid, widget))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define NODE_SWIN_BASE(nasid, widget)   (NODE_IO_BASE(nasid) + (UINT64_CAST(widget) << SWIN_SIZE_BITS))
+#endif
+#define BWIN_INDEX_BITS 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BWIN_SIZE (UINT64_CAST 1 << BWIN_SIZE_BITS)
+#define BWIN_SIZEMASK (BWIN_SIZE - 1)
+#define BWIN_WIDGET_MASK 0x7
+#define NODE_BWIN_BASE0(nasid) (NODE_IO_BASE(nasid) + BWIN_SIZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NODE_BWIN_BASE(nasid, bigwin) (NODE_BWIN_BASE0(nasid) +   (UINT64_CAST(bigwin) << BWIN_SIZE_BITS))
+#define BWIN_WIDGETADDR(addr) ((addr) & BWIN_SIZEMASK)
+#define BWIN_WINDOWNUM(addr) (((addr) >> BWIN_SIZE_BITS) & BWIN_WIDGET_MASK)
+#define NODE_BWIN_ADDR(nasid, addr)   (((addr) >= NODE_BWIN_BASE0(nasid)) &&   ((addr) < (NODE_BWIN_BASE(nasid, HUB_NUM_BIG_WINDOW) +   BWIN_SIZE)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CALIAS_BASE CAC_BASE
+#define BRIDGE_REG_PTR(_base, _off) ((volatile bridgereg_t *)   ((__psunsigned_t)(_base) + (__psunsigned_t)(_off)))
+#define SN0_WIDGET_BASE(_nasid, _wid) (NODE_SWIN_BASE((_nasid), (_wid)))
+#define SABLE_LOG_TRIGGER(_map)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+#define KERN_NMI_ADDR(nasid, slice)   TO_NODE_UNCAC((nasid), IP27_NMI_KREGS_OFFSET +   (IP27_NMI_KREGS_CPU_SIZE * (slice)))
+#endif
+#ifdef PROM
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MISC_PROM_BASE PHYS_TO_K0(0x01300000)
+#define MISC_PROM_SIZE 0x200000
+#define DIAG_BASE PHYS_TO_K0(0x01500000)
+#define DIAG_SIZE 0x300000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ROUTE_BASE PHYS_TO_K0(0x01800000)
+#define ROUTE_SIZE 0x200000
+#define IP27PROM_FLASH_HDR PHYS_TO_K0(0x01300000)
+#define IP27PROM_FLASH_DATA PHYS_TO_K0(0x01301000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_CORP_MAX 32
+#define IP27PROM_CORP PHYS_TO_K0(0x01800000)
+#define IP27PROM_CORP_SIZE 0x10000
+#define IP27PROM_CORP_STK PHYS_TO_K0(0x01810000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_CORP_STKSIZE 0x2000
+#define IP27PROM_DECOMP_BUF PHYS_TO_K0(0x01900000)
+#define IP27PROM_DECOMP_SIZE 0xfff00
+#define IP27PROM_BASE PHYS_TO_K0(0x01a00000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_BASE_MAPPED (UNCAC_BASE | 0x1fc00000)
+#define IP27PROM_SIZE_MAX 0x100000
+#define IP27PROM_PCFG PHYS_TO_K0(0x01b00000)
+#define IP27PROM_PCFG_SIZE 0xd0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_ERRDMP PHYS_TO_K1(0x01bd0000)
+#define IP27PROM_ERRDMP_SIZE 0xf000
+#define IP27PROM_INIT_START PHYS_TO_K1(0x01bd0000)
+#define IP27PROM_CONSOLE PHYS_TO_K1(0x01bdf000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_CONSOLE_SIZE 0x200
+#define IP27PROM_NETUART PHYS_TO_K1(0x01bdf200)
+#define IP27PROM_NETUART_SIZE 0x100
+#define IP27PROM_UNUSED1 PHYS_TO_K1(0x01bdf300)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_UNUSED1_SIZE 0x500
+#define IP27PROM_ELSC_BASE_A PHYS_TO_K0(0x01bdf800)
+#define IP27PROM_ELSC_BASE_B PHYS_TO_K0(0x01bdfc00)
+#define IP27PROM_STACK_A PHYS_TO_K0(0x01be0000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_STACK_B PHYS_TO_K0(0x01bf0000)
+#define IP27PROM_STACK_SHFT 16
+#define IP27PROM_STACK_SIZE (1 << IP27PROM_STACK_SHFT)
+#define IP27PROM_INIT_END PHYS_TO_K0(0x01c00000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SLAVESTACK_BASE PHYS_TO_K0(0x01580000)
+#define SLAVESTACK_SIZE 0x40000
+#define ENETBUFS_BASE PHYS_TO_K0(0x01f80000)
+#define ENETBUFS_SIZE 0x20000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO6PROM_BASE PHYS_TO_K0(0x01c00000)
+#define IO6PROM_SIZE 0x400000
+#define IO6PROM_BASE_MAPPED (UNCAC_BASE | 0x11c00000)
+#define IO6DPROM_BASE PHYS_TO_K0(0x01c00000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IO6DPROM_SIZE 0x200000
+#define NODEBUGUNIX_ADDR PHYS_TO_K0(0x00019000)
+#define DEBUGUNIX_ADDR PHYS_TO_K0(0x00100000)
+#define IP27PROM_INT_LAUNCH 10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_INT_NETUART 12  
+#endif
+#define IP27PROM_ELSC_SHFT 10
+#define IP27PROM_ELSC_SIZE (1 << IP27PROM_ELSC_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FREEMEM_BASE PHYS_TO_K0(0x2000000)
+#define IO6PROM_STACK_SHFT 14  
+#define IO6PROM_STACK_SIZE (1 << IO6PROM_STACK_SHFT)
+#define IP27PROM_ENTRY PHYS_TO_COMPATK1(0x1fc00000)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_RESTART PHYS_TO_COMPATK1(0x1fc00008)
+#define IP27PROM_SLAVELOOP PHYS_TO_COMPATK1(0x1fc00010)
+#define IP27PROM_PODMODE PHYS_TO_COMPATK1(0x1fc00018)
+#define IP27PROM_IOC3UARTPOD PHYS_TO_COMPATK1(0x1fc00020)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_FLASHLEDS PHYS_TO_COMPATK1(0x1fc00028)
+#define IP27PROM_REPOD PHYS_TO_COMPATK1(0x1fc00030)
+#define IP27PROM_LAUNCHSLAVE PHYS_TO_COMPATK1(0x1fc00038)
+#define IP27PROM_WAITSLAVE PHYS_TO_COMPATK1(0x1fc00040)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IP27PROM_POLLSLAVE PHYS_TO_COMPATK1(0x1fc00048)
+#define KL_UART_BASE LOCAL_HUB_ADDR(MD_UREG0_0)  
+#define KL_UART_CMD LOCAL_HUB_ADDR(MD_UREG0_0)  
+#define KL_UART_DATA LOCAL_HUB_ADDR(MD_UREG0_1)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KL_I2C_REG MD_UREG0_0  
+#ifndef __ASSEMBLY__
+#ifdef HUB_ERR_STS_WAR
+#define CACHE_ERR_EFRAME 0x480
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#else
+#define CACHE_ERR_EFRAME 0x400
+#endif
+#define CACHE_ERR_ECCFRAME (CACHE_ERR_EFRAME + EF_SIZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CACHE_ERR_SP_PTR (0x1000 - 32)  
+#define CACHE_ERR_IBASE_PTR (0x1000 - 40)
+#define CACHE_ERR_SP (CACHE_ERR_SP_PTR - 16)
+#define CACHE_ERR_AREA_SIZE (ARCS_SPB_OFFSET - CACHE_ERR_EFRAME)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define _ARCSPROM
+#ifdef HUB_ERR_STS_WAR
+#define ERR_STS_WAR_REGISTER IIO_IIBUSERR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERR_STS_WAR_ADDR LOCAL_HUB_ADDR(IIO_IIBUSERR)
+#define ERR_STS_WAR_PHYSADDR TO_PHYS((__psunsigned_t)ERR_STS_WAR_ADDR)
+#define OLD_ERR_STS_WAR_OFFSET ((MD_MEM_BANKS * MD_BANK_SIZE) - 0x100)
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubio.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubio.h
new file mode 100644
index 0000000..f593233
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubio.h
@@ -0,0 +1,788 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SGI_SN_SN0_HUBIO_H
+#define _ASM_SGI_SN_SN0_HUBIO_H
+#define IIO_WIDGET IIO_WID  
+#define IIO_WIDGET_STAT IIO_WSTAT  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_WIDGET_CTRL IIO_WCR  
+#define IIO_WIDGET_TOUT IIO_WRTO  
+#define IIO_WIDGET_FLUSH IIO_WTFR  
+#define IIO_PROTECT IIO_ILAPR  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_PROTECT_OVRRD IIO_ILAPO  
+#define IIO_OUTWIDGET_ACCESS IIO_IOWA  
+#define IIO_INWIDGET_ACCESS IIO_IIWA  
+#define IIO_INDEV_ERR_MASK IIO_IIDEM  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_LLP_CSR IIO_ILCSR  
+#define IIO_LLP_LOG IIO_ILLR  
+#define IIO_XTALKCC_TOUT IIO_IXCC  
+#define IIO_XTALKTT_TOUT IIO_IXTT  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IO_ERR_CLR IIO_IECLR  
+#define IIO_BTE_CRB_CNT IIO_IBCN  
+#define IIO_LLP_CSR_IS_UP 0x00002000
+#define IIO_LLP_CSR_LLP_STAT_MASK 0x00003000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_LLP_CSR_LLP_STAT_SHFT 12
+#define IIO_PROTECT_OVRRD_KEY 0x53474972756c6573ull  
+#define IIO_BTE_STAT_0 IIO_IBLS_0  
+#define IIO_BTE_SRC_0 IIO_IBSA_0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_BTE_DEST_0 IIO_IBDA_0  
+#define IIO_BTE_CTRL_0 IIO_IBCT_0  
+#define IIO_BTE_NOTIFY_0 IIO_IBNA_0  
+#define IIO_BTE_INT_0 IIO_IBIA_0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_BTE_OFF_0 0  
+#define IIO_BTE_OFF_1 IIO_IBLS_1 - IIO_IBLS_0  
+#define BTEOFF_STAT 0
+#define BTEOFF_SRC (IIO_BTE_SRC_0 - IIO_BTE_STAT_0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BTEOFF_DEST (IIO_BTE_DEST_0 - IIO_BTE_STAT_0)
+#define BTEOFF_CTRL (IIO_BTE_CTRL_0 - IIO_BTE_STAT_0)
+#define BTEOFF_NOTIFY (IIO_BTE_NOTIFY_0 - IIO_BTE_STAT_0)
+#define BTEOFF_INT (IIO_BTE_INT_0 - IIO_BTE_STAT_0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_BASE 0x400000
+#define IIO_BASE_BTE0 0x410000
+#define IIO_BASE_BTE1 0x420000
+#define IIO_BASE_PERF 0x430000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_PERF_CNT 0x430008
+#define IO_PERF_SETS 32
+#define IIO_WID 0x400000  
+#define IIO_WSTAT 0x400008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_WCR 0x400020  
+#define IIO_WSTAT_ECRAZY (1ULL << 32)  
+#define IIO_WSTAT_TXRETRY (1ULL << 9)  
+#define IIO_WSTAT_TXRETRY_MASK (0x7F)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_WSTAT_TXRETRY_SHFT (16)
+#define IIO_WSTAT_TXRETRY_CNT(w) (((w) >> IIO_WSTAT_TXRETRY_SHFT) &   IIO_WSTAT_TXRETRY_MASK)
+#define IIO_ILAPR 0x400100  
+#define IIO_ILAPO 0x400108  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IOWA 0x400110  
+#define IIO_IIWA 0x400118  
+#define IIO_IIDEM 0x400120  
+#define IIO_ILCSR 0x400128  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ILLR 0x400130  
+#define IIO_IIDSR 0x400138  
+#define IIO_IIBUSERR 0x1400208  
+#define IIO_IIDSR_SENT_SHIFT 28
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IIDSR_SENT_MASK 0x10000000
+#define IIO_IIDSR_ENB_SHIFT 24
+#define IIO_IIDSR_ENB_MASK 0x01000000
+#define IIO_IIDSR_NODE_SHIFT 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IIDSR_NODE_MASK 0x0000ff00
+#define IIO_IIDSR_LVL_SHIFT 0
+#define IIO_IIDSR_LVL_MASK 0x0000003f
+#define IIO_IGFX_0 0x400140  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IGFX_1 0x400148  
+#define IIO_IGFX_W_NUM_BITS 4  
+#define IIO_IGFX_W_NUM_MASK ((1<<IIO_IGFX_W_NUM_BITS)-1)
+#define IIO_IGFX_W_NUM_SHIFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IGFX_N_NUM_BITS 9  
+#define IIO_IGFX_N_NUM_MASK ((1<<IIO_IGFX_N_NUM_BITS)-1)
+#define IIO_IGFX_N_NUM_SHIFT 4
+#define IIO_IGFX_P_NUM_BITS 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IGFX_P_NUM_MASK ((1<<IIO_IGFX_P_NUM_BITS)-1)
+#define IIO_IGFX_P_NUM_SHIFT 16
+#define IIO_IGFX_VLD_BITS 1  
+#define IIO_IGFX_VLD_MASK ((1<<IIO_IGFX_VLD_BITS)-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IGFX_VLD_SHIFT 20
+#define IIO_IGFX_INIT(widget, node, cpu, valid) (  (((widget) & IIO_IGFX_W_NUM_MASK) << IIO_IGFX_W_NUM_SHIFT) |   (((node) & IIO_IGFX_N_NUM_MASK) << IIO_IGFX_N_NUM_SHIFT) |   (((cpu) & IIO_IGFX_P_NUM_MASK) << IIO_IGFX_P_NUM_SHIFT) |   (((valid) & IIO_IGFX_VLD_MASK) << IIO_IGFX_VLD_SHIFT) )
+#define IIO_SCRATCH_REG0 0x400150
+#define IIO_SCRATCH_REG1 0x400158
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_SCRATCH_MASK 0x0000000f00f11fff
+#define IIO_SCRATCH_BIT0_0 0x0000000800000000
+#define IIO_SCRATCH_BIT0_1 0x0000000400000000
+#define IIO_SCRATCH_BIT0_2 0x0000000200000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_SCRATCH_BIT0_3 0x0000000100000000
+#define IIO_SCRATCH_BIT0_4 0x0000000000800000
+#define IIO_SCRATCH_BIT0_5 0x0000000000400000
+#define IIO_SCRATCH_BIT0_6 0x0000000000200000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_SCRATCH_BIT0_7 0x0000000000100000
+#define IIO_SCRATCH_BIT0_8 0x0000000000010000
+#define IIO_SCRATCH_BIT0_9 0x0000000000001000
+#define IIO_SCRATCH_BIT0_R 0x0000000000000fff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_NUM_ITTES 7  
+#define HUB_NUM_BIG_WINDOW IIO_NUM_ITTES - 1
+#define SWIN0_BIGWIN HUB_NUM_BIG_WINDOW
+#define ILCSR_WARM_RESET 0x100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+typedef union hubii_wid_u {
+ u64 wid_reg_value;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 wid_rsvd: 32,
+ wid_rev_num: 4,
+ wid_part_num: 16,
+ wid_mfg_num: 11,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ wid_rsvd1: 1;
+ } wid_fields_s;
+} hubii_wid_t;
+typedef union hubii_wcr_u {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 wcr_reg_value;
+ struct {
+ u64 wcr_rsvd: 41,
+ wcr_e_thresh: 5,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ wcr_dir_con: 1,
+ wcr_f_bad_pkt: 1,
+ wcr_xbar_crd: 3,
+ wcr_rsvd1: 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ wcr_tag_mode: 1,
+ wcr_widget_id: 4;
+ } wcr_fields_s;
+} hubii_wcr_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iwcr_dir_con wcr_fields_s.wcr_dir_con
+typedef union hubii_wstat_u {
+ u64 reg_value;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 rsvd1: 31,
+ crazy: 1,
+ rsvd2: 8,
+ llp_tx_cnt: 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd3: 6,
+ tx_max_rtry: 1,
+ rsvd4: 2,
+ xt_tail_to: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ xt_crd_to: 1,
+ pending: 4;
+ } wstat_fields_s;
+} hubii_wstat_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union hubii_ilcsr_u {
+ u64 icsr_reg_value;
+ struct {
+ u64 icsr_rsvd: 22,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ icsr_max_burst: 10,
+ icsr_rsvd4: 6,
+ icsr_max_retry: 10,
+ icsr_rsvd3: 2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ icsr_lnk_stat: 2,
+ icsr_bm8: 1,
+ icsr_llp_en: 1,
+ icsr_rsvd2: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ icsr_wrm_reset: 1,
+ icsr_rsvd1: 2,
+ icsr_null_to: 6;
+ } icsr_fields_s;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} hubii_ilcsr_t;
+typedef union hubii_iowa_u {
+ u64 iowa_reg_value;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 iowa_rsvd: 48,
+ iowa_wxoac: 8,
+ iowa_rsvd1: 7,
+ iowa_w0oac: 1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } iowa_fields_s;
+} hubii_iowa_t;
+typedef union hubii_iiwa_u {
+ u64 iiwa_reg_value;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ u64 iiwa_rsvd: 48,
+ iiwa_wxiac: 8,
+ iiwa_rsvd1: 7,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ iiwa_w0iac: 1;
+ } iiwa_fields_s;
+} hubii_iiwa_t;
+typedef union hubii_illr_u {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 illr_reg_value;
+ struct {
+ u64 illr_rsvd: 32,
+ illr_cb_cnt: 16,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ illr_sn_cnt: 16;
+ } illr_fields_s;
+} hubii_illr_t;
+typedef union io_perf_sel {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 perf_sel_reg;
+ struct {
+ u64 perf_rsvd : 48,
+ perf_icct : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ perf_ippr1 : 4,
+ perf_ippr0 : 4;
+ } perf_sel_bits;
+} io_perf_sel_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union io_perf_cnt {
+ u64 perf_cnt;
+ struct {
+ u64 perf_rsvd1 : 32,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ perf_rsvd2 : 12,
+ perf_cnt : 20;
+ } perf_cnt_bits;
+} io_perf_cnt_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define LNK_STAT_WORKING 0x2
+#define IIO_LLP_CB_MAX 0xffff
+#define IIO_LLP_SN_MAX 0xffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_NUM_IPRBS (9)
+#define IIO_IOPRB_0 0x400198  
+#define IIO_IOPRB_8 0x4001a0  
+#define IIO_IOPRB_9 0x4001a8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IOPRB_A 0x4001b0  
+#define IIO_IOPRB_B 0x4001b8  
+#define IIO_IOPRB_C 0x4001c0  
+#define IIO_IOPRB_D 0x4001c8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IOPRB_E 0x4001d0  
+#define IIO_IOPRB_F 0x4001d8  
+#define IIO_IXCC 0x4001e0  
+#define IIO_IXTCC IIO_IXCC
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IMEM 0x4001e8  
+#define IIO_IXTT 0x4001f0  
+#define IIO_IECLR 0x4001f8  
+#define IIO_IBCN 0x400200  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IMEM_W0ESD 0x1  
+#define IIO_IMEM_B0ESD (1 << 4)  
+#define IIO_IMEM_B1ESD (1 << 8)  
+#define IIO_IPCA 0x400300  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_NUM_PRTES 8  
+#define IIO_PRTE_0 0x400308  
+#define IIO_PRTE(_x) (IIO_PRTE_0 + (8 * (_x)))
+#define IIO_WIDPRTE(x) IIO_PRTE(((x) - 8))  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IPDR 0x400388  
+#define IIO_ICDR 0x400390  
+#define IIO_IFDR 0x400398  
+#define IIO_IIAP 0x4003a0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IMMR IIO_IIAP
+#define IIO_ICMR 0x4003a8  
+#define IIO_ICCR 0x4003b0  
+#define IIO_ICTO 0x4003b8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICTP 0x4003c0  
+#define IIO_ICMR_PC_VLD_SHFT 36
+#define IIO_ICMR_PC_VLD_MASK (0x7fffUL << IIO_ICMR_PC_VLD_SHFT)
+#define IIO_ICMR_CRB_VLD_SHFT 20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICMR_CRB_VLD_MASK (0x7fffUL << IIO_ICMR_CRB_VLD_SHFT)
+#define IIO_ICMR_FC_CNT_SHFT 16
+#define IIO_ICMR_FC_CNT_MASK (0xf << IIO_ICMR_FC_CNT_SHFT)
+#define IIO_ICMR_C_CNT_SHFT 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICMR_C_CNT_MASK (0xf << IIO_ICMR_C_CNT_SHFT)
+#define IIO_ICMR_P_CNT_SHFT 0
+#define IIO_ICMR_P_CNT_MASK (0xf << IIO_ICMR_P_CNT_SHFT)
+#define IIO_ICMR_PRECISE (1UL << 52)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICMR_CLR_RPPD (1UL << 13)
+#define IIO_ICMR_CLR_RQPD (1UL << 12)
+#define IIO_IPDR_PND (1 << 4)
+#define IIO_ICDR_PND (1 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICCR_PENDING (0x10000)
+#define IIO_ICCR_CMD_MASK (0xFF)
+#define IIO_ICCR_CMD_SHFT (7)
+#define IIO_ICCR_CMD_NOP (0x0)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICCR_CMD_WAKE (0x100)  
+#define IIO_ICCR_CMD_TIMEOUT (0x200)  
+#define IIO_ICCR_CMD_EJECT (0x400)  
+#define IIO_ICCR_CMD_FLUSH (0x800)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_NUM_CRBS 15  
+#define IIO_NUM_NORMAL_CRBS 12  
+#define IIO_NUM_PC_CRBS 4  
+#define IIO_ICRB_OFFSET 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_0 0x400400
+#define IIO_ICRB_A(_x) (IIO_ICRB_0 + (4 * IIO_ICRB_OFFSET * (_x)))
+#define IIO_ICRB_B(_x) (IIO_ICRB_A(_x) + 1*IIO_ICRB_OFFSET)
+#define IIO_ICRB_C(_x) (IIO_ICRB_A(_x) + 2*IIO_ICRB_OFFSET)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_D(_x) (IIO_ICRB_A(_x) + 3*IIO_ICRB_OFFSET)
+#ifndef __ASSEMBLY__
+typedef union icrba_u {
+ u64 reg_value;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ u64 resvd: 6,
+ stall_bte0: 1,
+ stall_bte1: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ error: 1,
+ ecode: 3,
+ lnetuce: 1,
+ mark: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ xerr: 1,
+ sidn: 4,
+ tnum: 5,
+ addr: 38,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ valid: 1,
+ iow: 1;
+ } icrba_fields_s;
+} icrba_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union h1_icrba_u {
+ u64 reg_value;
+ struct {
+ u64 resvd: 6,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unused: 1,
+ error: 1,
+ ecode: 4,
+ lnetuce: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ mark: 1,
+ xerr: 1,
+ sidn: 4,
+ tnum: 5,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ addr: 38,
+ valid: 1,
+ iow: 1;
+ } h1_icrba_fields_s;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} h1_icrba_t;
+#define ICRBN_A_CERR_SHFT 54
+#define ICRBN_A_ERR_MASK 0x3ff
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_ADDR_SHFT 2  
+#define IIO_ICRB_ECODE_DERR 0  
+#define IIO_ICRB_ECODE_PERR 1  
+#define IIO_ICRB_ECODE_WERR 2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_ECODE_AERR 3  
+#define IIO_ICRB_ECODE_PWERR 4  
+#define IIO_ICRB_ECODE_PRERR 5  
+#define IIO_ICRB_ECODE_TOUT 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_ECODE_XTERR 7  
+#ifndef __ASSEMBLY__
+typedef union icrbb_u {
+ u64 reg_value;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ u64 rsvd1: 5,
+ btenum: 1,
+ cohtrans: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ xtsize: 2,
+ srcnode: 9,
+ srcinit: 2,
+ useold: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ imsgtype: 2,
+ imsg: 8,
+ initator: 3,
+ reqtype: 5,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd2: 7,
+ ackcnt: 11,
+ resp: 1,
+ ack: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ hold: 1,
+ wb_pend:1,
+ intvn: 1,
+ stall_ib: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ stall_intr: 1;
+ } icrbb_field_s;
+} icrbb_t;
+typedef union h1_icrbb_u {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 reg_value;
+ struct {
+ u64 rsvd1: 5,
+ btenum: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ cohtrans: 1,
+ xtsize: 2,
+ srcnode: 9,
+ srcinit: 2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ useold: 1,
+ imsgtype: 2,
+ imsg: 8,
+ initator: 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd2: 1,
+ pcache: 1,
+ reqtype: 5,
+ stl_ib: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ stl_intr: 1,
+ stl_bte0: 1,
+ stl_bte1: 1,
+ intrvn: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ackcnt: 11,
+ resp: 1,
+ ack: 1,
+ hold: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ wb_pend:1,
+ sleep: 1,
+ pnd_reply: 1,
+ pnd_req: 1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } h1_icrbb_field_s;
+} h1_icrbb_t;
+#define b_imsgtype icrbb_field_s.imsgtype
+#define b_btenum icrbb_field_s.btenum
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define b_cohtrans icrbb_field_s.cohtrans
+#define b_xtsize icrbb_field_s.xtsize
+#define b_srcnode icrbb_field_s.srcnode
+#define b_srcinit icrbb_field_s.srcinit
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define b_imsgtype icrbb_field_s.imsgtype
+#define b_imsg icrbb_field_s.imsg
+#define b_initiator icrbb_field_s.initiator
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_XTSIZE_DW 0  
+#define IIO_ICRB_XTSIZE_32 1  
+#define IIO_ICRB_XTSIZE_128 2  
+#define IIO_ICRB_PROC0 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_PROC1 1  
+#define IIO_ICRB_GB_REQ 2  
+#define IIO_ICRB_IO_REQ 3  
+#define IIO_ICRB_IMSGT_XTALK 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_IMSGT_BTE 1  
+#define IIO_ICRB_IMSGT_SN0NET 2  
+#define IIO_ICRB_IMSGT_CRB 3  
+#define IIO_ICRB_INIT_XTALK 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_INIT_BTE0 0x1  
+#define IIO_ICRB_INIT_SN0NET 0x2  
+#define IIO_ICRB_INIT_CRB 0x3  
+#define IIO_ICRB_INIT_BTE1 0x5  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_REQ_DWRD 0  
+#define IIO_ICRB_REQ_QCLRD 1  
+#define IIO_ICRB_REQ_BLKRD 2  
+#define IIO_ICRB_REQ_RSHU 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_REQ_REXU 7  
+#define IIO_ICRB_REQ_RDEX 8  
+#define IIO_ICRB_REQ_WINC 9  
+#define IIO_ICRB_REQ_BWINV 10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_REQ_PIORD 11  
+#define IIO_ICRB_REQ_PIOWR 12  
+#define IIO_ICRB_REQ_PRDM 13  
+#define IIO_ICRB_REQ_PWRM 14  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_ICRB_REQ_PTPWR 15  
+#define IIO_ICRB_REQ_WB 16  
+#define IIO_ICRB_REQ_DEX 17  
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union icrbc_s {
+ u64 reg_value;
+ struct {
+ u64 rsvd: 6,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sleep: 1,
+ pricnt: 4,
+ pripsc: 4,
+ bteop: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ push_be: 34,
+ suppl: 11,
+ barrop: 1,
+ doresp: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ gbr: 1;
+ } icrbc_field_s;
+} icrbc_t;
+#define c_pricnt icrbc_field_s.pricnt
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define c_pripsc icrbc_field_s.pripsc
+#define c_bteop icrbc_field_s.bteop
+#define c_bteaddr icrbc_field_s.push_be  
+#define c_benable icrbc_field_s.push_be  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define c_suppl icrbc_field_s.suppl
+#define c_barrop icrbc_field_s.barrop
+#define c_doresp icrbc_field_s.doresp
+#define c_gbr icrbc_field_s.gbr
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef __ASSEMBLY__
+typedef union icrbd_s {
+ u64 reg_value;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct {
+ u64 rsvd: 38,
+ toutvld: 1,
+ ctxtvld: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd2: 1,
+ context: 15,
+ timeout: 8;
+ } icrbd_field_s;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} icrbd_t;
+#define icrbd_toutvld icrbd_field_s.toutvld
+#define icrbd_ctxtvld icrbd_field_s.ctxtvld
+#define icrbd_context icrbd_field_s.context
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union hubii_ifdr_u {
+ u64 hi_ifdr_value;
+ struct {
+ u64 ifdr_rsvd: 49,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ifdr_maxrp: 7,
+ ifdr_rsvd1: 1,
+ ifdr_maxrq: 7;
+ } hi_ifdr_fields;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} hubii_ifdr_t;
+#endif
+#define IIO_IBLS_0 0x410000  
+#define IIO_IBSA_0 0x410008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IBDA_0 0x410010  
+#define IIO_IBCT_0 0x410018  
+#define IIO_IBNA_0 0x410020  
+#define IIO_IBNR_0 IIO_IBNA_0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IBIA_0 0x410028  
+#define IIO_IBLS_1 0x420000  
+#define IIO_IBSA_1 0x420008  
+#define IIO_IBDA_1 0x420010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IBCT_1 0x420018  
+#define IIO_IBNA_1 0x420020  
+#define IIO_IBNR_1 IIO_IBNA_1
+#define IIO_IBIA_1 0x420028  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_IPCR 0x430000  
+#define IIO_IPPR 0x430008  
+#define IECLR_BTE1 (1 << 18)  
+#define IECLR_BTE0 (1 << 17)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IECLR_CRAZY (1 << 16)  
+#define IECLR_PRB_F (1 << 15)  
+#define IECLR_PRB_E (1 << 14)  
+#define IECLR_PRB_D (1 << 13)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IECLR_PRB_C (1 << 12)  
+#define IECLR_PRB_B (1 << 11)  
+#define IECLR_PRB_A (1 << 10)  
+#define IECLR_PRB_9 (1 << 9)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IECLR_PRB_8 (1 << 8)  
+#define IECLR_PRB_0 (1 << 0)  
+#ifndef __ASSEMBLY__
+typedef union iprte_a {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 entry;
+ struct {
+ u64 rsvd1 : 7,
+ valid : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd2 : 1,
+ srcnode : 9,
+ initiator : 2,
+ rsvd3 : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ addr : 38,
+ rsvd4 : 3;
+ } iprte_fields;
+} iprte_a_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iprte_valid iprte_fields.valid
+#define iprte_timeout iprte_fields.timeout
+#define iprte_srcnode iprte_fields.srcnode
+#define iprte_init iprte_fields.initiator
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iprte_addr iprte_fields.addr
+#endif
+#define IPRTE_ADDRSHFT 3
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union iprb_u {
+ u64 reg_value;
+ struct {
+ u64 rsvd1: 15,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ error: 1,
+ ovflow: 5,
+ fire_and_forget: 1,
+ mode: 2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd2: 2,
+ bnakctr: 14,
+ rsvd3: 2,
+ anakctr: 14,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ xtalkctr: 8;
+ } iprb_fields_s;
+} iprb_t;
+#define iprb_regval reg_value
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iprb_error iprb_fields_s.error
+#define iprb_ovflow iprb_fields_s.ovflow
+#define iprb_ff iprb_fields_s.fire_and_forget
+#define iprb_mode iprb_fields_s.mode
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define iprb_bnakctr iprb_fields_s.bnakctr
+#define iprb_anakctr iprb_fields_s.anakctr
+#define iprb_xtalkctr iprb_fields_s.xtalkctr
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IPRB_MODE_NORMAL (0)
+#define IPRB_MODE_COLLECT_A (1)  
+#define IPRB_MODE_SERVICE_A (2)  
+#define IPRB_MODE_SERVICE_B (3)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+typedef union icrbp_a {
+ u64 ip_reg;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 error: 1,
+ ln_uce: 1,
+ ln_ae: 1,
+ ln_werr:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ln_aerr:1,
+ ln_perr:1,
+ timeout:1,
+ l_bdpkt:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ c_bdpkt:1,
+ c_err: 1,
+ rsvd1: 12,
+ valid: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sidn: 4,
+ tnum: 5,
+ bo: 1,
+ resprqd:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ gbr: 1,
+ size: 2,
+ excl: 4,
+ stall: 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ intvn: 1,
+ resp: 1,
+ ack: 1,
+ hold: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ wb: 1,
+ ack_cnt:11,
+ tscaler:4;
+ } ip_fmt;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} icrbp_a_t;
+#endif
+#define ICRBP_A_CERR_SHFT 54
+#define ICRBP_A_ERR_MASK 0x3ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef __ASSEMBLY__
+typedef union hubii_idsr {
+ u64 iin_reg;
+ struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 rsvd1 : 35,
+ isent : 1,
+ rsvd2 : 3,
+ ienable: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd : 7,
+ node : 9,
+ rsvd4 : 1,
+ level : 7;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } iin_fmt;
+} hubii_idsr_t;
+#endif
+#define IBLS_BUSY (0x1 << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IBLS_ERROR_SHFT 16
+#define IBLS_ERROR (0x1 << IBLS_ERROR_SHFT)
+#define IBLS_LENGTH_MASK 0xffff
+#define IBCT_POISON (0x1 << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IBCT_NOTIFY (0x1 << 4)
+#define IBCT_ZFIL_MODE (0x1 << 0)
+#define IBIA_LEVEL_SHFT 16
+#define IBIA_LEVEL_MASK (0x7f << IBIA_LEVEL_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IBIA_NODE_ID_SHFT 0
+#define IBIA_NODE_ID_MASK (0x1ff)
+#define HUB_NUM_WIDGET 9
+#define HUB_WIDGET_ID_MIN 0x8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HUB_WIDGET_ID_MAX 0xf
+#define HUB_WIDGET_PART_NUM 0xc101
+#define MAX_HUBS_PER_XBOW 2
+#define IIO_WCR_WID_GET(nasid) (REMOTE_HUB_L(nasid, III_WCR) & 0xf)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IIO_WST_ERROR_MASK (UINT64_CAST 1 << 32)  
+#define HUBII_XBOW_CREDIT 3
+#define HUBII_XBOW_REV2_CREDIT 4
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubmd.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubmd.h
new file mode 100644
index 0000000..9f0893f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubmd.h
@@ -0,0 +1,611 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_SN0_HUBMD_H
+#define _ASM_SN_SN0_HUBMD_H
+#define CACHE_SLINE_SIZE 128  
+#define MAX_REGIONS 64
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PAGE_SIZE 4096  
+#define MD_PAGE_NUM_SHFT 12  
+#define MD_BASE 0x200000
+#define MD_BASE_PERF 0x210000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_BASE_JUNK 0x220000
+#define MD_IO_PROTECT 0x200000  
+#define MD_IO_PROT_OVRRD 0x200008  
+#define MD_HSPEC_PROTECT 0x200010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MEMORY_CONFIG 0x200018  
+#define MD_REFRESH_CONTROL 0x200020  
+#define MD_FANDOP_CAC_STAT 0x200028  
+#define MD_MIG_DIFF_THRESH 0x200030  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_VALUE_THRESH 0x200038  
+#define MD_MIG_CANDIDATE 0x200040  
+#define MD_MIG_CANDIDATE_CLR 0x200048  
+#define MD_DIR_ERROR 0x200050  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_DIR_ERROR_CLR 0x200058  
+#define MD_PROTOCOL_ERROR 0x200060  
+#define MD_PROTOCOL_ERROR_CLR 0x200068  
+#define MD_MEM_ERROR 0x200070  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MEM_ERROR_CLR 0x200078  
+#define MD_MISC_ERROR 0x200080  
+#define MD_MISC_ERROR_CLR 0x200088  
+#define MD_MEM_DIMM_INIT 0x200090  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_DIR_DIMM_INIT 0x200098  
+#define MD_MOQ_SIZE 0x2000a0  
+#define MD_MLAN_CTL 0x2000a8  
+#define MD_PERF_SEL 0x210000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PERF_CNT0 0x210010  
+#define MD_PERF_CNT1 0x210018  
+#define MD_PERF_CNT2 0x210020  
+#define MD_PERF_CNT3 0x210028  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PERF_CNT4 0x210030  
+#define MD_PERF_CNT5 0x210038  
+#define MD_UREG0_0 0x220000  
+#define MD_UREG0_1 0x220008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_UREG0_2 0x220010  
+#define MD_UREG0_3 0x220018  
+#define MD_UREG0_4 0x220020  
+#define MD_UREG0_5 0x220028  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_UREG0_6 0x220030  
+#define MD_UREG0_7 0x220038  
+#define MD_SLOTID_USTAT 0x220048  
+#define MD_LED0 0x220050  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_LED1 0x220058  
+#define MD_UREG1_0 0x220080  
+#define MD_UREG1_1 0x220088  
+#define MD_UREG1_2 0x220090  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_UREG1_3 0x220098  
+#define MD_UREG1_4 0x2200a0  
+#define MD_UREG1_5 0x2200a8  
+#define MD_UREG1_6 0x2200b0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_UREG1_7 0x2200b8  
+#define MD_UREG1_8 0x2200c0  
+#define MD_UREG1_9 0x2200c8  
+#define MD_UREG1_10 0x2200d0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_UREG1_11 0x2200d8  
+#define MD_UREG1_12 0x2200e0  
+#define MD_UREG1_13 0x2200e8  
+#define MD_UREG1_14 0x2200f0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_UREG1_15 0x2200f8  
+#define MD_MEM_BANKS 8  
+#define MD_SIZE_EMPTY 0  
+#define MD_SIZE_8MB 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SIZE_16MB 2
+#define MD_SIZE_32MB 3  
+#define MD_SIZE_64MB 4  
+#define MD_SIZE_128MB 5  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SIZE_256MB 6
+#define MD_SIZE_512MB 7  
+#define MD_SIZE_1GB 8
+#define MD_SIZE_2GB 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SIZE_4GB 10
+#define MD_SIZE_BYTES(size) ((size) == 0 ? 0 : 0x400000L << (size))
+#define MD_SIZE_MBYTES(size) ((size) == 0 ? 0 : 4 << (size))
+#define MMC_FPROM_CYC_SHFT 49  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_FPROM_CYC_MASK (UINT64_CAST 31 << 49)  
+#define MMC_FPROM_WR_SHFT 44  
+#define MMC_FPROM_WR_MASK (UINT64_CAST 31 << 44)
+#define MMC_UCTLR_CYC_SHFT 39
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_UCTLR_CYC_MASK (UINT64_CAST 31 << 39)
+#define MMC_UCTLR_WR_SHFT 34
+#define MMC_UCTLR_WR_MASK (UINT64_CAST 31 << 34)
+#define MMC_DIMM0_SEL_SHFT 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_DIMM0_SEL_MASK (UINT64_CAST 3 << 32)
+#define MMC_IO_PROT_EN_SHFT 31
+#define MMC_IO_PROT_EN_MASK (UINT64_CAST 1 << 31)
+#define MMC_IO_PROT (UINT64_CAST 1 << 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_ARB_MLSS_SHFT 30
+#define MMC_ARB_MLSS_MASK (UINT64_CAST 1 << 30)
+#define MMC_ARB_MLSS (UINT64_CAST 1 << 30)
+#define MMC_IGNORE_ECC_SHFT 29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_IGNORE_ECC_MASK (UINT64_CAST 1 << 29)
+#define MMC_IGNORE_ECC (UINT64_CAST 1 << 29)
+#define MMC_DIR_PREMIUM_SHFT 28
+#define MMC_DIR_PREMIUM_MASK (UINT64_CAST 1 << 28)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_DIR_PREMIUM (UINT64_CAST 1 << 28)
+#define MMC_REPLY_GUAR_SHFT 24
+#define MMC_REPLY_GUAR_MASK (UINT64_CAST 15 << 24)
+#define MMC_BANK_SHFT(_b) ((_b) * 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMC_BANK_MASK(_b) (UINT64_CAST 7 << MMC_BANK_SHFT(_b))
+#define MMC_BANK_ALL_MASK 0xffffff
+#define MMC_RESET_DEFAULTS (UINT64_CAST 0x0f << MMC_FPROM_CYC_SHFT |   UINT64_CAST 0x07 << MMC_FPROM_WR_SHFT |   UINT64_CAST 0x1f << MMC_UCTLR_CYC_SHFT |   UINT64_CAST 0x0f << MMC_UCTLR_WR_SHFT |   MMC_IGNORE_ECC | MMC_DIR_PREMIUM |   UINT64_CAST 0x0f << MMC_REPLY_GUAR_SHFT |   MMC_BANK_ALL_MASK)
+#define MRC_ENABLE_SHFT 63
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MRC_ENABLE_MASK (UINT64_CAST 1 << 63)
+#define MRC_ENABLE (UINT64_CAST 1 << 63)
+#define MRC_COUNTER_SHFT 12
+#define MRC_COUNTER_MASK (UINT64_CAST 0xfff << 12)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MRC_CNT_THRESH_MASK 0xfff
+#define MRC_RESET_DEFAULTS (UINT64_CAST 0x400)
+#define MDI_SELECT_SHFT 32
+#define MDI_SELECT_MASK (UINT64_CAST 0x0f << 32)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MDI_DIMM_MODE_MASK (UINT64_CAST 0xfff)
+#define MMS_RP_SIZE_SHFT 8
+#define MMS_RP_SIZE_MASK (UINT64_CAST 0x3f << 8)
+#define MMS_RQ_SIZE_SHFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMS_RQ_SIZE_MASK (UINT64_CAST 0x1f)
+#define MMS_RESET_DEFAULTS (0x32 << 8 | 0x12)
+#define MFC_VALID_SHFT 63
+#define MFC_VALID_MASK (UINT64_CAST 1 << 63)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MFC_VALID (UINT64_CAST 1 << 63)
+#define MFC_ADDR_SHFT 6
+#define MFC_ADDR_MASK (UINT64_CAST 0x3ffffff)
+#define MLAN_PHI1_SHFT 27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MLAN_PHI1_MASK (UINT64_CAST 0x7f << 27)
+#define MLAN_PHI0_SHFT 20
+#define MLAN_PHI0_MASK (UINT64_CAST 0x7f << 27)
+#define MLAN_PULSE_SHFT 10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MLAN_PULSE_MASK (UINT64_CAST 0x3ff << 10)
+#define MLAN_SAMPLE_SHFT 2
+#define MLAN_SAMPLE_MASK (UINT64_CAST 0xff << 2)
+#define MLAN_DONE_SHFT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MLAN_DONE_MASK 2
+#define MLAN_DONE (UINT64_CAST 0x02)
+#define MLAN_RD_DATA (UINT64_CAST 0x01)
+#define MLAN_RESET_DEFAULTS (UINT64_CAST 0x31 << MLAN_PHI1_SHFT |   UINT64_CAST 0x31 << MLAN_PHI0_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSU_CORECLK_TST_SHFT 7  
+#define MSU_CORECLK_TST_MASK (UINT64_CAST 1 << 7)
+#define MSU_CORECLK_TST (UINT64_CAST 1 << 7)
+#define MSU_CORECLK_SHFT 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSU_CORECLK_MASK (UINT64_CAST 1 << 6)
+#define MSU_CORECLK (UINT64_CAST 1 << 6)
+#define MSU_NETSYNC_SHFT 5  
+#define MSU_NETSYNC_MASK (UINT64_CAST 1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSU_NETSYNC (UINT64_CAST 1 << 5)
+#define MSU_FPROMRDY_SHFT 4  
+#define MSU_FPROMRDY_MASK (UINT64_CAST 1 << 4)
+#define MSU_FPROMRDY (UINT64_CAST 1 << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSU_I2CINTR_SHFT 3  
+#define MSU_I2CINTR_MASK (UINT64_CAST 1 << 3)
+#define MSU_I2CINTR (UINT64_CAST 1 << 3)
+#define MSU_SLOTID_MASK 0xff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSU_SN0_SLOTID_SHFT 0  
+#define MSU_SN0_SLOTID_MASK (UINT64_CAST 7)
+#define MSU_SN00_SLOTID_SHFT 7
+#define MSU_SN00_SLOTID_MASK (UINT64_CAST 0x80)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MSU_PIMM_PSC_SHFT 4
+#define MSU_PIMM_PSC_MASK (0xf << MSU_PIMM_PSC_SHFT)
+#define MD_MIG_DIFF_THRES_VALID_MASK (UINT64_CAST 0x1 << 63)
+#define MD_MIG_DIFF_THRES_VALID_SHFT 63
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_DIFF_THRES_VALUE_MASK (UINT64_CAST 0xfffff)
+#define MD_MIG_VALUE_THRES_VALID_MASK (UINT64_CAST 0x1 << 63)
+#define MD_MIG_VALUE_THRES_VALID_SHFT 63
+#define MD_MIG_VALUE_THRES_VALUE_MASK (UINT64_CAST 0xfffff)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_CANDIDATE_VALID_MASK (UINT64_CAST 0x1 << 63)
+#define MD_MIG_CANDIDATE_VALID_SHFT 63
+#define MD_MIG_CANDIDATE_TYPE_MASK (UINT64_CAST 0x1 << 30)
+#define MD_MIG_CANDIDATE_TYPE_SHFT 30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_CANDIDATE_OVERRUN_MASK (UINT64_CAST 0x1 << 29)
+#define MD_MIG_CANDIDATE_OVERRUN_SHFT 29
+#define MD_MIG_CANDIDATE_INITIATOR_MASK (UINT64_CAST 0x7ff << 18)
+#define MD_MIG_CANDIDATE_INITIATOR_SHFT 18
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_CANDIDATE_NODEID_MASK (UINT64_CAST 0x1ff << 20)
+#define MD_MIG_CANDIDATE_NODEID_SHFT 20
+#define MD_MIG_CANDIDATE_ADDR_MASK (UINT64_CAST 0x3ffff)
+#define MD_MIG_CANDIDATE_ADDR_SHFT 14  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_BANK_SHFT 29  
+#define MD_BANK_MASK (UINT64_CAST 7 << 29)
+#define MD_BANK_SIZE (UINT64_CAST 1 << MD_BANK_SHFT)  
+#define MD_BANK_OFFSET(_b) (UINT64_CAST (_b) << MD_BANK_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_DIR_SHARED (UINT64_CAST 0x0)  
+#define MD_DIR_POISONED (UINT64_CAST 0x1)  
+#define MD_DIR_EXCLUSIVE (UINT64_CAST 0x2)  
+#define MD_DIR_BUSY_SHARED (UINT64_CAST 0x3)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_DIR_BUSY_EXCL (UINT64_CAST 0x4)  
+#define MD_DIR_WAIT (UINT64_CAST 0x5)  
+#define MD_DIR_UNOWNED (UINT64_CAST 0x7)  
+#define MD_DIR_FORCE_ECC (UINT64_CAST 1 << 63)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_MASK 0xffffffffffff  
+#define MD_PDIR_ECC_SHFT 0  
+#define MD_PDIR_ECC_MASK 0x7f
+#define MD_PDIR_PRIO_SHFT 8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_PRIO_MASK (0xf << 8)
+#define MD_PDIR_AX_SHFT 7  
+#define MD_PDIR_AX_MASK (1 << 7)
+#define MD_PDIR_AX (1 << 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_FINE_SHFT 12  
+#define MD_PDIR_FINE_MASK (1 << 12)
+#define MD_PDIR_FINE (1 << 12)
+#define MD_PDIR_OCT_SHFT 13  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_OCT_MASK (7 << 13)
+#define MD_PDIR_STATE_SHFT 13  
+#define MD_PDIR_STATE_MASK (7 << 13)
+#define MD_PDIR_ONECNT_SHFT 16  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_ONECNT_MASK (0x3f << 16)
+#define MD_PDIR_PTR_SHFT 22  
+#define MD_PDIR_PTR_MASK (UINT64_CAST 0x7ff << 22)
+#define MD_PDIR_VECMSB_SHFT 22  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_VECMSB_BITMASK 0x3ffffff
+#define MD_PDIR_VECMSB_BITSHFT 27
+#define MD_PDIR_VECMSB_MASK (UINT64_CAST MD_PDIR_VECMSB_BITMASK << 22)
+#define MD_PDIR_CWOFF_SHFT 7  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_CWOFF_MASK (7 << 7)
+#define MD_PDIR_VECLSB_SHFT 10  
+#define MD_PDIR_VECLSB_BITMASK (UINT64_CAST 0x3fffffffff)
+#define MD_PDIR_VECLSB_BITSHFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PDIR_VECLSB_MASK (MD_PDIR_VECLSB_BITMASK << 10)
+#define MD_PDIR_INIT_LO (MD_DIR_UNOWNED << MD_PDIR_STATE_SHFT |   MD_PDIR_AX)
+#define MD_PDIR_INIT_HI 0
+#define MD_PDIR_INIT_PROT (MD_PROT_RW << MD_PPROT_IO_SHFT |   MD_PROT_RW << MD_PPROT_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_MASK 0xffff  
+#define MD_SDIR_ECC_SHFT 0  
+#define MD_SDIR_ECC_MASK 0x1f
+#define MD_SDIR_PRIO_SHFT 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_PRIO_MASK (1 << 6)
+#define MD_SDIR_AX_SHFT 5  
+#define MD_SDIR_AX_MASK (1 << 5)
+#define MD_SDIR_AX (1 << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_STATE_SHFT 7  
+#define MD_SDIR_STATE_MASK (7 << 7)
+#define MD_SDIR_PTR_SHFT 10  
+#define MD_SDIR_PTR_MASK (0x3f << 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_CWOFF_SHFT 5  
+#define MD_SDIR_CWOFF_MASK (7 << 5)
+#define MD_SDIR_VECMSB_SHFT 11  
+#define MD_SDIR_VECMSB_BITMASK 0x1f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_VECMSB_BITSHFT 7
+#define MD_SDIR_VECMSB_MASK (MD_SDIR_VECMSB_BITMASK << 11)
+#define MD_SDIR_VECLSB_SHFT 5  
+#define MD_SDIR_VECLSB_BITMASK 0x7ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_VECLSB_BITSHFT 0
+#define MD_SDIR_VECLSB_MASK (MD_SDIR_VECLSB_BITMASK << 5)
+#define MD_SDIR_INIT_LO (MD_DIR_UNOWNED << MD_SDIR_STATE_SHFT |   MD_SDIR_AX)
+#define MD_SDIR_INIT_HI 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SDIR_INIT_PROT (MD_PROT_RW << MD_SPROT_SHFT)
+#define MD_PROT_RW (UINT64_CAST 0x6)
+#define MD_PROT_RO (UINT64_CAST 0x3)
+#define MD_PROT_NO (UINT64_CAST 0x0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PROT_BAD (UINT64_CAST 0x5)
+#define MD_PPROT_SHFT 0  
+#define MD_PPROT_MASK 7
+#define MD_PPROT_MIGMD_SHFT 3  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PPROT_MIGMD_MASK (3 << 3)
+#define MD_PPROT_REFCNT_SHFT 5  
+#define MD_PPROT_REFCNT_WIDTH 0x7ffff
+#define MD_PPROT_REFCNT_MASK (MD_PPROT_REFCNT_WIDTH << 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PPROT_IO_SHFT 45  
+#define MD_PPROT_IO_MASK (UINT64_CAST 7 << 45)
+#define MD_SPROT_SHFT 0  
+#define MD_SPROT_MASK 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SPROT_MIGMD_SHFT 3  
+#define MD_SPROT_MIGMD_MASK (3 << 3)
+#define MD_SPROT_REFCNT_SHFT 5  
+#define MD_SPROT_REFCNT_WIDTH 0x7ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_SPROT_REFCNT_MASK (MD_SPROT_REFCNT_WIDTH << 5)
+#define MD_PROT_MIGMD_IREL (UINT64_CAST 0x3 << 3)
+#define MD_PROT_MIGMD_IABS (UINT64_CAST 0x2 << 3)
+#define MD_PROT_MIGMD_PREL (UINT64_CAST 0x1 << 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PROT_MIGMD_OFF (UINT64_CAST 0x0 << 3)
+#ifndef __ASSEMBLY__
+#define CPU_LED_ADDR(_nasid, _slice)   (private.p_sn00 ?   REMOTE_HUB_ADDR((_nasid), MD_UREG1_0 + ((_slice) << 5)) :   REMOTE_HUB_ADDR((_nasid), MD_LED0 + ((_slice) << 3)))
+#define SET_CPU_LEDS(_nasid, _slice, _val)   (HUB_S(CPU_LED_ADDR(_nasid, _slice), (_val)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SET_MY_LEDS(_v)   SET_CPU_LEDS(get_nasid(), get_slice(), (_v))
+#define DIRTYPE_PREMIUM 1
+#define DIRTYPE_STANDARD 0
+#define MD_MEMORY_CONFIG_DIR_TYPE_GET(region) (  (REMOTE_HUB_L(region, MD_MEMORY_CONFIG) & MMC_DIR_PREMIUM_MASK) >>   MMC_DIR_PREMIUM_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_DIFF_THRESH_GET(region) (   REMOTE_HUB_L((region), MD_MIG_DIFF_THRESH) &   MD_MIG_DIFF_THRES_VALUE_MASK)
+#define MD_MIG_DIFF_THRESH_SET(region, value) (   REMOTE_HUB_S((region), MD_MIG_DIFF_THRESH,   MD_MIG_DIFF_THRES_VALID_MASK | (value)))
+#define MD_MIG_DIFF_THRESH_DISABLE(region) (   REMOTE_HUB_S((region), MD_MIG_DIFF_THRESH,   REMOTE_HUB_L((region), MD_MIG_DIFF_THRESH)   & ~MD_MIG_DIFF_THRES_VALID_MASK))
+#define MD_MIG_DIFF_THRESH_ENABLE(region) (   REMOTE_HUB_S((region), MD_MIG_DIFF_THRESH,   REMOTE_HUB_L((region), MD_MIG_DIFF_THRESH)   | MD_MIG_DIFF_THRES_VALID_MASK))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_DIFF_THRESH_IS_ENABLED(region) (   REMOTE_HUB_L((region), MD_MIG_DIFF_THRESH) &   MD_MIG_DIFF_THRES_VALID_MASK)
+#define MD_MIG_VALUE_THRESH_GET(region) (   REMOTE_HUB_L((region), MD_MIG_VALUE_THRESH) &   MD_MIG_VALUE_THRES_VALUE_MASK)
+#define MD_MIG_VALUE_THRESH_SET(region, value) (   REMOTE_HUB_S((region), MD_MIG_VALUE_THRESH,   MD_MIG_VALUE_THRES_VALID_MASK | (value)))
+#define MD_MIG_VALUE_THRESH_DISABLE(region) (   REMOTE_HUB_S((region), MD_MIG_VALUE_THRESH,   REMOTE_HUB_L(region, MD_MIG_VALUE_THRESH)   & ~MD_MIG_VALUE_THRES_VALID_MASK))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_VALUE_THRESH_ENABLE(region) (   REMOTE_HUB_S((region), MD_MIG_VALUE_THRESH,   REMOTE_HUB_L((region), MD_MIG_VALUE_THRESH)   | MD_MIG_VALUE_THRES_VALID_MASK))
+#define MD_MIG_VALUE_THRESH_IS_ENABLED(region) (   REMOTE_HUB_L((region), MD_MIG_VALUE_THRESH) &   MD_MIG_VALUE_THRES_VALID_MASK)
+#define MD_MIG_CANDIDATE_GET(my_region_id) (   REMOTE_HUB_L((my_region_id), MD_MIG_CANDIDATE_CLR))
+#define MD_MIG_CANDIDATE_HWPFN(value) ((value) & MD_MIG_CANDIDATE_ADDR_MASK)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_MIG_CANDIDATE_NODEID(value) (   ((value) & MD_MIG_CANDIDATE_NODEID_MASK) >> MD_MIG_CANDIDATE_NODEID_SHFT)
+#define MD_MIG_CANDIDATE_TYPE(value) (   ((value) & MD_MIG_CANDIDATE_TYPE_MASK) >> MD_MIG_CANDIDATE_TYPE_SHFT)
+#define MD_MIG_CANDIDATE_VALID(value) (   ((value) & MD_MIG_CANDIDATE_VALID_MASK) >> MD_MIG_CANDIDATE_VALID_SHFT)
+#define MD_PPROT_REFCNT_GET(value) (   ((value) & MD_PPROT_REFCNT_MASK) >> MD_PPROT_REFCNT_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MD_PPROT_MIGMD_GET(value) (   ((value) & MD_PPROT_MIGMD_MASK) >> MD_PPROT_MIGMD_SHFT)
+#define MD_SPROT_REFCNT_GET(value) (   ((value) & MD_SPROT_REFCNT_MASK) >> MD_SPROT_REFCNT_SHFT)
+#define MD_SPROT_MIGMD_GET(value) (   ((value) & MD_SPROT_MIGMD_MASK) >> MD_SPROT_MIGMD_SHFT)
+struct dir_error_reg {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 uce_vld: 1,
+ ae_vld: 1,
+ ce_vld: 1,
+ rsvd1: 19,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bad_prot: 3,
+ bad_syn: 7,
+ rsvd2: 2,
+ hspec_addr:27,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uce_ovr: 1,
+ ae_ovr: 1,
+ ce_ovr: 1;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union md_dir_error {
+ u64 derr_reg;
+ struct dir_error_reg derr_fmt;
+} md_dir_error_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct mem_error_reg {
+ u64 uce_vld: 1,
+ ce_vld: 1,
+ rsvd1: 22,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ bad_syn: 8,
+ address: 29,
+ rsvd2: 1,
+ uce_ovr: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ce_ovr: 1;
+};
+typedef union md_mem_error {
+ u64 merr_reg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct mem_error_reg merr_fmt;
+} md_mem_error_t;
+struct proto_error_reg {
+ u64 valid: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ rsvd1: 2,
+ initiator:11,
+ backoff: 2,
+ msg_type: 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ access: 2,
+ priority: 1,
+ dir_state: 4,
+ pointer_me:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ address: 29,
+ rsvd2: 2,
+ overrun: 1;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union md_proto_error {
+ u64 perr_reg;
+ struct proto_error_reg perr_fmt;
+} md_proto_error_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct md_sdir_high_fmt {
+ unsigned short sd_hi_bvec : 11,
+ sd_hi_ecc : 5;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union md_sdir_high {
+ unsigned short sd_hi_val;
+ struct md_sdir_high_fmt sd_hi_fmt;
+}md_sdir_high_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct md_sdir_low_shared_fmt {
+ unsigned short sds_lo_bvec : 5,
+ sds_lo_unused: 1,
+ sds_lo_state : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sds_lo_prio : 1,
+ sds_lo_ax : 1,
+ sds_lo_ecc : 5;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct md_sdir_low_exclusive_fmt {
+ unsigned short sde_lo_ptr : 6,
+ sde_lo_state : 3,
+ sde_lo_prio : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sde_lo_ax : 1,
+ sde_lo_ecc : 5;
+};
+typedef union md_sdir_low {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short sd_lo_val;
+ struct md_sdir_low_exclusive_fmt sde_lo_fmt;
+ struct md_sdir_low_shared_fmt sds_lo_fmt;
+}md_sdir_low_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct md_pdir_high_fmt {
+ u64 pd_hi_unused : 16,
+ pd_hi_bvec : 38,
+ pd_hi_unused1 : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pd_hi_ecc : 7;
+};
+typedef union md_pdir_high {
+ u64 pd_hi_val;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct md_pdir_high_fmt pd_hi_fmt;
+}md_pdir_high_t;
+struct md_pdir_low_shared_fmt {
+ u64 pds_lo_unused : 16,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pds_lo_bvec : 26,
+ pds_lo_cnt : 6,
+ pds_lo_state : 3,
+ pds_lo_ste : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pds_lo_prio : 4,
+ pds_lo_ax : 1,
+ pds_lo_ecc : 7;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct md_pdir_low_exclusive_fmt {
+ u64 pde_lo_unused : 31,
+ pde_lo_ptr : 11,
+ pde_lo_unused1 : 6,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pde_lo_state : 3,
+ pde_lo_ste : 1,
+ pde_lo_prio : 4,
+ pde_lo_ax : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ pde_lo_ecc : 7;
+};
+typedef union md_pdir_loent {
+ u64 pd_lo_val;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct md_pdir_low_exclusive_fmt pde_lo_fmt;
+ struct md_pdir_low_shared_fmt pds_lo_fmt;
+}md_pdir_low_t;
+typedef union md_dir_high {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ md_sdir_high_t md_sdir_high;
+ md_pdir_high_t md_pdir_high;
+} md_dir_high_t;
+typedef union md_dir_low {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ md_sdir_low_t md_sdir_low;
+ md_pdir_low_t md_pdir_low;
+} md_dir_low_t;
+typedef struct bddir_entry {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ md_dir_low_t md_dir_low;
+ md_dir_high_t md_dir_high;
+} bddir_entry_t;
+typedef struct dir_mem_entry {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 prcpf[MAX_REGIONS];
+ bddir_entry_t directory_words[MD_PAGE_SIZE/CACHE_SLINE_SIZE];
+} dir_mem_entry_t;
+typedef union md_perf_sel {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 perf_sel_reg;
+ struct {
+ u64 perf_rsvd : 60,
+ perf_en : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ perf_sel : 3;
+ } perf_sel_bits;
+} md_perf_sel_t;
+typedef union md_perf_cnt {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 perf_cnt;
+ struct {
+ u64 perf_rsvd : 44,
+ perf_cnt : 20;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ } perf_cnt_bits;
+} md_perf_cnt_t;
+#endif
+#define DIR_ERROR_VALID_MASK 0xe000000000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DIR_ERROR_VALID_SHFT 61
+#define DIR_ERROR_VALID_UCE 0x8000000000000000
+#define DIR_ERROR_VALID_AE 0x4000000000000000
+#define DIR_ERROR_VALID_CE 0x2000000000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MEM_ERROR_VALID_MASK 0xc000000000000000
+#define MEM_ERROR_VALID_SHFT 62
+#define MEM_ERROR_VALID_UCE 0x8000000000000000
+#define MEM_ERROR_VALID_CE 0x4000000000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PROTO_ERROR_VALID_MASK 0x8000000000000000
+#define MISC_ERROR_VALID_MASK 0x3ff
+#define DIR_ERR_HSPEC_MASK 0x3ffffff8
+#define ERROR_HSPEC_MASK 0x3ffffff8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ERROR_HSPEC_SHFT 3
+#define ERROR_ADDR_MASK 0xfffffff8
+#define ERROR_ADDR_SHFT 3
+#define MMCE_VALID_MASK 0x3ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMCE_ILL_MSG_SHFT 8
+#define MMCE_ILL_MSG_MASK (UINT64_CAST 0x03 << MMCE_ILL_MSG_SHFT)
+#define MMCE_ILL_REV_SHFT 6
+#define MMCE_ILL_REV_MASK (UINT64_CAST 0x03 << MMCE_ILL_REV_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMCE_LONG_PACK_SHFT 4
+#define MMCE_LONG_PACK_MASK (UINT64_CAST 0x03 << MMCE_lONG_PACK_SHFT)
+#define MMCE_SHORT_PACK_SHFT 2
+#define MMCE_SHORT_PACK_MASK (UINT64_CAST 0x03 << MMCE_SHORT_PACK_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MMCE_BAD_DATA_SHFT 0
+#define MMCE_BAD_DATA_MASK (UINT64_CAST 0x03 << MMCE_BAD_DATA_SHFT)
+#define MD_PERF_COUNTERS 6
+#define MD_PERF_SETS 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MEM_DIMM_MASK 0xe0000000
+#define MEM_DIMM_SHFT 29
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubni.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubni.h
new file mode 100644
index 0000000..cb3658d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubni.h
@@ -0,0 +1,225 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SGI_SN0_HUBNI_H
+#define _ASM_SGI_SN0_HUBNI_H
+#ifndef __ASSEMBLY__
+#include <linux/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#define NI_BASE 0x600000
+#define NI_BASE_TABLES 0x630000
+#define NI_STATUS_REV_ID 0x600000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_PORT_RESET 0x600008  
+#define NI_PROTECTION 0x600010  
+#define NI_GLOBAL_PARMS 0x600018  
+#define NI_SCRATCH_REG0 0x600100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_SCRATCH_REG1 0x600108  
+#define NI_DIAG_PARMS 0x600110  
+#define NI_VECTOR_PARMS 0x600200  
+#define NI_VECTOR 0x600208  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_VECTOR_DATA 0x600210  
+#define NI_VECTOR_STATUS 0x600300  
+#define NI_RETURN_VECTOR 0x600308  
+#define NI_VECTOR_READ_DATA 0x600310  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_VECTOR_CLEAR 0x600380  
+#define NI_IO_PROTECT 0x600400  
+#define NI_IO_PROT_OVRRD 0x600408  
+#define NI_AGE_CPU0_MEMORY 0x600500  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_AGE_CPU0_PIO 0x600508  
+#define NI_AGE_CPU1_MEMORY 0x600510  
+#define NI_AGE_CPU1_PIO 0x600518  
+#define NI_AGE_GBR_MEMORY 0x600520  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_AGE_GBR_PIO 0x600528  
+#define NI_AGE_IO_MEMORY 0x600530  
+#define NI_AGE_IO_PIO 0x600538  
+#define NI_AGE_REG_MIN NI_AGE_CPU0_MEMORY
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_AGE_REG_MAX NI_AGE_IO_PIO
+#define NI_PORT_PARMS 0x608000  
+#define NI_PORT_ERROR 0x608008  
+#define NI_PORT_ERROR_CLEAR 0x608088  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_META_TABLE0 0x638000  
+#define NI_META_TABLE(_x) (NI_META_TABLE0 + (8 * (_x)))
+#define NI_META_ENTRIES 32
+#define NI_LOCAL_TABLE0 0x638100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NI_LOCAL_TABLE(_x) (NI_LOCAL_TABLE0 + (8 * (_x)))
+#define NI_LOCAL_ENTRIES 16
+#define NSRI_8BITMODE_SHFT 30
+#define NSRI_8BITMODE_MASK (UINT64_CAST 0x1 << 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NSRI_LINKUP_SHFT 29
+#define NSRI_LINKUP_MASK (UINT64_CAST 0x1 << 29)
+#define NSRI_DOWNREASON_SHFT 28  
+#define NSRI_DOWNREASON_MASK (UINT64_CAST 0x1 << 28)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NSRI_MORENODES_SHFT 18
+#define NSRI_MORENODES_MASK (UINT64_CAST 1 << 18)  
+#define MORE_MEMORY 0
+#define MORE_NODES 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NSRI_REGIONSIZE_SHFT 17
+#define NSRI_REGIONSIZE_MASK (UINT64_CAST 1 << 17)  
+#define REGIONSIZE_FINE 1
+#define REGIONSIZE_COARSE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NSRI_NODEID_SHFT 8
+#define NSRI_NODEID_MASK (UINT64_CAST 0x1ff << 8) 
+#define NSRI_REV_SHFT 4
+#define NSRI_REV_MASK (UINT64_CAST 0xf << 4)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NSRI_CHIPID_SHFT 0
+#define NSRI_CHIPID_MASK (UINT64_CAST 0xf)  
+#define NASID_TO_FINEREG_SHFT 0
+#define NASID_TO_COARSEREG_SHFT 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPR_PORTRESET (UINT64_CAST 1 << 7)  
+#define NPR_LINKRESET (UINT64_CAST 1 << 1)  
+#define NPR_LOCALRESET (UINT64_CAST 1)  
+#define NPROT_RESETOK (UINT64_CAST 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NGP_MAXRETRY_SHFT 48  
+#define NGP_MAXRETRY_MASK (UINT64_CAST 0x3ff << 48)
+#define NGP_TAILTOWRAP_SHFT 32  
+#define NGP_TAILTOWRAP_MASK (UINT64_CAST 0xffff << 32)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NGP_CREDITTOVAL_SHFT 16  
+#define NGP_CREDITTOVAL_MASK (UINT64_CAST 0xf << 16)
+#define NGP_TAILTOVAL_SHFT 4  
+#define NGP_TAILTOVAL_MASK (UINT64_CAST 0xf << 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NDP_PORTTORESET (UINT64_CAST 1 << 18)  
+#define NDP_LLP8BITMODE (UINT64_CAST 1 << 12)  
+#define NDP_PORTDISABLE (UINT64_CAST 1 << 6)  
+#define NDP_SENDERROR (UINT64_CAST 1)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NVP_PIOID_SHFT 40
+#define NVP_PIOID_MASK (UINT64_CAST 0x3ff << 40)
+#define NVP_WRITEID_SHFT 32
+#define NVP_WRITEID_MASK (UINT64_CAST 0xff << 32)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NVP_ADDRESS_MASK (UINT64_CAST 0xffff8)  
+#define NVP_TYPE_SHFT 0
+#define NVP_TYPE_MASK (UINT64_CAST 0x3)
+#define NVS_VALID (UINT64_CAST 1 << 63)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NVS_OVERRUN (UINT64_CAST 1 << 62)
+#define NVS_TARGET_SHFT 51
+#define NVS_TARGET_MASK (UINT64_CAST 0x3ff << 51)
+#define NVS_PIOID_SHFT 40
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NVS_PIOID_MASK (UINT64_CAST 0x3ff << 40)
+#define NVS_WRITEID_SHFT 32
+#define NVS_WRITEID_MASK (UINT64_CAST 0xff << 32)
+#define NVS_ADDRESS_MASK (UINT64_CAST 0xfffffff8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NVS_TYPE_SHFT 0
+#define NVS_TYPE_MASK (UINT64_CAST 0x7)
+#define NVS_ERROR_MASK (UINT64_CAST 0x4)  
+#define PIOTYPE_READ 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIOTYPE_WRITE 1  
+#define PIOTYPE_UNDEFINED 2  
+#define PIOTYPE_EXCHANGE 3  
+#define PIOTYPE_ADDR_ERR 4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PIOTYPE_CMD_ERR 5  
+#define PIOTYPE_PROT_ERR 6  
+#define PIOTYPE_UNKNOWN 7  
+#define NAGE_VCH_SHFT 10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NAGE_VCH_MASK (UINT64_CAST 3 << 10)
+#define NAGE_CC_SHFT 8
+#define NAGE_CC_MASK (UINT64_CAST 3 << 8)
+#define NAGE_AGE_SHFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NAGE_AGE_MASK (UINT64_CAST 0xff)
+#define NAGE_MASK (NAGE_VCH_MASK | NAGE_CC_MASK | NAGE_AGE_MASK)
+#define VCHANNEL_A 0
+#define VCHANNEL_B 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VCHANNEL_ANY 2
+#define NPP_NULLTO_SHFT 10
+#define NPP_NULLTO_MASK (UINT64_CAST 0x3f << 16)
+#define NPP_MAXBURST_SHFT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPP_MAXBURST_MASK (UINT64_CAST 0x3ff)
+#define NPP_RESET_DFLT_HUB20 ((UINT64_CAST 1 << NPP_NULLTO_SHFT) |   (UINT64_CAST 0x3f0 << NPP_MAXBURST_SHFT))
+#define NPP_RESET_DEFAULTS ((UINT64_CAST 6 << NPP_NULLTO_SHFT) |   (UINT64_CAST 0x3f0 << NPP_MAXBURST_SHFT))
+#define NPE_LINKRESET (UINT64_CAST 1 << 37)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPE_INTERNALERROR (UINT64_CAST 1 << 36)
+#define NPE_BADMESSAGE (UINT64_CAST 1 << 35)
+#define NPE_BADDEST (UINT64_CAST 1 << 34)
+#define NPE_FIFOOVERFLOW (UINT64_CAST 1 << 33)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPE_CREDITTO_SHFT 28
+#define NPE_CREDITTO_MASK (UINT64_CAST 0xf << 28)
+#define NPE_TAILTO_SHFT 24
+#define NPE_TAILTO_MASK (UINT64_CAST 0xf << 24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPE_RETRYCOUNT_SHFT 16
+#define NPE_RETRYCOUNT_MASK (UINT64_CAST 0xff << 16)
+#define NPE_CBERRCOUNT_SHFT 8
+#define NPE_CBERRCOUNT_MASK (UINT64_CAST 0xff << 8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPE_SNERRCOUNT_SHFT 0
+#define NPE_SNERRCOUNT_MASK (UINT64_CAST 0xff << 0)
+#define NPE_MASK 0x3effffffff
+#define NPE_COUNT_MAX 0xff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NPE_FATAL_ERRORS (NPE_LINKRESET | NPE_INTERNALERROR |   NPE_BADMESSAGE | NPE_BADDEST |   NPE_FIFOOVERFLOW | NPE_CREDITTO_MASK |   NPE_TAILTO_MASK)
+#define NMT_EXIT_PORT_MASK (UINT64_CAST 0xf)
+#define NLT_EXIT_PORT_MASK (UINT64_CAST 0xf)
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union hubni_port_error_u {
+ u64 nipe_reg_value;
+ struct {
+ u64 nipe_rsvd: 26,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ nipe_lnk_reset: 1,
+ nipe_intl_err: 1,
+ nipe_bad_msg: 1,
+ nipe_bad_dest: 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ nipe_fifo_ovfl: 1,
+ nipe_rsvd1: 1,
+ nipe_credit_to: 4,
+ nipe_tail_to: 4,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ nipe_retry_cnt: 8,
+ nipe_cb_cnt: 8,
+ nipe_sn_cnt: 8;
+ } nipe_fields_s;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+} hubni_port_error_t;
+#define NI_LLP_RETRY_MAX 0xff
+#define NI_LLP_CB_MAX 0xff
+#define NI_LLP_SN_MAX 0xff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubpi.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubpi.h
new file mode 100644
index 0000000..922c480
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/sn0/hubpi.h
@@ -0,0 +1,364 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_SN0_HUBPI_H
+#define _ASM_SN_SN0_HUBPI_H
+#include <linux/types.h>
+#define PI_BASE 0x000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CPU_PROTECT 0x000000  
+#define PI_PROT_OVERRD 0x000008  
+#define PI_IO_PROTECT 0x000010  
+#define PI_REGION_PRESENT 0x000018  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CPU_NUM 0x000020  
+#define PI_CALIAS_SIZE 0x000028  
+#define PI_MAX_CRB_TIMEOUT 0x000030  
+#define PI_CRB_SFACTOR 0x000038  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CALIAS_SIZE_0 0
+#define PI_CALIAS_SIZE_4K 1
+#define PI_CALIAS_SIZE_8K 2
+#define PI_CALIAS_SIZE_16K 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CALIAS_SIZE_32K 4
+#define PI_CALIAS_SIZE_64K 5
+#define PI_CALIAS_SIZE_128K 6
+#define PI_CALIAS_SIZE_256K 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CALIAS_SIZE_512K 8
+#define PI_CALIAS_SIZE_1M 9
+#define PI_CALIAS_SIZE_2M 10
+#define PI_CALIAS_SIZE_4M 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CALIAS_SIZE_8M 12
+#define PI_CALIAS_SIZE_16M 13
+#define PI_CALIAS_SIZE_32M 14
+#define PI_CALIAS_SIZE_64M 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CPU_PRESENT_A 0x000040  
+#define PI_CPU_PRESENT_B 0x000048  
+#define PI_CPU_ENABLE_A 0x000050  
+#define PI_CPU_ENABLE_B 0x000058  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_REPLY_LEVEL 0x000060  
+#define PI_HARDRESET_BIT 0x020068  
+#define PI_NMI_A 0x000070  
+#define PI_NMI_B 0x000078  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_NMI_OFFSET (PI_NMI_B - PI_NMI_A)
+#define PI_SOFTRESET 0x000080  
+#define PI_INT_PEND_MOD 0x000090  
+#define PI_INT_PEND0 0x000098  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_INT_PEND1 0x0000a0  
+#define PI_INT_MASK0_A 0x0000a8  
+#define PI_INT_MASK1_A 0x0000b0  
+#define PI_INT_MASK0_B 0x0000b8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_INT_MASK1_B 0x0000c0  
+#define PI_INT_MASK_OFFSET 0x10  
+#define PI_CC_PEND_SET_A 0x0000c8  
+#define PI_CC_PEND_SET_B 0x0000d0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_CC_PEND_CLR_A 0x0000d8  
+#define PI_CC_PEND_CLR_B 0x0000e0  
+#define PI_CC_MASK 0x0000e8  
+#define PI_INT_SET_OFFSET 0x08  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_RT_COUNT 0x030100  
+#define PI_RT_COMPARE_A 0x000108  
+#define PI_RT_COMPARE_B 0x000110  
+#define PI_PROFILE_COMPARE 0x000118  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_RT_PEND_A 0x000120  
+#define PI_RT_PEND_B 0x000128  
+#define PI_PROF_PEND_A 0x000130  
+#define PI_PROF_PEND_B 0x000138  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_RT_EN_A 0x000140  
+#define PI_RT_EN_B 0x000148  
+#define PI_PROF_EN_A 0x000150  
+#define PI_PROF_EN_B 0x000158  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_RT_LOCAL_CTRL 0x000160  
+#define PI_RT_FILTER_CTRL 0x000168  
+#define PI_COUNT_OFFSET 0x08  
+#define PI_BIST_WRITE_DATA 0x000200  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_BIST_READ_DATA 0x000208  
+#define PI_BIST_COUNT_TARG 0x000210  
+#define PI_BIST_READY 0x000218  
+#define PI_BIST_SHIFT_LOAD 0x000220  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_BIST_SHIFT_UNLOAD 0x000228  
+#define PI_BIST_ENTER_RUN 0x000230  
+#define PI_GFX_PAGE_A 0x000300  
+#define PI_GFX_CREDIT_CNTR_A 0x000308  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_GFX_BIAS_A 0x000310  
+#define PI_GFX_INT_CNTR_A 0x000318  
+#define PI_GFX_INT_CMP_A 0x000320  
+#define PI_GFX_PAGE_B 0x000328  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_GFX_CREDIT_CNTR_B 0x000330  
+#define PI_GFX_BIAS_B 0x000338  
+#define PI_GFX_INT_CNTR_B 0x000340  
+#define PI_GFX_INT_CMP_B 0x000348  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_GFX_OFFSET (PI_GFX_PAGE_B - PI_GFX_PAGE_A)
+#define PI_GFX_PAGE_ENABLE 0x0000010000000000LL
+#define PI_ERR_INT_PEND 0x000400  
+#define PI_ERR_INT_MASK_A 0x000408  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_INT_MASK_B 0x000410  
+#define PI_ERR_STACK_ADDR_A 0x000418  
+#define PI_ERR_STACK_ADDR_B 0x000420  
+#define PI_ERR_STACK_SIZE 0x000428  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_STATUS0_A 0x000430  
+#define PI_ERR_STATUS0_A_RCLR 0x000438  
+#define PI_ERR_STATUS1_A 0x000440  
+#define PI_ERR_STATUS1_A_RCLR 0x000448  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_STATUS0_B 0x000450  
+#define PI_ERR_STATUS0_B_RCLR 0x000458  
+#define PI_ERR_STATUS1_B 0x000460  
+#define PI_ERR_STATUS1_B_RCLR 0x000468  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_SPOOL_CMP_A 0x000470  
+#define PI_SPOOL_CMP_B 0x000478  
+#define PI_CRB_TIMEOUT_A 0x000480  
+#define PI_CRB_TIMEOUT_B 0x000488  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_SYSAD_ERRCHK_EN 0x000490  
+#define PI_BAD_CHECK_BIT_A 0x000498  
+#define PI_BAD_CHECK_BIT_B 0x0004a0  
+#define PI_NACK_CNT_A 0x0004a8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_NACK_CNT_B 0x0004b0  
+#define PI_NACK_CMP 0x0004b8  
+#define PI_STACKADDR_OFFSET (PI_ERR_STACK_ADDR_B - PI_ERR_STACK_ADDR_A)
+#define PI_ERRSTAT_OFFSET (PI_ERR_STATUS0_B - PI_ERR_STATUS0_A)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_RDCLR_OFFSET (PI_ERR_STATUS0_A_RCLR - PI_ERR_STATUS0_A)
+#define PI_ERR_SPOOL_CMP_B 0x00000001  
+#define PI_ERR_SPOOL_CMP_A 0x00000002
+#define PI_ERR_SPUR_MSG_B 0x00000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_SPUR_MSG_A 0x00000008
+#define PI_ERR_WRB_TERR_B 0x00000010  
+#define PI_ERR_WRB_TERR_A 0x00000020
+#define PI_ERR_WRB_WERR_B 0x00000040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_WRB_WERR_A 0x00000080
+#define PI_ERR_SYSSTATE_B 0x00000100  
+#define PI_ERR_SYSSTATE_A 0x00000200
+#define PI_ERR_SYSAD_DATA_B 0x00000400  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_SYSAD_DATA_A 0x00000800
+#define PI_ERR_SYSAD_ADDR_B 0x00001000  
+#define PI_ERR_SYSAD_ADDR_A 0x00002000
+#define PI_ERR_SYSCMD_DATA_B 0x00004000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_SYSCMD_DATA_A 0x00008000
+#define PI_ERR_SYSCMD_ADDR_B 0x00010000  
+#define PI_ERR_SYSCMD_ADDR_A 0x00020000
+#define PI_ERR_BAD_SPOOL_B 0x00040000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_BAD_SPOOL_A 0x00080000
+#define PI_ERR_UNCAC_UNCORR_B 0x00100000  
+#define PI_ERR_UNCAC_UNCORR_A 0x00200000
+#define PI_ERR_SYSSTATE_TAG_B 0x00400000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_SYSSTATE_TAG_A 0x00800000
+#define PI_ERR_MD_UNCORR 0x01000000  
+#define PI_ERR_CLEAR_ALL_A 0x00aaaaaa
+#define PI_ERR_CLEAR_ALL_B 0x00555555
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_FATAL_ERR_CPU_A (PI_ERR_SYSSTATE_TAG_A |   PI_ERR_BAD_SPOOL_A |   PI_ERR_SYSCMD_ADDR_A |   PI_ERR_SYSCMD_DATA_A |   PI_ERR_SYSAD_ADDR_A |   PI_ERR_SYSAD_DATA_A |   PI_ERR_SYSSTATE_A)
+#define PI_MISC_ERR_CPU_A (PI_ERR_UNCAC_UNCORR_A |   PI_ERR_WRB_WERR_A |   PI_ERR_WRB_TERR_A |   PI_ERR_SPUR_MSG_A |   PI_ERR_SPOOL_CMP_A)
+#define PI_FATAL_ERR_CPU_B (PI_ERR_SYSSTATE_TAG_B |   PI_ERR_BAD_SPOOL_B |   PI_ERR_SYSCMD_ADDR_B |   PI_ERR_SYSCMD_DATA_B |   PI_ERR_SYSAD_ADDR_B |   PI_ERR_SYSAD_DATA_B |   PI_ERR_SYSSTATE_B)
+#define PI_MISC_ERR_CPU_B (PI_ERR_UNCAC_UNCORR_B |   PI_ERR_WRB_WERR_B |   PI_ERR_WRB_TERR_B |   PI_ERR_SPUR_MSG_B |   PI_ERR_SPOOL_CMP_B)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_GENERIC (PI_ERR_MD_UNCORR)
+#define PI_ERR_ST0_TYPE_MASK 0x0000000000000007
+#define PI_ERR_ST0_TYPE_SHFT 0
+#define PI_ERR_ST0_REQNUM_MASK 0x0000000000000038
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST0_REQNUM_SHFT 3
+#define PI_ERR_ST0_SUPPL_MASK 0x000000000001ffc0
+#define PI_ERR_ST0_SUPPL_SHFT 6
+#define PI_ERR_ST0_CMD_MASK 0x0000000001fe0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST0_CMD_SHFT 17
+#define PI_ERR_ST0_ADDR_MASK 0x3ffffffffe000000
+#define PI_ERR_ST0_ADDR_SHFT 25
+#define PI_ERR_ST0_OVERRUN_MASK 0x4000000000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST0_OVERRUN_SHFT 62
+#define PI_ERR_ST0_VALID_MASK 0x8000000000000000
+#define PI_ERR_ST0_VALID_SHFT 63
+#define PI_ERR_ST1_SPOOL_MASK 0x00000000001fffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST1_SPOOL_SHFT 0
+#define PI_ERR_ST1_TOUTCNT_MASK 0x000000001fe00000
+#define PI_ERR_ST1_TOUTCNT_SHFT 21
+#define PI_ERR_ST1_INVCNT_MASK 0x0000007fe0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST1_INVCNT_SHFT 29
+#define PI_ERR_ST1_CRBNUM_MASK 0x0000038000000000
+#define PI_ERR_ST1_CRBNUM_SHFT 39
+#define PI_ERR_ST1_WRBRRB_MASK 0x0000040000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST1_WRBRRB_SHFT 42
+#define PI_ERR_ST1_CRBSTAT_MASK 0x001ff80000000000
+#define PI_ERR_ST1_CRBSTAT_SHFT 43
+#define PI_ERR_ST1_MSGSRC_MASK 0xffe0000000000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_ST1_MSGSRC_SHFT 53
+#define PI_ERR_STK_TYPE_MASK 0x0000000000000003
+#define PI_ERR_STK_TYPE_SHFT 0
+#define PI_ERR_STK_SUPPL_MASK 0x0000000000000038
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_STK_SUPPL_SHFT 3
+#define PI_ERR_STK_REQNUM_MASK 0x00000000000001c0
+#define PI_ERR_STK_REQNUM_SHFT 6
+#define PI_ERR_STK_CRBNUM_MASK 0x0000000000000e00
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_STK_CRBNUM_SHFT 9
+#define PI_ERR_STK_WRBRRB_MASK 0x0000000000001000
+#define PI_ERR_STK_WRBRRB_SHFT 12
+#define PI_ERR_STK_CRBSTAT_MASK 0x00000000007fe000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_STK_CRBSTAT_SHFT 13
+#define PI_ERR_STK_CMD_MASK 0x000000007f800000
+#define PI_ERR_STK_CMD_SHFT 23
+#define PI_ERR_STK_ADDR_MASK 0xffffffff80000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_STK_ADDR_SHFT 31
+#define PI_ERR_RD_PRERR 1
+#define PI_ERR_RD_DERR 2
+#define PI_ERR_RD_TERR 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_WR_WERR 0
+#define PI_ERR_WR_PWERR 1
+#define PI_ERR_WR_TERR 3
+#define PI_ERR_RRB 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_ERR_WRB 1
+#define PI_ERR_ANY_CRB 2
+#define ERR_STK_ADDR_SHFT 7
+#define ERR_STAT0_ADDR_SHFT 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_MIN_STACK_SIZE 4096  
+#define PI_STACK_SIZE_SHFT 12  
+#define ERR_STACK_SIZE_BYTES(_sz)   ((_sz) ? (PI_MIN_STACK_SIZE << ((_sz) - 1)) : 0)
+#ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct err_stack_format {
+ u64 sk_addr : 33,
+ sk_cmd : 8,
+ sk_crb_sts : 10,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sk_rw_rb : 1,
+ sk_crb_num : 3,
+ sk_t5_req : 3,
+ sk_suppl : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ sk_err_type: 3;
+};
+typedef union pi_err_stack {
+ u64 pi_stk_word;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ struct err_stack_format pi_stk_fmt;
+} pi_err_stack_t;
+struct err_status0_format {
+ u64 s0_valid : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ s0_ovr_run : 1,
+ s0_addr : 37,
+ s0_cmd : 8,
+ s0_supl : 11,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ s0_t5_req : 3,
+ s0_err_type: 3;
+};
+typedef union pi_err_stat0 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 pi_stat0_word;
+ struct err_status0_format pi_stat0_fmt;
+} pi_err_stat0_t;
+struct err_status1_format {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ u64 s1_src : 11,
+ s1_crb_sts : 10,
+ s1_rw_rb : 1,
+ s1_crb_num : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ s1_inval_cnt:10,
+ s1_to_cnt : 8,
+ s1_spl_cnt : 21;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union pi_err_stat1 {
+ u64 pi_stat1_word;
+ struct err_status1_format pi_stat1_fmt;
+} pi_err_stat1_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef u64 rtc_time_t;
+#endif
+#define PI_SYSAD_ERRCHK_ECCGEN 0x01  
+#define PI_SYSAD_ERRCHK_QUALGEN 0x02  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_SYSAD_ERRCHK_SADP 0x04  
+#define PI_SYSAD_ERRCHK_CMDP 0x08  
+#define PI_SYSAD_ERRCHK_STATE 0x10  
+#define PI_SYSAD_ERRCHK_QUAL 0x20  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_SYSAD_CHECK_ALL 0x3f  
+#define HUB_IP_PEND0 0x0400
+#define HUB_IP_PEND1_CC 0x0800
+#define HUB_IP_RT 0x1000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HUB_IP_PROF 0x2000
+#define HUB_IP_ERROR 0x4000
+#define HUB_IP_MASK 0x7c00
+#define PRLC_USE_INT_SHFT 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRLC_USE_INT_MASK (UINT64_CAST 1 << 16)
+#define PRLC_USE_INT (UINT64_CAST 1 << 16)
+#define PRLC_GCLK_SHFT 15
+#define PRLC_GCLK_MASK (UINT64_CAST 1 << 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRLC_GCLK (UINT64_CAST 1 << 15)
+#define PRLC_GCLK_COUNT_SHFT 8
+#define PRLC_GCLK_COUNT_MASK (UINT64_CAST 0x7f << 8)
+#define PRLC_MAX_COUNT_SHFT 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PRLC_MAX_COUNT_MASK (UINT64_CAST 0x7f << 1)
+#define PRLC_GCLK_EN_SHFT 0
+#define PRLC_GCLK_EN_MASK (UINT64_CAST 1)
+#define PRLC_GCLK_EN (UINT64_CAST 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PI_NACK_CNT_EN_SHFT 20
+#define PI_NACK_CNT_EN_MASK 0x100000
+#define PI_NACK_CNT_MASK 0x0fffff
+#define PI_NACK_CNT_MAX 0x0fffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sn/types.h b/ndk/platforms/android-9/arch-mips/include/asm/sn/types.h
new file mode 100644
index 0000000..4079458
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sn/types.h
@@ -0,0 +1,35 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SN_TYPES_H
+#define _ASM_SN_TYPES_H
+#include <linux/types.h>
+typedef unsigned long cpuid_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned long cnodemask_t;
+typedef signed short nasid_t;
+typedef signed short cnodeid_t;
+typedef signed char partid_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef signed short moduleid_t;
+typedef signed short cmoduleid_t;
+typedef unsigned char clusterid_t;
+typedef unsigned long pfn_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef dev_t vertex_hdl_t;
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/socket.h b/ndk/platforms/android-9/arch-mips/include/asm/socket.h
new file mode 100644
index 0000000..ff8a3ba
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/socket.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SOCKET_H
+#define _ASM_SOCKET_H
+#include <asm/sockios.h>
+#define SOL_SOCKET 0xffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_DEBUG 0x0001  
+#define SO_REUSEADDR 0x0004  
+#define SO_KEEPALIVE 0x0008  
+#define SO_DONTROUTE 0x0010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_BROADCAST 0x0020  
+#define SO_LINGER 0x0080  
+#define SO_OOBINLINE 0x0100  
+#define SO_TYPE 0x1008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_STYLE SO_TYPE  
+#define SO_ERROR 0x1007  
+#define SO_SNDBUF 0x1001  
+#define SO_RCVBUF 0x1002  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_SNDLOWAT 0x1003  
+#define SO_RCVLOWAT 0x1004  
+#define SO_SNDTIMEO 0x1005  
+#define SO_RCVTIMEO 0x1006  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_ACCEPTCONN 0x1009
+#define SO_NO_CHECK 11
+#define SO_PRIORITY 12
+#define SO_BSDCOMPAT 14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_PASSCRED 17
+#define SO_PEERCRED 18
+#define SO_SECURITY_AUTHENTICATION 22
+#define SO_SECURITY_ENCRYPTION_TRANSPORT 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_SECURITY_ENCRYPTION_NETWORK 24
+#define SO_BINDTODEVICE 25
+#define SO_ATTACH_FILTER 26
+#define SO_DETACH_FILTER 27
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_PEERNAME 28
+#define SO_TIMESTAMP 29
+#define SCM_TIMESTAMP SO_TIMESTAMP
+#define SO_PEERSEC 30
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SO_SNDBUFFORCE 31
+#define SO_RCVBUFFORCE 33
+#define SO_PASSSEC 34
+#define SO_TIMESTAMPNS 35
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SCM_TIMESTAMPNS SO_TIMESTAMPNS
+#define SO_MARK 36
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sockios.h b/ndk/platforms/android-9/arch-mips/include/asm/sockios.h
new file mode 100644
index 0000000..0e5a4ac
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sockios.h
@@ -0,0 +1,31 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SOCKIOS_H
+#define _ASM_SOCKIOS_H
+#include <asm/ioctl.h>
+#define FIOGETOWN _IOR('f', 123, int)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FIOSETOWN _IOW('f', 124, int)
+#define SIOCATMARK _IOR('s', 7, int)
+#define SIOCSPGRP _IOW('s', 8, pid_t)
+#define SIOCGPGRP _IOR('s', 9, pid_t)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SIOCGSTAMP 0x8906  
+#define SIOCGSTAMPNS 0x8907  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/stat.h b/ndk/platforms/android-9/arch-mips/include/asm/stat.h
new file mode 100644
index 0000000..a8fee78
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/stat.h
@@ -0,0 +1,110 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_STAT_H
+#define _ASM_STAT_H
+#include <linux/types.h>
+#include <asm/sgidefs.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_NABI32
+struct stat {
+ unsigned st_dev;
+ long st_pad1[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ ino_t st_ino;
+ mode_t st_mode;
+ nlink_t st_nlink;
+ uid_t st_uid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ gid_t st_gid;
+ unsigned st_rdev;
+ long st_pad2[2];
+ off_t st_size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long st_pad3;
+ time_t st_atime;
+ long st_atime_nsec;
+ time_t st_mtime;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long st_mtime_nsec;
+ time_t st_ctime;
+ long st_ctime_nsec;
+ long st_blksize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long st_blocks;
+ long st_pad4[14];
+};
+struct stat64 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long st_dev;
+ unsigned long st_pad0[3];
+ unsigned long long st_ino;
+ mode_t st_mode;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ nlink_t st_nlink;
+ uid_t st_uid;
+ gid_t st_gid;
+ unsigned long st_rdev;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long st_pad1[3];
+ long long st_size;
+ time_t st_atime;
+ unsigned long st_atime_nsec;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ time_t st_mtime;
+ unsigned long st_mtime_nsec;
+ time_t st_ctime;
+ unsigned long st_ctime_nsec;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long st_blksize;
+ unsigned long st_pad2;
+ long long st_blocks;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64
+struct stat {
+ unsigned int st_dev;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int st_pad0[3];
+ unsigned long st_ino;
+ mode_t st_mode;
+ nlink_t st_nlink;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ uid_t st_uid;
+ gid_t st_gid;
+ unsigned int st_rdev;
+ unsigned int st_pad1[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ off_t st_size;
+ unsigned int st_atime;
+ unsigned int st_atime_nsec;
+ unsigned int st_mtime;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int st_mtime_nsec;
+ unsigned int st_ctime;
+ unsigned int st_ctime_nsec;
+ unsigned int st_blksize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned int st_pad2;
+ unsigned long st_blocks;
+};
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define STAT_HAVE_NSEC 1
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/statfs.h b/ndk/platforms/android-9/arch-mips/include/asm/statfs.h
new file mode 100644
index 0000000..a6e5c6a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/statfs.h
@@ -0,0 +1,98 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_STATFS_H
+#define _ASM_STATFS_H
+#include <linux/posix_types.h>
+#include <asm/sgidefs.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct statfs {
+ long f_type;
+#define f_fstyp f_type
+ long f_bsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long f_frsize;
+ long f_blocks;
+ long f_bfree;
+ long f_files;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long f_ffree;
+ long f_bavail;
+ __kernel_fsid_t f_fsid;
+ long f_namelen;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long f_spare[6];
+};
+#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_NABI32
+struct statfs64 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 f_type;
+ __u32 f_bsize;
+ __u32 f_frsize;
+ __u32 __pad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u64 f_blocks;
+ __u64 f_bfree;
+ __u64 f_files;
+ __u64 f_ffree;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u64 f_bavail;
+ __kernel_fsid_t f_fsid;
+ __u32 f_namelen;
+ __u32 f_spare[6];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#endif
+#if _MIPS_SIM == _MIPS_SIM_ABI64
+struct statfs64 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long f_type;
+ long f_bsize;
+ long f_frsize;
+ long f_blocks;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ long f_bfree;
+ long f_files;
+ long f_ffree;
+ long f_bavail;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __kernel_fsid_t f_fsid;
+ long f_namelen;
+ long f_spare[6];
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct compat_statfs64 {
+ __u32 f_type;
+ __u32 f_bsize;
+ __u32 f_frsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 __pad;
+ __u64 f_blocks;
+ __u64 f_bfree;
+ __u64 f_files;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u64 f_ffree;
+ __u64 f_bavail;
+ __kernel_fsid_t f_fsid;
+ __u32 f_namelen;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ __u32 f_spare[6];
+};
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/string.h b/ndk/platforms/android-9/arch-mips/include/asm/string.h
new file mode 100644
index 0000000..856f61b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/string.h
@@ -0,0 +1,25 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_STRING_H
+#define _ASM_STRING_H
+#define __HAVE_ARCH_MEMSET
+#define __HAVE_ARCH_MEMCPY
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __HAVE_ARCH_MEMMOVE
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/sysmips.h b/ndk/platforms/android-9/arch-mips/include/asm/sysmips.h
new file mode 100644
index 0000000..665f67f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/sysmips.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SYSMIPS_H
+#define _ASM_SYSMIPS_H
+#define SETNAME 1  
+#define FLUSH_CACHE 3  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_FIXADE 7  
+#define MIPS_RDNVRAM 10  
+#define MIPS_ATOMIC_SET 2001  
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/system.h b/ndk/platforms/android-9/arch-mips/include/asm/system.h
new file mode 100644
index 0000000..b2b2760
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/system.h
@@ -0,0 +1,41 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_SYSTEM_H
+#define _ASM_SYSTEM_H
+#include <linux/types.h>
+#include <linux/irqflags.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/addrspace.h>
+#include <asm/barrier.h>
+#include <asm/cmpxchg.h>
+#include <asm/cpu-features.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <asm/dsp.h>
+#include <asm/war.h>
+struct task_struct;
+#define __mips_mt_fpaff_switch_to(prev) do { (void) (prev); } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define switch_to(prev, next, last)  do {   __mips_mt_fpaff_switch_to(prev);   if (cpu_has_dsp)   __save_dsp(prev);   (last) = resume(prev, next, task_thread_info(next));  } while (0)
+#define finish_arch_switch(prev)  do {   if (cpu_has_dsp)   __restore_dsp(current);   if (cpu_has_userlocal)   write_c0_userlocal(current_thread_info()->tp_value);  } while (0)
+#define __xchg_u64 __xchg_u64_unsupported_on_32bit_kernels
+#define xchg(ptr, x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), sizeof(*(ptr))))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef void (*vi_handler_t)(void);
+#define __ARCH_WANT_UNLOCKED_CTXSW
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/termbits.h b/ndk/platforms/android-9/arch-mips/include/asm/termbits.h
new file mode 100644
index 0000000..6a0add7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/termbits.h
@@ -0,0 +1,240 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_TERMBITS_H
+#define _ASM_TERMBITS_H
+#include <linux/posix_types.h>
+typedef unsigned char cc_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned int speed_t;
+typedef unsigned int tcflag_t;
+#define NCCS 23
+struct termios {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ tcflag_t c_iflag;
+ tcflag_t c_oflag;
+ tcflag_t c_cflag;
+ tcflag_t c_lflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ cc_t c_line;
+ cc_t c_cc[NCCS];
+};
+struct termios2 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ tcflag_t c_iflag;
+ tcflag_t c_oflag;
+ tcflag_t c_cflag;
+ tcflag_t c_lflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ cc_t c_line;
+ cc_t c_cc[NCCS];
+ speed_t c_ispeed;
+ speed_t c_ospeed;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+struct ktermios {
+ tcflag_t c_iflag;
+ tcflag_t c_oflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ tcflag_t c_cflag;
+ tcflag_t c_lflag;
+ cc_t c_line;
+ cc_t c_cc[NCCS];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ speed_t c_ispeed;
+ speed_t c_ospeed;
+};
+#define VINTR 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VQUIT 1  
+#define VERASE 2  
+#define VKILL 3  
+#define VMIN 4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VTIME 5  
+#define VEOL2 6  
+#define VSWTC 7  
+#define VSWTCH VSWTC
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VSTART 8  
+#define VSTOP 9  
+#define VSUSP 10  
+#define VREPRINT 12  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VDISCARD 13  
+#define VWERASE 14  
+#define VLNEXT 15  
+#define VEOF 16  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VEOL 17  
+#define IGNBRK 0000001  
+#define BRKINT 0000002  
+#define IGNPAR 0000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define PARMRK 0000010  
+#define INPCK 0000020  
+#define ISTRIP 0000040  
+#define INLCR 0000100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IGNCR 0000200  
+#define ICRNL 0000400  
+#define IUCLC 0001000  
+#define IXON 0002000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define IXANY 0004000  
+#define IXOFF 0010000  
+#define IMAXBEL 0020000  
+#define IUTF8 0040000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define OPOST 0000001  
+#define OLCUC 0000002  
+#define ONLCR 0000004  
+#define OCRNL 0000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ONOCR 0000020
+#define ONLRET 0000040
+#define OFILL 0000100
+#define OFDEL 0000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define NLDLY 0000400
+#define NL0 0000000
+#define NL1 0000400
+#define CRDLY 0003000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CR0 0000000
+#define CR1 0001000
+#define CR2 0002000
+#define CR3 0003000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TABDLY 0014000
+#define TAB0 0000000
+#define TAB1 0004000
+#define TAB2 0010000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TAB3 0014000
+#define XTABS 0014000
+#define BSDLY 0020000
+#define BS0 0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BS1 0020000
+#define VTDLY 0040000
+#define VT0 0000000
+#define VT1 0040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define FFDLY 0100000
+#define FF0 0000000
+#define FF1 0100000
+#define CBAUD 0010017
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B0 0000000  
+#define B50 0000001
+#define B75 0000002
+#define B110 0000003
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B134 0000004
+#define B150 0000005
+#define B200 0000006
+#define B300 0000007
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B600 0000010
+#define B1200 0000011
+#define B1800 0000012
+#define B2400 0000013
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B4800 0000014
+#define B9600 0000015
+#define B19200 0000016
+#define B38400 0000017
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EXTA B19200
+#define EXTB B38400
+#define CSIZE 0000060  
+#define CS5 0000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CS6 0000020  
+#define CS7 0000040  
+#define CS8 0000060  
+#define CSTOPB 0000100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CREAD 0000200  
+#define PARENB 0000400  
+#define PARODD 0001000  
+#define HUPCL 0002000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CLOCAL 0004000  
+#define CBAUDEX 0010000
+#define BOTHER 0010000
+#define B57600 0010001
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B115200 0010002
+#define B230400 0010003
+#define B460800 0010004
+#define B500000 0010005
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B576000 0010006
+#define B921600 0010007
+#define B1000000 0010010
+#define B1152000 0010011
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B1500000 0010012
+#define B2000000 0010013
+#define B2500000 0010014
+#define B3000000 0010015
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define B3500000 0010016
+#define B4000000 0010017
+#define CIBAUD 002003600000  
+#define CMSPAR 010000000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define CRTSCTS 020000000000  
+#define IBSHIFT 16  
+#define ISIG 0000001  
+#define ICANON 0000002  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XCASE 0000004
+#define ECHO 0000010  
+#define ECHOE 0000020  
+#define ECHOK 0000040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ECHONL 0000100  
+#define NOFLSH 0000200  
+#define IEXTEN 0000400  
+#define ECHOCTL 0001000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define ECHOPRT 0002000  
+#define ECHOKE 0004000  
+#define FLUSHO 0020000
+#define PENDIN 0040000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TOSTOP 0100000  
+#define ITOSTOP TOSTOP
+#define TIOCSER_TEMT 0x01  
+#define TCOOFF 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCOON 1  
+#define TCIOFF 2  
+#define TCION 3  
+#define TCIFLUSH 0  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCOFLUSH 1  
+#define TCIOFLUSH 2  
+#define TCSANOW TCSETS  
+#define TCSADRAIN TCSETSW  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TCSAFLUSH TCSETSF  
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/termios.h b/ndk/platforms/android-9/arch-mips/include/asm/termios.h
new file mode 100644
index 0000000..d6f230e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/termios.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_TERMIOS_H
+#define _ASM_TERMIOS_H
+#include <asm/termbits.h>
+#include <asm/ioctls.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+struct sgttyb {
+ char sg_ispeed;
+ char sg_ospeed;
+ char sg_erase;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char sg_kill;
+ int sg_flags;
+};
+struct tchars {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char t_intrc;
+ char t_quitc;
+ char t_startc;
+ char t_stopc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char t_eofc;
+ char t_brkc;
+};
+struct ltchars {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char t_suspc;
+ char t_dsuspc;
+ char t_rprntc;
+ char t_flushc;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ char t_werasc;
+ char t_lnextc;
+};
+struct winsize {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short ws_row;
+ unsigned short ws_col;
+ unsigned short ws_xpixel;
+ unsigned short ws_ypixel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+};
+#define NCC 8
+struct termio {
+ unsigned short c_iflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned short c_oflag;
+ unsigned short c_cflag;
+ unsigned short c_lflag;
+ char c_line;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned char c_cc[NCCS];
+};
+#define TIOCM_LE 0x001  
+#define TIOCM_DTR 0x002  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCM_RTS 0x004  
+#define TIOCM_ST 0x010  
+#define TIOCM_SR 0x020  
+#define TIOCM_CTS 0x040  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCM_CAR 0x100  
+#define TIOCM_CD TIOCM_CAR
+#define TIOCM_RNG 0x200  
+#define TIOCM_RI TIOCM_RNG
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TIOCM_DSR 0x400  
+#define TIOCM_OUT1 0x2000
+#define TIOCM_OUT2 0x4000
+#define TIOCM_LOOP 0x8000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_TTY 0
+#define N_SLIP 1
+#define N_MOUSE 2
+#define N_PPP 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_STRIP 4
+#define N_AX25 5
+#define N_X25 6
+#define N_6PACK 7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_MASC 8
+#define N_R3964 9
+#define N_PROFIBUS_FDL 10
+#define N_IRDA 11
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_SMSBLOCK 12
+#define N_HDLC 13
+#define N_SYNC_PPP 14
+#define N_HCI 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/thread_info.h b/ndk/platforms/android-9/arch-mips/include/asm/thread_info.h
new file mode 100644
index 0000000..07fc66b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/thread_info.h
@@ -0,0 +1,21 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_THREAD_INFO_H
+#define _ASM_THREAD_INFO_H
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/timex.h b/ndk/platforms/android-9/arch-mips/include/asm/timex.h
new file mode 100644
index 0000000..99baac6
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/timex.h
@@ -0,0 +1,21 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_TIMEX_H
+#define _ASM_TIMEX_H
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/tlb.h b/ndk/platforms/android-9/arch-mips/include/asm/tlb.h
new file mode 100644
index 0000000..6f65f1d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/tlb.h
@@ -0,0 +1,28 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_TLB_H
+#define __ASM_TLB_H
+#define tlb_start_vma(tlb, vma)   do {   if (!tlb->fullmm)   flush_cache_range(vma, vma->vm_start, vma->vm_end);   } while (0)
+#define tlb_end_vma(tlb, vma) do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __tlb_remove_tlb_entry(tlb, ptep, address) do { } while (0)
+#define tlb_flush(tlb) flush_tlb_mm((tlb)->mm)
+#include <asm-generic/tlb.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/tlbflush.h b/ndk/platforms/android-9/arch-mips/include/asm/tlbflush.h
new file mode 100644
index 0000000..dab8e17
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/tlbflush.h
@@ -0,0 +1,30 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_TLBFLUSH_H
+#define __ASM_TLBFLUSH_H
+#include <linux/mm.h>
+#define flush_tlb_all() local_flush_tlb_all()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define flush_tlb_mm(mm) local_flush_tlb_mm(mm)
+#define flush_tlb_range(vma, vmaddr, end) local_flush_tlb_range(vma, vmaddr, end)
+#define flush_tlb_kernel_range(vmaddr,end)   local_flush_tlb_kernel_range(vmaddr, end)
+#define flush_tlb_page(vma, page) local_flush_tlb_page(vma, page)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define flush_tlb_one(vaddr) local_flush_tlb_one(vaddr)
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/topology.h b/ndk/platforms/android-9/arch-mips/include/asm/topology.h
new file mode 100644
index 0000000..550e423
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/topology.h
@@ -0,0 +1,23 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_TOPOLOGY_H
+#define __ASM_TOPOLOGY_H
+#include <topology.h>
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/txx9irq.h b/ndk/platforms/android-9/arch-mips/include/asm/txx9irq.h
new file mode 100644
index 0000000..3272abe
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/txx9irq.h
@@ -0,0 +1,25 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __ASM_TXX9IRQ_H
+#define __ASM_TXX9IRQ_H
+#include <irq.h>
+#define TXX9_IRQ_BASE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define TXx9_MAX_IR 32
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/types.h b/ndk/platforms/android-9/arch-mips/include/asm/types.h
new file mode 100644
index 0000000..f67dd88
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/types.h
@@ -0,0 +1,44 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_TYPES_H
+#define _ASM_TYPES_H
+#ifndef __ASSEMBLY__
+typedef unsigned short umode_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef __signed__ char __s8;
+typedef unsigned char __u8;
+typedef __signed__ short __s16;
+typedef unsigned short __u16;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef __signed__ int __s32;
+typedef unsigned int __u32;
+#if _MIPS_SZLONG == 64
+typedef __signed__ long __s64;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned long __u64;
+#else
+#ifdef __GNUC__
+typedef __signed__ long long __s64;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef unsigned long long __u64;
+#endif
+#endif
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/uaccess.h b/ndk/platforms/android-9/arch-mips/include/asm/uaccess.h
new file mode 100644
index 0000000..3703af3
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/uaccess.h
@@ -0,0 +1,89 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_UACCESS_H
+#define _ASM_UACCESS_H
+#include <linux/kernel.h>
+#include <linux/errno.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/thread_info.h>
+#include <asm-generic/uaccess.h>
+#define KERNEL_DS ((mm_segment_t) { 0UL })
+#define USER_DS ((mm_segment_t) { __UA_LIMIT })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VERIFY_READ 0
+#define VERIFY_WRITE 1
+#define get_ds() (KERNEL_DS)
+#define get_fs() (current_thread_info()->addr_limit)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define set_fs(x) (current_thread_info()->addr_limit = (x))
+#define segment_eq(a, b) ((a).seg == (b).seg)
+#define __ua_size(size)   ((__builtin_constant_p(size) && (signed long) (size) > 0) ? 0 : (size))
+#define __access_mask get_fs().seg
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __access_ok(addr, size, mask)   (((signed long)((mask) & ((addr) | ((addr) + (size)) | __ua_size(size)))) == 0)
+#define access_ok(type, addr, size)   likely(__access_ok((unsigned long)(addr), (size), __access_mask))
+#define put_user(x,ptr)   __put_user_check((x), (ptr), sizeof(*(ptr)))
+#define get_user(x,ptr)   __get_user_check((x), (ptr), sizeof(*(ptr)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __put_user(x,ptr)   __put_user_nocheck((x), (ptr), sizeof(*(ptr)))
+#define __get_user(x,ptr)   __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
+struct __large_struct { unsigned long buf[100]; };
+#define __m(x) (*(struct __large_struct __user *)(x))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __get_user_common(val, size, ptr)  do {   switch (size) {   case 1: __get_user_asm(val, "lb", ptr); break;   case 2: __get_user_asm(val, "lh", ptr); break;   case 4: __get_user_asm(val, "lw", ptr); break;   case 8: __GET_USER_DW(val, ptr); break;   default: __get_user_unknown(); break;   }  } while (0)
+#define __get_user_nocheck(x, ptr, size)  ({   long __gu_err;     __get_user_common((x), size, ptr);   __gu_err;  })
+#define __get_user_check(x, ptr, size)  ({   long __gu_err = -EFAULT;   const __typeof__(*(ptr)) __user * __gu_ptr = (ptr);     if (likely(access_ok(VERIFY_READ, __gu_ptr, size)))   __get_user_common((x), size, __gu_ptr);     __gu_err;  })
+#define __get_user_asm(val, insn, addr)  {   long __gu_tmp;     __asm__ __volatile__(   "1:	" insn "	%1, %3				\n"   "2:							\n"   "	.section .fixup,\"ax\"				\n"   "3:	li	%0, %4					\n"   "	j	2b					\n"   "	.previous					\n"   "	.section __ex_table,\"a\"			\n"   "	"__UA_ADDR "\t1b, 3b				\n"   "	.previous					\n"   : "=r" (__gu_err), "=r" (__gu_tmp)   : "0" (0), "o" (__m(addr)), "i" (-EFAULT));     (val) = (__typeof__(*(addr))) __gu_tmp;  }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __get_user_asm_ll32(val, addr)  {   union {   unsigned long long l;   __typeof__(*(addr)) t;   } __gu_tmp;     __asm__ __volatile__(   "1:	lw	%1, (%3)				\n"   "2:	lw	%D1, 4(%3)				\n"   "3:	.section	.fixup,\"ax\"			\n"   "4:	li	%0, %4					\n"   "	move	%1, $0					\n"   "	move	%D1, $0					\n"   "	j	3b					\n"   "	.previous					\n"   "	.section	__ex_table,\"a\"		\n"   "	" __UA_ADDR "	1b, 4b				\n"   "	" __UA_ADDR "	2b, 4b				\n"   "	.previous					\n"   : "=r" (__gu_err), "=&r" (__gu_tmp.l)   : "0" (0), "r" (addr), "i" (-EFAULT));     (val) = __gu_tmp.t;  }
+#define __put_user_nocheck(x, ptr, size)  ({   __typeof__(*(ptr)) __pu_val;   long __pu_err = 0;     __pu_val = (x);   switch (size) {   case 1: __put_user_asm("sb", ptr); break;   case 2: __put_user_asm("sh", ptr); break;   case 4: __put_user_asm("sw", ptr); break;   case 8: __PUT_USER_DW(ptr); break;   default: __put_user_unknown(); break;   }   __pu_err;  })
+#define __put_user_check(x, ptr, size)  ({   __typeof__(*(ptr)) __user *__pu_addr = (ptr);   __typeof__(*(ptr)) __pu_val = (x);   long __pu_err = -EFAULT;     if (likely(access_ok(VERIFY_WRITE, __pu_addr, size))) {   switch (size) {   case 1: __put_user_asm("sb", __pu_addr); break;   case 2: __put_user_asm("sh", __pu_addr); break;   case 4: __put_user_asm("sw", __pu_addr); break;   case 8: __PUT_USER_DW(__pu_addr); break;   default: __put_user_unknown(); break;   }   }   __pu_err;  })
+#define __put_user_asm(insn, ptr)  {   __asm__ __volatile__(   "1:	" insn "	%z2, %3		# __put_user_asm\n"   "2:							\n"   "	.section	.fixup,\"ax\"			\n"   "3:	li	%0, %4					\n"   "	j	2b					\n"   "	.previous					\n"   "	.section	__ex_table,\"a\"		\n"   "	" __UA_ADDR "	1b, 3b				\n"   "	.previous					\n"   : "=r" (__pu_err)   : "0" (0), "Jr" (__pu_val), "o" (__m(ptr)),   "i" (-EFAULT));  }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __put_user_asm_ll32(ptr)  {   __asm__ __volatile__(   "1:	sw	%2, (%3)	# __put_user_asm_ll32	\n"   "2:	sw	%D2, 4(%3)				\n"   "3:							\n"   "	.section	.fixup,\"ax\"			\n"   "4:	li	%0, %4					\n"   "	j	3b					\n"   "	.previous					\n"   "	.section	__ex_table,\"a\"		\n"   "	" __UA_ADDR "	1b, 4b				\n"   "	" __UA_ADDR "	2b, 4b				\n"   "	.previous"   : "=r" (__pu_err)   : "0" (0), "r" (__pu_val), "r" (ptr),   "i" (-EFAULT));  }
+#ifdef MODULE
+#define __MODULE_JAL(destination)   ".set\tnoat\n\t"   __UA_LA "\t$1, " #destination "\n\t"   "jalr\t$1\n\t"   ".set\tat\n\t"
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __MODULE_JAL(destination)   "jal\t" #destination "\n\t"
+#endif
+#define DADDI_SCRATCH "$0"
+#define __invoke_copy_to_user(to, from, n)  ({   register void __user *__cu_to_r __asm__("$4");   register const void *__cu_from_r __asm__("$5");   register long __cu_len_r __asm__("$6");     __cu_to_r = (to);   __cu_from_r = (from);   __cu_len_r = (n);   __asm__ __volatile__(   __MODULE_JAL(__copy_user)   : "+r" (__cu_to_r), "+r" (__cu_from_r), "+r" (__cu_len_r)   :   : "$8", "$9", "$10", "$11", "$12", "$15", "$24", "$31",   DADDI_SCRATCH, "memory");   __cu_len_r;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __copy_to_user(to, from, n)  ({   void __user *__cu_to;   const void *__cu_from;   long __cu_len;     might_sleep();   __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, __cu_len);   __cu_len;  })
+#define __copy_to_user_inatomic(to, from, n)  ({   void __user *__cu_to;   const void *__cu_from;   long __cu_len;     __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   __cu_len = __invoke_copy_to_user(__cu_to, __cu_from, __cu_len);   __cu_len;  })
+#define __copy_from_user_inatomic(to, from, n)  ({   void *__cu_to;   const void __user *__cu_from;   long __cu_len;     __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   __cu_len = __invoke_copy_from_user_inatomic(__cu_to, __cu_from,   __cu_len);   __cu_len;  })
+#define copy_to_user(to, from, n)  ({   void __user *__cu_to;   const void *__cu_from;   long __cu_len;     might_sleep();   __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   if (access_ok(VERIFY_WRITE, __cu_to, __cu_len))   __cu_len = __invoke_copy_to_user(__cu_to, __cu_from,   __cu_len);   __cu_len;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __invoke_copy_from_user(to, from, n)  ({   register void *__cu_to_r __asm__("$4");   register const void __user *__cu_from_r __asm__("$5");   register long __cu_len_r __asm__("$6");     __cu_to_r = (to);   __cu_from_r = (from);   __cu_len_r = (n);   __asm__ __volatile__(   ".set\tnoreorder\n\t"   __MODULE_JAL(__copy_user)   ".set\tnoat\n\t"   __UA_ADDU "\t$1, %1, %2\n\t"   ".set\tat\n\t"   ".set\treorder"   : "+r" (__cu_to_r), "+r" (__cu_from_r), "+r" (__cu_len_r)   :   : "$8", "$9", "$10", "$11", "$12", "$15", "$24", "$31",   DADDI_SCRATCH, "memory");   __cu_len_r;  })
+#define __invoke_copy_from_user_inatomic(to, from, n)  ({   register void *__cu_to_r __asm__("$4");   register const void __user *__cu_from_r __asm__("$5");   register long __cu_len_r __asm__("$6");     __cu_to_r = (to);   __cu_from_r = (from);   __cu_len_r = (n);   __asm__ __volatile__(   ".set\tnoreorder\n\t"   __MODULE_JAL(__copy_user_inatomic)   ".set\tnoat\n\t"   __UA_ADDU "\t$1, %1, %2\n\t"   ".set\tat\n\t"   ".set\treorder"   : "+r" (__cu_to_r), "+r" (__cu_from_r), "+r" (__cu_len_r)   :   : "$8", "$9", "$10", "$11", "$12", "$15", "$24", "$31",   DADDI_SCRATCH, "memory");   __cu_len_r;  })
+#define __copy_from_user(to, from, n)  ({   void *__cu_to;   const void __user *__cu_from;   long __cu_len;     might_sleep();   __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   __cu_len = __invoke_copy_from_user(__cu_to, __cu_from,   __cu_len);   __cu_len;  })
+#define copy_from_user(to, from, n)  ({   void *__cu_to;   const void __user *__cu_from;   long __cu_len;     might_sleep();   __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   if (access_ok(VERIFY_READ, __cu_from, __cu_len))   __cu_len = __invoke_copy_from_user(__cu_to, __cu_from,   __cu_len);   __cu_len;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __copy_in_user(to, from, n) __copy_from_user(to, from, n)
+#define copy_in_user(to, from, n)  ({   void __user *__cu_to;   const void __user *__cu_from;   long __cu_len;     might_sleep();   __cu_to = (to);   __cu_from = (from);   __cu_len = (n);   if (likely(access_ok(VERIFY_READ, __cu_from, __cu_len) &&   access_ok(VERIFY_WRITE, __cu_to, __cu_len)))   __cu_len = __invoke_copy_from_user(__cu_to, __cu_from,   __cu_len);   __cu_len;  })
+#define clear_user(addr,n)  ({   void __user * __cl_addr = (addr);   unsigned long __cl_size = (n);   if (__cl_size && access_ok(VERIFY_WRITE,   ((unsigned long)(__cl_addr)), __cl_size))   __cl_size = __clear_user(__cl_addr, __cl_size);   __cl_size;  })
+struct exception_table_entry
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+{
+ unsigned long insn;
+ unsigned long nextinsn;
+};
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/unaligned.h b/ndk/platforms/android-9/arch-mips/include/asm/unaligned.h
new file mode 100644
index 0000000..3024aeb
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/unaligned.h
@@ -0,0 +1,41 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_MIPS_UNALIGNED_H
+#define _ASM_MIPS_UNALIGNED_H
+#include <linux/compiler.h>
+#ifdef __MIPSEB__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/unaligned/be_struct.h>
+#include <linux/unaligned/le_byteshift.h>
+#include <linux/unaligned/generic.h>
+#define get_unaligned __get_unaligned_be
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define put_unaligned __put_unaligned_be
+#elif defined(__MIPSEL__)
+#include <linux/unaligned/le_struct.h>
+#include <linux/unaligned/be_byteshift.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#include <linux/unaligned/generic.h>
+#define get_unaligned __get_unaligned_le
+#define put_unaligned __put_unaligned_le
+#else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/unistd.h b/ndk/platforms/android-9/arch-mips/include/asm/unistd.h
new file mode 100644
index 0000000..38e84cc
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/unistd.h
@@ -0,0 +1,1181 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_UNISTD_H
+#define _ASM_UNISTD_H
+#include <asm/sgidefs.h>
+#if _MIPS_SIM == _MIPS_SIM_ABI32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_Linux 4000
+#define __NR_syscall (__NR_Linux + 0)
+#define __NR_exit (__NR_Linux + 1)
+#define __NR_fork (__NR_Linux + 2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_read (__NR_Linux + 3)
+#define __NR_write (__NR_Linux + 4)
+#define __NR_open (__NR_Linux + 5)
+#define __NR_close (__NR_Linux + 6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_waitpid (__NR_Linux + 7)
+#define __NR_creat (__NR_Linux + 8)
+#define __NR_link (__NR_Linux + 9)
+#define __NR_unlink (__NR_Linux + 10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_execve (__NR_Linux + 11)
+#define __NR_chdir (__NR_Linux + 12)
+#define __NR_time (__NR_Linux + 13)
+#define __NR_mknod (__NR_Linux + 14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_chmod (__NR_Linux + 15)
+#define __NR_lchown (__NR_Linux + 16)
+#define __NR_break (__NR_Linux + 17)
+#define __NR_unused18 (__NR_Linux + 18)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lseek (__NR_Linux + 19)
+#define __NR_getpid (__NR_Linux + 20)
+#define __NR_mount (__NR_Linux + 21)
+#define __NR_umount (__NR_Linux + 22)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setuid (__NR_Linux + 23)
+#define __NR_getuid (__NR_Linux + 24)
+#define __NR_stime (__NR_Linux + 25)
+#define __NR_ptrace (__NR_Linux + 26)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_alarm (__NR_Linux + 27)
+#define __NR_unused28 (__NR_Linux + 28)
+#define __NR_pause (__NR_Linux + 29)
+#define __NR_utime (__NR_Linux + 30)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_stty (__NR_Linux + 31)
+#define __NR_gtty (__NR_Linux + 32)
+#define __NR_access (__NR_Linux + 33)
+#define __NR_nice (__NR_Linux + 34)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_ftime (__NR_Linux + 35)
+#define __NR_sync (__NR_Linux + 36)
+#define __NR_kill (__NR_Linux + 37)
+#define __NR_rename (__NR_Linux + 38)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mkdir (__NR_Linux + 39)
+#define __NR_rmdir (__NR_Linux + 40)
+#define __NR_dup (__NR_Linux + 41)
+#define __NR_pipe (__NR_Linux + 42)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_times (__NR_Linux + 43)
+#define __NR_prof (__NR_Linux + 44)
+#define __NR_brk (__NR_Linux + 45)
+#define __NR_setgid (__NR_Linux + 46)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getgid (__NR_Linux + 47)
+#define __NR_signal (__NR_Linux + 48)
+#define __NR_geteuid (__NR_Linux + 49)
+#define __NR_getegid (__NR_Linux + 50)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_acct (__NR_Linux + 51)
+#define __NR_umount2 (__NR_Linux + 52)
+#define __NR_lock (__NR_Linux + 53)
+#define __NR_ioctl (__NR_Linux + 54)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fcntl (__NR_Linux + 55)
+#define __NR_mpx (__NR_Linux + 56)
+#define __NR_setpgid (__NR_Linux + 57)
+#define __NR_ulimit (__NR_Linux + 58)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_unused59 (__NR_Linux + 59)
+#define __NR_umask (__NR_Linux + 60)
+#define __NR_chroot (__NR_Linux + 61)
+#define __NR_ustat (__NR_Linux + 62)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_dup2 (__NR_Linux + 63)
+#define __NR_getppid (__NR_Linux + 64)
+#define __NR_getpgrp (__NR_Linux + 65)
+#define __NR_setsid (__NR_Linux + 66)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sigaction (__NR_Linux + 67)
+#define __NR_sgetmask (__NR_Linux + 68)
+#define __NR_ssetmask (__NR_Linux + 69)
+#define __NR_setreuid (__NR_Linux + 70)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setregid (__NR_Linux + 71)
+#define __NR_sigsuspend (__NR_Linux + 72)
+#define __NR_sigpending (__NR_Linux + 73)
+#define __NR_sethostname (__NR_Linux + 74)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setrlimit (__NR_Linux + 75)
+#define __NR_getrlimit (__NR_Linux + 76)
+#define __NR_getrusage (__NR_Linux + 77)
+#define __NR_gettimeofday (__NR_Linux + 78)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_settimeofday (__NR_Linux + 79)
+#define __NR_getgroups (__NR_Linux + 80)
+#define __NR_setgroups (__NR_Linux + 81)
+#define __NR_reserved82 (__NR_Linux + 82)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_symlink (__NR_Linux + 83)
+#define __NR_unused84 (__NR_Linux + 84)
+#define __NR_readlink (__NR_Linux + 85)
+#define __NR_uselib (__NR_Linux + 86)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_swapon (__NR_Linux + 87)
+#define __NR_reboot (__NR_Linux + 88)
+#define __NR_readdir (__NR_Linux + 89)
+#define __NR_mmap (__NR_Linux + 90)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_munmap (__NR_Linux + 91)
+#define __NR_truncate (__NR_Linux + 92)
+#define __NR_ftruncate (__NR_Linux + 93)
+#define __NR_fchmod (__NR_Linux + 94)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fchown (__NR_Linux + 95)
+#define __NR_getpriority (__NR_Linux + 96)
+#define __NR_setpriority (__NR_Linux + 97)
+#define __NR_profil (__NR_Linux + 98)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_statfs (__NR_Linux + 99)
+#define __NR_fstatfs (__NR_Linux + 100)
+#define __NR_ioperm (__NR_Linux + 101)
+#define __NR_socketcall (__NR_Linux + 102)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_syslog (__NR_Linux + 103)
+#define __NR_setitimer (__NR_Linux + 104)
+#define __NR_getitimer (__NR_Linux + 105)
+#define __NR_stat (__NR_Linux + 106)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lstat (__NR_Linux + 107)
+#define __NR_fstat (__NR_Linux + 108)
+#define __NR_unused109 (__NR_Linux + 109)
+#define __NR_iopl (__NR_Linux + 110)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_vhangup (__NR_Linux + 111)
+#define __NR_idle (__NR_Linux + 112)
+#define __NR_vm86 (__NR_Linux + 113)
+#define __NR_wait4 (__NR_Linux + 114)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_swapoff (__NR_Linux + 115)
+#define __NR_sysinfo (__NR_Linux + 116)
+#define __NR_ipc (__NR_Linux + 117)
+#define __NR_fsync (__NR_Linux + 118)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sigreturn (__NR_Linux + 119)
+#define __NR_clone (__NR_Linux + 120)
+#define __NR_setdomainname (__NR_Linux + 121)
+#define __NR_uname (__NR_Linux + 122)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_modify_ldt (__NR_Linux + 123)
+#define __NR_adjtimex (__NR_Linux + 124)
+#define __NR_mprotect (__NR_Linux + 125)
+#define __NR_sigprocmask (__NR_Linux + 126)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_create_module (__NR_Linux + 127)
+#define __NR_init_module (__NR_Linux + 128)
+#define __NR_delete_module (__NR_Linux + 129)
+#define __NR_get_kernel_syms (__NR_Linux + 130)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_quotactl (__NR_Linux + 131)
+#define __NR_getpgid (__NR_Linux + 132)
+#define __NR_fchdir (__NR_Linux + 133)
+#define __NR_bdflush (__NR_Linux + 134)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sysfs (__NR_Linux + 135)
+#define __NR_personality (__NR_Linux + 136)
+#define __NR_afs_syscall (__NR_Linux + 137)  
+#define __NR_setfsuid (__NR_Linux + 138)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setfsgid (__NR_Linux + 139)
+#define __NR__llseek (__NR_Linux + 140)
+#define __NR_getdents (__NR_Linux + 141)
+#define __NR__newselect (__NR_Linux + 142)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_flock (__NR_Linux + 143)
+#define __NR_msync (__NR_Linux + 144)
+#define __NR_readv (__NR_Linux + 145)
+#define __NR_writev (__NR_Linux + 146)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_cacheflush (__NR_Linux + 147)
+#define __NR_cachectl (__NR_Linux + 148)
+#define __NR_sysmips (__NR_Linux + 149)
+#define __NR_unused150 (__NR_Linux + 150)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getsid (__NR_Linux + 151)
+#define __NR_fdatasync (__NR_Linux + 152)
+#define __NR__sysctl (__NR_Linux + 153)
+#define __NR_mlock (__NR_Linux + 154)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_munlock (__NR_Linux + 155)
+#define __NR_mlockall (__NR_Linux + 156)
+#define __NR_munlockall (__NR_Linux + 157)
+#define __NR_sched_setparam (__NR_Linux + 158)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_getparam (__NR_Linux + 159)
+#define __NR_sched_setscheduler (__NR_Linux + 160)
+#define __NR_sched_getscheduler (__NR_Linux + 161)
+#define __NR_sched_yield (__NR_Linux + 162)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_get_priority_max (__NR_Linux + 163)
+#define __NR_sched_get_priority_min (__NR_Linux + 164)
+#define __NR_sched_rr_get_interval (__NR_Linux + 165)
+#define __NR_nanosleep (__NR_Linux + 166)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mremap (__NR_Linux + 167)
+#define __NR_accept (__NR_Linux + 168)
+#define __NR_bind (__NR_Linux + 169)
+#define __NR_connect (__NR_Linux + 170)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getpeername (__NR_Linux + 171)
+#define __NR_getsockname (__NR_Linux + 172)
+#define __NR_getsockopt (__NR_Linux + 173)
+#define __NR_listen (__NR_Linux + 174)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_recv (__NR_Linux + 175)
+#define __NR_recvfrom (__NR_Linux + 176)
+#define __NR_recvmsg (__NR_Linux + 177)
+#define __NR_send (__NR_Linux + 178)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sendmsg (__NR_Linux + 179)
+#define __NR_sendto (__NR_Linux + 180)
+#define __NR_setsockopt (__NR_Linux + 181)
+#define __NR_shutdown (__NR_Linux + 182)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_socket (__NR_Linux + 183)
+#define __NR_socketpair (__NR_Linux + 184)
+#define __NR_setresuid (__NR_Linux + 185)
+#define __NR_getresuid (__NR_Linux + 186)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_query_module (__NR_Linux + 187)
+#define __NR_poll (__NR_Linux + 188)
+#define __NR_nfsservctl (__NR_Linux + 189)
+#define __NR_setresgid (__NR_Linux + 190)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getresgid (__NR_Linux + 191)
+#define __NR_prctl (__NR_Linux + 192)
+#define __NR_rt_sigreturn (__NR_Linux + 193)
+#define __NR_rt_sigaction (__NR_Linux + 194)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rt_sigprocmask (__NR_Linux + 195)
+#define __NR_rt_sigpending (__NR_Linux + 196)
+#define __NR_rt_sigtimedwait (__NR_Linux + 197)
+#define __NR_rt_sigqueueinfo (__NR_Linux + 198)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rt_sigsuspend (__NR_Linux + 199)
+#define __NR_pread64 (__NR_Linux + 200)
+#define __NR_pwrite64 (__NR_Linux + 201)
+#define __NR_chown (__NR_Linux + 202)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getcwd (__NR_Linux + 203)
+#define __NR_capget (__NR_Linux + 204)
+#define __NR_capset (__NR_Linux + 205)
+#define __NR_sigaltstack (__NR_Linux + 206)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sendfile (__NR_Linux + 207)
+#define __NR_getpmsg (__NR_Linux + 208)
+#define __NR_putpmsg (__NR_Linux + 209)
+#define __NR_mmap2 (__NR_Linux + 210)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_truncate64 (__NR_Linux + 211)
+#define __NR_ftruncate64 (__NR_Linux + 212)
+#define __NR_stat64 (__NR_Linux + 213)
+#define __NR_lstat64 (__NR_Linux + 214)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fstat64 (__NR_Linux + 215)
+#define __NR_pivot_root (__NR_Linux + 216)
+#define __NR_mincore (__NR_Linux + 217)
+#define __NR_madvise (__NR_Linux + 218)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getdents64 (__NR_Linux + 219)
+#define __NR_fcntl64 (__NR_Linux + 220)
+#define __NR_reserved221 (__NR_Linux + 221)
+#define __NR_gettid (__NR_Linux + 222)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_readahead (__NR_Linux + 223)
+#define __NR_setxattr (__NR_Linux + 224)
+#define __NR_lsetxattr (__NR_Linux + 225)
+#define __NR_fsetxattr (__NR_Linux + 226)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getxattr (__NR_Linux + 227)
+#define __NR_lgetxattr (__NR_Linux + 228)
+#define __NR_fgetxattr (__NR_Linux + 229)
+#define __NR_listxattr (__NR_Linux + 230)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_llistxattr (__NR_Linux + 231)
+#define __NR_flistxattr (__NR_Linux + 232)
+#define __NR_removexattr (__NR_Linux + 233)
+#define __NR_lremovexattr (__NR_Linux + 234)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fremovexattr (__NR_Linux + 235)
+#define __NR_tkill (__NR_Linux + 236)
+#define __NR_sendfile64 (__NR_Linux + 237)
+#define __NR_futex (__NR_Linux + 238)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_setaffinity (__NR_Linux + 239)
+#define __NR_sched_getaffinity (__NR_Linux + 240)
+#define __NR_io_setup (__NR_Linux + 241)
+#define __NR_io_destroy (__NR_Linux + 242)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_io_getevents (__NR_Linux + 243)
+#define __NR_io_submit (__NR_Linux + 244)
+#define __NR_io_cancel (__NR_Linux + 245)
+#define __NR_exit_group (__NR_Linux + 246)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lookup_dcookie (__NR_Linux + 247)
+#define __NR_epoll_create (__NR_Linux + 248)
+#define __NR_epoll_ctl (__NR_Linux + 249)
+#define __NR_epoll_wait (__NR_Linux + 250)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_remap_file_pages (__NR_Linux + 251)
+#define __NR_set_tid_address (__NR_Linux + 252)
+#define __NR_restart_syscall (__NR_Linux + 253)
+#define __NR_fadvise64 (__NR_Linux + 254)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_statfs64 (__NR_Linux + 255)
+#define __NR_fstatfs64 (__NR_Linux + 256)
+#define __NR_timer_create (__NR_Linux + 257)
+#define __NR_timer_settime (__NR_Linux + 258)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_timer_gettime (__NR_Linux + 259)
+#define __NR_timer_getoverrun (__NR_Linux + 260)
+#define __NR_timer_delete (__NR_Linux + 261)
+#define __NR_clock_settime (__NR_Linux + 262)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_clock_gettime (__NR_Linux + 263)
+#define __NR_clock_getres (__NR_Linux + 264)
+#define __NR_clock_nanosleep (__NR_Linux + 265)
+#define __NR_tgkill (__NR_Linux + 266)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_utimes (__NR_Linux + 267)
+#define __NR_mbind (__NR_Linux + 268)
+#define __NR_get_mempolicy (__NR_Linux + 269)
+#define __NR_set_mempolicy (__NR_Linux + 270)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mq_open (__NR_Linux + 271)
+#define __NR_mq_unlink (__NR_Linux + 272)
+#define __NR_mq_timedsend (__NR_Linux + 273)
+#define __NR_mq_timedreceive (__NR_Linux + 274)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mq_notify (__NR_Linux + 275)
+#define __NR_mq_getsetattr (__NR_Linux + 276)
+#define __NR_vserver (__NR_Linux + 277)
+#define __NR_waitid (__NR_Linux + 278)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_add_key (__NR_Linux + 280)
+#define __NR_request_key (__NR_Linux + 281)
+#define __NR_keyctl (__NR_Linux + 282)
+#define __NR_set_thread_area (__NR_Linux + 283)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_inotify_init (__NR_Linux + 284)
+#define __NR_inotify_add_watch (__NR_Linux + 285)
+#define __NR_inotify_rm_watch (__NR_Linux + 286)
+#define __NR_migrate_pages (__NR_Linux + 287)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_openat (__NR_Linux + 288)
+#define __NR_mkdirat (__NR_Linux + 289)
+#define __NR_mknodat (__NR_Linux + 290)
+#define __NR_fchownat (__NR_Linux + 291)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_futimesat (__NR_Linux + 292)
+#define __NR_fstatat64 (__NR_Linux + 293)
+#define __NR_unlinkat (__NR_Linux + 294)
+#define __NR_renameat (__NR_Linux + 295)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_linkat (__NR_Linux + 296)
+#define __NR_symlinkat (__NR_Linux + 297)
+#define __NR_readlinkat (__NR_Linux + 298)
+#define __NR_fchmodat (__NR_Linux + 299)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_faccessat (__NR_Linux + 300)
+#define __NR_pselect6 (__NR_Linux + 301)
+#define __NR_ppoll (__NR_Linux + 302)
+#define __NR_unshare (__NR_Linux + 303)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_splice (__NR_Linux + 304)
+#define __NR_sync_file_range (__NR_Linux + 305)
+#define __NR_tee (__NR_Linux + 306)
+#define __NR_vmsplice (__NR_Linux + 307)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_move_pages (__NR_Linux + 308)
+#define __NR_set_robust_list (__NR_Linux + 309)
+#define __NR_get_robust_list (__NR_Linux + 310)
+#define __NR_kexec_load (__NR_Linux + 311)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getcpu (__NR_Linux + 312)
+#define __NR_epoll_pwait (__NR_Linux + 313)
+#define __NR_ioprio_set (__NR_Linux + 314)
+#define __NR_ioprio_get (__NR_Linux + 315)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_utimensat (__NR_Linux + 316)
+#define __NR_signalfd (__NR_Linux + 317)
+#define __NR_timerfd (__NR_Linux + 318)
+#define __NR_eventfd (__NR_Linux + 319)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fallocate (__NR_Linux + 320)
+#define __NR_timerfd_create (__NR_Linux + 321)
+#define __NR_timerfd_gettime (__NR_Linux + 322)
+#define __NR_timerfd_settime (__NR_Linux + 323)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_signalfd4 (__NR_Linux + 324)
+#define __NR_eventfd2 (__NR_Linux + 325)
+#define __NR_epoll_create1 (__NR_Linux + 326)
+#define __NR_dup3 (__NR_Linux + 327)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_pipe2 (__NR_Linux + 328)
+#define __NR_inotify_init1 (__NR_Linux + 329)
+#define __NR_Linux_syscalls 329
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_O32_Linux 4000
+#define __NR_O32_Linux_syscalls 329
+#if _MIPS_SIM == _MIPS_SIM_ABI64
+#define __NR_Linux 5000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_read (__NR_Linux + 0)
+#define __NR_write (__NR_Linux + 1)
+#define __NR_open (__NR_Linux + 2)
+#define __NR_close (__NR_Linux + 3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_stat (__NR_Linux + 4)
+#define __NR_fstat (__NR_Linux + 5)
+#define __NR_lstat (__NR_Linux + 6)
+#define __NR_poll (__NR_Linux + 7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lseek (__NR_Linux + 8)
+#define __NR_mmap (__NR_Linux + 9)
+#define __NR_mprotect (__NR_Linux + 10)
+#define __NR_munmap (__NR_Linux + 11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_brk (__NR_Linux + 12)
+#define __NR_rt_sigaction (__NR_Linux + 13)
+#define __NR_rt_sigprocmask (__NR_Linux + 14)
+#define __NR_ioctl (__NR_Linux + 15)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_pread64 (__NR_Linux + 16)
+#define __NR_pwrite64 (__NR_Linux + 17)
+#define __NR_readv (__NR_Linux + 18)
+#define __NR_writev (__NR_Linux + 19)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_access (__NR_Linux + 20)
+#define __NR_pipe (__NR_Linux + 21)
+#define __NR__newselect (__NR_Linux + 22)
+#define __NR_sched_yield (__NR_Linux + 23)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mremap (__NR_Linux + 24)
+#define __NR_msync (__NR_Linux + 25)
+#define __NR_mincore (__NR_Linux + 26)
+#define __NR_madvise (__NR_Linux + 27)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_shmget (__NR_Linux + 28)
+#define __NR_shmat (__NR_Linux + 29)
+#define __NR_shmctl (__NR_Linux + 30)
+#define __NR_dup (__NR_Linux + 31)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_dup2 (__NR_Linux + 32)
+#define __NR_pause (__NR_Linux + 33)
+#define __NR_nanosleep (__NR_Linux + 34)
+#define __NR_getitimer (__NR_Linux + 35)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setitimer (__NR_Linux + 36)
+#define __NR_alarm (__NR_Linux + 37)
+#define __NR_getpid (__NR_Linux + 38)
+#define __NR_sendfile (__NR_Linux + 39)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_socket (__NR_Linux + 40)
+#define __NR_connect (__NR_Linux + 41)
+#define __NR_accept (__NR_Linux + 42)
+#define __NR_sendto (__NR_Linux + 43)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_recvfrom (__NR_Linux + 44)
+#define __NR_sendmsg (__NR_Linux + 45)
+#define __NR_recvmsg (__NR_Linux + 46)
+#define __NR_shutdown (__NR_Linux + 47)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_bind (__NR_Linux + 48)
+#define __NR_listen (__NR_Linux + 49)
+#define __NR_getsockname (__NR_Linux + 50)
+#define __NR_getpeername (__NR_Linux + 51)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_socketpair (__NR_Linux + 52)
+#define __NR_setsockopt (__NR_Linux + 53)
+#define __NR_getsockopt (__NR_Linux + 54)
+#define __NR_clone (__NR_Linux + 55)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fork (__NR_Linux + 56)
+#define __NR_execve (__NR_Linux + 57)
+#define __NR_exit (__NR_Linux + 58)
+#define __NR_wait4 (__NR_Linux + 59)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_kill (__NR_Linux + 60)
+#define __NR_uname (__NR_Linux + 61)
+#define __NR_semget (__NR_Linux + 62)
+#define __NR_semop (__NR_Linux + 63)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_semctl (__NR_Linux + 64)
+#define __NR_shmdt (__NR_Linux + 65)
+#define __NR_msgget (__NR_Linux + 66)
+#define __NR_msgsnd (__NR_Linux + 67)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_msgrcv (__NR_Linux + 68)
+#define __NR_msgctl (__NR_Linux + 69)
+#define __NR_fcntl (__NR_Linux + 70)
+#define __NR_flock (__NR_Linux + 71)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fsync (__NR_Linux + 72)
+#define __NR_fdatasync (__NR_Linux + 73)
+#define __NR_truncate (__NR_Linux + 74)
+#define __NR_ftruncate (__NR_Linux + 75)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getdents (__NR_Linux + 76)
+#define __NR_getcwd (__NR_Linux + 77)
+#define __NR_chdir (__NR_Linux + 78)
+#define __NR_fchdir (__NR_Linux + 79)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rename (__NR_Linux + 80)
+#define __NR_mkdir (__NR_Linux + 81)
+#define __NR_rmdir (__NR_Linux + 82)
+#define __NR_creat (__NR_Linux + 83)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_link (__NR_Linux + 84)
+#define __NR_unlink (__NR_Linux + 85)
+#define __NR_symlink (__NR_Linux + 86)
+#define __NR_readlink (__NR_Linux + 87)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_chmod (__NR_Linux + 88)
+#define __NR_fchmod (__NR_Linux + 89)
+#define __NR_chown (__NR_Linux + 90)
+#define __NR_fchown (__NR_Linux + 91)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lchown (__NR_Linux + 92)
+#define __NR_umask (__NR_Linux + 93)
+#define __NR_gettimeofday (__NR_Linux + 94)
+#define __NR_getrlimit (__NR_Linux + 95)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getrusage (__NR_Linux + 96)
+#define __NR_sysinfo (__NR_Linux + 97)
+#define __NR_times (__NR_Linux + 98)
+#define __NR_ptrace (__NR_Linux + 99)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getuid (__NR_Linux + 100)
+#define __NR_syslog (__NR_Linux + 101)
+#define __NR_getgid (__NR_Linux + 102)
+#define __NR_setuid (__NR_Linux + 103)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setgid (__NR_Linux + 104)
+#define __NR_geteuid (__NR_Linux + 105)
+#define __NR_getegid (__NR_Linux + 106)
+#define __NR_setpgid (__NR_Linux + 107)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getppid (__NR_Linux + 108)
+#define __NR_getpgrp (__NR_Linux + 109)
+#define __NR_setsid (__NR_Linux + 110)
+#define __NR_setreuid (__NR_Linux + 111)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setregid (__NR_Linux + 112)
+#define __NR_getgroups (__NR_Linux + 113)
+#define __NR_setgroups (__NR_Linux + 114)
+#define __NR_setresuid (__NR_Linux + 115)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getresuid (__NR_Linux + 116)
+#define __NR_setresgid (__NR_Linux + 117)
+#define __NR_getresgid (__NR_Linux + 118)
+#define __NR_getpgid (__NR_Linux + 119)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setfsuid (__NR_Linux + 120)
+#define __NR_setfsgid (__NR_Linux + 121)
+#define __NR_getsid (__NR_Linux + 122)
+#define __NR_capget (__NR_Linux + 123)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_capset (__NR_Linux + 124)
+#define __NR_rt_sigpending (__NR_Linux + 125)
+#define __NR_rt_sigtimedwait (__NR_Linux + 126)
+#define __NR_rt_sigqueueinfo (__NR_Linux + 127)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rt_sigsuspend (__NR_Linux + 128)
+#define __NR_sigaltstack (__NR_Linux + 129)
+#define __NR_utime (__NR_Linux + 130)
+#define __NR_mknod (__NR_Linux + 131)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_personality (__NR_Linux + 132)
+#define __NR_ustat (__NR_Linux + 133)
+#define __NR_statfs (__NR_Linux + 134)
+#define __NR_fstatfs (__NR_Linux + 135)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sysfs (__NR_Linux + 136)
+#define __NR_getpriority (__NR_Linux + 137)
+#define __NR_setpriority (__NR_Linux + 138)
+#define __NR_sched_setparam (__NR_Linux + 139)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_getparam (__NR_Linux + 140)
+#define __NR_sched_setscheduler (__NR_Linux + 141)
+#define __NR_sched_getscheduler (__NR_Linux + 142)
+#define __NR_sched_get_priority_max (__NR_Linux + 143)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_get_priority_min (__NR_Linux + 144)
+#define __NR_sched_rr_get_interval (__NR_Linux + 145)
+#define __NR_mlock (__NR_Linux + 146)
+#define __NR_munlock (__NR_Linux + 147)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mlockall (__NR_Linux + 148)
+#define __NR_munlockall (__NR_Linux + 149)
+#define __NR_vhangup (__NR_Linux + 150)
+#define __NR_pivot_root (__NR_Linux + 151)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR__sysctl (__NR_Linux + 152)
+#define __NR_prctl (__NR_Linux + 153)
+#define __NR_adjtimex (__NR_Linux + 154)
+#define __NR_setrlimit (__NR_Linux + 155)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_chroot (__NR_Linux + 156)
+#define __NR_sync (__NR_Linux + 157)
+#define __NR_acct (__NR_Linux + 158)
+#define __NR_settimeofday (__NR_Linux + 159)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mount (__NR_Linux + 160)
+#define __NR_umount2 (__NR_Linux + 161)
+#define __NR_swapon (__NR_Linux + 162)
+#define __NR_swapoff (__NR_Linux + 163)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_reboot (__NR_Linux + 164)
+#define __NR_sethostname (__NR_Linux + 165)
+#define __NR_setdomainname (__NR_Linux + 166)
+#define __NR_create_module (__NR_Linux + 167)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_init_module (__NR_Linux + 168)
+#define __NR_delete_module (__NR_Linux + 169)
+#define __NR_get_kernel_syms (__NR_Linux + 170)
+#define __NR_query_module (__NR_Linux + 171)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_quotactl (__NR_Linux + 172)
+#define __NR_nfsservctl (__NR_Linux + 173)
+#define __NR_getpmsg (__NR_Linux + 174)
+#define __NR_putpmsg (__NR_Linux + 175)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_afs_syscall (__NR_Linux + 176)
+#define __NR_reserved177 (__NR_Linux + 177)
+#define __NR_gettid (__NR_Linux + 178)
+#define __NR_readahead (__NR_Linux + 179)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setxattr (__NR_Linux + 180)
+#define __NR_lsetxattr (__NR_Linux + 181)
+#define __NR_fsetxattr (__NR_Linux + 182)
+#define __NR_getxattr (__NR_Linux + 183)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lgetxattr (__NR_Linux + 184)
+#define __NR_fgetxattr (__NR_Linux + 185)
+#define __NR_listxattr (__NR_Linux + 186)
+#define __NR_llistxattr (__NR_Linux + 187)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_flistxattr (__NR_Linux + 188)
+#define __NR_removexattr (__NR_Linux + 189)
+#define __NR_lremovexattr (__NR_Linux + 190)
+#define __NR_fremovexattr (__NR_Linux + 191)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_tkill (__NR_Linux + 192)
+#define __NR_reserved193 (__NR_Linux + 193)
+#define __NR_futex (__NR_Linux + 194)
+#define __NR_sched_setaffinity (__NR_Linux + 195)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_getaffinity (__NR_Linux + 196)
+#define __NR_cacheflush (__NR_Linux + 197)
+#define __NR_cachectl (__NR_Linux + 198)
+#define __NR_sysmips (__NR_Linux + 199)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_io_setup (__NR_Linux + 200)
+#define __NR_io_destroy (__NR_Linux + 201)
+#define __NR_io_getevents (__NR_Linux + 202)
+#define __NR_io_submit (__NR_Linux + 203)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_io_cancel (__NR_Linux + 204)
+#define __NR_exit_group (__NR_Linux + 205)
+#define __NR_lookup_dcookie (__NR_Linux + 206)
+#define __NR_epoll_create (__NR_Linux + 207)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_epoll_ctl (__NR_Linux + 208)
+#define __NR_epoll_wait (__NR_Linux + 209)
+#define __NR_remap_file_pages (__NR_Linux + 210)
+#define __NR_rt_sigreturn (__NR_Linux + 211)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_set_tid_address (__NR_Linux + 212)
+#define __NR_restart_syscall (__NR_Linux + 213)
+#define __NR_semtimedop (__NR_Linux + 214)
+#define __NR_fadvise64 (__NR_Linux + 215)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_timer_create (__NR_Linux + 216)
+#define __NR_timer_settime (__NR_Linux + 217)
+#define __NR_timer_gettime (__NR_Linux + 218)
+#define __NR_timer_getoverrun (__NR_Linux + 219)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_timer_delete (__NR_Linux + 220)
+#define __NR_clock_settime (__NR_Linux + 221)
+#define __NR_clock_gettime (__NR_Linux + 222)
+#define __NR_clock_getres (__NR_Linux + 223)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_clock_nanosleep (__NR_Linux + 224)
+#define __NR_tgkill (__NR_Linux + 225)
+#define __NR_utimes (__NR_Linux + 226)
+#define __NR_mbind (__NR_Linux + 227)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_get_mempolicy (__NR_Linux + 228)
+#define __NR_set_mempolicy (__NR_Linux + 229)
+#define __NR_mq_open (__NR_Linux + 230)
+#define __NR_mq_unlink (__NR_Linux + 231)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mq_timedsend (__NR_Linux + 232)
+#define __NR_mq_timedreceive (__NR_Linux + 233)
+#define __NR_mq_notify (__NR_Linux + 234)
+#define __NR_mq_getsetattr (__NR_Linux + 235)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_vserver (__NR_Linux + 236)
+#define __NR_waitid (__NR_Linux + 237)
+#define __NR_add_key (__NR_Linux + 239)
+#define __NR_request_key (__NR_Linux + 240)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_keyctl (__NR_Linux + 241)
+#define __NR_set_thread_area (__NR_Linux + 242)
+#define __NR_inotify_init (__NR_Linux + 243)
+#define __NR_inotify_add_watch (__NR_Linux + 244)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_inotify_rm_watch (__NR_Linux + 245)
+#define __NR_migrate_pages (__NR_Linux + 246)
+#define __NR_openat (__NR_Linux + 247)
+#define __NR_mkdirat (__NR_Linux + 248)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mknodat (__NR_Linux + 249)
+#define __NR_fchownat (__NR_Linux + 250)
+#define __NR_futimesat (__NR_Linux + 251)
+#define __NR_newfstatat (__NR_Linux + 252)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_unlinkat (__NR_Linux + 253)
+#define __NR_renameat (__NR_Linux + 254)
+#define __NR_linkat (__NR_Linux + 255)
+#define __NR_symlinkat (__NR_Linux + 256)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_readlinkat (__NR_Linux + 257)
+#define __NR_fchmodat (__NR_Linux + 258)
+#define __NR_faccessat (__NR_Linux + 259)
+#define __NR_pselect6 (__NR_Linux + 260)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_ppoll (__NR_Linux + 261)
+#define __NR_unshare (__NR_Linux + 262)
+#define __NR_splice (__NR_Linux + 263)
+#define __NR_sync_file_range (__NR_Linux + 264)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_tee (__NR_Linux + 265)
+#define __NR_vmsplice (__NR_Linux + 266)
+#define __NR_move_pages (__NR_Linux + 267)
+#define __NR_set_robust_list (__NR_Linux + 268)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_get_robust_list (__NR_Linux + 269)
+#define __NR_kexec_load (__NR_Linux + 270)
+#define __NR_getcpu (__NR_Linux + 271)
+#define __NR_epoll_pwait (__NR_Linux + 272)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_ioprio_set (__NR_Linux + 273)
+#define __NR_ioprio_get (__NR_Linux + 274)
+#define __NR_utimensat (__NR_Linux + 275)
+#define __NR_signalfd (__NR_Linux + 276)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_timerfd (__NR_Linux + 277)
+#define __NR_eventfd (__NR_Linux + 278)
+#define __NR_fallocate (__NR_Linux + 279)
+#define __NR_timerfd_create (__NR_Linux + 280)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_timerfd_gettime (__NR_Linux + 281)
+#define __NR_timerfd_settime (__NR_Linux + 282)
+#define __NR_signalfd4 (__NR_Linux + 283)
+#define __NR_eventfd2 (__NR_Linux + 284)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_epoll_create1 (__NR_Linux + 285)
+#define __NR_dup3 (__NR_Linux + 286)
+#define __NR_pipe2 (__NR_Linux + 287)
+#define __NR_inotify_init1 (__NR_Linux + 288)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_Linux_syscalls 288
+#endif
+#define __NR_64_Linux 5000
+#define __NR_64_Linux_syscalls 288
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#if _MIPS_SIM == _MIPS_SIM_NABI32
+#define __NR_Linux 6000
+#define __NR_read (__NR_Linux + 0)
+#define __NR_write (__NR_Linux + 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_open (__NR_Linux + 2)
+#define __NR_close (__NR_Linux + 3)
+#define __NR_stat (__NR_Linux + 4)
+#define __NR_fstat (__NR_Linux + 5)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lstat (__NR_Linux + 6)
+#define __NR_poll (__NR_Linux + 7)
+#define __NR_lseek (__NR_Linux + 8)
+#define __NR_mmap (__NR_Linux + 9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mprotect (__NR_Linux + 10)
+#define __NR_munmap (__NR_Linux + 11)
+#define __NR_brk (__NR_Linux + 12)
+#define __NR_rt_sigaction (__NR_Linux + 13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rt_sigprocmask (__NR_Linux + 14)
+#define __NR_ioctl (__NR_Linux + 15)
+#define __NR_pread64 (__NR_Linux + 16)
+#define __NR_pwrite64 (__NR_Linux + 17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_readv (__NR_Linux + 18)
+#define __NR_writev (__NR_Linux + 19)
+#define __NR_access (__NR_Linux + 20)
+#define __NR_pipe (__NR_Linux + 21)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR__newselect (__NR_Linux + 22)
+#define __NR_sched_yield (__NR_Linux + 23)
+#define __NR_mremap (__NR_Linux + 24)
+#define __NR_msync (__NR_Linux + 25)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mincore (__NR_Linux + 26)
+#define __NR_madvise (__NR_Linux + 27)
+#define __NR_shmget (__NR_Linux + 28)
+#define __NR_shmat (__NR_Linux + 29)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_shmctl (__NR_Linux + 30)
+#define __NR_dup (__NR_Linux + 31)
+#define __NR_dup2 (__NR_Linux + 32)
+#define __NR_pause (__NR_Linux + 33)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_nanosleep (__NR_Linux + 34)
+#define __NR_getitimer (__NR_Linux + 35)
+#define __NR_setitimer (__NR_Linux + 36)
+#define __NR_alarm (__NR_Linux + 37)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getpid (__NR_Linux + 38)
+#define __NR_sendfile (__NR_Linux + 39)
+#define __NR_socket (__NR_Linux + 40)
+#define __NR_connect (__NR_Linux + 41)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_accept (__NR_Linux + 42)
+#define __NR_sendto (__NR_Linux + 43)
+#define __NR_recvfrom (__NR_Linux + 44)
+#define __NR_sendmsg (__NR_Linux + 45)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_recvmsg (__NR_Linux + 46)
+#define __NR_shutdown (__NR_Linux + 47)
+#define __NR_bind (__NR_Linux + 48)
+#define __NR_listen (__NR_Linux + 49)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getsockname (__NR_Linux + 50)
+#define __NR_getpeername (__NR_Linux + 51)
+#define __NR_socketpair (__NR_Linux + 52)
+#define __NR_setsockopt (__NR_Linux + 53)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getsockopt (__NR_Linux + 54)
+#define __NR_clone (__NR_Linux + 55)
+#define __NR_fork (__NR_Linux + 56)
+#define __NR_execve (__NR_Linux + 57)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_exit (__NR_Linux + 58)
+#define __NR_wait4 (__NR_Linux + 59)
+#define __NR_kill (__NR_Linux + 60)
+#define __NR_uname (__NR_Linux + 61)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_semget (__NR_Linux + 62)
+#define __NR_semop (__NR_Linux + 63)
+#define __NR_semctl (__NR_Linux + 64)
+#define __NR_shmdt (__NR_Linux + 65)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_msgget (__NR_Linux + 66)
+#define __NR_msgsnd (__NR_Linux + 67)
+#define __NR_msgrcv (__NR_Linux + 68)
+#define __NR_msgctl (__NR_Linux + 69)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fcntl (__NR_Linux + 70)
+#define __NR_flock (__NR_Linux + 71)
+#define __NR_fsync (__NR_Linux + 72)
+#define __NR_fdatasync (__NR_Linux + 73)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_truncate (__NR_Linux + 74)
+#define __NR_ftruncate (__NR_Linux + 75)
+#define __NR_getdents (__NR_Linux + 76)
+#define __NR_getcwd (__NR_Linux + 77)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_chdir (__NR_Linux + 78)
+#define __NR_fchdir (__NR_Linux + 79)
+#define __NR_rename (__NR_Linux + 80)
+#define __NR_mkdir (__NR_Linux + 81)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rmdir (__NR_Linux + 82)
+#define __NR_creat (__NR_Linux + 83)
+#define __NR_link (__NR_Linux + 84)
+#define __NR_unlink (__NR_Linux + 85)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_symlink (__NR_Linux + 86)
+#define __NR_readlink (__NR_Linux + 87)
+#define __NR_chmod (__NR_Linux + 88)
+#define __NR_fchmod (__NR_Linux + 89)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_chown (__NR_Linux + 90)
+#define __NR_fchown (__NR_Linux + 91)
+#define __NR_lchown (__NR_Linux + 92)
+#define __NR_umask (__NR_Linux + 93)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_gettimeofday (__NR_Linux + 94)
+#define __NR_getrlimit (__NR_Linux + 95)
+#define __NR_getrusage (__NR_Linux + 96)
+#define __NR_sysinfo (__NR_Linux + 97)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_times (__NR_Linux + 98)
+#define __NR_ptrace (__NR_Linux + 99)
+#define __NR_getuid (__NR_Linux + 100)
+#define __NR_syslog (__NR_Linux + 101)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getgid (__NR_Linux + 102)
+#define __NR_setuid (__NR_Linux + 103)
+#define __NR_setgid (__NR_Linux + 104)
+#define __NR_geteuid (__NR_Linux + 105)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getegid (__NR_Linux + 106)
+#define __NR_setpgid (__NR_Linux + 107)
+#define __NR_getppid (__NR_Linux + 108)
+#define __NR_getpgrp (__NR_Linux + 109)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setsid (__NR_Linux + 110)
+#define __NR_setreuid (__NR_Linux + 111)
+#define __NR_setregid (__NR_Linux + 112)
+#define __NR_getgroups (__NR_Linux + 113)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setgroups (__NR_Linux + 114)
+#define __NR_setresuid (__NR_Linux + 115)
+#define __NR_getresuid (__NR_Linux + 116)
+#define __NR_setresgid (__NR_Linux + 117)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getresgid (__NR_Linux + 118)
+#define __NR_getpgid (__NR_Linux + 119)
+#define __NR_setfsuid (__NR_Linux + 120)
+#define __NR_setfsgid (__NR_Linux + 121)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getsid (__NR_Linux + 122)
+#define __NR_capget (__NR_Linux + 123)
+#define __NR_capset (__NR_Linux + 124)
+#define __NR_rt_sigpending (__NR_Linux + 125)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_rt_sigtimedwait (__NR_Linux + 126)
+#define __NR_rt_sigqueueinfo (__NR_Linux + 127)
+#define __NR_rt_sigsuspend (__NR_Linux + 128)
+#define __NR_sigaltstack (__NR_Linux + 129)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_utime (__NR_Linux + 130)
+#define __NR_mknod (__NR_Linux + 131)
+#define __NR_personality (__NR_Linux + 132)
+#define __NR_ustat (__NR_Linux + 133)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_statfs (__NR_Linux + 134)
+#define __NR_fstatfs (__NR_Linux + 135)
+#define __NR_sysfs (__NR_Linux + 136)
+#define __NR_getpriority (__NR_Linux + 137)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setpriority (__NR_Linux + 138)
+#define __NR_sched_setparam (__NR_Linux + 139)
+#define __NR_sched_getparam (__NR_Linux + 140)
+#define __NR_sched_setscheduler (__NR_Linux + 141)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_sched_getscheduler (__NR_Linux + 142)
+#define __NR_sched_get_priority_max (__NR_Linux + 143)
+#define __NR_sched_get_priority_min (__NR_Linux + 144)
+#define __NR_sched_rr_get_interval (__NR_Linux + 145)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mlock (__NR_Linux + 146)
+#define __NR_munlock (__NR_Linux + 147)
+#define __NR_mlockall (__NR_Linux + 148)
+#define __NR_munlockall (__NR_Linux + 149)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_vhangup (__NR_Linux + 150)
+#define __NR_pivot_root (__NR_Linux + 151)
+#define __NR__sysctl (__NR_Linux + 152)
+#define __NR_prctl (__NR_Linux + 153)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_adjtimex (__NR_Linux + 154)
+#define __NR_setrlimit (__NR_Linux + 155)
+#define __NR_chroot (__NR_Linux + 156)
+#define __NR_sync (__NR_Linux + 157)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_acct (__NR_Linux + 158)
+#define __NR_settimeofday (__NR_Linux + 159)
+#define __NR_mount (__NR_Linux + 160)
+#define __NR_umount2 (__NR_Linux + 161)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_swapon (__NR_Linux + 162)
+#define __NR_swapoff (__NR_Linux + 163)
+#define __NR_reboot (__NR_Linux + 164)
+#define __NR_sethostname (__NR_Linux + 165)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_setdomainname (__NR_Linux + 166)
+#define __NR_create_module (__NR_Linux + 167)
+#define __NR_init_module (__NR_Linux + 168)
+#define __NR_delete_module (__NR_Linux + 169)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_get_kernel_syms (__NR_Linux + 170)
+#define __NR_query_module (__NR_Linux + 171)
+#define __NR_quotactl (__NR_Linux + 172)
+#define __NR_nfsservctl (__NR_Linux + 173)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getpmsg (__NR_Linux + 174)
+#define __NR_putpmsg (__NR_Linux + 175)
+#define __NR_afs_syscall (__NR_Linux + 176)
+#define __NR_reserved177 (__NR_Linux + 177)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_gettid (__NR_Linux + 178)
+#define __NR_readahead (__NR_Linux + 179)
+#define __NR_setxattr (__NR_Linux + 180)
+#define __NR_lsetxattr (__NR_Linux + 181)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fsetxattr (__NR_Linux + 182)
+#define __NR_getxattr (__NR_Linux + 183)
+#define __NR_lgetxattr (__NR_Linux + 184)
+#define __NR_fgetxattr (__NR_Linux + 185)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_listxattr (__NR_Linux + 186)
+#define __NR_llistxattr (__NR_Linux + 187)
+#define __NR_flistxattr (__NR_Linux + 188)
+#define __NR_removexattr (__NR_Linux + 189)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lremovexattr (__NR_Linux + 190)
+#define __NR_fremovexattr (__NR_Linux + 191)
+#define __NR_tkill (__NR_Linux + 192)
+#define __NR_reserved193 (__NR_Linux + 193)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_futex (__NR_Linux + 194)
+#define __NR_sched_setaffinity (__NR_Linux + 195)
+#define __NR_sched_getaffinity (__NR_Linux + 196)
+#define __NR_cacheflush (__NR_Linux + 197)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_cachectl (__NR_Linux + 198)
+#define __NR_sysmips (__NR_Linux + 199)
+#define __NR_io_setup (__NR_Linux + 200)
+#define __NR_io_destroy (__NR_Linux + 201)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_io_getevents (__NR_Linux + 202)
+#define __NR_io_submit (__NR_Linux + 203)
+#define __NR_io_cancel (__NR_Linux + 204)
+#define __NR_exit_group (__NR_Linux + 205)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_lookup_dcookie (__NR_Linux + 206)
+#define __NR_epoll_create (__NR_Linux + 207)
+#define __NR_epoll_ctl (__NR_Linux + 208)
+#define __NR_epoll_wait (__NR_Linux + 209)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_remap_file_pages (__NR_Linux + 210)
+#define __NR_rt_sigreturn (__NR_Linux + 211)
+#define __NR_fcntl64 (__NR_Linux + 212)
+#define __NR_set_tid_address (__NR_Linux + 213)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_restart_syscall (__NR_Linux + 214)
+#define __NR_semtimedop (__NR_Linux + 215)
+#define __NR_fadvise64 (__NR_Linux + 216)
+#define __NR_statfs64 (__NR_Linux + 217)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fstatfs64 (__NR_Linux + 218)
+#define __NR_sendfile64 (__NR_Linux + 219)
+#define __NR_timer_create (__NR_Linux + 220)
+#define __NR_timer_settime (__NR_Linux + 221)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_timer_gettime (__NR_Linux + 222)
+#define __NR_timer_getoverrun (__NR_Linux + 223)
+#define __NR_timer_delete (__NR_Linux + 224)
+#define __NR_clock_settime (__NR_Linux + 225)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_clock_gettime (__NR_Linux + 226)
+#define __NR_clock_getres (__NR_Linux + 227)
+#define __NR_clock_nanosleep (__NR_Linux + 228)
+#define __NR_tgkill (__NR_Linux + 229)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_utimes (__NR_Linux + 230)
+#define __NR_mbind (__NR_Linux + 231)
+#define __NR_get_mempolicy (__NR_Linux + 232)
+#define __NR_set_mempolicy (__NR_Linux + 233)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mq_open (__NR_Linux + 234)
+#define __NR_mq_unlink (__NR_Linux + 235)
+#define __NR_mq_timedsend (__NR_Linux + 236)
+#define __NR_mq_timedreceive (__NR_Linux + 237)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_mq_notify (__NR_Linux + 238)
+#define __NR_mq_getsetattr (__NR_Linux + 239)
+#define __NR_vserver (__NR_Linux + 240)
+#define __NR_waitid (__NR_Linux + 241)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_add_key (__NR_Linux + 243)
+#define __NR_request_key (__NR_Linux + 244)
+#define __NR_keyctl (__NR_Linux + 245)
+#define __NR_set_thread_area (__NR_Linux + 246)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_inotify_init (__NR_Linux + 247)
+#define __NR_inotify_add_watch (__NR_Linux + 248)
+#define __NR_inotify_rm_watch (__NR_Linux + 249)
+#define __NR_migrate_pages (__NR_Linux + 250)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_openat (__NR_Linux + 251)
+#define __NR_mkdirat (__NR_Linux + 252)
+#define __NR_mknodat (__NR_Linux + 253)
+#define __NR_fchownat (__NR_Linux + 254)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_futimesat (__NR_Linux + 255)
+#define __NR_newfstatat (__NR_Linux + 256)
+#define __NR_unlinkat (__NR_Linux + 257)
+#define __NR_renameat (__NR_Linux + 258)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_linkat (__NR_Linux + 259)
+#define __NR_symlinkat (__NR_Linux + 260)
+#define __NR_readlinkat (__NR_Linux + 261)
+#define __NR_fchmodat (__NR_Linux + 262)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_faccessat (__NR_Linux + 263)
+#define __NR_pselect6 (__NR_Linux + 264)
+#define __NR_ppoll (__NR_Linux + 265)
+#define __NR_unshare (__NR_Linux + 266)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_splice (__NR_Linux + 267)
+#define __NR_sync_file_range (__NR_Linux + 268)
+#define __NR_tee (__NR_Linux + 269)
+#define __NR_vmsplice (__NR_Linux + 270)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_move_pages (__NR_Linux + 271)
+#define __NR_set_robust_list (__NR_Linux + 272)
+#define __NR_get_robust_list (__NR_Linux + 273)
+#define __NR_kexec_load (__NR_Linux + 274)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_getcpu (__NR_Linux + 275)
+#define __NR_epoll_pwait (__NR_Linux + 276)
+#define __NR_ioprio_set (__NR_Linux + 277)
+#define __NR_ioprio_get (__NR_Linux + 278)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_utimensat (__NR_Linux + 279)
+#define __NR_signalfd (__NR_Linux + 280)
+#define __NR_timerfd (__NR_Linux + 281)
+#define __NR_eventfd (__NR_Linux + 282)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_fallocate (__NR_Linux + 283)
+#define __NR_timerfd_create (__NR_Linux + 284)
+#define __NR_timerfd_gettime (__NR_Linux + 285)
+#define __NR_timerfd_settime (__NR_Linux + 286)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_signalfd4 (__NR_Linux + 287)
+#define __NR_eventfd2 (__NR_Linux + 288)
+#define __NR_epoll_create1 (__NR_Linux + 289)
+#define __NR_dup3 (__NR_Linux + 290)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_pipe2 (__NR_Linux + 291)
+#define __NR_inotify_init1 (__NR_Linux + 292)
+#define __NR_Linux_syscalls 292
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_N32_Linux 6000
+#define __NR_N32_Linux_syscalls 292
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/user.h b/ndk/platforms/android-9/arch-mips/include/asm/user.h
new file mode 100644
index 0000000..a87f239
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/user.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_USER_H
+#define _ASM_USER_H
+#include <asm/page.h>
+#include <asm/reg.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define EF_SIZE 180
+struct user {
+ unsigned long regs[EF_SIZE /
+ sizeof(unsigned long) + 64];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ size_t u_tsize;
+ size_t u_dsize;
+ size_t u_ssize;
+ unsigned long start_code;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long start_data;
+ unsigned long start_stack;
+ long int signal;
+ unsigned long u_ar0;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned long magic;
+ char u_comm[32];
+};
+#define NBPG PAGE_SIZE
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define UPAGES 1
+#define HOST_TEXT_START_ADDR (u.start_code)
+#define HOST_DATA_START_ADDR (u.start_data)
+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/vga.h b/ndk/platforms/android-9/arch-mips/include/asm/vga.h
new file mode 100644
index 0000000..c0c2535
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/vga.h
@@ -0,0 +1,35 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_VGA_H
+#define _ASM_VGA_H
+#include <asm/byteorder.h>
+#define VGA_MAP_MEM(x, s) (0xb0000000L + (unsigned long)(x))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define vga_readb(x) (*(x))
+#define vga_writeb(x, y) (*(y) = (x))
+#define VT_BUF_HAVE_RW
+#undef scr_writew
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#undef scr_readw
+#define scr_memcpyw(d, s, c) memcpy(d, s, c)
+#define scr_memmovew(d, s, c) memmove(d, s, c)
+#define VT_BUF_HAVE_MEMCPYW
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VT_BUF_HAVE_MEMMOVEW
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/vr41xx/irq.h b/ndk/platforms/android-9/arch-mips/include/asm/vr41xx/irq.h
new file mode 100644
index 0000000..1c54b66
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/vr41xx/irq.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef __NEC_VR41XX_IRQ_H
+#define __NEC_VR41XX_IRQ_H
+#define MIPS_CPU_IRQ_BASE 0
+#define MIPS_CPU_IRQ(x) (MIPS_CPU_IRQ_BASE + (x))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define MIPS_SOFTINT0_IRQ MIPS_CPU_IRQ(0)
+#define MIPS_SOFTINT1_IRQ MIPS_CPU_IRQ(1)
+#define INT0_IRQ MIPS_CPU_IRQ(2)
+#define INT1_IRQ MIPS_CPU_IRQ(3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define INT2_IRQ MIPS_CPU_IRQ(4)
+#define INT3_IRQ MIPS_CPU_IRQ(5)
+#define INT4_IRQ MIPS_CPU_IRQ(6)
+#define TIMER_IRQ MIPS_CPU_IRQ(7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYSINT1_IRQ_BASE 8
+#define SYSINT1_IRQ(x) (SYSINT1_IRQ_BASE + (x))
+#define BATTRY_IRQ SYSINT1_IRQ(0)
+#define POWER_IRQ SYSINT1_IRQ(1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define RTCLONG1_IRQ SYSINT1_IRQ(2)
+#define ELAPSEDTIME_IRQ SYSINT1_IRQ(3)
+#define PIU_IRQ SYSINT1_IRQ(5)
+#define AIU_IRQ SYSINT1_IRQ(6)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define KIU_IRQ SYSINT1_IRQ(7)
+#define GIUINT_IRQ SYSINT1_IRQ(8)
+#define SIU_IRQ SYSINT1_IRQ(9)
+#define BUSERR_IRQ SYSINT1_IRQ(10)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SOFTINT_IRQ SYSINT1_IRQ(11)
+#define CLKRUN_IRQ SYSINT1_IRQ(12)
+#define DOZEPIU_IRQ SYSINT1_IRQ(13)
+#define SYSINT1_IRQ_LAST DOZEPIU_IRQ
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define SYSINT2_IRQ_BASE 24
+#define SYSINT2_IRQ(x) (SYSINT2_IRQ_BASE + (x))
+#define RTCLONG2_IRQ SYSINT2_IRQ(0)
+#define LED_IRQ SYSINT2_IRQ(1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define HSP_IRQ SYSINT2_IRQ(2)
+#define TCLOCK_IRQ SYSINT2_IRQ(3)
+#define FIR_IRQ SYSINT2_IRQ(4)
+#define CEU_IRQ SYSINT2_IRQ(4)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define DSIU_IRQ SYSINT2_IRQ(5)
+#define PCI_IRQ SYSINT2_IRQ(6)
+#define SCU_IRQ SYSINT2_IRQ(7)
+#define CSI_IRQ SYSINT2_IRQ(8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define BCU_IRQ SYSINT2_IRQ(9)
+#define ETHERNET_IRQ SYSINT2_IRQ(10)
+#define SYSINT2_IRQ_LAST ETHERNET_IRQ
+#define GIU_IRQ_BASE 40
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define GIU_IRQ(x) (GIU_IRQ_BASE + (x))  
+#define GIU_IRQ_LAST GIU_IRQ(31)
+#define VRC4173_IRQ_BASE 72
+#define VRC4173_IRQ(x) (VRC4173_IRQ_BASE + (x))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VRC4173_USB_IRQ VRC4173_IRQ(0)
+#define VRC4173_PCMCIA2_IRQ VRC4173_IRQ(1)
+#define VRC4173_PCMCIA1_IRQ VRC4173_IRQ(2)
+#define VRC4173_PS2CH2_IRQ VRC4173_IRQ(3)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VRC4173_PS2CH1_IRQ VRC4173_IRQ(4)
+#define VRC4173_PIU_IRQ VRC4173_IRQ(5)
+#define VRC4173_AIU_IRQ VRC4173_IRQ(6)
+#define VRC4173_KIU_IRQ VRC4173_IRQ(7)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VRC4173_GIU_IRQ VRC4173_IRQ(8)
+#define VRC4173_AC97_IRQ VRC4173_IRQ(9)
+#define VRC4173_AC97INT1_IRQ VRC4173_IRQ(10)
+#define VRC4173_DOZEPIU_IRQ VRC4173_IRQ(13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define VRC4173_IRQ_LAST VRC4173_DOZEPIU_IRQ
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/war.h b/ndk/platforms/android-9/arch-mips/include/asm/war.h
new file mode 100644
index 0000000..d8f95b2
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/war.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_WAR_H
+#define _ASM_WAR_H
+#include <war.h>
+#define R4000_WAR 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define R4400_WAR 0
+#define DADDI_WAR 0
+#ifndef R4600_V1_INDEX_ICACHEOP_WAR
+#error Check setting of R4600_V1_INDEX_ICACHEOP_WAR for your platform
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef R4600_V1_HIT_CACHEOP_WAR
+#error Check setting of R4600_V1_HIT_CACHEOP_WAR for your platform
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef R4600_V2_HIT_CACHEOP_WAR
+#error Check setting of R4600_V2_HIT_CACHEOP_WAR for your platform
+#endif
+#ifndef R5432_CP0_INTERRUPT_WAR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#error Check setting of R5432_CP0_INTERRUPT_WAR for your platform
+#endif
+#ifndef BCM1250_M3_WAR
+#error Check setting of BCM1250_M3_WAR for your platform
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef SIBYTE_1956_WAR
+#error Check setting of SIBYTE_1956_WAR for your platform
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef MIPS4K_ICACHE_REFILL_WAR
+#error Check setting of MIPS4K_ICACHE_REFILL_WAR for your platform
+#endif
+#ifndef MIPS_CACHE_SYNC_WAR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#error Check setting of MIPS_CACHE_SYNC_WAR for your platform
+#endif
+#ifndef TX49XX_ICACHE_INDEX_INV_WAR
+#error Check setting of TX49XX_ICACHE_INDEX_INV_WAR for your platform
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#ifndef RM9000_CDEX_SMP_WAR
+#error Check setting of RM9000_CDEX_SMP_WAR for your platform
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#ifndef ICACHE_REFILLS_WORKAROUND_WAR
+#error Check setting of ICACHE_REFILLS_WORKAROUND_WAR for your platform
+#endif
+#ifndef R10000_LLSC_WAR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#error Check setting of R10000_LLSC_WAR for your platform
+#endif
+#ifndef MIPS34K_MISSED_ITLB_WAR
+#error Check setting of MIPS34K_MISSED_ITLB_WAR for your platform
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/xtalk/xtalk.h b/ndk/platforms/android-9/arch-mips/include/asm/xtalk/xtalk.h
new file mode 100644
index 0000000..3dfbaa0
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/xtalk/xtalk.h
@@ -0,0 +1,45 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_XTALK_XTALK_H
+#define _ASM_XTALK_XTALK_H
+#ifndef __ASSEMBLY__
+typedef char xwidgetnum_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XWIDGET_NONE -1
+typedef int xwidget_part_num_t;
+#define XWIDGET_PART_NUM_NONE -1
+typedef int xwidget_rev_num_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XWIDGET_REV_NUM_NONE -1
+typedef int xwidget_mfg_num_t;
+#define XWIDGET_MFG_NUM_NONE -1
+typedef struct xtalk_piomap_s *xtalk_piomap_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XIO_NOWHERE (0xFFFFFFFFFFFFFFFFull)
+#define XIO_ADDR_BITS (0x0000FFFFFFFFFFFFull)
+#define XIO_PORT_BITS (0xF000000000000000ull)
+#define XIO_PORT_SHIFT (60)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define XIO_PACKED(x) (((x)&XIO_PORT_BITS) != 0)
+#define XIO_ADDR(x) ((x)&XIO_ADDR_BITS)
+#define XIO_PORT(x) ((xwidgetnum_t)(((x)&XIO_PORT_BITS) >> XIO_PORT_SHIFT))
+#define XIO_PACK(p, o) ((((uint64_t)(p))<<XIO_PORT_SHIFT) | ((o)&XIO_ADDR_BITS))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/asm/xtalk/xwidget.h b/ndk/platforms/android-9/arch-mips/include/asm/xtalk/xwidget.h
new file mode 100644
index 0000000..03bb4c1
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/asm/xtalk/xwidget.h
@@ -0,0 +1,154 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   This header was automatically generated from a Linux kernel header
+ ***   of the same name, to make information necessary for userspace to
+ ***   call into the kernel available to libc.  It contains only constants,
+ ***   structures, and macros generated from the original header, and thus,
+ ***   contains no copyrightable information.
+ ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
+ ****************************************************************************
+ ****************************************************************************/
+#ifndef _ASM_XTALK_XWIDGET_H
+#define _ASM_XTALK_XWIDGET_H
+#include <linux/types.h>
+#include <asm/xtalk/xtalk.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_ID 0x04
+#define WIDGET_STATUS 0x0c
+#define WIDGET_ERR_UPPER_ADDR 0x14
+#define WIDGET_ERR_LOWER_ADDR 0x1c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_CONTROL 0x24
+#define WIDGET_REQ_TIMEOUT 0x2c
+#define WIDGET_INTDEST_UPPER_ADDR 0x34
+#define WIDGET_INTDEST_LOWER_ADDR 0x3c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_ERR_CMD_WORD 0x44
+#define WIDGET_LLP_CFG 0x4c
+#define WIDGET_TFLUSH 0x54
+#define WIDGET_REV_NUM 0xf0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_PART_NUM 0x0ffff000
+#define WIDGET_MFG_NUM 0x00000ffe
+#define WIDGET_REV_NUM_SHFT 28
+#define WIDGET_PART_NUM_SHFT 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_MFG_NUM_SHFT 1
+#define XWIDGET_PART_NUM(widgetid) (((widgetid) & WIDGET_PART_NUM) >> WIDGET_PART_NUM_SHFT)
+#define XWIDGET_REV_NUM(widgetid) (((widgetid) & WIDGET_REV_NUM) >> WIDGET_REV_NUM_SHFT)
+#define XWIDGET_MFG_NUM(widgetid) (((widgetid) & WIDGET_MFG_NUM) >> WIDGET_MFG_NUM_SHFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_LLP_REC_CNT 0xff000000
+#define WIDGET_LLP_TX_CNT 0x00ff0000
+#define WIDGET_PENDING 0x0000001f
+#define WIDGET_ERR_UPPER_ADDR_ONLY 0x0000ffff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_F_BAD_PKT 0x00010000
+#define WIDGET_LLP_XBAR_CRD 0x0000f000
+#define WIDGET_LLP_XBAR_CRD_SHFT 12
+#define WIDGET_CLR_RLLP_CNT 0x00000800
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_CLR_TLLP_CNT 0x00000400
+#define WIDGET_SYS_END 0x00000200
+#define WIDGET_MAX_TRANS 0x000001f0
+#define WIDGET_WIDGET_ID 0x0000000f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_INT_VECTOR 0xff000000
+#define WIDGET_INT_VECTOR_SHFT 24
+#define WIDGET_TARGET_ID 0x000f0000
+#define WIDGET_TARGET_ID_SHFT 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_UPP_ADDR 0x0000ffff
+#define WIDGET_DIDN 0xf0000000
+#define WIDGET_SIDN 0x0f000000
+#define WIDGET_PACTYP 0x00f00000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_TNUM 0x000f8000
+#define WIDGET_COHERENT 0x00004000
+#define WIDGET_DS 0x00003000
+#define WIDGET_GBR 0x00000800
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_VBPM 0x00000400
+#define WIDGET_ERROR 0x00000200
+#define WIDGET_BARRIER 0x00000100
+#define WIDGET_LLP_MAXRETRY 0x03ff0000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_LLP_MAXRETRY_SHFT 16
+#define WIDGET_LLP_NULLTIMEOUT 0x0000fc00
+#define WIDGET_LLP_NULLTIMEOUT_SHFT 10
+#define WIDGET_LLP_MAXBURST 0x000003ff
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define WIDGET_LLP_MAXBURST_SHFT 0
+#ifndef __ASSEMBLY__
+typedef u32 widgetreg_t;
+typedef volatile struct widget_cfg {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widgetreg_t w_pad_0;
+ widgetreg_t w_id;
+ widgetreg_t w_pad_1;
+ widgetreg_t w_status;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widgetreg_t w_pad_2;
+ widgetreg_t w_err_upper_addr;
+ widgetreg_t w_pad_3;
+ widgetreg_t w_err_lower_addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widgetreg_t w_pad_4;
+ widgetreg_t w_control;
+ widgetreg_t w_pad_5;
+ widgetreg_t w_req_timeout;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widgetreg_t w_pad_6;
+ widgetreg_t w_intdest_upper_addr;
+ widgetreg_t w_pad_7;
+ widgetreg_t w_intdest_lower_addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widgetreg_t w_pad_8;
+ widgetreg_t w_err_cmd_word;
+ widgetreg_t w_pad_9;
+ widgetreg_t w_llp_cfg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ widgetreg_t w_pad_10;
+ widgetreg_t w_tflush;
+} widget_cfg_t;
+typedef struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned didn:4;
+ unsigned sidn:4;
+ unsigned pactyp:4;
+ unsigned tnum:5;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned ct:1;
+ unsigned ds:2;
+ unsigned gbr:1;
+ unsigned vbpm:1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ unsigned error:1;
+ unsigned bo:1;
+ unsigned other:8;
+} w_err_cmd_word_f;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef union {
+ widgetreg_t r;
+ w_err_cmd_word_f f;
+} w_err_cmd_word_u;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+typedef struct xwidget_info_s *xwidget_info_t;
+typedef struct xwidget_hwid_s {
+ xwidget_part_num_t part_num;
+ xwidget_rev_num_t rev_num;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+ xwidget_mfg_num_t mfg_num;
+} *xwidget_hwid_t;
+#define XWIDGET_HARDWARE_ID_MATCH(hwid1, hwid2)   (((hwid1)->part_num == (hwid2)->part_num) &&   (((hwid1)->mfg_num == XWIDGET_MFG_NUM_NONE) ||   ((hwid2)->mfg_num == XWIDGET_MFG_NUM_NONE) ||   ((hwid1)->mfg_num == (hwid2)->mfg_num)))
+#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/link.h b/ndk/platforms/android-9/arch-mips/include/link.h
new file mode 100644
index 0000000..1c009c6
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/link.h
@@ -0,0 +1,26 @@
+/* 
+   For building unwind-dw2-fde-glibc.c for MIPS frame unwinding,
+   we need to have <link.h> that defines struct dl_phdr_info,
+   ELFW(type), and dl_iterate_phdr().
+*/ 
+
+#include <sys/types.h>
+#include <elf.h>
+
+struct dl_phdr_info
+{
+    Elf32_Addr dlpi_addr;
+    const char *dlpi_name;
+    const Elf32_Phdr *dlpi_phdr;
+    Elf32_Half dlpi_phnum;
+};
+
+#if _MIPS_SZPTR == 32
+#define ElfW(type)	Elf32_##type
+#elif _MIPS_SZPTR == 64
+#define ElfW(type)	Elf64_##type
+#endif
+
+int
+dl_iterate_phdr(int (*cb)(struct dl_phdr_info *info, size_t size, void *data),
+                void *data);
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/_types.h b/ndk/platforms/android-9/arch-mips/include/machine/_types.h
new file mode 100644
index 0000000..1cc6c21
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/_types.h
@@ -0,0 +1,145 @@
+/*	$OpenBSD: _types.h,v 1.5 2008/07/21 20:50:54 martynas Exp $	*/
+
+/*-
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)types.h	8.3 (Berkeley) 1/5/94
+ *	@(#)ansi.h	8.2 (Berkeley) 1/4/94
+ */
+
+#ifndef _MIPS64__TYPES_H_
+#define _MIPS64__TYPES_H_
+
+/*
+ *  We need to handle the various ISA levels for sizes.
+ */
+#define	_MIPS_ISA_MIPS1	1	/* R2000/R3000 */
+#define	_MIPS_ISA_MIPS2	2	/* R4000/R6000 */
+#define	_MIPS_ISA_MIPS3	3	/* R4000 */
+#define	_MIPS_ISA_MIPS4	4	/* TFP (R1x000) */
+
+/* 7.18.1.1 Exact-width integer types */
+typedef	__signed char		__int8_t;
+typedef	unsigned char		__uint8_t;
+typedef	short			__int16_t;
+typedef	unsigned short		__uint16_t;
+typedef	int			__int32_t;
+typedef	unsigned int		__uint32_t;
+/* LONGLONG */
+typedef	long long		__int64_t;
+/* LONGLONG */
+typedef	unsigned long long	__uint64_t;
+
+/* 7.18.1.2 Minimum-width integer types */
+typedef	__int8_t		__int_least8_t;
+typedef	__uint8_t		__uint_least8_t;
+typedef	__int16_t		__int_least16_t;
+typedef	__uint16_t		__uint_least16_t;
+typedef	__int32_t		__int_least32_t;
+typedef	__uint32_t		__uint_least32_t;
+typedef	__int64_t		__int_least64_t;
+typedef	__uint64_t		__uint_least64_t;
+
+/* 7.18.1.3 Fastest minimum-width integer types */
+typedef	__int32_t		__int_fast8_t;
+typedef	__uint32_t		__uint_fast8_t;
+typedef	__int32_t		__int_fast16_t;
+typedef	__uint32_t		__uint_fast16_t;
+typedef	__int32_t		__int_fast32_t;
+typedef	__uint32_t		__uint_fast32_t;
+typedef	__int64_t		__int_fast64_t;
+typedef	__uint64_t		__uint_fast64_t;
+
+/* 7.18.1.4 Integer types capable of holding object pointers */
+typedef	long			__intptr_t;
+typedef	unsigned long		__uintptr_t;
+
+/* 7.18.1.5 Greatest-width integer types */
+typedef	__int64_t		__intmax_t;
+typedef	__uint64_t		__uintmax_t;
+
+/* Register size */
+#if (_MIPS_ISA == _MIPS_ISA_MIPS3 || _MIPS_ISA == _MIPS_ISA_MIPS4)
+typedef __int64_t		__register_t;
+typedef __int64_t		f_register_t;	/* XXX */
+#else
+typedef __int32_t		__register_t;
+typedef __int32_t		f_register_t;	/* XXX */
+#endif
+
+/* VM system types */
+typedef unsigned long		__vaddr_t;
+typedef unsigned long		__paddr_t;
+typedef unsigned long		__vsize_t;
+typedef unsigned long		__psize_t;
+
+/* Standard system types */
+typedef int			__clock_t;
+typedef int			__clockid_t;
+typedef double			__double_t;
+typedef float			__float_t;
+typedef long long		__off_t;
+typedef long			__ptrdiff_t;
+/*typedef	unsigned long		__size_t;*/
+typedef	long			__ssize_t;
+typedef	int			__time_t;
+typedef int			__timer_t;
+#if defined(__GNUC__) && __GNUC__ >= 3
+typedef	__builtin_va_list	__va_list;
+#else
+typedef	char *			__va_list;
+#endif
+
+/* Wide character support types */
+#ifndef __cplusplus
+typedef	int			__wchar_t;
+#endif
+typedef int			__wint_t;
+typedef	int			__rune_t;
+typedef	void *			__wctrans_t;
+typedef	void *			__wctype_t;
+
+#ifdef __MIPSEB__
+#define _BYTE_ORDER _BIG_ENDIAN
+#else
+#define _BYTE_ORDER _LITTLE_ENDIAN
+#endif
+
+#if defined(_KERNEL)
+typedef struct label_t {
+	__register_t val[14];
+} label_t;
+#endif
+
+/* XXX check why this still has to be defined. pmap.c issue? */
+#define __SWAP_BROKEN
+
+/* Feature test macros */
+#define __HAVE_TIMECOUNTER
+
+#endif	/* _MIPS64__TYPES_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/asm.h b/ndk/platforms/android-9/arch-mips/include/machine/asm.h
new file mode 100644
index 0000000..43dbc09
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/asm.h
@@ -0,0 +1,305 @@
+/*	$OpenBSD: asm.h,v 1.7 2004/10/20 12:49:15 pefo Exp $ */
+
+/*
+ * Copyright (c) 2001-2002 Opsycon AB  (www.opsycon.se / www.opsycon.com)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+#ifndef _MIPS64_ASM_H
+#define _MIPS64_ASM_H
+
+#include <machine/regdef.h>
+
+#ifdef NEED_OLD_RM7KFIX
+#define ITLBNOPFIX      nop;nop;nop;nop;nop;nop;nop;nop;nop;nop;
+#else
+#define ITLBNOPFIX      nop;nop;nop;nop
+#endif
+
+#define	_MIPS_ISA_MIPS1	1	/* R2000/R3000 */
+#define	_MIPS_ISA_MIPS2	2	/* R4000/R6000 */
+#define	_MIPS_ISA_MIPS3	3	/* R4000 */
+#define	_MIPS_ISA_MIPS4	4	/* TFP (R1x000) */
+#ifdef __linux__
+#define	_MIPS_ISA_MIPS5 5
+#define	_MIPS_ISA_MIPS32 6
+#define	_MIPS_ISA_MIPS64 7
+#else
+#define	_MIPS_ISA_MIPS32 32	/* MIPS32 */
+#endif
+
+#if !defined(ABICALLS) && !defined(_NO_ABICALLS)
+#define	ABICALLS	.abicalls
+#endif
+
+#if defined(ABICALLS) && !defined(_KERNEL)
+	ABICALLS
+#endif
+
+#define _C_LABEL(x) x		/* XXX Obsolete but keep for a while */
+
+#if !defined(__MIPSEL__) && !defined(__MIPSEB__)
+#error "__MIPSEL__ or __MIPSEB__ must be defined"
+#endif
+/*
+ * Define how to access unaligned data word
+ */
+#if defined(__MIPSEL__)
+#define LWLO    lwl
+#define LWHI    lwr
+#define	SWLO	swl
+#define	SWHI	swr
+#define LDLO    ldl
+#define LDHI    ldr
+#define	SDLO	sdl
+#define	SDHI	sdr
+#endif
+#if defined(__MIPSEB__)
+#define LWLO    lwr
+#define LWHI    lwl
+#define	SWLO	swr
+#define	SWHI	swl
+#define LDLO    ldr
+#define LDHI    ldl
+#define	SDLO	sdr
+#define	SDHI	sdl
+#endif
+
+/*
+ *  Define programming environment for ABI.
+ */
+#if defined(ABICALLS) && !defined(_KERNEL) && !defined(_STANDALONE)
+
+#ifndef _MIPS_SIM
+#define _MIPS_SIM 1
+#define _ABIO32	1
+#endif
+#ifndef _MIPS_ISA
+#define _MIPS_ISA 2
+#define _MIPS_ISA_MIPS2 2
+#endif
+
+#if (_MIPS_SIM == _ABIO32) || (_MIPS_SIM == _ABI32)
+#define NARGSAVE	4
+
+#define	SETUP_GP		\
+	.set	noreorder;	\
+	.cpload	t9;		\
+	.set	reorder;
+
+#define	SAVE_GP(x)		\
+	.cprestore x
+
+#define	SETUP_GP64(gpoff, name)
+#define	RESTORE_GP64
+#endif
+
+#if (_MIPS_SIM == _ABI64) || (_MIPS_SIM == _ABIN32)
+#define NARGSAVE	0
+
+#define	SETUP_GP
+#define	SAVE_GP(x)
+#define	SETUP_GP64(gpoff, name)	\
+	.cpsetup t9, gpoff, name
+#define	RESTORE_GP64		\
+	.cpreturn
+#endif
+
+#define	MKFSIZ(narg,locals) (((narg+locals)*REGSZ+31)&(~31))
+
+#else /* defined(ABICALLS) && !defined(_KERNEL) */
+
+#define	NARGSAVE	4
+#define	SETUP_GP
+#define	SAVE_GP(x)
+
+#define	ALIGNSZ		16	/* Stack layout alignment */
+#define	FRAMESZ(sz)	(((sz) + (ALIGNSZ-1)) & ~(ALIGNSZ-1))
+
+#endif
+
+/*
+ *  Basic register operations based on selected ISA
+ */
+#if (_MIPS_ISA == _MIPS_ISA_MIPS1 || _MIPS_ISA == _MIPS_ISA_MIPS2 || _MIPS_ISA == _MIPS_ISA_MIPS32)
+#define REGSZ		4	/* 32 bit mode register size */
+#define LOGREGSZ	2	/* log rsize */
+#define	REG_S	sw
+#define	REG_L	lw
+#define	CF_SZ		24	/* Call frame size */
+#define	CF_ARGSZ	16	/* Call frame arg size */
+#define	CF_RA_OFFS	20	/* Call ra save offset */
+#endif
+
+#if (_MIPS_ISA == _MIPS_ISA_MIPS3 || _MIPS_ISA == _MIPS_ISA_MIPS4)
+#define REGSZ		8	/* 64 bit mode register size */
+#define LOGREGSZ	3	/* log rsize */
+#define	REG_S	sd
+#define	REG_L	ld
+#define	CF_SZ		48	/* Call frame size (multiple of ALIGNSZ) */
+#define	CF_ARGSZ	32	/* Call frame arg size */
+#define	CF_RA_OFFS	40	/* Call ra save offset */
+#endif
+
+#define REGSZ_FP	 8	/* 64 bit FP register size */
+
+#ifndef __LP64__
+#define	PTR_L		lw
+#define	PTR_S		sw
+#define	PTR_SUB		sub
+#define	PTR_ADD		add
+#define	PTR_SUBU	subu
+#define	PTR_ADDU	addu
+#define LI		li
+#define	LA		la
+#define	PTR_SLL		sll
+#define	PTR_SRL		srl
+#define	PTR_VAL		.word
+#else
+#define	PTR_L		ld
+#define	PTR_S		sd
+#define	PTR_ADD		dadd
+#define	PTR_SUB		dsub
+#define	PTR_SUBU	dsubu
+#define	PTR_ADDU	daddu
+#define LI		dli
+#define LA		dla
+#define	PTR_SLL		dsll
+#define	PTR_SRL		dsrl
+#define	PTR_VAL		.dword
+#endif
+
+/*
+ * Define -pg profile entry code.
+ */
+#if defined(XGPROF) || defined(XPROF)
+#define	MCOUNT			\
+	PTR_SUBU sp, sp, 32;	\
+	SAVE_GP(16);		\
+	sw	ra, 28(sp);	\
+	sw	gp, 24(sp);	\
+	.set	noat;		\
+	.set	noreorder;	\
+	move	AT, ra;		\
+	jal	_mcount;	\
+	PTR_SUBU sp, sp, 8;	\
+	lw	ra, 28(sp);	\
+	PTR_ADDU sp, sp, 32;	\
+	.set reorder;		\
+	.set	at;
+#else
+#define	MCOUNT
+#endif
+
+/*
+ * LEAF(x, fsize)
+ *
+ *	Declare a leaf routine.
+ */
+#define LEAF(x, fsize)		\
+	.align	3;		\
+	.globl x;		\
+	.ent x, 0;		\
+x: ;				\
+	.frame sp, fsize, ra;	\
+	SETUP_GP		\
+	MCOUNT
+
+#define	ALEAF(x)		\
+	.globl	x;		\
+x:
+
+/*
+ * NLEAF(x)
+ *
+ *	Declare a non-profiled leaf routine.
+ */
+#define NLEAF(x, fsize)		\
+	.align	3;		\
+	.globl x;		\
+	.ent x, 0;		\
+x: ;				\
+	.frame sp, fsize, ra;	\
+	SETUP_GP
+
+/*
+ * NON_LEAF(x)
+ *
+ *	Declare a non-leaf routine (a routine that makes other C calls).
+ */
+#define NON_LEAF(x, fsize, retpc) \
+	.align	3;		\
+	.globl x;		\
+	.ent x, 0;		\
+x: ;				\
+	.frame sp, fsize, retpc; \
+	SETUP_GP		\
+	MCOUNT
+
+/*
+ * NNON_LEAF(x)
+ *
+ *	Declare a non-profiled non-leaf routine
+ *	(a routine that makes other C calls).
+ */
+#define NNON_LEAF(x, fsize, retpc) \
+	.align	3;		\
+	.globl x;		\
+	.ent x, 0;		\
+x: ;				\
+	.frame sp, fsize, retpc	\
+	SETUP_GP
+
+/*
+ * END(x)
+ *
+ *	Mark end of a procedure.
+ */
+#define END(x) \
+	.end x
+
+/*
+ * Macros to panic and printf from assembly language.
+ */
+#define PANIC(msg) \
+	LA	a0, 9f; \
+	jal	panic;	\
+	nop	;	\
+	MSG(msg)
+
+#define	PRINTF(msg) \
+	la	a0, 9f; \
+	jal	printf; \
+	nop	;	\
+	MSG(msg)
+
+#define	MSG(msg) \
+	.rdata; \
+9:	.asciiz	msg; \
+	.text
+
+#define ASMSTR(str) \
+	.asciiz str; \
+	.align	3
+
+#endif /* !_MIPS_ASM_H */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/cdefs.h b/ndk/platforms/android-9/arch-mips/include/machine/cdefs.h
new file mode 100644
index 0000000..d52376a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/cdefs.h
@@ -0,0 +1,47 @@
+/*	$OpenBSD: cdefs.h,v 1.4 2006/01/10 00:04:04 millert Exp $	*/
+
+/*
+ * Copyright (c) 2002-2003 Opsycon AB  (www.opsycon.se / www.opsycon.com)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+
+#ifndef _MIPS_CDEFS_H_
+#define	_MIPS_CDEFS_H_
+
+#if defined(lint)
+#define __indr_reference(sym,alias)	__lint_equal__(sym,alias)
+#define __warn_references(sym,msg)
+#define __weak_alias(alias,sym)		__lint_equal__(sym,alias)
+#elif defined(__GNUC__) && defined(__STDC__)
+#define __weak_alias(alias,sym)				\
+	__asm__(".weak " __STRING(alias) " ; "		\
+	    __STRING(alias) " = " __STRING(sym))
+#define	__warn_references(sym,msg)			\
+	__asm__(".section .gnu.warning." __STRING(sym)	\
+	    " ; .ascii \"" msg "\" ; .text")
+#define	__indr_references(sym,msg)	/* nothing */
+#endif
+
+#endif /* !_MIPS_CDEFS_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/exec.h b/ndk/platforms/android-9/arch-mips/include/machine/exec.h
new file mode 100644
index 0000000..3c63f74
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/exec.h
@@ -0,0 +1,188 @@
+/*	$OpenBSD: exec.h,v 1.1 2004/10/18 19:05:36 grange Exp $	*/
+
+/*
+ * Copyright (c) 1996-2004 Per Fogelstrom, Opsycon AB
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef _MIPS64_EXEC_H_
+#define _MIPS64_EXEC_H_
+
+#define	__LDPGSZ	4096
+
+/*
+ *  Define what exec "formats" we should handle.
+ */
+#define NATIVE_EXEC_ELF
+#define NATIVE_ELFSIZE 64
+#define	EXEC_SCRIPT
+
+/*
+ *  If included from sys/exec.h define kernels ELF format.
+ */
+#ifdef __LP64__
+#define	ARCH_ELFSIZE 64
+#define DB_ELFSIZE 64
+#define ELF_TARG_CLASS  ELFCLASS64
+#else
+#define	ARCH_ELFSIZE 32
+#define DB_ELFSIZE 32
+#define ELF_TARG_CLASS  ELFCLASS32
+#endif
+
+#if defined(__MIPSEB__)
+#define ELF_TARG_DATA		ELFDATA2MSB
+#else
+#define ELF_TARG_DATA		ELFDATA2LSB
+#endif
+#define ELF_TARG_MACH		EM_MIPS
+
+#define _NLIST_DO_ELF
+
+#if defined(_LP64)
+#define _KERN_DO_ELF64
+#if defined(COMPAT_O32)
+#define _KERN_DO_ELF
+#endif
+#else
+#define _KERN_DO_ELF
+#endif
+
+/* Information taken from MIPS ABI supplemental */
+
+/* Architecture dependent Segment types - p_type */
+#define PT_MIPS_REGINFO 0x70000000      /* Register usage information */
+
+/* Architecture dependent d_tag field for Elf32_Dyn.  */
+#define DT_MIPS_RLD_VERSION  0x70000001 /* Runtime Linker Interface ID */
+#define DT_MIPS_TIME_STAMP   0x70000002 /* Timestamp */
+#define DT_MIPS_ICHECKSUM    0x70000003 /* Cksum of ext. str. and com. sizes */
+#define DT_MIPS_IVERSION     0x70000004 /* Version string (string tbl index) */
+#define DT_MIPS_FLAGS        0x70000005 /* Flags */
+#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Segment base address */
+#define DT_MIPS_CONFLICT     0x70000008 /* Adr of .conflict section */
+#define DT_MIPS_LIBLIST      0x70000009 /* Address of .liblist section */
+#define DT_MIPS_LOCAL_GOTNO  0x7000000a /* Number of local .GOT entries */
+#define DT_MIPS_CONFLICTNO   0x7000000b /* Number of .conflict entries */
+#define DT_MIPS_LIBLISTNO    0x70000010 /* Number of .liblist entries */
+#define DT_MIPS_SYMTABNO     0x70000011 /* Number of .dynsym entries */
+#define DT_MIPS_UNREFEXTNO   0x70000012 /* First external DYNSYM */
+#define DT_MIPS_GOTSYM       0x70000013 /* First GOT entry in .dynsym */
+#define DT_MIPS_HIPAGENO     0x70000014 /* Number of GOT page table entries */
+#define DT_MIPS_RLD_MAP      0x70000016 /* Address of debug map pointer */
+
+#define DT_PROCNUM (DT_MIPS_RLD_MAP - DT_LOPROC + 1)
+
+/*
+ * Legal values for e_flags field of Elf32_Ehdr.
+ */
+#define EF_MIPS_NOREORDER	0x00000001	/* .noreorder was used */
+#define EF_MIPS_PIC		0x00000002	/* Contains PIC code */
+#define EF_MIPS_CPIC		0x00000004	/* Uses PIC calling sequence */
+#define	EF_MIPS_ABI2		0x00000020	/* -n32 on Irix 6 */
+#define	EF_MIPS_32BITMODE	0x00000100	/* 64 bit in 32 bit mode... */
+#define EF_MIPS_ARCH		0xf0000000	/* MIPS architecture level */
+#define	E_MIPS_ARCH_1		0x00000000
+#define	E_MIPS_ARCH_2		0x10000000
+#define	E_MIPS_ARCH_3		0x20000000
+#define	E_MIPS_ARCH_4		0x30000000
+#define	EF_MIPS_ABI		0x0000f000	/* ABI level */
+#define	E_MIPS_ABI_NONE		0x00000000	/* ABI level not set */
+#define	E_MIPS_ABI_O32		0x00001000
+#define	E_MIPS_ABI_O64		0x00002000
+#define	E_MIPS_ABI_EABI32	0x00004000
+#define	E_MIPS_ABI_EABI64	0x00004000
+
+/*
+ * Mips special sections.
+ */
+#define	SHN_MIPS_ACOMMON	0xff00		/* Allocated common symbols */
+#define	SHN_MIPS_SCOMMON	0xff03		/* Small common symbols */
+#define	SHN_MIPS_SUNDEFINED	0xff04		/* Small undefined symbols */
+
+/*
+ * Legal values for sh_type field of Elf32_Shdr.
+ */
+#define	SHT_MIPS_LIBLIST  0x70000000	/* Shared objects used in link */
+#define	SHT_MIPS_CONFLICT 0x70000002	/* Conflicting symbols */
+#define	SHT_MIPS_GPTAB    0x70000003	/* Global data area sizes */
+#define	SHT_MIPS_UCODE    0x70000004	/* Reserved for SGI/MIPS compilers */
+#define	SHT_MIPS_DEBUG    0x70000005	/* MIPS ECOFF debugging information */
+#define	SHT_MIPS_REGINFO  0x70000006	/* Register usage information */
+
+/*
+ * Legal values for sh_flags field of Elf32_Shdr.
+ */
+#define	SHF_MIPS_GPREL	0x10000000	/* Must be part of global data area */
+
+#if 0
+/*
+ * Entries found in sections of type SHT_MIPS_GPTAB.
+ */
+typedef union {
+	struct {
+		Elf32_Word gt_current_g_value;	/* -G val used in compilation */
+		Elf32_Word gt_unused;	/* Not used */
+	} gt_header;			/* First entry in section */
+	struct {
+		Elf32_Word gt_g_value;	/* If this val were used for -G */
+		Elf32_Word gt_bytes;	/* This many bytes would be used */
+	} gt_entry;			/* Subsequent entries in section */
+} Elf32_gptab;
+
+/*
+ * Entry found in sections of type SHT_MIPS_REGINFO.
+ */
+typedef struct {
+	Elf32_Word	ri_gprmask;	/* General registers used */
+	Elf32_Word	ri_cprmask[4];	/* Coprocessor registers used */
+	Elf32_Sword	ri_gp_value;	/* $gp register value */
+} Elf32_RegInfo;
+#endif
+
+
+/*
+ * Mips relocations.
+ */
+
+#define	R_MIPS_NONE	0	/* No reloc */
+#define	R_MIPS_16	1	/* Direct 16 bit */
+#define	R_MIPS_32	2	/* Direct 32 bit */
+#define	R_MIPS_REL32	3	/* PC relative 32 bit */
+#define	R_MIPS_26	4	/* Direct 26 bit shifted */
+#define	R_MIPS_HI16	5	/* High 16 bit */
+#define	R_MIPS_LO16	6	/* Low 16 bit */
+#define	R_MIPS_GPREL16	7	/* GP relative 16 bit */
+#define	R_MIPS_LITERAL	8	/* 16 bit literal entry */
+#define	R_MIPS_GOT16	9	/* 16 bit GOT entry */
+#define	R_MIPS_PC16	10	/* PC relative 16 bit */
+#define	R_MIPS_CALL16	11	/* 16 bit GOT entry for function */
+#define	R_MIPS_GPREL32	12	/* GP relative 32 bit */
+
+#define	R_MIPS_64	18
+
+#define	R_MIPS_REL32_64	((R_MIPS_64 << 8) | R_MIPS_REL32)
+
+
+#endif	/* !_MIPS64_EXEC_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/ieee.h b/ndk/platforms/android-9/arch-mips/include/machine/ieee.h
new file mode 100644
index 0000000..520a77b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/ieee.h
@@ -0,0 +1,169 @@
+/*	$OpenBSD: ieee.h,v 1.4 2010/01/23 19:11:21 miod Exp $	*/
+
+/*
+ * Copyright (c) 1992, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This software was developed by the Computer Systems Engineering group
+ * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+ * contributed to Berkeley.
+ *
+ * All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Lawrence Berkeley Laboratory.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ieee.h	8.1 (Berkeley) 6/11/93
+ */
+
+/*
+ * ieee.h defines the machine-dependent layout of the machine's IEEE
+ * floating point.  It does *not* define (yet?) any of the rounding
+ * mode bits, exceptions, and so forth.
+ */
+
+/*
+ * Define the number of bits in each fraction and exponent.
+ *
+ *		     k	         k+1
+ * Note that  1.0 x 2  == 0.1 x 2      and that denorms are represented
+ *
+ *					  (-exp_bias+1)
+ * as fractions that look like 0.fffff x 2             .  This means that
+ *
+ *			 -126
+ * the number 0.10000 x 2    , for instance, is the same as the normalized
+ *
+ *		-127			   -128
+ * float 1.0 x 2    .  Thus, to represent 2    , we need one leading zero
+ *
+ *				  -129
+ * in the fraction; to represent 2    , we need two, and so on.  This
+ *
+ *						     (-exp_bias-fracbits+1)
+ * implies that the smallest denormalized number is 2
+ *
+ * for whichever format we are talking about: for single precision, for
+ *
+ *						-126		-149
+ * instance, we get .00000000000000000000001 x 2    , or 1.0 x 2    , and
+ *
+ * -149 == -127 - 23 + 1.
+ */
+#define	SNG_EXPBITS	8
+#define	SNG_FRACBITS	23
+
+#define	DBL_EXPBITS	11
+#define	DBL_FRACHBITS	20
+#define	DBL_FRACLBITS	32
+#define	DBL_FRACBITS	52
+
+#define	EXT_EXPBITS	15
+#define	EXT_FRACHBITS	16
+#define	EXT_FRACHMBITS	32
+#define	EXT_FRACLMBITS	32
+#define	EXT_FRACLBITS	32
+#define	EXT_FRACBITS	112
+
+#define	EXT_IMPLICIT_NBIT
+
+#define	EXT_TO_ARRAY32(p, a) do {		\
+	(a)[0] = (uint32_t)(p)->ext_fracl;	\
+	(a)[1] = (uint32_t)(p)->ext_fraclm;	\
+	(a)[2] = (uint32_t)(p)->ext_frachm;	\
+	(a)[3] = (uint32_t)(p)->ext_frach;	\
+} while(0)
+
+struct ieee_single {
+#ifdef __MIPSEB__
+	u_int	sng_sign:1;
+	u_int	sng_exp:8;
+	u_int	sng_frac:23;
+#else
+	u_int	sng_frac:23;
+	u_int	sng_exp:8;
+	u_int	sng_sign:1;
+#endif
+};
+
+struct ieee_double {
+#ifdef __MIPSEB__
+	u_int	dbl_sign:1;
+	u_int	dbl_exp:11;
+	u_int	dbl_frach:20;
+	u_int	dbl_fracl;
+#else
+	u_int	dbl_fracl;
+	u_int	dbl_frach:20;
+	u_int	dbl_exp:11;
+	u_int	dbl_sign:1;
+#endif
+};
+
+struct ieee_ext {
+#ifdef __MIPSEB__
+	u_int	ext_sign:1;
+	u_int	ext_exp:15;
+	u_int	ext_frach:16;
+	u_int	ext_frachm;
+	u_int	ext_fraclm;
+	u_int	ext_fracl;
+#else
+	u_int	ext_fracl;
+	u_int	ext_fraclm;
+	u_int	ext_frachm;
+	u_int	ext_frach:16;
+	u_int	ext_exp:15;
+	u_int	ext_sign:1;
+#endif
+};
+
+/*
+ * Floats whose exponent is in [1..INFNAN) (of whatever type) are
+ * `normal'.  Floats whose exponent is INFNAN are either Inf or NaN.
+ * Floats whose exponent is zero are either zero (iff all fraction
+ * bits are zero) or subnormal values.
+ *
+ * A NaN is a `signalling NaN' if its QUIETNAN bit is clear in its
+ * high fraction; if the bit is set, it is a `quiet NaN'.
+ */
+#define	SNG_EXP_INFNAN	255
+#define	DBL_EXP_INFNAN	2047
+#define	EXT_EXP_INFNAN	32767
+
+#if 0
+#define	SNG_QUIETNAN	(1 << 22)
+#define	DBL_QUIETNAN	(1 << 19)
+#define	EXT_QUIETNAN	(1 << 15)
+#endif
+
+/*
+ * Exponent biases.
+ */
+#define	SNG_EXP_BIAS	127
+#define	DBL_EXP_BIAS	1023
+#define	EXT_EXP_BIAS	16383
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/internal_types.h b/ndk/platforms/android-9/arch-mips/include/machine/internal_types.h
new file mode 100644
index 0000000..529079f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/internal_types.h
@@ -0,0 +1,8 @@
+/* $OpenBSD: internal_types.h,v 1.1 2004/08/06 20:56:02 pefo Exp $ */
+/* Public domain */
+#ifndef _MIPS64_INTERNAL_TYPES_H_
+#define _MIPS64_INTERNAL_TYPES_H_
+
+/* Machine special type definitions */
+
+#endif
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/kernel.h b/ndk/platforms/android-9/arch-mips/include/machine/kernel.h
new file mode 100644
index 0000000..462b8e3
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/kernel.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _ARCH_ARM_KERNEL_H
+#define _ARCH_ARM_KERNEL_H
+
+/* this file contains kernel-specific definitions that were optimized out of
+   our processed kernel headers, but still useful nonetheless... */
+
+typedef unsigned long   __kernel_blkcnt_t;
+typedef unsigned long   __kernel_blksize_t;
+
+/* these aren't really defined by the kernel headers though... */
+typedef unsigned long   __kernel_fsblkcnt_t;
+typedef unsigned long   __kernel_fsfilcnt_t;
+typedef unsigned int    __kernel_id_t;
+
+#endif /* _ARCH_ARM_KERNEL_H */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/limits.h b/ndk/platforms/android-9/arch-mips/include/machine/limits.h
new file mode 100644
index 0000000..339444d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/limits.h
@@ -0,0 +1,62 @@
+/*	$OpenBSD: limits.h,v 1.5 2007/05/07 20:51:07 kettenis Exp $	*/
+
+/*
+ * Copyright (c) 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)limits.h	8.3 (Berkeley) 1/4/94
+ */
+
+#ifndef _MIPS_LIMITS_H_
+#define _MIPS_LIMITS_H_
+
+#include <sys/cdefs.h>
+
+#define	MB_LEN_MAX	6		/* Allow 31 bit UTF2 */
+
+#ifndef	SIZE_MAX
+#define	SIZE_MAX	ULONG_MAX	/* max value for a size_t */
+#endif
+#define	SSIZE_MAX	LONG_MAX	/* max value for a ssize_t */
+
+#if __BSD_VISIBLE
+#define	SIZE_T_MAX	ULONG_MAX	/* max value for a size_t (historic) */
+
+/* Quads and longs are the same on mips64 */
+#define	UQUAD_MAX	(ULONG_MAX)	/* max value for a uquad_t */
+#define	QUAD_MAX	(LONG_MAX)	/* max value for a quad_t */
+#define	QUAD_MIN	(LONG_MIN)	/* min value for a quad_t */
+
+#endif /* __BSD_VISIBLE */
+
+
+#define LONGLONG_BIT    64
+#define LONGLONG_MIN    (-9223372036854775807LL-1)
+#define LONGLONG_MAX    9223372036854775807LL
+#define ULONGLONG_MAX   18446744073709551615ULL
+
+#endif /* !_MIPS_LIMITS_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/regdef.h b/ndk/platforms/android-9/arch-mips/include/machine/regdef.h
new file mode 100644
index 0000000..ae18392
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/regdef.h
@@ -0,0 +1,92 @@
+/*	$OpenBSD: regdef.h,v 1.3 2005/08/07 07:29:44 miod Exp $	*/
+
+/*
+ * Copyright (c) 1992, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Ralph Campbell. This file is derived from the MIPS RISC
+ * Architecture book by Gerry Kane.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)regdef.h	8.1 (Berkeley) 6/10/93
+ */
+#ifndef _MIPS_REGDEF_H_
+#define _MIPS_REGDEF_H_
+
+#define zero	$0	/* always zero */
+#define AT	$at	/* assembler temp */
+#define v0	$2	/* return value */
+#define v1	$3
+#define a0	$4	/* argument registers */
+#define a1	$5
+#define a2	$6
+#define a3	$7
+#if defined(__mips_n32) || defined(__mips_n64)
+#define a4	$8	/* expanded register arguments */
+#define a5	$9
+#define a6	$10
+#define a7	$11
+#define ta0	$8	/* alias */
+#define ta1	$9
+#define ta2	$10
+#define ta3	$11
+#define t0	$12	/* temp registers (not saved across subroutine calls) */
+#define t1	$13
+#define t2	$14
+#define t3	$15
+#else
+#define t0	$8	/* temp registers (not saved across subroutine calls) */
+#define t1	$9
+#define t2	$10
+#define t3	$11
+#define t4	$12
+#define t5	$13
+#define t6	$14
+#define t7	$15
+#define ta0	$12	/* alias */
+#define ta1	$13
+#define ta2	$14
+#define ta3	$15
+#endif
+#define s0	$16	/* saved across subroutine calls (callee saved) */
+#define s1	$17
+#define s2	$18
+#define s3	$19
+#define s4	$20
+#define s5	$21
+#define s6	$22
+#define s7	$23
+#define t8	$24	/* two more temp registers */
+#define t9	$25
+#define k0	$26	/* kernel temporary */
+#define k1	$27
+#define gp	$28	/* global pointer */
+#define sp	$29	/* stack pointer */
+#define s8	$30	/* one more callee saved */
+#define ra	$31	/* return address */
+
+#endif /* !_MIPS_REGDEF_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/regnum.h b/ndk/platforms/android-9/arch-mips/include/machine/regnum.h
new file mode 100644
index 0000000..bfe1280
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/regnum.h
@@ -0,0 +1,119 @@
+/*	$OpenBSD: regnum.h,v 1.3 2004/08/10 20:28:13 deraadt Exp $ */
+
+/*
+ * Copyright (c) 2001-2002 Opsycon AB  (www.opsycon.se / www.opsycon.com)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef _MIPS64_REGNUM_H_
+#define _MIPS64_REGNUM_H_
+
+/*
+ * Location of the saved registers relative to ZERO.
+ * Usage is p->p_regs[XX].
+ */
+#define ZERO	0
+#define AST	1
+#define V0	2
+#define V1	3
+#define A0	4
+#define A1	5
+#define A2	6
+#define A3	7
+#define T0	8
+#define T1	9
+#define T2	10
+#define T3	11
+#define T4	12
+#define T5	13
+#define T6	14
+#define T7	15
+#define S0	16
+#define S1	17
+#define S2	18
+#define S3	19
+#define S4	20
+#define S5	21
+#define S6	22
+#define S7	23
+#define T8	24
+#define T9	25
+#define K0	26
+#define K1	27
+#define GP	28
+#define SP	29
+#define S8	30
+#define RA	31
+#define	SR	32
+#define	PS	SR	/* alias for SR */
+#define MULLO	33
+#define MULHI	34
+#define BADVADDR 35
+#define CAUSE	36
+#define	PC	37
+#define	IC	38
+#define	CPL	39
+
+#define	NUMSAVEREGS 40		/* Number of registers saved in trap */
+
+#define FPBASE	NUMSAVEREGS
+#define F0	(FPBASE+0)
+#define F1	(FPBASE+1)
+#define F2	(FPBASE+2)
+#define F3	(FPBASE+3)
+#define F4	(FPBASE+4)
+#define F5	(FPBASE+5)
+#define F6	(FPBASE+6)
+#define F7	(FPBASE+7)
+#define F8	(FPBASE+8)
+#define F9	(FPBASE+9)
+#define F10	(FPBASE+10)
+#define F11	(FPBASE+11)
+#define F12	(FPBASE+12)
+#define F13	(FPBASE+13)
+#define F14	(FPBASE+14)
+#define F15	(FPBASE+15)
+#define F16	(FPBASE+16)
+#define F17	(FPBASE+17)
+#define F18	(FPBASE+18)
+#define F19	(FPBASE+19)
+#define F20	(FPBASE+20)
+#define F21	(FPBASE+21)
+#define F22	(FPBASE+22)
+#define F23	(FPBASE+23)
+#define F24	(FPBASE+24)
+#define F25	(FPBASE+25)
+#define F26	(FPBASE+26)
+#define F27	(FPBASE+27)
+#define F28	(FPBASE+28)
+#define F29	(FPBASE+29)
+#define F30	(FPBASE+30)
+#define F31	(FPBASE+31)
+#define	FSR	(FPBASE+32)
+
+#define	NUMFPREGS 33
+
+#define	NREGS	(NUMSAVEREGS + NUMFPREGS)
+
+#endif /* !_MIPS64_REGNUM_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/setjmp.h b/ndk/platforms/android-9/arch-mips/include/machine/setjmp.h
new file mode 100644
index 0000000..55ba7be
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/setjmp.h
@@ -0,0 +1,10 @@
+/*	$OpenBSD: setjmp.h,v 1.2 2004/08/10 21:10:56 pefo Exp $	*/
+
+/* Public domain */
+
+#ifndef _MIPS_SETJMP_H_
+#define _MIPS_SETJMP_H_
+
+#define	_JBLEN	157		/* size, in longs, of a jmp_buf */
+
+#endif /* !_MIPS_SETJMP_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/machine/signal.h b/ndk/platforms/android-9/arch-mips/include/machine/signal.h
new file mode 100644
index 0000000..96ebf76
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/machine/signal.h
@@ -0,0 +1,147 @@
+/*	$OpenBSD: signal.h,v 1.8 2006/01/09 18:18:37 millert Exp $	*/
+
+/*
+ * Copyright (c) 1992, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Ralph Campbell.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)signal.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _MIPS_SIGNAL_H_
+#define _MIPS_SIGNAL_H_
+
+#include <sys/cdefs.h>
+
+#if !defined(__LANGUAGE_ASSEMBLY)
+#include <sys/types.h>
+
+/*
+ * Machine-dependent signal definitions
+ */
+typedef int sig_atomic_t;
+
+#if __BSD_VISIBLE || __XPG_VISIBLE >= 420
+
+/*
+ * Information pushed on stack when a signal is delivered.
+ * This is used by the kernel to restore state following
+ * execution of the signal handler.  It is also made available
+ * to the handler to allow it to restore state properly if
+ * a non-standard exit is performed.
+ */
+
+#if defined(ANDROID_CHANGES)
+
+/*
+ * The Linux and OpenBSD sigcontext structures are slightly different
+ * This is the Linux O32 ABI compatible sigcontext
+ */
+
+struct sigcontext {
+	unsigned int sc_regmask;
+	unsigned int sc_status;
+	unsigned long long sc_pc;
+	unsigned long long sc_regs[32];
+	unsigned long long sc_fpregs[32];
+	unsigned int sc_acx;
+	unsigned int sc_fpc_csr;
+	unsigned int sc_fpc_eir;
+	unsigned int sc_used_math;
+	unsigned int sc_dsp;
+	unsigned long long sc_mdhi;
+	unsigned long long sc_mdlo;
+	unsigned long sc_hi1;
+	unsigned long sc_lo1;
+	unsigned long sc_hi2;
+	unsigned long sc_lo2;
+	unsigned long sc_hi3;
+	unsigned long sc_lo3;
+};
+
+#else
+
+struct	sigcontext {
+	long	sc_onstack;	/* sigstack state to restore */
+	long	 sc_mask;	/* signal mask to restore */
+	__register_t sc_pc;	/* pc at time of signal */
+	__register_t sc_regs[32]; /* processor regs 0 to 31 */
+	__register_t mullo;	/* mullo and mulhi registers... */
+	__register_t mulhi;	/* mullo and mulhi registers... */
+	f_register_t sc_fpregs[33]; /* fp regs 0 to 31 and csr */
+	long	sc_fpused;	/* fp has been used */
+	long	sc_fpc_eir;	/* floating point exception instruction reg */
+	long	xxx[8];		/* XXX reserved */
+};
+#endif
+#endif /* __BSD_VISIBLE || __XPG_VISIBLE >= 420 */
+
+#else /* __LANGUAGE_ASSEMBLY */
+
+#ifdef ANDROID_CHANGES
+
+#define	SC_REGMASK	(0*REGSZ)
+#define	SC_STATUS	(1*REGSZ)
+#define	SC_PC		(2*REGSZ)
+#define	SC_REGS		(SC_PC+8)
+#define	SC_FPREGS	(SC_REGS+32*8)
+#define	SC_ACX		(SC_FPREGS+32*REGSZ_FP)
+#define	SC_FPC_CSR	(SC_ACX+1*REGSZ)
+#define	SC_FPC_EIR	(SC_ACX+2*REGSZ)
+#define	SC_USED_MATH	(SC_ACX+3*REGSZ)
+#define	SC_DSP		(SC_ACX+4*REGSZ)
+#define	SC_MDHI		(SC_ACX+5*REGSZ)
+#define	SC_MDLO		(SC_MDHI+8)
+#define	SC_HI1		(SC_MDLO+8)
+#define	SC_LO1		(SC_HI1+1*REGSZ)
+#define	SC_HI2		(SC_HI1+2*REGSZ)
+#define	SC_LO2		(SC_HI1+3*REGSZ)
+#define	SC_HI3		(SC_HI1+4*REGSZ)
+#define	SC_LO3		(SC_HI1+5*REGSZ)
+/* OpenBSD compatibility */
+#define	SC_MASK		SC_REGMASK
+#define	SC_FPUSED	SC_USED_MATH
+
+#else
+
+#define SC_ONSTACK	(0 * REGSZ)
+#define	SC_MASK		(1 * REGSZ)
+#define	SC_PC		(2 * REGSZ)
+#define	SC_REGS		(3 * REGSZ)
+#define	SC_MULLO	(35 * REGSZ)
+#define	SC_MULHI	(36 * REGSZ)
+#define	SC_FPREGS	(37 * REGSZ)
+#define	SC_FPUSED	(70 * REGSZ)
+#define	SC_FPC_EIR	(71 * REGSZ)
+
+#endif /*ANDROID CHANGES*/
+
+#endif /* __LANGUAGE_ASSEMBLY */
+
+#endif	/* !_MIPS_SIGNAL_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/_sigdefs.h b/ndk/platforms/android-9/arch-mips/include/sys/_sigdefs.h
new file mode 100644
index 0000000..6b47a03
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/_sigdefs.h
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * this header is used to define signal constants and names;
+ * it might be included several times
+ */
+
+#ifndef __BIONIC_SIGDEF
+#error __BIONIC_SIGDEF not defined
+#endif
+
+__BIONIC_SIGDEF(HUP,1,"Hangup")
+__BIONIC_SIGDEF(INT,2,"Interrupt")
+__BIONIC_SIGDEF(QUIT,3,"Quit")
+__BIONIC_SIGDEF(ILL,4,"Illegal instruction")
+__BIONIC_SIGDEF(TRAP,5,"Trap")
+__BIONIC_SIGDEF(ABRT,6,"Aborted")
+#ifdef __mips__
+__BIONIC_SIGDEF(EMT,7,"EMT")
+#else
+__BIONIC_SIGDEF(BUS,7,"Bus error")
+#endif
+__BIONIC_SIGDEF(FPE,8,"Floating point exception")
+__BIONIC_SIGDEF(KILL,9,"Killed")
+#ifdef __mips__
+__BIONIC_SIGDEF(BUS,10,"Bus error")
+#else
+__BIONIC_SIGDEF(USR1,10,"User signal 1")
+#endif
+__BIONIC_SIGDEF(SEGV,11,"Segmentation fault")
+#ifdef __mips__
+__BIONIC_SIGDEF(SYS,12,"Bad system call")
+#else
+__BIONIC_SIGDEF(USR2,12,"User signal 2")
+#endif
+__BIONIC_SIGDEF(PIPE,13,"Broken pipe")
+__BIONIC_SIGDEF(ALRM,14,"Alarm clock")
+__BIONIC_SIGDEF(TERM,15,"Terminated")
+#ifdef __mips__
+__BIONIC_SIGDEF(USR1,16,"User signal 1")
+__BIONIC_SIGDEF(USR2,17,"User signal 2")
+__BIONIC_SIGDEF(CHLD,18,"Child exited")
+__BIONIC_SIGDEF(PWR,19,"Power failure")
+__BIONIC_SIGDEF(WINCH,20,"Window size changed")
+__BIONIC_SIGDEF(URG,21,"Urgent I/O condition")
+__BIONIC_SIGDEF(IO,22,"I/O possible")
+__BIONIC_SIGDEF(STOP,23,"Stopped (signal)")
+__BIONIC_SIGDEF(TSTP,24,"Stopped")
+__BIONIC_SIGDEF(CONT,25,"Continue")
+__BIONIC_SIGDEF(TTIN,26,"Stopped (tty input)")
+__BIONIC_SIGDEF(TTOU,27,"Stopped (tty output)")
+__BIONIC_SIGDEF(VTALRM,28,"Virtual timer expired")
+__BIONIC_SIGDEF(PROF,29,"Profiling timer expired")
+__BIONIC_SIGDEF(XCPU,30,"CPU time limit exceeded")
+__BIONIC_SIGDEF(XFSZ,31,"File size limit exceeded")
+#else
+__BIONIC_SIGDEF(STKFLT,16,"Stack fault")
+__BIONIC_SIGDEF(CHLD,17,"Child exited")
+__BIONIC_SIGDEF(CONT,18,"Continue")
+__BIONIC_SIGDEF(STOP,19,"Stopped (signal)")
+__BIONIC_SIGDEF(TSTP,20,"Stopped")
+__BIONIC_SIGDEF(TTIN,21,"Stopped (tty input)")
+__BIONIC_SIGDEF(TTOU,22,"Stopper (tty output)")
+__BIONIC_SIGDEF(URG,23,"Urgent I/O condition")
+__BIONIC_SIGDEF(XCPU,24,"CPU time limit exceeded")
+__BIONIC_SIGDEF(XFSZ,25,"File size limit exceeded")
+__BIONIC_SIGDEF(VTALRM,26,"Virtual timer expired")
+__BIONIC_SIGDEF(PROF,27,"Profiling timer expired")
+__BIONIC_SIGDEF(WINCH,28,"Window size changed")
+__BIONIC_SIGDEF(IO,29,"I/O possible")
+__BIONIC_SIGDEF(PWR,30,"Power failure")
+__BIONIC_SIGDEF(SYS,31,"Bad system call")
+#endif
+
+#undef __BIONIC_SIGDEF
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/cachectl.h b/ndk/platforms/android-9/arch-mips/include/sys/cachectl.h
new file mode 100644
index 0000000..51b3266
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/cachectl.h
@@ -0,0 +1,10 @@
+#ifndef _SYS_CACHECTL_H
+#define _SYS_CACHECTL_H 1
+
+#ifdef __mips__
+#include <asm/cachectl.h>
+extern int __cachectl (void *addr, __const int nbytes, __const int op);
+extern int _flush_cache (char *addr, __const int nbytes, __const int op);
+#endif
+
+#endif /* sys/cachectl.h */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/ioctl_compat.h b/ndk/platforms/android-9/arch-mips/include/sys/ioctl_compat.h
new file mode 100644
index 0000000..d9ba4c7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/ioctl_compat.h
@@ -0,0 +1,174 @@
+/*	$NetBSD: ioctl_compat.h,v 1.15 2005/12/03 17:10:46 christos Exp $	*/
+
+/*
+ * Copyright (c) 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ * (c) UNIX System Laboratories, Inc.
+ * All or some portions of this file are derived from material licensed
+ * to the University of California by American Telephone and Telegraph
+ * Co. or Unix System Laboratories, Inc. and are reproduced herein with
+ * the permission of UNIX System Laboratories, Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ioctl_compat.h	8.4 (Berkeley) 1/21/94
+ */
+
+#ifndef _SYS_IOCTL_COMPAT_H_
+#define	_SYS_IOCTL_COMPAT_H_
+
+/*#include <sys/ttychars.h>*/
+/*#include <sys/ttydev.h>*/
+
+#if !defined(__mips__)
+struct tchars {
+	char	t_intrc;	/* interrupt */
+	char	t_quitc;	/* quit */
+	char	t_startc;	/* start output */
+	char	t_stopc;	/* stop output */
+	char	t_eofc;		/* end-of-file */
+	char	t_brkc;		/* input delimiter (like nl) */
+};
+
+struct ltchars {
+	char	t_suspc;	/* stop process signal */
+	char	t_dsuspc;	/* delayed stop process signal */
+	char	t_rprntc;	/* reprint line */
+	char	t_flushc;	/* flush output (toggles) */
+	char	t_werasc;	/* word erase */
+	char	t_lnextc;	/* literal next character */
+};
+
+/*
+ * Structure for TIOCGETP and TIOCSETP ioctls.
+ */
+#ifndef _SGTTYB_
+#define	_SGTTYB_
+struct sgttyb {
+	char	sg_ispeed;		/* input speed */
+	char	sg_ospeed;		/* output speed */
+	char	sg_erase;		/* erase character */
+	char	sg_kill;		/* kill character */
+	short	sg_flags;		/* mode flags */
+};
+#endif
+#endif
+
+#ifdef USE_OLD_TTY
+# undef  TIOCGETD
+# define TIOCGETD	_IOR('t', 0, int)	/* get line discipline */
+# undef  TIOCSETD
+# define TIOCSETD	_IOW('t', 1, int)	/* set line discipline */
+#else
+# define OTIOCGETD	_IOR('t', 0, int)	/* get line discipline */
+# define OTIOCSETD	_IOW('t', 1, int)	/* set line discipline */
+#endif
+#define	TIOCHPCL	_IO('t', 2)		/* hang up on last close */
+#if !defined(__mips__)
+#define	TIOCGETP	_IOR('t', 8,struct sgttyb)/* get parameters -- gtty */
+#define	TIOCSETP	_IOW('t', 9,struct sgttyb)/* set parameters -- stty */
+#define	TIOCSETN	_IOW('t',10,struct sgttyb)/* as above, but no flushtty*/
+#endif
+#define	TIOCSETC	_IOW('t',17,struct tchars)/* set special characters */
+#define	TIOCGETC	_IOR('t',18,struct tchars)/* get special characters */
+#if 0
+/* BUG: a bunch of these conflict with #defines in asm/termbits.h */
+#define		TANDEM		0x00000001	/* send stopc on out q full */
+#define		CBREAK		0x00000002	/* half-cooked mode */
+#define		LCASE		0x00000004	/* simulate lower case */
+#define		ECHO		0x00000008	/* enable echoing */
+#define		CRMOD		0x00000010	/* map \r to \r\n on output */
+#define		RAW		0x00000020	/* no i/o processing */
+#define		ODDP		0x00000040	/* get/send odd parity */
+#define		EVENP		0x00000080	/* get/send even parity */
+#define		ANYP		0x000000c0	/* get any parity/send none */
+#define		NLDELAY		0x00000300	/* \n delay */
+#define			NL0	0x00000000
+#define			NL1	0x00000100	/* tty 37 */
+#define			NL2	0x00000200	/* vt05 */
+#define			NL3	0x00000300
+#define		TBDELAY		0x00000c00	/* horizontal tab delay */
+#define			TAB0	0x00000000
+#define			TAB1	0x00000400	/* tty 37 */
+#define			TAB2	0x00000800
+#define		XTABS		0x00000c00	/* expand tabs on output */
+#define		CRDELAY		0x00003000	/* \r delay */
+#define			CR0	0x00000000
+#define			CR1	0x00001000	/* tn 300 */
+#define			CR2	0x00002000	/* tty 37 */
+#define			CR3	0x00003000	/* concept 100 */
+#define		VTDELAY		0x00004000	/* vertical tab delay */
+#define			FF0	0x00000000
+#define			FF1	0x00004000	/* tty 37 */
+#define		BSDELAY		0x00008000	/* \b delay */
+#define			BS0	0x00000000
+#define			BS1	0x00008000
+#define		ALLDELAY	(NLDELAY|TBDELAY|CRDELAY|VTDELAY|BSDELAY)
+#define		CRTBS		0x00010000	/* do backspacing for crt */
+#define		PRTERA		0x00020000	/* \ ... / erase */
+#define		CRTERA		0x00040000	/* " \b " to wipe out char */
+#define		TILDE		0x00080000	/* hazeltine tilde kludge */
+#define		MDMBUF		0x00100000	/* DTR/DCD hardware flow control */
+#define		LITOUT		0x00200000	/* literal output */
+#define		TOSTOP		0x00400000	/* stop background jobs on output */
+#define		FLUSHO		0x00800000	/* output being flushed (state) */
+#define		NOHANG		0x01000000	/* (no-op) was no SIGHUP on carrier drop */
+#define		L001000		0x02000000
+#define		CRTKIL		0x04000000	/* kill line with " \b " */
+#define		PASS8		0x08000000
+#define		CTLECH		0x10000000	/* echo control chars as ^X */
+#define		PENDIN		0x20000000	/* re-echo input buffer at next read */
+#define		DECCTQ		0x40000000	/* only ^Q starts after ^S */
+#define		NOFLSH		0x80000000	/* don't flush output on signal */
+#endif
+#define	TIOCLBIS	_IOW('t', 127, int)	/* bis local mode bits */
+#define	TIOCLBIC	_IOW('t', 126, int)	/* bic local mode bits */
+#define	TIOCLSET	_IOW('t', 125, int)	/* set entire local mode word */
+#define	TIOCLGET	_IOR('t', 124, int)	/* get local modes */
+#define		LCRTBS		(CRTBS>>16)
+#define		LPRTERA		(PRTERA>>16)
+#define		LCRTERA		(CRTERA>>16)
+#define		LTILDE		(TILDE>>16)
+#define		LMDMBUF		(MDMBUF>>16)
+#define		LLITOUT		(LITOUT>>16)
+#define		LTOSTOP		(TOSTOP>>16)
+#define		LFLUSHO		(FLUSHO>>16)
+#define		LNOHANG		(NOHANG>>16)
+#define		LCRTKIL		(CRTKIL>>16)
+#define		LPASS8		(PASS8>>16)
+#define		LCTLECH		(CTLECH>>16)
+#define		LPENDIN		(PENDIN>>16)
+#define		LDECCTQ		(DECCTQ>>16)
+#define		LNOFLSH		(NOFLSH>>16)
+#if !defined(__mips__)
+#define	TIOCSLTC	_IOW('t',117,struct ltchars)/* set local special chars*/
+#define	TIOCGLTC	_IOR('t',116,struct ltchars)/* get local special chars*/
+#endif
+#define OTIOCCONS	_IO('t', 98)	/* for hp300 -- sans int arg */
+#define	OTTYDISC	0
+#define	NETLDISC	1
+#define	NTTYDISC	2
+
+#endif /* !_SYS_IOCTL_COMPAT_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/linux-syscalls.h b/ndk/platforms/android-9/arch-mips/include/sys/linux-syscalls.h
new file mode 100644
index 0000000..f913d40
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/linux-syscalls.h
@@ -0,0 +1,508 @@
+/* auto-generated by gensyscalls.py, do not touch */
+#ifndef _BIONIC_LINUX_SYSCALLS_H_
+
+#if !defined __ASM_ARM_UNISTD_H && !defined __ASM_I386_UNISTD_H && !defined __ASM_MIPS_UNISTD_H
+#if defined __arm__ && !defined __ARM_EABI__ && !defined __thumb__
+#  define __NR_SYSCALL_BASE  0x900000
+#elif defined(__mips__)
+#  define __NR_SYSCALL_BASE 4000
+#else
+#  define  __NR_SYSCALL_BASE  0
+#endif
+
+#define __NR_exit                         (__NR_SYSCALL_BASE + 1)
+#define __NR_fork                         (__NR_SYSCALL_BASE + 2)
+#define __NR_read                         (__NR_SYSCALL_BASE + 3)
+#define __NR_write                        (__NR_SYSCALL_BASE + 4)
+#define __NR_open                         (__NR_SYSCALL_BASE + 5)
+#define __NR_close                        (__NR_SYSCALL_BASE + 6)
+#define __NR_link                         (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink                       (__NR_SYSCALL_BASE + 10)
+#define __NR_execve                       (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir                        (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod                        (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod                        (__NR_SYSCALL_BASE + 15)
+#define __NR_lseek                        (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid                       (__NR_SYSCALL_BASE + 20)
+#define __NR_mount                        (__NR_SYSCALL_BASE + 21)
+#define __NR_ptrace                       (__NR_SYSCALL_BASE + 26)
+#define __NR_pause                        (__NR_SYSCALL_BASE + 29)
+#define __NR_access                       (__NR_SYSCALL_BASE + 33)
+#define __NR_sync                         (__NR_SYSCALL_BASE + 36)
+#define __NR_rename                       (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir                        (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir                        (__NR_SYSCALL_BASE + 40)
+#define __NR_dup                          (__NR_SYSCALL_BASE + 41)
+#define __NR_times                        (__NR_SYSCALL_BASE + 43)
+#define __NR_brk                          (__NR_SYSCALL_BASE + 45)
+#define __NR_acct                         (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2                      (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl                        (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl                        (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid                      (__NR_SYSCALL_BASE + 57)
+#define __NR_umask                        (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot                       (__NR_SYSCALL_BASE + 61)
+#define __NR_dup2                         (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid                      (__NR_SYSCALL_BASE + 64)
+#define __NR_setsid                       (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction                    (__NR_SYSCALL_BASE + 67)
+#define __NR_sigsuspend                   (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending                   (__NR_SYSCALL_BASE + 73)
+#define __NR_setrlimit                    (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage                    (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday                 (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday                 (__NR_SYSCALL_BASE + 79)
+#define __NR_symlink                      (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink                     (__NR_SYSCALL_BASE + 85)
+#define __NR_reboot                       (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap                       (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate                     (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate                    (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod                       (__NR_SYSCALL_BASE + 94)
+#define __NR_getpriority                  (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority                  (__NR_SYSCALL_BASE + 97)
+#define __NR_syslog                       (__NR_SYSCALL_BASE + 103)
+#define __NR_syslog                       (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer                    (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer                    (__NR_SYSCALL_BASE + 105)
+#define __NR_wait4                        (__NR_SYSCALL_BASE + 114)
+#define __NR_sysinfo                      (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync                        (__NR_SYSCALL_BASE + 118)
+#define __NR_clone                        (__NR_SYSCALL_BASE + 120)
+#define __NR_uname                        (__NR_SYSCALL_BASE + 122)
+#define __NR_mprotect                     (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask                  (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module                  (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module                (__NR_SYSCALL_BASE + 129)
+#define __NR_getpgid                      (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir                       (__NR_SYSCALL_BASE + 133)
+#define __NR__llseek                      (__NR_SYSCALL_BASE + 140)
+#define __NR__newselect                   (__NR_SYSCALL_BASE + 142)
+#define __NR_flock                        (__NR_SYSCALL_BASE + 143)
+#define __NR_msync                        (__NR_SYSCALL_BASE + 144)
+#define __NR_readv                        (__NR_SYSCALL_BASE + 145)
+#define __NR_writev                       (__NR_SYSCALL_BASE + 146)
+
+#ifdef __arm__
+#define __NR_pipe                         (__NR_SYSCALL_BASE + 42)
+#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 148)
+#define __NR_mlock                        (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock                      (__NR_SYSCALL_BASE + 151)
+#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap                       (__NR_SYSCALL_BASE + 163)
+#define __NR_poll                         (__NR_SYSCALL_BASE + 168)
+#define __NR_prctl                        (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 177)
+#define __NR_pread64                      (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 181)
+#define __NR_getcwd                       (__NR_SYSCALL_BASE + 183)
+#define __NR_capget                       (__NR_SYSCALL_BASE + 184)
+#define __NR_capset                       (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile                     (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork                        (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit                   (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2                        (__NR_SYSCALL_BASE + 192)
+#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64                       (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64                      (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64                      (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32                     (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32                     (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32                     (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32                    (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32                    (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32                   (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32                   (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32                  (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32                  (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32                     (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32                  (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32                  (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32                  (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32                  (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32                      (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32                     (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32                     (__NR_SYSCALL_BASE + 214)
+#define __NR_getdents64                   (__NR_SYSCALL_BASE + 217)
+#define __NR_mincore                      (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise                      (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid                       (__NR_SYSCALL_BASE + 224)
+#define __NR_futex                        (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 242)
+#define __NR_exit_group                   (__NR_SYSCALL_BASE + 248)
+#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 252)
+#define __NR_timer_create                 (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime                (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime                (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64                     (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 267)
+#define __NR_utimes                       (__NR_SYSCALL_BASE + 269)
+#define __NR_waitid                       (__NR_SYSCALL_BASE + 280)
+#define __NR_socket                       (__NR_SYSCALL_BASE + 281)
+#define __NR_bind                         (__NR_SYSCALL_BASE + 282)
+#define __NR_connect                      (__NR_SYSCALL_BASE + 283)
+#define __NR_listen                       (__NR_SYSCALL_BASE + 284)
+#define __NR_accept                       (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname                  (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername                  (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair                   (__NR_SYSCALL_BASE + 288)
+#define __NR_sendto                       (__NR_SYSCALL_BASE + 290)
+#define __NR_recvfrom                     (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown                     (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt                   (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt                   (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg                      (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg                      (__NR_SYSCALL_BASE + 297)
+#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 318)
+#define __NR_openat                       (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 323)
+#define __NR_fchownat                     (__NR_SYSCALL_BASE + 325)
+#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat                     (__NR_SYSCALL_BASE + 329)
+#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 333)
+#define __NR_getcpu                       (__NR_SYSCALL_BASE + 345)
+#define __NR_utimensat                    (__NR_SYSCALL_BASE + 348)
+#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 356)
+#define __NR_pipe2                        (__NR_SYSCALL_BASE + 359)
+#define __NR_ARM_cacheflush               (__NR_SYSCALL_BASE + 983042)
+#define __NR_ARM_set_tls                  (__NR_SYSCALL_BASE + 983045)
+#endif
+
+#ifdef __i386__
+#define __NR_waitpid                      (__NR_SYSCALL_BASE + 7)
+#define __NR_kill                         (__NR_SYSCALL_BASE + 37)
+#define __NR_pipe                         (__NR_SYSCALL_BASE + 42)
+#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
+#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 148)
+#define __NR_mlock                        (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock                      (__NR_SYSCALL_BASE + 151)
+#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap                       (__NR_SYSCALL_BASE + 163)
+#define __NR_poll                         (__NR_SYSCALL_BASE + 168)
+#define __NR_prctl                        (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 177)
+#define __NR_pread64                      (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 181)
+#define __NR_getcwd                       (__NR_SYSCALL_BASE + 183)
+#define __NR_capget                       (__NR_SYSCALL_BASE + 184)
+#define __NR_capset                       (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile                     (__NR_SYSCALL_BASE + 187)
+#define __NR_ugetrlimit                   (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2                        (__NR_SYSCALL_BASE + 192)
+#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64                       (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64                      (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64                      (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32                     (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32                     (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32                     (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32                    (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32                    (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32                   (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32                   (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32                  (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32                  (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32                     (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32                  (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32                  (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32                  (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32                  (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32                      (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32                     (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32                     (__NR_SYSCALL_BASE + 214)
+#define __NR_mincore                      (__NR_SYSCALL_BASE + 218)
+#define __NR_madvise                      (__NR_SYSCALL_BASE + 219)
+#define __NR_getdents64                   (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid                       (__NR_SYSCALL_BASE + 224)
+#define __NR_tkill                        (__NR_SYSCALL_BASE + 238)
+#define __NR_futex                        (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 242)
+#define __NR_set_thread_area              (__NR_SYSCALL_BASE + 243)
+#define __NR_exit_group                   (__NR_SYSCALL_BASE + 252)
+#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 254)
+#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 255)
+#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create                 (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_settime                (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 261)
+#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 262)
+#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_settime                (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 265)
+#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 266)
+#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 267)
+#define __NR_statfs64                     (__NR_SYSCALL_BASE + 268)
+#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 269)
+#define __NR_utimes                       (__NR_SYSCALL_BASE + 271)
+#define __NR_waitid                       (__NR_SYSCALL_BASE + 284)
+#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 289)
+#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 290)
+#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 291)
+#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 292)
+#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 293)
+#define __NR_openat                       (__NR_SYSCALL_BASE + 295)
+#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 296)
+#define __NR_fchownat                     (__NR_SYSCALL_BASE + 298)
+#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 300)
+#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 301)
+#define __NR_renameat                     (__NR_SYSCALL_BASE + 302)
+#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 306)
+#define __NR_getcpu                       (__NR_SYSCALL_BASE + 318)
+#define __NR_utimensat                    (__NR_SYSCALL_BASE + 320)
+#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 328)
+#define __NR_pipe2                        (__NR_SYSCALL_BASE + 331)
+#endif
+
+#if defined(__SH3__) || defined(__SH4__) 
+#define __NR_waitpid                      (__NR_SYSCALL_BASE + 7)
+#define __NR_kill                         (__NR_SYSCALL_BASE + 37)
+#define __NR_socketcall                   (__NR_SYSCALL_BASE + 102)
+#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 148)
+#define __NR_mlock                        (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock                      (__NR_SYSCALL_BASE + 151)
+#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap                       (__NR_SYSCALL_BASE + 163)
+#define __NR_poll                         (__NR_SYSCALL_BASE + 168)
+#define __NR_prctl                        (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 177)
+#define __NR_pread64                      (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 181)
+#define __NR_getcwd                       (__NR_SYSCALL_BASE + 183)
+#define __NR_capget                       (__NR_SYSCALL_BASE + 184)
+#define __NR_capset                       (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile                     (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork                        (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit                   (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2                        (__NR_SYSCALL_BASE + 192)
+#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64                       (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64                      (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64                      (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32                     (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32                     (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32                     (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32                    (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32                    (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32                   (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32                   (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32                  (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32                  (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32                     (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32                  (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32                  (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32                  (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32                  (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32                      (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32                     (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32                     (__NR_SYSCALL_BASE + 214)
+#define __NR_mincore                      (__NR_SYSCALL_BASE + 218)
+#define __NR_madvise                      (__NR_SYSCALL_BASE + 219)
+#define __NR_getdents64                   (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid                       (__NR_SYSCALL_BASE + 224)
+#define __NR_tkill                        (__NR_SYSCALL_BASE + 238)
+#define __NR_futex                        (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 242)
+#define __NR_set_thread_area              (__NR_SYSCALL_BASE + 243)
+#define __NR_exit_group                   (__NR_SYSCALL_BASE + 252)
+#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 254)
+#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 255)
+#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create                 (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_settime                (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 261)
+#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 262)
+#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_settime                (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 265)
+#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 266)
+#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 267)
+#define __NR_statfs64                     (__NR_SYSCALL_BASE + 268)
+#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 269)
+#define __NR_utimes                       (__NR_SYSCALL_BASE + 271)
+#define __NR_waitid                       (__NR_SYSCALL_BASE + 284)
+#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 288)
+#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 289)
+#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 290)
+#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 291)
+#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 292)
+#define __NR_openat                       (__NR_SYSCALL_BASE + 295)
+#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 296)
+#define __NR_fchownat                     (__NR_SYSCALL_BASE + 298)
+#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 300)
+#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 301)
+#define __NR_renameat                     (__NR_SYSCALL_BASE + 302)
+#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 306)
+#define __NR_getcpu                       (__NR_SYSCALL_BASE + 318)
+#define __NR_utimensat                    (__NR_SYSCALL_BASE + 320)
+#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 328)
+#define __NR_pipe2                        (__NR_SYSCALL_BASE + 331)
+#endif
+
+#ifdef __mips__
+#define __NR_syscall                      (__NR_SYSCALL_BASE + 0)
+#define __NR_waitpid                      (__NR_SYSCALL_BASE + 7)
+#define __NR_lchown                       (__NR_SYSCALL_BASE + 16)
+#define __NR_setuid                       (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid                       (__NR_SYSCALL_BASE + 24)
+#define __NR_kill                         (__NR_SYSCALL_BASE + 37)
+#define __NR_setgid                       (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid                       (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid                      (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid                      (__NR_SYSCALL_BASE + 50)
+#define __NR_setreuid                     (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid                     (__NR_SYSCALL_BASE + 71)
+#define __NR_getrlimit                    (__NR_SYSCALL_BASE + 76)
+#define __NR_getgroups                    (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups                    (__NR_SYSCALL_BASE + 81)
+#define __NR_fchown                       (__NR_SYSCALL_BASE + 95)
+#define __NR_cacheflush                   (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync                    (__NR_SYSCALL_BASE + 152)
+#define __NR_mlock                        (__NR_SYSCALL_BASE + 154)
+#define __NR_munlock                      (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setparam               (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_getparam               (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_setscheduler           (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_getscheduler           (__NR_SYSCALL_BASE + 161)
+#define __NR_sched_yield                  (__NR_SYSCALL_BASE + 162)
+#define __NR_sched_get_priority_max       (__NR_SYSCALL_BASE + 163)
+#define __NR_sched_get_priority_min       (__NR_SYSCALL_BASE + 164)
+#define __NR_sched_rr_get_interval        (__NR_SYSCALL_BASE + 165)
+#define __NR_nanosleep                    (__NR_SYSCALL_BASE + 166)
+#define __NR_mremap                       (__NR_SYSCALL_BASE + 167)
+#define __NR_accept                       (__NR_SYSCALL_BASE + 168)
+#define __NR_bind                         (__NR_SYSCALL_BASE + 169)
+#define __NR_connect                      (__NR_SYSCALL_BASE + 170)
+#define __NR_getpeername                  (__NR_SYSCALL_BASE + 171)
+#define __NR_getsockname                  (__NR_SYSCALL_BASE + 172)
+#define __NR_getsockopt                   (__NR_SYSCALL_BASE + 173)
+#define __NR_listen                       (__NR_SYSCALL_BASE + 174)
+#define __NR_recvfrom                     (__NR_SYSCALL_BASE + 176)
+#define __NR_recvmsg                      (__NR_SYSCALL_BASE + 177)
+#define __NR_sendmsg                      (__NR_SYSCALL_BASE + 179)
+#define __NR_sendto                       (__NR_SYSCALL_BASE + 180)
+#define __NR_setsockopt                   (__NR_SYSCALL_BASE + 181)
+#define __NR_shutdown                     (__NR_SYSCALL_BASE + 182)
+#define __NR_socket                       (__NR_SYSCALL_BASE + 183)
+#define __NR_socketpair                   (__NR_SYSCALL_BASE + 184)
+#define __NR_setresuid                    (__NR_SYSCALL_BASE + 185)
+#define __NR_getresuid                    (__NR_SYSCALL_BASE + 186)
+#define __NR_poll                         (__NR_SYSCALL_BASE + 188)
+#define __NR_setresgid                    (__NR_SYSCALL_BASE + 190)
+#define __NR_getresgid                    (__NR_SYSCALL_BASE + 191)
+#define __NR_prctl                        (__NR_SYSCALL_BASE + 192)
+#define __NR_rt_sigaction                 (__NR_SYSCALL_BASE + 194)
+#define __NR_rt_sigprocmask               (__NR_SYSCALL_BASE + 195)
+#define __NR_rt_sigtimedwait              (__NR_SYSCALL_BASE + 197)
+#define __NR_pread64                      (__NR_SYSCALL_BASE + 200)
+#define __NR_pwrite64                     (__NR_SYSCALL_BASE + 201)
+#define __NR_chown                        (__NR_SYSCALL_BASE + 202)
+#define __NR_getcwd                       (__NR_SYSCALL_BASE + 203)
+#define __NR_capget                       (__NR_SYSCALL_BASE + 204)
+#define __NR_capset                       (__NR_SYSCALL_BASE + 205)
+#define __NR_sigaltstack                  (__NR_SYSCALL_BASE + 206)
+#define __NR_sendfile                     (__NR_SYSCALL_BASE + 207)
+#define __NR_mmap2                        (__NR_SYSCALL_BASE + 210)
+#define __NR_ftruncate64                  (__NR_SYSCALL_BASE + 212)
+#define __NR_stat64                       (__NR_SYSCALL_BASE + 213)
+#define __NR_lstat64                      (__NR_SYSCALL_BASE + 214)
+#define __NR_fstat64                      (__NR_SYSCALL_BASE + 215)
+#define __NR_mincore                      (__NR_SYSCALL_BASE + 217)
+#define __NR_madvise                      (__NR_SYSCALL_BASE + 218)
+#define __NR_getdents64                   (__NR_SYSCALL_BASE + 219)
+#define __NR_fcntl64                      (__NR_SYSCALL_BASE + 220)
+#define __NR_gettid                       (__NR_SYSCALL_BASE + 222)
+#define __NR_tkill                        (__NR_SYSCALL_BASE + 236)
+#define __NR_futex                        (__NR_SYSCALL_BASE + 238)
+#define __NR_sched_setaffinity            (__NR_SYSCALL_BASE + 239)
+#define __NR_sched_getaffinity            (__NR_SYSCALL_BASE + 240)
+#define __NR_exit_group                   (__NR_SYSCALL_BASE + 246)
+#define __NR_epoll_create                 (__NR_SYSCALL_BASE + 248)
+#define __NR_epoll_ctl                    (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_wait                   (__NR_SYSCALL_BASE + 250)
+#define __NR_statfs64                     (__NR_SYSCALL_BASE + 255)
+#define __NR_fstatfs64                    (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create                 (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime                (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime                (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun             (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete                 (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime                (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime                (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres                 (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep              (__NR_SYSCALL_BASE + 265)
+#define __NR_utimes                       (__NR_SYSCALL_BASE + 267)
+#define __NR_waitid                       (__NR_SYSCALL_BASE + 278)
+#define __NR_set_thread_area              (__NR_SYSCALL_BASE + 283)
+#define __NR_inotify_init                 (__NR_SYSCALL_BASE + 284)
+#define __NR_inotify_add_watch            (__NR_SYSCALL_BASE + 285)
+#define __NR_inotify_rm_watch             (__NR_SYSCALL_BASE + 286)
+#define __NR_openat                       (__NR_SYSCALL_BASE + 288)
+#define __NR_mkdirat                      (__NR_SYSCALL_BASE + 289)
+#define __NR_fchownat                     (__NR_SYSCALL_BASE + 291)
+#define __NR_fstatat64                    (__NR_SYSCALL_BASE + 293)
+#define __NR_unlinkat                     (__NR_SYSCALL_BASE + 294)
+#define __NR_renameat                     (__NR_SYSCALL_BASE + 295)
+#define __NR_fchmodat                     (__NR_SYSCALL_BASE + 299)
+#define __NR_getcpu                       (__NR_SYSCALL_BASE + 312)
+#define __NR_ioprio_set                   (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get                   (__NR_SYSCALL_BASE + 315)
+#define __NR_utimensat                    (__NR_SYSCALL_BASE + 316)
+#define __NR_eventfd2                     (__NR_SYSCALL_BASE + 325)
+#define __NR_pipe2                        (__NR_SYSCALL_BASE + 328)
+#endif
+
+#endif
+
+#endif /* _BIONIC_LINUX_SYSCALLS_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/linux-unistd.h b/ndk/platforms/android-9/arch-mips/include/sys/linux-unistd.h
new file mode 100644
index 0000000..2bb3c95
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/linux-unistd.h
@@ -0,0 +1,237 @@
+/* auto-generated by gensyscalls.py, do not touch */
+#ifndef _BIONIC_LINUX_UNISTD_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void             _exit (int);
+void             _exit_thread (int);
+pid_t            __fork (void);
+pid_t            _waitpid (pid_t, int*, int, struct rusage*);
+int              __waitid (int, pid_t, struct siginfo_t*, int,void*);
+pid_t            __sys_clone (int, void*, int*, void*, int*);
+int              execve (const char*, char* const*, char* const*);
+int              __setuid (uid_t);
+int              __setuid (uid_t);
+uid_t            getuid (void);
+uid_t            getuid (void);
+gid_t            getgid (void);
+gid_t            getgid (void);
+uid_t            geteuid (void);
+uid_t            geteuid (void);
+gid_t            getegid (void);
+gid_t            getegid (void);
+uid_t            getresuid (void);
+uid_t            getresuid (void);
+gid_t            getresgid (void);
+gid_t            getresgid (void);
+pid_t            gettid (void);
+int              getgroups (int, gid_t *);
+int              getgroups (int, gid_t *);
+pid_t            getpgid (pid_t);
+pid_t            getppid (void);
+pid_t            setsid (void);
+int              setgid (gid_t);
+int              setgid (gid_t);
+int              seteuid (uid_t);
+int              __setreuid (uid_t, uid_t);
+int              __setreuid (uid_t, uid_t);
+int              __setresuid (uid_t, uid_t, uid_t);
+int              __setresuid (uid_t, uid_t, uid_t);
+int              setresgid (gid_t, gid_t, gid_t);
+int              setresgid (gid_t, gid_t, gid_t);
+void*            __brk (void*);
+int              kill (pid_t, int);
+int              tkill (pid_t tid, int sig);
+int              __ptrace (int request, int pid, void* addr, void* data);
+int              __set_thread_area (void*  user_desc);
+int              __getpriority (int, int);
+int              setpriority (int, int, int);
+int              setrlimit (int resource, const struct rlimit *rlp);
+int              getrlimit (int resource, struct rlimit *rlp);
+int              getrlimit (int resource, struct rlimit *rlp);
+int              getrusage (int who, struct rusage*  r_usage);
+int              setgroups (int, const gid_t *);
+int              setgroups (int, const gid_t *);
+pid_t            getpgrp (void);
+int              setpgid (pid_t, pid_t);
+pid_t            vfork (void);
+int              setregid (gid_t, gid_t);
+int              setregid (gid_t, gid_t);
+int              chroot (const char *);
+int              prctl (int option, unsigned int arg2, unsigned int arg3, unsigned int arg4, unsigned int arg5);
+int              capget (cap_user_header_t header, cap_user_data_t data);
+int              capset (cap_user_header_t header, const cap_user_data_t data);
+int              sigaltstack (const stack_t*, stack_t*);
+int              acct (const char*  filepath);
+ssize_t          read (int, void*, size_t);
+ssize_t          write (int, const void*, size_t);
+ssize_t          pread64 (int, void *, size_t, off64_t);
+ssize_t          pwrite64 (int, void *, size_t, off64_t);
+int              __open (const char*, int, mode_t);
+int              __openat (int, const char*, int, mode_t);
+int              close (int);
+int              creat (const char*, mode_t);
+off_t            lseek (int, off_t, int);
+int              __llseek (int, unsigned long, unsigned long, loff_t*, int);
+pid_t            getpid (void);
+void *           mmap (void *, size_t, int, int, int, long);
+void *           __mmap2 (void*, size_t, int, int, int, long);
+int              munmap (void *, size_t);
+void *           mremap (void *, size_t, size_t, unsigned long);
+int              msync (const void *, size_t, int);
+int              mprotect (const void *, size_t, int);
+int              madvise (const void *, size_t, int);
+int              mlock (const void *addr, size_t len);
+int              munlock (const void *addr, size_t len);
+int              mincore (void*  start, size_t  length, unsigned char*  vec);
+int              __ioctl (int, int, void *);
+int              readv (int, const struct iovec *, int);
+int              writev (int, const struct iovec *, int);
+int              __fcntl (int, int, void*);
+int              flock (int, int);
+int              fchmod (int, mode_t);
+int              dup (int);
+int              pipe (int *);
+int              pipe2 (int *, int);
+int              dup2 (int, int);
+int              select (int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *);
+int              ftruncate (int, off_t);
+int              ftruncate64 (int, off64_t);
+int              getdents (unsigned int, struct dirent *, unsigned int);
+int              fsync (int);
+int              fdatasync (int);
+int              fchown (int, uid_t, gid_t);
+int              fchown (int, uid_t, gid_t);
+void             sync (void);
+int              __fcntl64 (int, int, void *);
+int              __fstatfs64 (int, size_t, struct statfs *);
+ssize_t          sendfile (int out_fd, int in_fd, off_t *offset, size_t count);
+int              fstatat (int dirfd, const char *path, struct stat *buf, int flags);
+int              mkdirat (int dirfd, const char *pathname, mode_t mode);
+int              fchownat (int dirfd, const char *path, uid_t owner, gid_t group, int flags);
+int              fchmodat (int dirfd, const char *path, mode_t mode, int flags);
+int              renameat (int olddirfd, const char *oldpath, int newdirfd, const char *newpath);
+int              link (const char*, const char*);
+int              unlink (const char*);
+int              unlinkat (int, const char *, int);
+int              chdir (const char*);
+int              mknod (const char*, mode_t, dev_t);
+int              chmod (const char*,mode_t);
+int              chown (const char *, uid_t, gid_t);
+int              chown (const char *, uid_t, gid_t);
+int              lchown (const char*, uid_t, gid_t);
+int              lchown (const char*, uid_t, gid_t);
+int              mount (const char*, const char*, const char*, unsigned long, const void*);
+int              umount (const char*);
+int              umount2 (const char*, int);
+int              fstat (int, struct stat*);
+int              stat (const char *, struct stat *);
+int              lstat (const char *, struct stat *);
+int              mkdir (const char *, mode_t);
+int              readlink (const char *, char *, size_t);
+int              rmdir (const char *);
+int              rename (const char *, const char *);
+int              __getcwd (char * buf, size_t size);
+int              access (const char *, int);
+int              symlink (const char *, const char *);
+int              fchdir (int);
+int              truncate (const char*, off_t);
+int              __statfs64 (const char *, size_t, struct statfs *);
+int              pause (void);
+int              gettimeofday (struct timeval*, struct timezone*);
+int              settimeofday (const struct timeval*, const struct timezone*);
+clock_t          times (struct tms *);
+int              nanosleep (const struct timespec *, struct timespec *);
+int              clock_gettime (clockid_t clk_id, struct timespec *tp);
+int              clock_settime (clockid_t clk_id, const struct timespec *tp);
+int              clock_getres (clockid_t clk_id, struct timespec *res);
+int              clock_nanosleep (const struct timespec *req, struct timespec *rem);
+int              getitimer (int, const struct itimerval *);
+int              setitimer (int, const struct itimerval *, struct itimerval *);
+int              __timer_create (clockid_t clockid, struct sigevent *evp, timer_t *timerid);
+int              __timer_settime (timer_t, int, const struct itimerspec*, struct itimerspec*);
+int              __timer_gettime (timer_t, struct itimerspec*);
+int              __timer_getoverrun (timer_t);
+int              __timer_delete (timer_t);
+int              utimes (const char*, const struct timeval tvp[2]);
+int              utimensat (int, const char *, const struct timespec times[2], int);
+int              sigaction (int, const struct sigaction *, struct sigaction *);
+int              sigprocmask (int, const sigset_t *, sigset_t *);
+int              __sigsuspend (int unused1, int unused2, unsigned mask);
+int              __rt_sigaction (int sig, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize);
+int              __rt_sigprocmask (int  how, const sigset_t *set, sigset_t *oset, size_t sigsetsize);
+int              __rt_sigtimedwait (const sigset_t *set, struct siginfo_t  *info, struct timespec_t  *timeout, size_t  sigset_size);
+int              sigpending (sigset_t *);
+int              socket (int, int, int);
+int              socketpair (int, int, int, int*);
+int              bind (int, struct sockaddr *, int);
+int              connect (int, struct sockaddr *, socklen_t);
+int              listen (int, int);
+int              accept (int, struct sockaddr *, socklen_t *);
+int              getsockname (int, struct sockaddr *, socklen_t *);
+int              getpeername (int, struct sockaddr *, socklen_t *);
+int              sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t);
+int              recvfrom (int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *);
+int              shutdown (int, int);
+int              setsockopt (int, int, int, const void *, socklen_t);
+int              getsockopt (int, int, int, void *, socklen_t *);
+int              sendmsg (int, const struct msghdr *, unsigned int);
+int              recvmsg (int, struct msghdr *, unsigned int);
+int              socket (int, int, int);
+int              bind (int, struct sockaddr *, int);
+int              connect (int, struct sockaddr *, socklen_t);
+int              listen (int, int);
+int              accept (int, struct sockaddr *, socklen_t *);
+int              getsockname (int, struct sockaddr *, socklen_t *);
+int              getpeername (int, struct sockaddr *, socklen_t *);
+int              socketpair (int, int, int, int*);
+int              sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t);
+int              recvfrom (int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *);
+int              shutdown (int, int);
+int              setsockopt (int, int, int, const void *, socklen_t);
+int              getsockopt (int, int, int, void *, socklen_t *);
+int              sendmsg (int, const struct msghdr *, unsigned int);
+int              recvmsg (int, struct msghdr *, unsigned int);
+int              __socketcall (int, unsigned long*);
+int              sched_setscheduler (pid_t pid, int policy, const struct sched_param *param);
+int              sched_getscheduler (pid_t pid);
+int              sched_yield (void);
+int              sched_setparam (pid_t pid, const struct sched_param *param);
+int              sched_getparam (pid_t pid, struct sched_param *param);
+int              sched_get_priority_max (int policy);
+int              sched_get_priority_min (int policy);
+int              sched_rr_get_interval (pid_t pid, struct timespec *interval);
+int              sched_setaffinity (pid_t pid, size_t setsize, const cpu_set_t* set);
+int              __sched_getaffinity (pid_t pid, size_t setsize, cpu_set_t* set);
+int              __getcpu (unsigned *cpu, unsigned *node, void *unused);
+int              ioprio_set (int which, int who, int ioprio);
+int              ioprio_get (int which, int who);
+int              uname (struct utsname *);
+pid_t            __wait4 (pid_t pid, int *status, int options, struct rusage *rusage);
+mode_t           umask (mode_t);
+int              __reboot (int, int, int, void *);
+int              __syslog (int, char *, int);
+int              init_module (void *, unsigned long, const char *);
+int              delete_module (const char*, unsigned int);
+int              klogctl (int, char *, int);
+int              sysinfo (struct sysinfo *);
+int              futex (void *, int, int, void *, void *, int);
+int              epoll_create (int size);
+int              epoll_ctl (int epfd, int op, int fd, struct epoll_event *event);
+int              epoll_wait (int epfd, struct epoll_event *events, int max, int timeout);
+int              inotify_init (void);
+int              inotify_add_watch (int, const char *, unsigned int);
+int              inotify_rm_watch (int, unsigned int);
+int              poll (struct pollfd *, unsigned int, long);
+int              eventfd (unsigned int, int);
+int              __set_tls (void*);
+int              cacheflush (long start, long end, long flags);
+int              _flush_cache (char *addr, const int nbytes, const int op);
+int              syscall (int number,...);
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _BIONIC_LINUX_UNISTD_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/socket.h b/ndk/platforms/android-9/arch-mips/include/sys/socket.h
new file mode 100644
index 0000000..348ae0a
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/socket.h
@@ -0,0 +1,97 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _SYS_SOCKET_H_
+#define _SYS_SOCKET_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <linux/socket.h>
+
+__BEGIN_DECLS
+
+#ifdef __mips__
+#define SOCK_DGRAM	1
+#define SOCK_STREAM	2
+#define SOCK_RAW	3
+#define SOCK_RDM	4
+#define SOCK_SEQPACKET	5
+#define SOCK_DCCP	6
+#define SOCK_PACKET	10
+#else
+#define SOCK_STREAM      1
+#define SOCK_DGRAM       2
+#define SOCK_RAW         3
+#define SOCK_RDM         4
+#define SOCK_SEQPACKET   5
+#define SOCK_PACKET      10
+#endif
+
+#ifdef __i386__
+# define __socketcall extern __attribute__((__cdecl__))
+#else
+# define __socketcall extern
+#endif
+
+/* BIONIC: second argument to shutdown() */
+enum {
+    SHUT_RD = 0,        /* no more receptions */
+#define SHUT_RD         SHUT_RD
+    SHUT_WR,            /* no more transmissions */
+#define SHUT_WR         SHUT_WR
+    SHUT_RDWR           /* no more receptions or transmissions */
+#define SHUT_RDWR       SHUT_RDWR
+};
+
+
+typedef int socklen_t;
+
+__socketcall int socket(int, int, int);
+__socketcall int bind(int, const struct sockaddr *, int);
+__socketcall int connect(int, const struct sockaddr *, socklen_t);
+__socketcall int listen(int, int);
+__socketcall int accept(int, struct sockaddr *, socklen_t *);
+__socketcall int getsockname(int, struct sockaddr *, socklen_t *);
+__socketcall int getpeername(int, struct sockaddr *, socklen_t *);
+__socketcall int socketpair(int, int, int, int *);
+__socketcall int shutdown(int, int);
+__socketcall int setsockopt(int, int, int, const void *, socklen_t);
+__socketcall int getsockopt(int, int, int, void *, socklen_t *);
+__socketcall int sendmsg(int, const struct msghdr *, unsigned int);
+__socketcall int recvmsg(int, struct msghdr *, unsigned int);
+
+extern  ssize_t  send(int, const void *, size_t, unsigned int);
+extern  ssize_t  recv(int, void *, size_t, unsigned int);
+
+__socketcall ssize_t sendto(int, const void *, size_t, int, const struct sockaddr *, socklen_t);
+__socketcall ssize_t recvfrom(int, void *, size_t, unsigned int, const struct sockaddr *, socklen_t *);
+
+#undef __socketcall
+
+__END_DECLS
+
+#endif /* _SYS_SOCKET_H */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/stat.h b/ndk/platforms/android-9/arch-mips/include/sys/stat.h
new file mode 100644
index 0000000..a4de33e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/stat.h
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _SYS_STAT_H_
+#define _SYS_STAT_H_
+
+#include <sys/cdefs.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <linux/stat.h>
+
+#include <endian.h>
+
+__BEGIN_DECLS
+
+/* really matches stat64 in the kernel, hence the padding
+ * Note: The kernel zero's the padded region because glibc might read them
+ * in the hope that the kernel has stretched to using larger sizes.
+ */
+#ifdef __mips__
+struct stat {
+    unsigned long	st_dev;
+    unsigned long       __pad0[3];
+
+    unsigned long long  st_ino;
+
+    unsigned int        st_mode;
+    unsigned int        st_nlink;
+
+    unsigned long       st_uid;
+    unsigned long       st_gid;
+
+    unsigned long	st_rdev;
+    unsigned long       __pad1[3];
+
+    long long           st_size;
+
+    unsigned long       st_atime;
+    unsigned long       st_atime_nsec;
+
+    unsigned long       st_mtime;
+    unsigned long       st_mtime_nsec;
+
+    unsigned long       st_ctime;
+    unsigned long       st_ctime_nsec;
+
+    unsigned long	st_blksize;
+    unsigned long	__pad2;
+
+    unsigned long long  st_blocks;
+};
+#else
+struct stat {
+    unsigned long long  st_dev;
+    unsigned char       __pad0[4];
+
+    unsigned long       __st_ino;
+    unsigned int        st_mode;
+    unsigned int        st_nlink;
+
+    unsigned long       st_uid;
+    unsigned long       st_gid;
+
+    unsigned long long  st_rdev;
+    unsigned char       __pad3[4];
+
+    long long           st_size;
+    unsigned long	st_blksize;
+    unsigned long long  st_blocks;
+
+    unsigned long       st_atime;
+    unsigned long       st_atime_nsec;
+
+    unsigned long       st_mtime;
+    unsigned long       st_mtime_nsec;
+
+    unsigned long       st_ctime;
+    unsigned long       st_ctime_nsec;
+
+    unsigned long long  st_ino;
+};
+#endif
+
+/* For compatibility with GLibc, we provide macro aliases
+ * for the non-Posix nano-seconds accessors.
+ */
+#define  st_atimensec  st_atime_nsec
+#define  st_mtimensec  st_mtime_nsec
+#define  st_ctimensec  st_ctime_nsec
+
+extern int    chmod(const char *, mode_t);
+extern int    fchmod(int, mode_t);
+extern int    mkdir(const char *, mode_t);
+
+extern int    stat(const char *, struct stat *);
+extern int    fstat(int, struct stat *);
+extern int    lstat(const char *, struct stat *);
+extern int    mknod(const char *, mode_t, dev_t);
+extern mode_t umask(mode_t);
+
+#define  stat64    stat
+#define  fstat64   fstat
+#define  lstat64   lstat
+
+static __inline__ int mkfifo(const char *__p, mode_t __m)
+{
+  return mknod(__p, (__m & ~S_IFMT) | S_IFIFO, (dev_t)0);
+}
+
+extern int  fstatat(int dirfd, const char *path, struct stat *buf, int flags);
+extern int  mkdirat(int dirfd, const char *pathname, mode_t mode);
+extern int fchownat(int dirfd, const char *path, uid_t owner, gid_t group, int flags);
+extern int fchmodat(int dirfd, const char *path, mode_t mode, int flags);
+extern int renameat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath);
+
+__END_DECLS
+
+#endif /* _SYS_STAT_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/include/sys/vfs.h b/ndk/platforms/android-9/arch-mips/include/sys/vfs.h
new file mode 100644
index 0000000..d14944d
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/include/sys/vfs.h
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#ifndef _SYS_VFS_H_
+#define _SYS_VFS_H_
+
+#include <stdint.h>
+#include <sys/cdefs.h>
+#include <sys/types.h>
+
+__BEGIN_DECLS
+
+/* note: this corresponds to the kernel's statfs64 type */
+#ifdef __mips__
+struct statfs {
+    uint32_t        f_type;
+    uint32_t        f_bsize;
+    uint32_t        f_frsize;
+    uint32_t        __pad;
+    uint64_t        f_blocks;
+    uint64_t        f_bfree;
+    uint64_t        f_files;
+    uint64_t        f_ffree;
+    uint64_t        f_bavail;
+    __kernel_fsid_t f_fsid;
+    uint32_t        f_namelen;
+    uint32_t        f_spare[6];
+};
+#else
+struct statfs {
+    uint32_t        f_type;
+    uint32_t        f_bsize;
+    uint64_t        f_blocks;
+    uint64_t        f_bfree;
+    uint64_t        f_bavail;
+    uint64_t        f_files;
+    uint64_t        f_ffree;
+    __kernel_fsid_t f_fsid;
+    uint32_t        f_namelen;
+    uint32_t        f_frsize;
+    uint32_t        f_spare[5];
+};
+#endif
+
+#define  ADFS_SUPER_MAGIC      0xadf5
+#define  AFFS_SUPER_MAGIC      0xADFF
+#define  BEFS_SUPER_MAGIC      0x42465331
+#define  BFS_MAGIC             0x1BADFACE
+#define  CIFS_MAGIC_NUMBER     0xFF534D42
+#define  CODA_SUPER_MAGIC      0x73757245
+#define  COH_SUPER_MAGIC       0x012FF7B7
+#define  CRAMFS_MAGIC          0x28cd3d45
+#define  DEVFS_SUPER_MAGIC     0x1373
+#define  EFS_SUPER_MAGIC       0x00414A53
+#define  EXT_SUPER_MAGIC       0x137D
+#define  EXT2_OLD_SUPER_MAGIC  0xEF51
+#define  EXT2_SUPER_MAGIC      0xEF53
+#define  EXT3_SUPER_MAGIC      0xEF53
+#define  HFS_SUPER_MAGIC       0x4244
+#define  HPFS_SUPER_MAGIC      0xF995E849
+#define  HUGETLBFS_MAGIC       0x958458f6
+#define  ISOFS_SUPER_MAGIC     0x9660
+#define  JFFS2_SUPER_MAGIC     0x72b6
+#define  JFS_SUPER_MAGIC       0x3153464a
+#define  MINIX_SUPER_MAGIC     0x137F /* orig. minix */
+#define  MINIX_SUPER_MAGIC2    0x138F /* 30 char minix */
+#define  MINIX2_SUPER_MAGIC    0x2468 /* minix V2 */
+#define  MINIX2_SUPER_MAGIC2   0x2478 /* minix V2, 30 char names */
+#define  MSDOS_SUPER_MAGIC     0x4d44
+#define  NCP_SUPER_MAGIC       0x564c
+#define  NFS_SUPER_MAGIC       0x6969
+#define  NTFS_SB_MAGIC         0x5346544e
+#define  OPENPROM_SUPER_MAGIC  0x9fa1
+#define  PROC_SUPER_MAGIC      0x9fa0
+#define  QNX4_SUPER_MAGIC      0x002f
+#define  REISERFS_SUPER_MAGIC  0x52654973
+#define  ROMFS_MAGIC           0x7275
+#define  SMB_SUPER_MAGIC       0x517B
+#define  SYSV2_SUPER_MAGIC     0x012FF7B6
+#define  SYSV4_SUPER_MAGIC     0x012FF7B5
+#define  TMPFS_MAGIC           0x01021994
+#define  UDF_SUPER_MAGIC       0x15013346
+#define  UFS_MAGIC             0x00011954
+#define  USBDEVICE_SUPER_MAGIC 0x9fa2
+#define  VXFS_SUPER_MAGIC      0xa501FCF5
+#define  XENIX_SUPER_MAGIC     0x012FF7B4
+#define  XFS_SUPER_MAGIC       0x58465342
+#define  _XIAFS_SUPER_MAGIC    0x012FD16D
+
+extern int statfs(const char *, struct statfs *);
+extern int fstatfs(int, struct statfs *);
+
+__END_DECLS
+
+#endif /* _SYS_VFS_H_ */
diff --git a/ndk/platforms/android-9/arch-mips/lib/libc.a b/ndk/platforms/android-9/arch-mips/lib/libc.a
new file mode 100644
index 0000000..d84d6b3
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib/libc.a
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib/libm.a b/ndk/platforms/android-9/arch-mips/lib/libm.a
new file mode 100644
index 0000000..8faed91
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib/libm.a
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/lib/libstdc++.a b/ndk/platforms/android-9/arch-mips/lib/libstdc++.a
new file mode 100644
index 0000000..9bdce4f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/lib/libstdc++.a
Binary files differ
diff --git a/ndk/platforms/android-9/arch-mips/src/__dso_handle.S b/ndk/platforms/android-9/arch-mips/src/__dso_handle.S
new file mode 100644
index 0000000..77a5d7f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/__dso_handle.S
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+# The __dso_handle global variable is used by static
+# C++ constructors and destructors in the binary.
+# See http://www.codesourcery.com/public/cxx-abi/abi.html#dso-dtor
+#
+	.data
+        .align 4
+	.hidden __dso_handle
+        .globl __dso_handle
+__dso_handle:
+        .long __dso_handle
diff --git a/ndk/platforms/android-9/arch-mips/src/atexit.S b/ndk/platforms/android-9/arch-mips/src/atexit.S
new file mode 100644
index 0000000..7f0c820
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/atexit.S
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.text
+	.globl	atexit
+	.hidden	atexit
+	.type	atexit, @function
+	.align  4
+	.ent	atexit
+atexit:
+	.set	noreorder
+	.cpload	$t9
+	.set	reorder
+	la	$t9, __cxa_atexit
+	move	$a1, $0
+	la      $a2, __dso_handle
+	j	$t9
+	.size	atexit, .-atexit
+	.end	atexit
diff --git a/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S b/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S
new file mode 100644
index 0000000..7d1fac7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/crtbegin_dynamic.S
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.text
+	.align 4
+	.type __start,@function
+	.globl __start
+	.globl _start
+
+# this is the small startup code that is first run when
+# any executable that is dynamically-linked with Bionic
+# runs.
+#
+# it's purpose is to call __libc_init with appropriate
+# arguments, which are:
+#
+#    - the address of the raw data block setup by the Linux
+#      kernel ELF loader
+#
+#    - address of an "onexit" function, not used on any
+#      platform supported by Bionic
+#
+#    - address of the "main" function of the program.
+#
+#    - address of the constructor list
+#
+
+	.ent	__start
+__start:	
+_start:
+	bal	1f
+1:
+	.set	noreorder
+	.cpload	$ra
+	.set	reorder
+
+	move	$a0, $sp
+	move	$a1, $0
+	la	$a2, main
+	la	$a3, 1f
+	subu	$sp, 32
+	la	$t9, __libc_init
+	j	$t9
+	.end	__start
+
+1:	.long	__PREINIT_ARRAY__
+	.long	__INIT_ARRAY__
+	.long	__FINI_ARRAY__
+	.long	__CTOR_LIST__
+	.long	__DTOR_LIST__
+
+	.section .preinit_array, "aw"
+	.type __PREINIT_ARRAY__, @object
+	.globl __PREINIT_ARRAY__
+__PREINIT_ARRAY__:
+	.long -1
+
+	.section .init_array, "aw"
+	.type __INIT_ARRAY__, @object
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+
+	.section .fini_array, "aw"
+	.type __FINI_ARRAY__, @object
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+	.long __do_global_dtors_aux
+
+	.section .ctors, "aw"
+	.type __CTOR_LIST__, @object
+	.globl __CTOR_LIST__
+__CTOR_LIST__:
+	.long -1
+
+	.section .dtors, "aw"
+	.type __DTOR_LIST__, @object
+	.globl __DTOR_LIST__
+__DTOR_LIST__:
+	.long -1
+
+	.abicalls
+	.section	.eh_frame,"a",@progbits
+	.align	2
+	.type	__EH_FRAME_BEGIN__, @object
+	.size	__EH_FRAME_BEGIN__, 0
+__EH_FRAME_BEGIN__:
+	.text
+	.align	2
+	.set	nomips16
+	.ent	__do_global_dtors_aux
+	.type	__do_global_dtors_aux, @function
+__do_global_dtors_aux:
+	.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
+	.mask	0x80000000,-4
+	.fmask	0x00000000,0
+	.set	noreorder
+	.cpload	$25
+	.set	nomacro
+	addiu	$sp,$sp,-32
+	sw	$31,28($sp)
+	.cprestore	16
+	lw	$2,%got(completed.1269)($28)
+	lbu	$2,%lo(completed.1269)($2)
+	bne	$2,$0,$L8
+	nop
+
+$L4:
+	lw	$2,%got(__cxa_finalize)($28)
+	beq	$2,$0,$L6
+	nop
+
+	lw	$2,%got(__dso_handle)($28)
+	lw	$4,0($2)
+	lw	$25,%call16(__cxa_finalize)($28)
+	.reloc	1f,R_MIPS_JALR,__cxa_finalize
+1:	jalr	$25
+	nop
+
+	lw	$28,16($sp)
+$L6:
+	lw	$2,%got(completed.1269)($28)
+	li	$3,1			# 0x1
+	sb	$3,%lo(completed.1269)($2)
+$L8:
+	lw	$31,28($sp)
+	addiu	$sp,$sp,32
+	j	$31
+	nop
+
+	.set	macro
+	.set	reorder
+	.end	__do_global_dtors_aux
+	.size	__do_global_dtors_aux, .-__do_global_dtors_aux
+	.local	completed.1269
+	.comm	completed.1269,1,1
+	.local	object.1265
+	.comm	object.1265,24,4
+	.weak	__cxa_finalize
+
+.include "__dso_handle.S"
+.include "atexit.S"
+	
diff --git a/ndk/platforms/android-9/arch-mips/src/crtbegin_so.S b/ndk/platforms/android-9/arch-mips/src/crtbegin_so.S
new file mode 100644
index 0000000..f4fc9b8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/crtbegin_so.S
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.section .init_array, "aw"
+	.type __INIT_ARRAY__, @object
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+
+	.section .fini_array, "aw"
+	.type __FINI_ARRAY__, @object
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+	.long __do_global_dtors_aux
+
+	.section .ctors, "aw"
+	.type __CTOR_LIST__, @object
+	.globl __CTOR_LIST__
+__CTOR_LIST__:
+	.long -1
+
+	.section .dtors, "aw"
+	.type __DTOR_LIST__, @object
+	.globl __DTOR_LIST__
+__DTOR_LIST__:
+	.long -1
+
+	.abicalls
+	.section	.eh_frame,"a",@progbits
+	.align	2
+	.type	__EH_FRAME_BEGIN__, @object
+	.size	__EH_FRAME_BEGIN__, 0
+__EH_FRAME_BEGIN__:
+	.text
+	.align	2
+	.set	nomips16
+	.ent	__do_global_dtors_aux
+	.type	__do_global_dtors_aux, @function
+__do_global_dtors_aux:
+	.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
+	.mask	0x80000000,-4
+	.fmask	0x00000000,0
+	.set	noreorder
+	.cpload	$25
+	.set	nomacro
+	addiu	$sp,$sp,-32
+	sw	$31,28($sp)
+	.cprestore	16
+	lw	$2,%got(completed.1269)($28)
+	lbu	$2,%lo(completed.1269)($2)
+	bne	$2,$0,$L8
+	nop
+
+$L4:
+	lw	$2,%got(__cxa_finalize)($28)
+	beq	$2,$0,$L6
+	nop
+
+	lw	$2,%got(__dso_handle)($28)
+	lw	$4,0($2)
+	lw	$25,%call16(__cxa_finalize)($28)
+	.reloc	1f,R_MIPS_JALR,__cxa_finalize
+1:	jalr	$25
+	nop
+
+	lw	$28,16($sp)
+$L6:
+	lw	$2,%got(completed.1269)($28)
+	li	$3,1			# 0x1
+	sb	$3,%lo(completed.1269)($2)
+$L8:
+	lw	$31,28($sp)
+	addiu	$sp,$sp,32
+	j	$31
+	nop
+
+	.set	macro
+	.set	reorder
+	.end	__do_global_dtors_aux
+	.size	__do_global_dtors_aux, .-__do_global_dtors_aux
+	.local	completed.1269
+	.comm	completed.1269,1,1
+	.local	object.1265
+	.comm	object.1265,24,4
+	.weak	__cxa_finalize
+
+.include "__dso_handle.S"
+.include "atexit.S"
diff --git a/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S b/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S
new file mode 100644
index 0000000..16534e8
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/crtbegin_static.S
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.text
+	.align 4
+	.type __start,@function
+	.globl __start
+	.globl _start
+
+# this is the small startup code that is first run when
+# any executable that is statically-linked with Bionic
+# runs.
+#
+# it's purpose is to call __libc_init with appropriate
+# arguments, which are:
+#
+#    - the address of the raw data block setup by the Linux
+#      kernel ELF loader
+#
+#    - address of an "onexit" function, not used on any
+#      platform supported by Bionic
+#
+#    - address of the "main" function of the program.
+#
+#    - address of the constructor list
+#
+
+	.ent	__start
+__start:	
+_start:
+	bal	1f
+1:
+	.set	noreorder
+	.cpload	$ra
+	.set	reorder
+
+	move	$a0, $sp
+	move	$a1, $0
+	la	$a2, main
+	la	$a3, 1f
+	subu	$sp, 32
+	la	$t9, __libc_init
+	j	$t9
+	.end	__start
+
+1:	.long	__PREINIT_ARRAY__
+	.long	__INIT_ARRAY__
+	.long	__FINI_ARRAY__
+	.long	__CTOR_LIST__
+	.long	__DTOR_LIST__
+
+	.section .preinit_array, "aw"
+	.type __PREINIT_ARRAY__, @object
+	.globl __PREINIT_ARRAY__
+__PREINIT_ARRAY__:
+	.long -1
+
+	.section .init_array, "aw"
+	.type __INIT_ARRAY__, @object
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+	.long frame_dummy
+
+	.section .fini_array, "aw"
+	.type __FINI_ARRAY__, @object
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+	.long __do_global_dtors_aux
+
+	.section .ctors, "aw"
+	.type __CTOR_LIST__, @object
+	.globl __CTOR_LIST__
+__CTOR_LIST__:
+	.long -1
+
+	.section .dtors, "aw"
+	.type __DTOR_LIST__, @object
+	.globl __DTOR_LIST__
+__DTOR_LIST__:
+	.long -1
+
+	.abicalls
+	.section	.eh_frame,"a",@progbits
+	.align	2
+	.type	__EH_FRAME_BEGIN__, @object
+	.size	__EH_FRAME_BEGIN__, 0
+__EH_FRAME_BEGIN__:
+	.text
+	.align	2
+	.set	nomips16
+	.ent	frame_dummy
+	.type	frame_dummy, @function
+frame_dummy:
+	.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
+	.mask	0x80000000,-4
+	.fmask	0x00000000,0
+	.set	noreorder
+	.cpload	$25
+	.set	nomacro
+	addiu	$sp,$sp,-32
+	sw	$31,28($sp)
+	.cprestore	16
+	lw	$2,%got(__register_frame_info)($28)
+	beq	$2,$0,$L1
+	nop
+
+	lw	$2,%got(__EH_FRAME_BEGIN__)($28)
+	addiu	$4,$2,%lo(__EH_FRAME_BEGIN__)
+	lw	$2,%got(object.1265)($28)
+	addiu	$5,$2,%lo(object.1265)
+	lw	$2,%call16(__register_frame_info)($28)
+	move	$25,$2
+	.reloc	1f,R_MIPS_JALR,__register_frame_info
+1:	jalr	$25
+	nop
+
+	lw	$28,16($sp)
+$L1:
+	lw	$31,28($sp)
+	addiu	$sp,$sp,32
+	j	$31
+	nop
+
+	.text
+	.set	macro
+	.set	reorder
+	.end	frame_dummy
+	.size	frame_dummy, .-frame_dummy
+	.align	2
+	.set	nomips16
+	.ent	__do_global_dtors_aux
+	.type	__do_global_dtors_aux, @function
+__do_global_dtors_aux:
+	.frame	$sp,32,$31		# vars= 0, regs= 1/0, args= 16, gp= 8
+	.mask	0x80000000,-4
+	.fmask	0x00000000,0
+	.set	noreorder
+	.cpload	$25
+	.set	nomacro
+	addiu	$sp,$sp,-32
+	sw	$31,28($sp)
+	.cprestore	16
+	lw	$2,%got(completed.1269)($28)
+	lbu	$2,%lo(completed.1269)($2)
+	bne	$2,$0,$L8
+	nop
+
+$L4:
+	lw	$2,%got(__cxa_finalize)($28)
+	beq	$2,$0,$L6
+	nop
+
+	lw	$2,%got(__dso_handle)($28)
+	lw	$2,0($2)
+	move	$4,$2
+	lw	$2,%call16(__cxa_finalize)($28)
+	move	$25,$2
+	.reloc	1f,R_MIPS_JALR,__cxa_finalize
+1:	jalr	$25
+	nop
+
+	lw	$28,16($sp)
+$L6:
+	lw	$2,%got(__deregister_frame_info)($28)
+	beq	$2,$0,$L7
+	nop
+
+	lw	$2,%got(__EH_FRAME_BEGIN__)($28)
+	addiu	$4,$2,%lo(__EH_FRAME_BEGIN__)
+	lw	$2,%call16(__deregister_frame_info)($28)
+	move	$25,$2
+	.reloc	1f,R_MIPS_JALR,__deregister_frame_info
+1:	jalr	$25
+	nop
+
+	lw	$28,16($sp)
+$L7:
+	lw	$2,%got(completed.1269)($28)
+	li	$3,1			# 0x1
+	sb	$3,%lo(completed.1269)($2)
+	b	$L3
+	nop
+
+$L8:
+	nop
+$L3:
+	lw	$31,28($sp)
+	addiu	$sp,$sp,32
+	j	$31
+	nop
+
+	.set	macro
+	.set	reorder
+	.end	__do_global_dtors_aux
+	.size	__do_global_dtors_aux, .-__do_global_dtors_aux
+	.local	completed.1269
+	.comm	completed.1269,1,1
+	.local	object.1265
+	.comm	object.1265,24,4
+	.weak	__deregister_frame_info
+	.weak	__cxa_finalize
+	.weak	__register_frame_info
+
+.include "__dso_handle.S"
+/* NOTE: atexit() is  not be provided by crtbegin_static.S, but by libc.a */
diff --git a/ndk/platforms/android-9/arch-mips/src/crtend_android.S b/ndk/platforms/android-9/arch-mips/src/crtend_android.S
new file mode 100644
index 0000000..8a3cc6c
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/crtend_android.S
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	
+	.section .preinit_array, "aw"
+	.long 0
+
+	.section .init_array, "aw"
+	.long 0
+
+	.section .fini_array, "aw"
+	.long 0
+
+	.section .ctors, "aw"
+	.type __CTOR_END__, @object
+__CTOR_END__:
+	.long 0
+
+	.section .dtors, "aw"
+	.type __DTOR_END__, @object
+__DTOR_END__:
+	.long 0
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__FRAME_END__, @object
+	.size	__FRAME_END__, 4
+__FRAME_END__:
+	.zero	4
diff --git a/ndk/platforms/android-9/arch-mips/src/crtend_so.S b/ndk/platforms/android-9/arch-mips/src/crtend_so.S
new file mode 100644
index 0000000..d0bb090
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/src/crtend_so.S
@@ -0,0 +1,23 @@
+	.section .init_array, "aw"
+	.long 0
+
+	.section .fini_array, "aw"
+	.long 0
+
+	.section .ctors, "aw", @progbits
+	.type __CTOR_END__, @object
+__CTOR_END__:
+	.long 0
+	
+	.section .dtors, "aw", @progbits
+	.type __DTOR_END__, @object
+__DTOR_END__:
+	.long 0
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__FRAME_END__, @object
+	.size	__FRAME_END__, 4
+__FRAME_END__:
+	.zero	4
+	
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libEGL.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libEGL.so.functions.txt
new file mode 100644
index 0000000..12d92a3
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libEGL.so.functions.txt
@@ -0,0 +1,39 @@
+eglBindAPI
+eglBindTexImage
+eglChooseConfig
+eglCopyBuffers
+eglCreateContext
+eglCreateImageKHR
+eglCreatePbufferFromClientBuffer
+eglCreatePbufferSurface
+eglCreatePixmapSurface
+eglCreateWindowSurface
+eglDestroyContext
+eglDestroyImageKHR
+eglDestroySurface
+eglGetConfigAttrib
+eglGetConfigs
+eglGetCurrentContext
+eglGetCurrentDisplay
+eglGetCurrentSurface
+eglGetDisplay
+eglGetError
+eglGetProcAddress
+eglInitialize
+eglLockSurfaceKHR
+eglMakeCurrent
+eglQueryAPI
+eglQueryContext
+eglQueryString
+eglQuerySurface
+eglReleaseTexImage
+eglReleaseThread
+eglSetSwapRectangleANDROID
+eglSurfaceAttrib
+eglSwapBuffers
+eglSwapInterval
+eglTerminate
+eglUnlockSurfaceKHR
+eglWaitClient
+eglWaitGL
+eglWaitNative
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libEGL.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libEGL.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libEGL.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libGLESv1_CM.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libGLESv1_CM.so.functions.txt
new file mode 100644
index 0000000..8dc96a4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libGLESv1_CM.so.functions.txt
@@ -0,0 +1,278 @@
+glActiveTexture
+glAlphaFunc
+glAlphaFuncx
+glAlphaFuncxOES
+glBindBuffer
+glBindFramebufferOES
+glBindRenderbufferOES
+glBindTexture
+glBindVertexArrayOES
+glBlendEquationOES
+glBlendEquationSeparateOES
+glBlendFunc
+glBlendFuncSeparateOES
+glBufferData
+glBufferSubData
+glCheckFramebufferStatusOES
+glClear
+glClearColor
+glClearColorx
+glClearColorxOES
+glClearDepthf
+glClearDepthfOES
+glClearDepthx
+glClearDepthxOES
+glClearStencil
+glClientActiveTexture
+glClipPlanef
+glClipPlanefIMG
+glClipPlanefOES
+glClipPlanex
+glClipPlanexIMG
+glClipPlanexOES
+glColor4f
+glColor4ub
+glColor4x
+glColor4xOES
+glColorMask
+glColorPointer
+glColorPointerBounds
+glCompressedTexImage2D
+glCompressedTexSubImage2D
+glCopyTexImage2D
+glCopyTexSubImage2D
+glCullFace
+glCurrentPaletteMatrixOES
+glDeleteBuffers
+glDeleteFencesNV
+glDeleteFramebuffersOES
+glDeleteRenderbuffersOES
+glDeleteTextures
+glDeleteVertexArraysOES
+glDepthFunc
+glDepthMask
+glDepthRangef
+glDepthRangefOES
+glDepthRangex
+glDepthRangexOES
+glDisable
+glDisableClientState
+glDisableDriverControlQCOM
+glDiscardFramebufferEXT
+glDrawArrays
+glDrawElements
+glDrawTexfOES
+glDrawTexfvOES
+glDrawTexiOES
+glDrawTexivOES
+glDrawTexsOES
+glDrawTexsvOES
+glDrawTexxOES
+glDrawTexxvOES
+glEGLImageTargetRenderbufferStorageOES
+glEGLImageTargetTexture2DOES
+glEnable
+glEnableClientState
+glEnableDriverControlQCOM
+glEndTilingQCOM
+glExtGetBufferPointervQCOM
+glExtGetBuffersQCOM
+glExtGetFramebuffersQCOM
+glExtGetProgramBinarySourceQCOM
+glExtGetProgramsQCOM
+glExtGetRenderbuffersQCOM
+glExtGetShadersQCOM
+glExtGetTexLevelParameterivQCOM
+glExtGetTexSubImageQCOM
+glExtGetTexturesQCOM
+glExtIsProgramBinaryQCOM
+glExtTexObjectStateOverrideiQCOM
+glFinish
+glFinishFenceNV
+glFlush
+glFogf
+glFogfv
+glFogx
+glFogxOES
+glFogxv
+glFogxvOES
+glFramebufferRenderbufferOES
+glFramebufferTexture2DMultisampleIMG
+glFramebufferTexture2DOES
+glFrontFace
+glFrustumf
+glFrustumfOES
+glFrustumx
+glFrustumxOES
+glGenBuffers
+glGenFencesNV
+glGenFramebuffersOES
+glGenRenderbuffersOES
+glGenTextures
+glGenVertexArraysOES
+glGenerateMipmapOES
+glGetBooleanv
+glGetBufferParameteriv
+glGetBufferPointervOES
+glGetClipPlanef
+glGetClipPlanefOES
+glGetClipPlanex
+glGetClipPlanexOES
+glGetDriverControlStringQCOM
+glGetDriverControlsQCOM
+glGetError
+glGetFenceivNV
+glGetFixedv
+glGetFixedvOES
+glGetFloatv
+glGetFramebufferAttachmentParameterivOES
+glGetIntegerv
+glGetLightfv
+glGetLightxv
+glGetLightxvOES
+glGetMaterialfv
+glGetMaterialxv
+glGetMaterialxvOES
+glGetPointerv
+glGetRenderbufferParameterivOES
+glGetString
+glGetTexEnvfv
+glGetTexEnviv
+glGetTexEnvxv
+glGetTexEnvxvOES
+glGetTexGenfvOES
+glGetTexGenivOES
+glGetTexGenxvOES
+glGetTexParameterfv
+glGetTexParameteriv
+glGetTexParameterxv
+glGetTexParameterxvOES
+glHint
+glIsBuffer
+glIsEnabled
+glIsFenceNV
+glIsFramebufferOES
+glIsRenderbufferOES
+glIsTexture
+glIsVertexArrayOES
+glLightModelf
+glLightModelfv
+glLightModelx
+glLightModelxOES
+glLightModelxv
+glLightModelxvOES
+glLightf
+glLightfv
+glLightx
+glLightxOES
+glLightxv
+glLightxvOES
+glLineWidth
+glLineWidthx
+glLineWidthxOES
+glLoadIdentity
+glLoadMatrixf
+glLoadMatrixx
+glLoadMatrixxOES
+glLoadPaletteFromModelViewMatrixOES
+glLogicOp
+glMapBufferOES
+glMaterialf
+glMaterialfv
+glMaterialx
+glMaterialxOES
+glMaterialxv
+glMaterialxvOES
+glMatrixIndexPointerOES
+glMatrixIndexPointerOESBounds
+glMatrixMode
+glMultMatrixf
+glMultMatrixx
+glMultMatrixxOES
+glMultiDrawArraysEXT
+glMultiDrawElementsEXT
+glMultiTexCoord4f
+glMultiTexCoord4x
+glMultiTexCoord4xOES
+glNormal3f
+glNormal3x
+glNormal3xOES
+glNormalPointer
+glNormalPointerBounds
+glOrthof
+glOrthofOES
+glOrthox
+glOrthoxOES
+glPixelStorei
+glPointParameterf
+glPointParameterfv
+glPointParameterx
+glPointParameterxOES
+glPointParameterxv
+glPointParameterxvOES
+glPointSize
+glPointSizePointerOES
+glPointSizePointerOESBounds
+glPointSizex
+glPointSizexOES
+glPolygonOffset
+glPolygonOffsetx
+glPolygonOffsetxOES
+glPopMatrix
+glPushMatrix
+glQueryMatrixxOES
+glReadPixels
+glRenderbufferStorageMultisampleIMG
+glRenderbufferStorageOES
+glRotatef
+glRotatex
+glRotatexOES
+glSampleCoverage
+glSampleCoveragex
+glSampleCoveragexOES
+glScalef
+glScalex
+glScalexOES
+glScissor
+glSetFenceNV
+glShadeModel
+glStartTilingQCOM
+glStencilFunc
+glStencilMask
+glStencilOp
+glTestFenceNV
+glTexCoordPointer
+glTexCoordPointerBounds
+glTexEnvf
+glTexEnvfv
+glTexEnvi
+glTexEnviv
+glTexEnvx
+glTexEnvxOES
+glTexEnvxv
+glTexEnvxvOES
+glTexGenfOES
+glTexGenfvOES
+glTexGeniOES
+glTexGenivOES
+glTexGenxOES
+glTexGenxvOES
+glTexImage2D
+glTexParameterf
+glTexParameterfv
+glTexParameteri
+glTexParameteriv
+glTexParameterx
+glTexParameterxOES
+glTexParameterxv
+glTexParameterxvOES
+glTexSubImage2D
+glTranslatef
+glTranslatex
+glTranslatexOES
+glUnmapBufferOES
+glVertexPointer
+glVertexPointerBounds
+glViewport
+glWeightPointerOES
+glWeightPointerOESBounds
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libGLESv1_CM.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libGLESv1_CM.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libGLESv1_CM.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libGLESv2.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libGLESv2.so.functions.txt
new file mode 100644
index 0000000..13c4644
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libGLESv2.so.functions.txt
@@ -0,0 +1,202 @@
+glActiveTexture
+glAttachShader
+glBeginPerfMonitorAMD
+glBindAttribLocation
+glBindBuffer
+glBindFramebuffer
+glBindRenderbuffer
+glBindTexture
+glBindVertexArrayOES
+glBlendColor
+glBlendEquation
+glBlendEquationSeparate
+glBlendFunc
+glBlendFuncSeparate
+glBufferData
+glBufferSubData
+glCheckFramebufferStatus
+glClear
+glClearColor
+glClearDepthf
+glClearStencil
+glColorMask
+glCompileShader
+glCompressedTexImage2D
+glCompressedTexImage3DOES
+glCompressedTexSubImage2D
+glCompressedTexSubImage3DOES
+glCopyTexImage2D
+glCopyTexSubImage2D
+glCopyTexSubImage3DOES
+glCoverageMaskNV
+glCoverageOperationNV
+glCreateProgram
+glCreateShader
+glCullFace
+glDeleteBuffers
+glDeleteFencesNV
+glDeleteFramebuffers
+glDeletePerfMonitorsAMD
+glDeleteProgram
+glDeleteRenderbuffers
+glDeleteShader
+glDeleteTextures
+glDeleteVertexArraysOES
+glDepthFunc
+glDepthMask
+glDepthRangef
+glDetachShader
+glDisable
+glDisableDriverControlQCOM
+glDisableVertexAttribArray
+glDiscardFramebufferEXT
+glDrawArrays
+glDrawElements
+glEGLImageTargetRenderbufferStorageOES
+glEGLImageTargetTexture2DOES
+glEnable
+glEnableDriverControlQCOM
+glEnableVertexAttribArray
+glEndPerfMonitorAMD
+glEndTilingQCOM
+glExtGetBufferPointervQCOM
+glExtGetBuffersQCOM
+glExtGetFramebuffersQCOM
+glExtGetProgramBinarySourceQCOM
+glExtGetProgramsQCOM
+glExtGetRenderbuffersQCOM
+glExtGetShadersQCOM
+glExtGetTexLevelParameterivQCOM
+glExtGetTexSubImageQCOM
+glExtGetTexturesQCOM
+glExtIsProgramBinaryQCOM
+glExtTexObjectStateOverrideiQCOM
+glFinish
+glFinishFenceNV
+glFlush
+glFramebufferRenderbuffer
+glFramebufferTexture2D
+glFramebufferTexture2DMultisampleIMG
+glFramebufferTexture3DOES
+glFrontFace
+glGenBuffers
+glGenFencesNV
+glGenFramebuffers
+glGenPerfMonitorsAMD
+glGenRenderbuffers
+glGenTextures
+glGenVertexArraysOES
+glGenerateMipmap
+glGetActiveAttrib
+glGetActiveUniform
+glGetAttachedShaders
+glGetAttribLocation
+glGetBooleanv
+glGetBufferParameteriv
+glGetBufferPointervOES
+glGetDriverControlStringQCOM
+glGetDriverControlsQCOM
+glGetError
+glGetFenceivNV
+glGetFloatv
+glGetFramebufferAttachmentParameteriv
+glGetIntegerv
+glGetPerfMonitorCounterDataAMD
+glGetPerfMonitorCounterInfoAMD
+glGetPerfMonitorCounterStringAMD
+glGetPerfMonitorCountersAMD
+glGetPerfMonitorGroupStringAMD
+glGetPerfMonitorGroupsAMD
+glGetProgramBinaryOES
+glGetProgramInfoLog
+glGetProgramiv
+glGetRenderbufferParameteriv
+glGetShaderInfoLog
+glGetShaderPrecisionFormat
+glGetShaderSource
+glGetShaderiv
+glGetString
+glGetTexParameterfv
+glGetTexParameteriv
+glGetUniformLocation
+glGetUniformfv
+glGetUniformiv
+glGetVertexAttribPointerv
+glGetVertexAttribfv
+glGetVertexAttribiv
+glHint
+glIsBuffer
+glIsEnabled
+glIsFenceNV
+glIsFramebuffer
+glIsProgram
+glIsRenderbuffer
+glIsShader
+glIsTexture
+glIsVertexArrayOES
+glLineWidth
+glLinkProgram
+glMapBufferOES
+glMultiDrawArraysEXT
+glMultiDrawElementsEXT
+glPixelStorei
+glPolygonOffset
+glProgramBinaryOES
+glReadPixels
+glReleaseShaderCompiler
+glRenderbufferStorage
+glRenderbufferStorageMultisampleIMG
+glSampleCoverage
+glScissor
+glSelectPerfMonitorCountersAMD
+glSetFenceNV
+glShaderBinary
+glShaderSource
+glStartTilingQCOM
+glStencilFunc
+glStencilFuncSeparate
+glStencilMask
+glStencilMaskSeparate
+glStencilOp
+glStencilOpSeparate
+glTestFenceNV
+glTexImage2D
+glTexImage3DOES
+glTexParameterf
+glTexParameterfv
+glTexParameteri
+glTexParameteriv
+glTexSubImage2D
+glTexSubImage3DOES
+glUniform1f
+glUniform1fv
+glUniform1i
+glUniform1iv
+glUniform2f
+glUniform2fv
+glUniform2i
+glUniform2iv
+glUniform3f
+glUniform3fv
+glUniform3i
+glUniform3iv
+glUniform4f
+glUniform4fv
+glUniform4i
+glUniform4iv
+glUniformMatrix2fv
+glUniformMatrix3fv
+glUniformMatrix4fv
+glUnmapBufferOES
+glUseProgram
+glValidateProgram
+glVertexAttrib1f
+glVertexAttrib1fv
+glVertexAttrib2f
+glVertexAttrib2fv
+glVertexAttrib3f
+glVertexAttrib3fv
+glVertexAttrib4f
+glVertexAttrib4fv
+glVertexAttribPointer
+glViewport
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libGLESv2.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libGLESv2.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libGLESv2.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libOpenSLES.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libOpenSLES.so.functions.txt
new file mode 100644
index 0000000..f69a3e5
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libOpenSLES.so.functions.txt
@@ -0,0 +1,3 @@
+slCreateEngine
+slQueryNumSupportedEngineInterfaces
+slQuerySupportedEngineInterfaces
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libOpenSLES.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libOpenSLES.so.variables.txt
new file mode 100644
index 0000000..0c94828
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libOpenSLES.so.variables.txt
@@ -0,0 +1,49 @@
+SL_IID_3DCOMMIT
+SL_IID_3DDOPPLER
+SL_IID_3DGROUPING
+SL_IID_3DLOCATION
+SL_IID_3DMACROSCOPIC
+SL_IID_3DSOURCE
+SL_IID_ANDROIDCONFIGURATION
+SL_IID_ANDROIDEFFECT
+SL_IID_ANDROIDEFFECTCAPABILITIES
+SL_IID_ANDROIDEFFECTSEND
+SL_IID_ANDROIDSIMPLEBUFFERQUEUE
+SL_IID_AUDIODECODERCAPABILITIES
+SL_IID_AUDIOENCODER
+SL_IID_AUDIOENCODERCAPABILITIES
+SL_IID_AUDIOIODEVICECAPABILITIES
+SL_IID_BASSBOOST
+SL_IID_BUFFERQUEUE
+SL_IID_DEVICEVOLUME
+SL_IID_DYNAMICINTERFACEMANAGEMENT
+SL_IID_DYNAMICSOURCE
+SL_IID_EFFECTSEND
+SL_IID_ENGINE
+SL_IID_ENGINECAPABILITIES
+SL_IID_ENVIRONMENTALREVERB
+SL_IID_EQUALIZER
+SL_IID_LED
+SL_IID_METADATAEXTRACTION
+SL_IID_METADATATRAVERSAL
+SL_IID_MIDIMESSAGE
+SL_IID_MIDIMUTESOLO
+SL_IID_MIDITEMPO
+SL_IID_MIDITIME
+SL_IID_MUTESOLO
+SL_IID_NULL
+SL_IID_OBJECT
+SL_IID_OUTPUTMIX
+SL_IID_PITCH
+SL_IID_PLAY
+SL_IID_PLAYBACKRATE
+SL_IID_PREFETCHSTATUS
+SL_IID_PRESETREVERB
+SL_IID_RATEPITCH
+SL_IID_RECORD
+SL_IID_SEEK
+SL_IID_THREADSYNC
+SL_IID_VIBRA
+SL_IID_VIRTUALIZER
+SL_IID_VISUALIZATION
+SL_IID_VOLUME
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libandroid.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libandroid.so.functions.txt
new file mode 100644
index 0000000..4438c5e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libandroid.so.functions.txt
@@ -0,0 +1,148 @@
+AAssetDir_close
+AAssetDir_getNextFileName
+AAssetDir_rewind
+AAssetManager_fromJava
+AAssetManager_open
+AAssetManager_openDir
+AAsset_close
+AAsset_getBuffer
+AAsset_getLength
+AAsset_getRemainingLength
+AAsset_isAllocated
+AAsset_openFileDescriptor
+AAsset_read
+AAsset_seek
+AConfiguration_copy
+AConfiguration_delete
+AConfiguration_diff
+AConfiguration_fromAssetManager
+AConfiguration_getCountry
+AConfiguration_getDensity
+AConfiguration_getKeyboard
+AConfiguration_getKeysHidden
+AConfiguration_getLanguage
+AConfiguration_getMcc
+AConfiguration_getMnc
+AConfiguration_getNavHidden
+AConfiguration_getNavigation
+AConfiguration_getOrientation
+AConfiguration_getScreenLong
+AConfiguration_getScreenSize
+AConfiguration_getSdkVersion
+AConfiguration_getTouchscreen
+AConfiguration_getUiModeNight
+AConfiguration_getUiModeType
+AConfiguration_isBetterThan
+AConfiguration_match
+AConfiguration_new
+AConfiguration_setCountry
+AConfiguration_setDensity
+AConfiguration_setKeyboard
+AConfiguration_setKeysHidden
+AConfiguration_setLanguage
+AConfiguration_setMcc
+AConfiguration_setMnc
+AConfiguration_setNavHidden
+AConfiguration_setNavigation
+AConfiguration_setOrientation
+AConfiguration_setScreenLong
+AConfiguration_setScreenSize
+AConfiguration_setSdkVersion
+AConfiguration_setTouchscreen
+AConfiguration_setUiModeNight
+AConfiguration_setUiModeType
+AInputEvent_getDeviceId
+AInputEvent_getSource
+AInputEvent_getType
+AInputQueue_attachLooper
+AInputQueue_detachLooper
+AInputQueue_finishEvent
+AInputQueue_getEvent
+AInputQueue_hasEvents
+AInputQueue_preDispatchEvent
+AKeyEvent_getAction
+AKeyEvent_getDownTime
+AKeyEvent_getEventTime
+AKeyEvent_getFlags
+AKeyEvent_getKeyCode
+AKeyEvent_getMetaState
+AKeyEvent_getRepeatCount
+AKeyEvent_getScanCode
+ALooper_acquire
+ALooper_addFd
+ALooper_forThread
+ALooper_pollAll
+ALooper_pollOnce
+ALooper_prepare
+ALooper_release
+ALooper_removeFd
+ALooper_wake
+AMotionEvent_getAction
+AMotionEvent_getDownTime
+AMotionEvent_getEdgeFlags
+AMotionEvent_getEventTime
+AMotionEvent_getFlags
+AMotionEvent_getHistoricalEventTime
+AMotionEvent_getHistoricalPressure
+AMotionEvent_getHistoricalSize
+AMotionEvent_getHistoricalX
+AMotionEvent_getHistoricalY
+AMotionEvent_getHistorySize
+AMotionEvent_getMetaState
+AMotionEvent_getOrientation
+AMotionEvent_getPointerCount
+AMotionEvent_getPointerId
+AMotionEvent_getPressure
+AMotionEvent_getRawX
+AMotionEvent_getRawY
+AMotionEvent_getSize
+AMotionEvent_getToolMajor
+AMotionEvent_getToolMinor
+AMotionEvent_getTouchMajor
+AMotionEvent_getTouchMinor
+AMotionEvent_getX
+AMotionEvent_getXOffset
+AMotionEvent_getXPrecision
+AMotionEvent_getY
+AMotionEvent_getYOffset
+AMotionEvent_getYPrecision
+ANativeActivity_finish
+ANativeActivity_hideSoftInput
+ANativeActivity_setWindowFlags
+ANativeActivity_setWindowFormat
+ANativeActivity_showSoftInput
+ANativeWindow_acquire
+ANativeWindow_fromSurface
+ANativeWindow_getFormat
+ANativeWindow_getHeight
+ANativeWindow_getWidth
+ANativeWindow_lock
+ANativeWindow_release
+ANativeWindow_setBuffersGeometry
+ANativeWindow_unlockAndPost
+AObbInfo_delete
+AObbInfo_getFlags
+AObbInfo_getPackageName
+AObbInfo_getVersion
+AObbScanner_getObbInfo
+ASensorEventQueue_disableSensor
+ASensorEventQueue_enableSensor
+ASensorEventQueue_getEvents
+ASensorEventQueue_hasEvents
+ASensorEventQueue_setEventRate
+ASensorManager_createEventQueue
+ASensorManager_destroyEventQueue
+ASensorManager_getDefaultSensor
+ASensorManager_getInstance
+ASensorManager_getSensorList
+ASensor_getMinDelay
+ASensor_getName
+ASensor_getResolution
+ASensor_getType
+ASensor_getVendor
+AStorageManager_delete
+AStorageManager_getMountedObbPath
+AStorageManager_isObbMounted
+AStorageManager_mountObb
+AStorageManager_new
+AStorageManager_unmountObb
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libandroid.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libandroid.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libandroid.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libc.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libc.so.functions.txt
new file mode 100644
index 0000000..1c72ae9
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libc.so.functions.txt
@@ -0,0 +1,950 @@
+MD5_Final
+MD5_Init
+MD5_Update
+SHA1Final
+SHA1Init
+SHA1Transform
+SHA1Update
+__arc4_getbyte
+__assert
+__assert2
+__atexit_register_cleanup
+__atomic_cmpxchg
+__atomic_dec
+__atomic_inc
+__atomic_swap
+__b64_ntop
+__b64_pton
+__brk
+__clone_thread_start
+__cxa_atexit
+__cxa_finalize
+__dn_comp
+__dn_count_labels
+__dn_skipname
+__dorand48
+__dtoa
+__errno
+__evAddTime
+__evCmpTime
+__evConsIovec
+__evConsTime
+__evNowTime
+__evSubTime
+__evTimeSpec
+__evTimeVal
+__evUTCTime
+__fcntl
+__fcntl64
+__findenv
+__fork
+__fp_nquery
+__fp_query
+__fremovelock
+__fstatfs64
+__futex_syscall3
+__futex_syscall4
+__futex_wait
+__futex_wait_ex
+__futex_wake
+__futex_wake_ex
+__get_h_errno
+__get_res_cache
+__get_sp
+__get_stack_base
+__get_thread
+__get_tls
+__getcwd
+__getpriority
+__hostalias
+__init_tls
+__ioctl
+__libc_android_log_assert
+__libc_android_log_print
+__libc_android_log_vprint
+__libc_fini
+__libc_init
+__libc_init_common
+__libc_preinit
+__llseek
+__loc_aton
+__loc_ntoa
+__memcmp16
+__mmap2
+__ns_format_ttl
+__ns_get16
+__ns_get32
+__ns_initparse
+__ns_makecanon
+__ns_msg_getflag
+__ns_name_compress
+__ns_name_ntol
+__ns_name_ntop
+__ns_name_pack
+__ns_name_pton
+__ns_name_rollback
+__ns_name_skip
+__ns_name_uncompress
+__ns_name_unpack
+__ns_parserr
+__ns_put16
+__ns_put32
+__ns_samename
+__ns_skiprr
+__ns_sprintrr
+__ns_sprintrrf
+__open
+__openat
+__p_cdname
+__p_cdnname
+__p_class
+__p_fqname
+__p_fqnname
+__p_option
+__p_query
+__p_rcode
+__p_secstodate
+__p_section
+__p_sockun
+__p_time
+__p_type
+__pread64
+__pthread_cleanup_pop
+__pthread_cleanup_push
+__pthread_clone
+__pthread_cond_timedwait
+__pthread_cond_timedwait_relative
+__ptrace
+__putlong
+__putshort
+__pwrite64
+__reboot
+__res_close
+__res_dnok
+__res_get_nibblesuffix
+__res_get_nibblesuffix2
+__res_get_state
+__res_get_static
+__res_getservers
+__res_hnok
+__res_hostalias
+__res_isourserver
+__res_mailok
+__res_nameinquery
+__res_nametoclass
+__res_nametotype
+__res_nclose
+__res_ndestroy
+__res_ninit
+__res_nmkquery
+__res_nopt
+__res_nquery
+__res_nquerydomain
+__res_nsearch
+__res_nsend
+__res_opt
+__res_ourserver_p
+__res_ownok
+__res_pquery
+__res_put_state
+__res_queriesmatch
+__res_querydomain
+__res_randomid
+__res_send
+__res_send_setqhook
+__res_send_setrhook
+__res_setservers
+__res_vinit
+__rt_sigaction
+__rt_sigprocmask
+__rt_sigtimedwait
+__sclose
+__set_errno
+__set_syscall_errno
+__set_thread_area
+__set_tls
+__setresuid
+__setreuid
+__setuid
+__sflags
+__sflush
+__sfp
+__sfvwrite
+__sigsuspend
+__sinit
+__slbexpand
+__smakebuf
+__sread
+__srefill
+__srget
+__sseek
+__stack_chk_fail
+__statfs64
+__swbuf
+__swhatbuf
+__swrite
+__swsetup
+__sym_ntop
+__sym_ntos
+__sym_ston
+__sys_clone
+__syslog
+__system_properties_init
+__system_property_find
+__system_property_find_nth
+__system_property_get
+__system_property_read
+__system_property_wait
+__thread_entry
+__timer_create
+__timer_delete
+__timer_getoverrun
+__timer_gettime
+__timer_settime
+__timer_table_start_stop
+__wait4
+__waitid
+_cleanup
+_dorand48
+_endhtent
+_exit
+_exit_thread
+_exit_with_stack_teardown
+_flush_cache
+_fwalk
+_gethtbyaddr
+_gethtbyname
+_gethtbyname2
+_gethtent
+_getlong
+_getshort
+_init_thread
+_longjmp
+_mktemp
+_sethtent
+_setjmp
+_thread_created_hook
+_waitpid
+abort
+accept
+access
+acct
+alarm
+alphasort
+arc4random
+arc4random_addrandom
+arc4random_buf
+arc4random_stir
+arc4random_uniform
+asctime
+asctime64
+asctime64_r
+asctime_r
+asprintf
+atexit
+atoi
+atol
+atoll
+basename
+basename_r
+bcopy
+bind
+bindresvport
+brk
+bsd_signal
+bsearch
+btowc
+bzero
+cacheflush
+calloc
+capget
+capset
+chdir
+chmod
+chown
+chroot
+clearenv
+clearerr
+clock
+clock_getres
+clock_gettime
+clock_nanosleep
+clock_settime
+clone
+close
+closedir
+closelog
+closelog_r
+connect
+copy_TM_to_tm
+copy_tm_to_TM
+cpuacct_add
+creat
+ctime
+ctime64
+ctime64_r
+ctime_r
+daemon
+delete_module
+difftime
+dirfd
+dirname
+dirname_r
+div
+dlcalloc
+dlfree
+dlindependent_calloc
+dlindependent_comalloc
+dlmallinfo
+dlmalloc
+dlmalloc_footprint
+dlmalloc_max_footprint
+dlmalloc_stats
+dlmalloc_trim
+dlmalloc_usable_size
+dlmalloc_walk_free_pages
+dlmalloc_walk_heap
+dlmallopt
+dlmemalign
+dlpvalloc
+dlrealloc
+dlvalloc
+dn_expand
+drand48
+dup
+dup2
+endpwent
+endservent
+endusershell
+endutent
+epoll_create
+epoll_ctl
+epoll_wait
+erand48
+err
+errx
+eventfd
+eventfd_read
+eventfd_write
+execl
+execle
+execlp
+execv
+execve
+execvp
+exit
+fchdir
+fchmod
+fchmodat
+fchown
+fchownat
+fclose
+fcntl
+fdatasync
+fdopen
+fdopendir
+fdprintf
+feof
+ferror
+fflush
+ffs
+fgetc
+fgetln
+fgetpos
+fgets
+fgetwc
+fgetws
+fileno
+flock
+flockfile
+fnmatch
+fopen
+fork
+fpathconf
+fprintf
+fpurge
+fputc
+fputs
+fputwc
+fputws
+fread
+free
+freeaddrinfo
+freedtoa
+freopen
+fscanf
+fseek
+fseeko
+fsetpos
+fstat
+fstatat
+fstatfs
+fsync
+ftell
+ftello
+ftime
+ftok
+ftruncate
+ftrylockfile
+fts_children
+fts_close
+fts_open
+fts_read
+fts_set
+funlockfile
+funopen
+futex
+fwide
+fwprintf
+fwrite
+fwscanf
+gai_strerror
+get_malloc_leak_info
+getaddrinfo
+getc
+getc_unlocked
+getchar
+getchar_unlocked
+getcwd
+getdents
+getdtablesize
+getegid
+getenv
+geteuid
+getgid
+getgrgid
+getgrnam
+getgrouplist
+getgroups
+gethostbyaddr
+gethostbyname
+gethostbyname2
+gethostbyname_r
+gethostent
+gethostname
+getitimer
+getlogin
+getmntent
+getnameinfo
+getnetbyaddr
+getnetbyname
+getopt
+getopt_long
+getopt_long_only
+getpeername
+getpgid
+getpgrp
+getpid
+getppid
+getpriority
+getprotobyname
+getprotobynumber
+getpt
+getpwnam
+getpwuid
+getresgid
+getresuid
+getrlimit
+getrusage
+gets
+getservbyname
+getservbyport
+getservent
+getservent_r
+getsockname
+getsockopt
+gettid
+gettimeofday
+getuid
+getusershell
+getutent
+getwc
+getwchar
+gmtime
+gmtime64
+gmtime64_r
+gmtime_r
+herror
+hstrerror
+if_indextoname
+if_nametoindex
+index
+inet_addr
+inet_aton
+inet_nsap_addr
+inet_nsap_ntoa
+inet_ntoa
+inet_ntop
+inet_pton
+init_module
+initgroups
+inotify_add_watch
+inotify_init
+inotify_rm_watch
+ioctl
+ioprio_get
+ioprio_set
+isalnum
+isalpha
+isascii
+isatty
+isblank
+iscntrl
+isdigit
+isgraph
+islower
+isprint
+ispunct
+issetugid
+isspace
+isupper
+iswalnum
+iswalpha
+iswcntrl
+iswctype
+iswdigit
+iswgraph
+iswlower
+iswprint
+iswpunct
+iswspace
+iswupper
+iswxdigit
+isxdigit
+jrand48
+kill
+killpg
+klogctl
+lchown
+ldexp
+ldiv
+link
+listen
+lldiv
+localtime
+localtime64
+localtime64_r
+localtime_r
+longjmp
+longjmperror
+lrand48
+lseek
+lseek64
+lstat
+madvise
+mallinfo
+malloc
+malloc_debug_init
+mbrlen
+mbrtowc
+mbsinit
+mbsrtowcs
+mbstowcs
+memalign
+memccpy
+memchr
+memcmp
+memcpy
+memmem
+memmove
+memrchr
+memset
+memswap
+mincore
+mkdir
+mkdirat
+mkdtemp
+mknod
+mkstemp
+mkstemps
+mktemp
+mktime
+mktime64
+mlock
+mmap
+mount
+mprotect
+mrand48
+mremap
+msync
+munlock
+munmap
+nanosleep
+nice
+nrand48
+nsdispatch
+open
+openat
+opendir
+openlog
+openlog_r
+pathconf
+pause
+pclose
+perror
+pipe
+pipe2
+poll
+popen
+prctl
+pread
+printf
+pselect
+pthread_attr_destroy
+pthread_attr_getdetachstate
+pthread_attr_getguardsize
+pthread_attr_getschedparam
+pthread_attr_getschedpolicy
+pthread_attr_getscope
+pthread_attr_getstack
+pthread_attr_getstackaddr
+pthread_attr_getstacksize
+pthread_attr_init
+pthread_attr_setdetachstate
+pthread_attr_setguardsize
+pthread_attr_setschedparam
+pthread_attr_setschedpolicy
+pthread_attr_setscope
+pthread_attr_setstack
+pthread_attr_setstackaddr
+pthread_attr_setstacksize
+pthread_cond_broadcast
+pthread_cond_destroy
+pthread_cond_init
+pthread_cond_signal
+pthread_cond_timedwait
+pthread_cond_timedwait_monotonic
+pthread_cond_timedwait_monotonic_np
+pthread_cond_timedwait_relative_np
+pthread_cond_timeout_np
+pthread_cond_wait
+pthread_condattr_destroy
+pthread_condattr_getpshared
+pthread_condattr_init
+pthread_condattr_setpshared
+pthread_create
+pthread_detach
+pthread_equal
+pthread_exit
+pthread_getattr_np
+pthread_getcpuclockid
+pthread_getschedparam
+pthread_getspecific
+pthread_join
+pthread_key_create
+pthread_key_delete
+pthread_kill
+pthread_mutex_destroy
+pthread_mutex_init
+pthread_mutex_lock
+pthread_mutex_lock_timeout_np
+pthread_mutex_trylock
+pthread_mutex_unlock
+pthread_mutexattr_destroy
+pthread_mutexattr_getpshared
+pthread_mutexattr_gettype
+pthread_mutexattr_init
+pthread_mutexattr_setpshared
+pthread_mutexattr_settype
+pthread_once
+pthread_rwlock_destroy
+pthread_rwlock_init
+pthread_rwlock_rdlock
+pthread_rwlock_timedrdlock
+pthread_rwlock_timedwrlock
+pthread_rwlock_tryrdlock
+pthread_rwlock_trywrlock
+pthread_rwlock_unlock
+pthread_rwlock_wrlock
+pthread_rwlockattr_destroy
+pthread_rwlockattr_getpshared
+pthread_rwlockattr_init
+pthread_rwlockattr_setpshared
+pthread_self
+pthread_setname_np
+pthread_setschedparam
+pthread_setspecific
+pthread_sigmask
+ptrace
+ptsname
+ptsname_r
+putc
+putc_unlocked
+putchar
+putchar_unlocked
+putenv
+puts
+pututline
+putw
+putwc
+putwchar
+pwrite
+qsort
+raise
+read
+readdir
+readdir_r
+readlink
+readv
+realloc
+realpath
+reboot
+recv
+recvfrom
+recvmsg
+regcomp
+regerror
+regexec
+regfree
+remove
+rename
+renameat
+res_init
+res_mkquery
+res_need_init
+res_query
+res_search
+rewind
+rewinddir
+rmdir
+sbrk
+scandir
+scanf
+sched_get_priority_max
+sched_get_priority_min
+sched_getparam
+sched_getscheduler
+sched_rr_get_interval
+sched_setparam
+sched_setscheduler
+sched_yield
+seed48
+select
+sem_close
+sem_destroy
+sem_getvalue
+sem_init
+sem_open
+sem_post
+sem_timedwait
+sem_trywait
+sem_unlink
+sem_wait
+send
+sendfile
+sendmsg
+sendto
+setbuf
+setbuffer
+setegid
+setenv
+seteuid
+setgid
+setgroups
+setitimer
+setjmp
+setlinebuf
+setlocale
+setlogmask
+setlogmask_r
+setpgid
+setpgrp
+setpriority
+setregid
+setresgid
+setresuid
+setreuid
+setrlimit
+setservent
+setsid
+setsockopt
+settimeofday
+setuid
+setusershell
+setutent
+setvbuf
+shutdown
+sigaction
+sigaltstack
+sigblock
+siginterrupt
+siglongjmp
+sigpending
+sigprocmask
+sigsetjmp
+sigsetmask
+sigsuspend
+sigwait
+sleep
+snprintf
+socket
+socketpair
+sprintf
+srand48
+sscanf
+stat
+statfs
+strcasecmp
+strcasestr
+strcat
+strchr
+strcmp
+strcoll
+strcpy
+strcspn
+strdup
+strerror
+strerror_r
+strftime
+strftime_tz
+strlcat
+strlcpy
+strlen
+strncasecmp
+strncat
+strncmp
+strncpy
+strndup
+strnlen
+strntoimax
+strntoumax
+strpbrk
+strptime
+strrchr
+strsep
+strsignal
+strspn
+strstr
+strtod
+strtoimax
+strtok
+strtok_r
+strtol
+strtoll
+strtotimeval
+strtoul
+strtoull
+strtoumax
+strxfrm
+swprintf
+swscanf
+symlink
+sync
+syscall
+sysconf
+sysinfo
+syslog
+syslog_r
+system
+sysv_signal
+tcgetpgrp
+tcsetpgrp
+tempnam
+time
+timegm64
+timelocal64
+timer_create
+timer_delete
+timer_getoverrun
+timer_gettime
+timer_settime
+times
+tkill
+tmpfile
+tmpnam
+toascii
+tolower
+toupper
+towlower
+towupper
+truncate
+ttyname
+ttyname_r
+tzset
+umask
+umount
+umount2
+uname
+ungetc
+ungetwc
+unlink
+unlinkat
+unlockpt
+unsetenv
+usleep
+utime
+utimes
+utmpname
+valid_tm_mon
+valid_tm_wday
+valloc
+vasprintf
+verr
+verrx
+vfdprintf
+vfork
+vfprintf
+vfscanf
+vfwprintf
+vprintf
+vscanf
+vsnprintf
+vsprintf
+vsscanf
+vswprintf
+vsyslog
+vsyslog_r
+vwarn
+vwarnx
+vwprintf
+wait
+wait3
+waitid
+waitpid
+warn
+warnx
+wcpcpy
+wcpncpy
+wcrtomb
+wcscasecmp
+wcscat
+wcschr
+wcscmp
+wcscoll
+wcscpy
+wcscspn
+wcsdup
+wcsftime
+wcslcat
+wcslcpy
+wcslen
+wcsncasecmp
+wcsncat
+wcsncmp
+wcsncpy
+wcsnlen
+wcspbrk
+wcsrchr
+wcsrtombs
+wcsspn
+wcsstr
+wcstod
+wcstok
+wcstol
+wcstombs
+wcstoul
+wcswcs
+wcswidth
+wcsxfrm
+wctob
+wctype
+wcwidth
+wmemchr
+wmemcmp
+wmemcpy
+wmemmove
+wmemset
+wprintf
+write
+writev
+wscanf
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libc.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libc.so.variables.txt
new file mode 100644
index 0000000..ce5ef63
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libc.so.variables.txt
@@ -0,0 +1,51 @@
+_C_ctype_
+_C_tolower_
+_C_toupper_
+__atexit
+__atexit_invalid
+__bionic_brk
+__evOptMonoTime
+__isthreaded
+__libc_malloc_default_dispatch
+__libc_malloc_dispatch
+__p_cert_syms
+__p_class_syms
+__p_default_section_syms
+__p_key_syms
+__p_rcode_syms
+__p_type_syms
+__p_update_section_syms
+__page_shift
+__page_size
+__progname
+__rand48_add
+__rand48_mult
+__rand48_seed
+__sF
+__sFext
+__sdidinit
+__sglue
+__stack_chk_guard
+__system_property_area__
+_ctype_
+_nres
+_ns_flagdata
+_rand48_add
+_rand48_mult
+_rand48_seed
+_res_opcodes
+_tolower_tab_
+_toupper_tab_
+daylight
+environ
+h_errlist
+h_nerr
+optarg
+opterr
+optind
+optopt
+optreset
+sys_siglist
+sys_signame
+timezone
+tzname
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libdl.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libdl.so.functions.txt
new file mode 100644
index 0000000..0419f74
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libdl.so.functions.txt
@@ -0,0 +1,6 @@
+dl_iterate_phdr
+dladdr
+dlclose
+dlerror
+dlopen
+dlsym
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libdl.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libdl.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libdl.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libjnigraphics.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libjnigraphics.so.functions.txt
new file mode 100644
index 0000000..61612d4
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libjnigraphics.so.functions.txt
@@ -0,0 +1,3 @@
+AndroidBitmap_getInfo
+AndroidBitmap_lockPixels
+AndroidBitmap_unlockPixels
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libjnigraphics.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libjnigraphics.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libjnigraphics.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/liblog.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/liblog.so.functions.txt
new file mode 100644
index 0000000..d7a4b72
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/liblog.so.functions.txt
@@ -0,0 +1,9 @@
+__android_log_assert
+__android_log_btwrite
+__android_log_buf_print
+__android_log_buf_write
+__android_log_bwrite
+__android_log_dev_available
+__android_log_print
+__android_log_vprint
+__android_log_write
diff --git a/ndk/platforms/android-9/arch-mips/symbols/liblog.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/liblog.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/liblog.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libm.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libm.so.functions.txt
new file mode 100644
index 0000000..7115405
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libm.so.functions.txt
@@ -0,0 +1,181 @@
+__exp__D
+__fpclassifyd
+__fpclassifyf
+__fpclassifyl
+__ieee754_rem_pio2
+__ieee754_rem_pio2f
+__isfinite
+__isfinitef
+__isfinitel
+__isinf
+__isinff
+__isinfl
+__isnanl
+__isnormal
+__isnormalf
+__isnormall
+__kernel_cos
+__kernel_cosdf
+__kernel_rem_pio2
+__kernel_sin
+__kernel_sindf
+__kernel_tan
+__kernel_tandf
+__log__D
+__signbit
+__signbitf
+__signbitl
+acos
+acosf
+acosh
+acoshf
+asin
+asinf
+asinh
+asinhf
+atan
+atan2
+atan2f
+atanf
+atanh
+atanhf
+cbrt
+cbrtf
+ceil
+ceilf
+ceill
+copysign
+copysignf
+copysignl
+cos
+cosf
+cosh
+coshf
+drem
+dremf
+erf
+erfc
+erfcf
+erff
+exp
+exp2
+exp2f
+expf
+expm1
+expm1f
+fabs
+fabsf
+fabsl
+fdim
+fdimf
+fdiml
+finite
+finitef
+floor
+floorf
+floorl
+fma
+fmaf
+fmax
+fmaxf
+fmaxl
+fmin
+fminf
+fminl
+fmod
+fmodf
+frexp
+frexpf
+gamma
+gamma_r
+gammaf
+gammaf_r
+hypot
+hypotf
+ilogb
+ilogbf
+ilogbl
+isnan
+isnanf
+j0
+j0f
+j1
+j1f
+jn
+jnf
+ldexp
+ldexpf
+ldexpl
+lgamma
+lgamma_r
+lgammaf
+lgammaf_r
+llrint
+llrintf
+llround
+llroundf
+llroundl
+log
+log10
+log10f
+log1p
+log1pf
+logb
+logbf
+logf
+lrint
+lrintf
+lround
+lroundf
+lroundl
+modf
+modff
+nearbyint
+nearbyintf
+nextafter
+nextafterf
+nexttowardf
+pow
+powf
+remainder
+remainderf
+remquo
+remquof
+rint
+rintf
+round
+roundf
+roundl
+scalb
+scalbf
+scalbln
+scalblnf
+scalblnl
+scalbn
+scalbnf
+scalbnl
+significand
+significandf
+sin
+sincos
+sincosf
+sincosl
+sinf
+sinh
+sinhf
+sqrt
+sqrtf
+tan
+tanf
+tanh
+tanhf
+tgamma
+trunc
+truncf
+truncl
+y0
+y0f
+y1
+y1f
+yn
+ynf
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libm.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libm.so.variables.txt
new file mode 100644
index 0000000..a1b63fc
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libm.so.variables.txt
@@ -0,0 +1,2 @@
+__fe_dfl_env
+signgam
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libstdc++.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libstdc++.so.functions.txt
new file mode 100644
index 0000000..3fb5bf7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libstdc++.so.functions.txt
@@ -0,0 +1,23 @@
+_ZN9type_infoC1ERKS_
+_ZN9type_infoC1Ev
+_ZN9type_infoC2ERKS_
+_ZN9type_infoC2Ev
+_ZN9type_infoD0Ev
+_ZN9type_infoD1Ev
+_ZN9type_infoD2Ev
+_ZNK9type_info4nameEv
+_ZNK9type_info6beforeERKS_
+_ZNK9type_infoeqERKS_
+_ZNK9type_infoneERKS_
+_ZdaPv
+_ZdaPvRKSt9nothrow_t
+_ZdlPv
+_ZdlPvRKSt9nothrow_t
+_Znaj
+_ZnajRKSt9nothrow_t
+_Znwj
+_ZnwjRKSt9nothrow_t
+__cxa_guard_abort
+__cxa_guard_acquire
+__cxa_guard_release
+__cxa_pure_virtual
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libstdc++.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libstdc++.so.variables.txt
new file mode 100644
index 0000000..d5aab66
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libstdc++.so.variables.txt
@@ -0,0 +1,2 @@
+_ZSt7nothrow
+_ZTV9type_info
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.functions.txt
new file mode 100644
index 0000000..e31e447
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.functions.txt
@@ -0,0 +1,12 @@
+td_symbol_list
+td_ta_clear_event
+td_ta_delete
+td_ta_event_addr
+td_ta_event_getmsg
+td_ta_map_lwp2thr
+td_ta_new
+td_ta_set_event
+td_ta_thr_iter
+td_thr_event_enable
+td_thr_get_info
+td_thr_tls_get_addr
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.variables.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libthread_db.so.variables.txt
@@ -0,0 +1 @@
+
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libz.so.functions.txt b/ndk/platforms/android-9/arch-mips/symbols/libz.so.functions.txt
new file mode 100644
index 0000000..05c7c03
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libz.so.functions.txt
@@ -0,0 +1,71 @@
+adler32
+adler32_combine
+adler32_combine64
+compress
+compress2
+compressBound
+crc32
+crc32_combine
+crc32_combine64
+deflate
+deflateBound
+deflateCopy
+deflateEnd
+deflateInit2_
+deflateInit_
+deflateParams
+deflatePrime
+deflateReset
+deflateSetDictionary
+deflateSetHeader
+deflateTune
+get_crc_table
+gzbuffer
+gzclearerr
+gzclose
+gzclose_r
+gzclose_w
+gzdirect
+gzdopen
+gzeof
+gzerror
+gzflush
+gzgetc
+gzgets
+gzoffset
+gzoffset64
+gzopen
+gzopen64
+gzprintf
+gzputc
+gzputs
+gzread
+gzrewind
+gzseek
+gzseek64
+gzsetparams
+gztell
+gztell64
+gzungetc
+gzwrite
+inflate
+inflateBack
+inflateBackEnd
+inflateBackInit_
+inflateCopy
+inflateEnd
+inflateGetHeader
+inflateInit2_
+inflateInit_
+inflateMark
+inflatePrime
+inflateReset
+inflateReset2
+inflateSetDictionary
+inflateSync
+inflateSyncPoint
+inflateUndermine
+uncompress
+zError
+zlibCompileFlags
+zlibVersion
diff --git a/ndk/platforms/android-9/arch-mips/symbols/libz.so.variables.txt b/ndk/platforms/android-9/arch-mips/symbols/libz.so.variables.txt
new file mode 100644
index 0000000..6e070cd
--- /dev/null
+++ b/ndk/platforms/android-9/arch-mips/symbols/libz.so.variables.txt
@@ -0,0 +1,3 @@
+deflate_copyright
+inflate_copyright
+z_errmsg
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/a.out.h b/ndk/platforms/android-9/arch-x86/include/asm/a.out.h
index 6aecff7..fa287b5 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/a.out.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/a.out.h
@@ -7,25 +7,33 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_A_OUT_H
 #define _ASM_X86_A_OUT_H
-
 struct exec
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int a_info;
  unsigned a_text;
  unsigned a_data;
  unsigned a_bss;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned a_syms;
  unsigned a_entry;
  unsigned a_trsize;
  unsigned a_drsize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #define N_TRSIZE(a) ((a).a_trsize)
 #define N_DRSIZE(a) ((a).a_drsize)
 #define N_SYMSIZE(a) ((a).a_syms)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/acpi.h b/ndk/platforms/android-9/arch-x86/include/asm/acpi.h
index 0115ce9..92e6b7d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/acpi.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/acpi.h
@@ -7,13 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_ACPI_H
 #define _ASM_X86_ACPI_H
-
-#include "acpi_64.h"
-
+#include "acpi_32.h"
 #include <asm/processor.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/acpi_32.h b/ndk/platforms/android-9/arch-x86/include/asm/acpi_32.h
index fe0043c..af60c63 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/acpi_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/acpi_32.h
@@ -7,9 +7,15 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_ACPI_H
 #define _ASM_ACPI_H
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/alternative.h b/ndk/platforms/android-9/arch-x86/include/asm/alternative.h
index 17c1dc5..107f551 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/alternative.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/alternative.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "alternative_64.h"
+#include "alternative_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/alternative_32.h b/ndk/platforms/android-9/arch-x86/include/asm/alternative_32.h
index ef13111..5aa2088 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/alternative_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/alternative_32.h
@@ -7,32 +7,40 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_ALTERNATIVE_H
 #define _I386_ALTERNATIVE_H
-
 #include <asm/types.h>
 #include <linux/stddef.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/types.h>
-
 struct alt_instr {
  u8 *instr;
  u8 *replacement;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u8 cpuid;
  u8 instrlen;
  u8 replacementlen;
  u8 pad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct module;
 #define alternative(oldinstr, newinstr, feature)   asm volatile ("661:\n\t" oldinstr "\n662:\n"   ".section .altinstructions,\"a\"\n"   "  .align 4\n"   "  .long 661b\n"     "  .long 663f\n"     "  .byte %c0\n"     "  .byte 662b-661b\n"     "  .byte 664f-663f\n"     ".previous\n"   ".section .altinstr_replacement,\"ax\"\n"   "663:\n\t" newinstr "\n664:\n"    ".previous" :: "i" (feature) : "memory")
 #define alternative_input(oldinstr, newinstr, feature, input...)   asm volatile ("661:\n\t" oldinstr "\n662:\n"   ".section .altinstructions,\"a\"\n"   "  .align 4\n"   "  .long 661b\n"     "  .long 663f\n"     "  .byte %c0\n"     "  .byte 662b-661b\n"     "  .byte 664f-663f\n"     ".previous\n"   ".section .altinstr_replacement,\"ax\"\n"   "663:\n\t" newinstr "\n664:\n"    ".previous" :: "i" (feature), ##input)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define alternative_io(oldinstr, newinstr, feature, output, input...)   asm volatile ("661:\n\t" oldinstr "\n662:\n"   ".section .altinstructions,\"a\"\n"   "  .align 4\n"   "  .long 661b\n"     "  .long 663f\n"     "  .byte %c[feat]\n"     "  .byte 662b-661b\n"     "  .byte 664f-663f\n"     ".previous\n"   ".section .altinstr_replacement,\"ax\"\n"   "663:\n\t" newinstr "\n664:\n"     ".previous" : output : [feat] "i" (feature), ##input)
 #define ASM_OUTPUT2(a, b) a, b
 #define LOCK_PREFIX ""
-
+struct paravirt_patch_site;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __parainstructions NULL
 #define __parainstructions_end NULL
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/apic.h b/ndk/platforms/android-9/arch-x86/include/asm/apic.h
index 5cb7181..bf6ac72 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/apic.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/apic.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "apic_64.h"
+#include "apic_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/apic_32.h b/ndk/platforms/android-9/arch-x86/include/asm/apic_32.h
index 02c9d9b..ccb390b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/apic_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/apic_32.h
@@ -7,25 +7,30 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_APIC_H
 #define __ASM_APIC_H
-
 #include <linux/pm.h>
 #include <linux/delay.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/fixmap.h>
 #include <asm/apicdef.h>
 #include <asm/processor.h>
 #include <asm/system.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define Dprintk(x...)
-
 #define APIC_QUIET 0
 #define APIC_VERBOSE 1
 #define APIC_DEBUG 2
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define apic_printk(v, s, a...) do {   if ((v) <= apic_verbosity)   printk(s, ##a);   } while (0)
-
 #define local_apic_timer_c2_ok 1
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/apicdef.h b/ndk/platforms/android-9/arch-x86/include/asm/apicdef.h
index bd19f5a..af5b074 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/apicdef.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/apicdef.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "apicdef_64.h"
+#include "apicdef_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/apicdef_32.h b/ndk/platforms/android-9/arch-x86/include/asm/apicdef_32.h
index a4a5edb..1f1bb2f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/apicdef_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/apicdef_32.h
@@ -7,366 +7,398 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_APICDEF_H
 #define __ASM_APICDEF_H
-
 #define APIC_DEFAULT_PHYS_BASE 0xfee00000
-
 #define APIC_ID 0x20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_LVR 0x30
 #define APIC_LVR_MASK 0xFF00FF
 #define GET_APIC_VERSION(x) ((x)&0xFF)
 #define GET_APIC_MAXLVT(x) (((x)>>16)&0xFF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_INTEGRATED(x) ((x)&0xF0)
 #define APIC_XAPIC(x) ((x) >= 0x14)
 #define APIC_TASKPRI 0x80
 #define APIC_TPRI_MASK 0xFF
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_ARBPRI 0x90
 #define APIC_ARBPRI_MASK 0xFF
 #define APIC_PROCPRI 0xA0
 #define APIC_EOI 0xB0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_EIO_ACK 0x0  
 #define APIC_RRR 0xC0
 #define APIC_LDR 0xD0
 #define APIC_LDR_MASK (0xFF<<24)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GET_APIC_LOGICAL_ID(x) (((x)>>24)&0xFF)
 #define SET_APIC_LOGICAL_ID(x) (((x)<<24))
 #define APIC_ALL_CPUS 0xFF
 #define APIC_DFR 0xE0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_DFR_CLUSTER 0x0FFFFFFFul
 #define APIC_DFR_FLAT 0xFFFFFFFFul
 #define APIC_SPIV 0xF0
 #define APIC_SPIV_FOCUS_DISABLED (1<<9)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_SPIV_APIC_ENABLED (1<<8)
 #define APIC_ISR 0x100
 #define APIC_ISR_NR 0x8  
 #define APIC_TMR 0x180
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_IRR 0x200
 #define APIC_ESR 0x280
 #define APIC_ESR_SEND_CS 0x00001
 #define APIC_ESR_RECV_CS 0x00002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_ESR_SEND_ACC 0x00004
 #define APIC_ESR_RECV_ACC 0x00008
 #define APIC_ESR_SENDILL 0x00020
 #define APIC_ESR_RECVILL 0x00040
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_ESR_ILLREGA 0x00080
 #define APIC_ICR 0x300
 #define APIC_DEST_SELF 0x40000
 #define APIC_DEST_ALLINC 0x80000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_DEST_ALLBUT 0xC0000
 #define APIC_ICR_RR_MASK 0x30000
 #define APIC_ICR_RR_INVALID 0x00000
 #define APIC_ICR_RR_INPROG 0x10000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_ICR_RR_VALID 0x20000
 #define APIC_INT_LEVELTRIG 0x08000
 #define APIC_INT_ASSERT 0x04000
 #define APIC_ICR_BUSY 0x01000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_DEST_LOGICAL 0x00800
 #define APIC_DM_FIXED 0x00000
 #define APIC_DM_LOWEST 0x00100
 #define APIC_DM_SMI 0x00200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_DM_REMRD 0x00300
 #define APIC_DM_NMI 0x00400
 #define APIC_DM_INIT 0x00500
 #define APIC_DM_STARTUP 0x00600
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_DM_EXTINT 0x00700
 #define APIC_VECTOR_MASK 0x000FF
 #define APIC_ICR2 0x310
 #define GET_APIC_DEST_FIELD(x) (((x)>>24)&0xFF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SET_APIC_DEST_FIELD(x) ((x)<<24)
 #define APIC_LVTT 0x320
 #define APIC_LVTTHMR 0x330
 #define APIC_LVTPC 0x340
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_LVT0 0x350
 #define APIC_LVT_TIMER_BASE_MASK (0x3<<18)
 #define GET_APIC_TIMER_BASE(x) (((x)>>18)&0x3)
 #define SET_APIC_TIMER_BASE(x) (((x)<<18))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_TIMER_BASE_CLKIN 0x0
 #define APIC_TIMER_BASE_TMBASE 0x1
 #define APIC_TIMER_BASE_DIV 0x2
 #define APIC_LVT_TIMER_PERIODIC (1<<17)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_LVT_MASKED (1<<16)
 #define APIC_LVT_LEVEL_TRIGGER (1<<15)
 #define APIC_LVT_REMOTE_IRR (1<<14)
 #define APIC_INPUT_POLARITY (1<<13)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_SEND_PENDING (1<<12)
 #define APIC_MODE_MASK 0x700
 #define GET_APIC_DELIVERY_MODE(x) (((x)>>8)&0x7)
 #define SET_APIC_DELIVERY_MODE(x,y) (((x)&~0x700)|((y)<<8))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_MODE_FIXED 0x0
 #define APIC_MODE_NMI 0x4
 #define APIC_MODE_EXTINT 0x7
 #define APIC_LVT1 0x360
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_LVTERR 0x370
 #define APIC_TMICT 0x380
 #define APIC_TMCCT 0x390
 #define APIC_TDCR 0x3E0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_TDR_DIV_TMBASE (1<<2)
 #define APIC_TDR_DIV_1 0xB
 #define APIC_TDR_DIV_2 0x0
 #define APIC_TDR_DIV_4 0x1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_TDR_DIV_8 0x2
 #define APIC_TDR_DIV_16 0x3
 #define APIC_TDR_DIV_32 0x8
 #define APIC_TDR_DIV_64 0x9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define APIC_TDR_DIV_128 0xA
-
 #define APIC_BASE (fix_to_virt(FIX_APIC_BASE))
-
 #define MAX_IO_APICS 64
-
 #define u32 unsigned int
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct local_apic {
-
   struct { u32 __reserved[4]; } __reserved_01;
-
   struct { u32 __reserved[4]; } __reserved_02;
-
   struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_1 : 24,
  phys_apic_id : 4,
  __reserved_2 : 4;
  u32 __reserved[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } id;
-
   const
  struct {
  u32 version : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __reserved_1 : 8,
  max_lvt : 8,
  __reserved_2 : 8;
  u32 __reserved[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } version;
-
   struct { u32 __reserved[4]; } __reserved_03;
-
   struct { u32 __reserved[4]; } __reserved_04;
-
   struct { u32 __reserved[4]; } __reserved_05;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct { u32 __reserved[4]; } __reserved_06;
-
   struct {
  u32 priority : 8,
  __reserved_1 : 24;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_2[3];
  } tpr;
-
   const
  struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 priority : 8,
  __reserved_1 : 24;
  u32 __reserved_2[3];
  } apr;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   const
  struct {
  u32 priority : 8,
  __reserved_1 : 24;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_2[3];
  } ppr;
-
   struct {
  u32 eoi;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved[3];
  } eoi;
-
   struct { u32 __reserved[4]; } __reserved_07;
-
   struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_1 : 24,
  logical_dest : 8;
  u32 __reserved_2[3];
  } ldr;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
  u32 __reserved_1 : 28,
  model : 4;
  u32 __reserved_2[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } dfr;
-
   struct {
  u32 spurious_vector : 8,
  apic_enabled : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  focus_cpu : 1,
  __reserved_2 : 22;
  u32 __reserved_3[3];
  } svr;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
   u32 bitfield;
  u32 __reserved[3];
  } isr [8];
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
   u32 bitfield;
  u32 __reserved[3];
  } tmr [8];
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
   u32 bitfield;
  u32 __reserved[3];
  } irr [8];
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   union {
  struct {
  u32 send_cs_error : 1,
  receive_cs_error : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  send_accept_error : 1,
  receive_accept_error : 1,
  __reserved_1 : 1,
  send_illegal_vector : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  receive_illegal_vector : 1,
  illegal_register_address : 1,
  __reserved_2 : 24;
  u32 __reserved_3[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } error_bits;
  struct {
  u32 errors;
  u32 __reserved_3[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } all_errors;
  } esr;
-
   struct { u32 __reserved[4]; } __reserved_08;
-
   struct { u32 __reserved[4]; } __reserved_09;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct { u32 __reserved[4]; } __reserved_10;
-
   struct { u32 __reserved[4]; } __reserved_11;
-
   struct { u32 __reserved[4]; } __reserved_12;
-
   struct { u32 __reserved[4]; } __reserved_13;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct { u32 __reserved[4]; } __reserved_14;
-
   struct {
  u32 vector : 8,
  delivery_mode : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  destination_mode : 1,
  delivery_status : 1,
  __reserved_1 : 1,
  level : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  trigger : 1,
  __reserved_2 : 2,
  shorthand : 2,
  __reserved_3 : 12;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_4[3];
  } icr1;
-
   struct {
  union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_1 : 24,
  phys_dest : 4,
  __reserved_2 : 4;
  u32 __reserved_3 : 24,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  logical_dest : 8;
  } dest;
  u32 __reserved_4[3];
  } icr2;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
  u32 vector : 8,
  __reserved_1 : 4,
  delivery_status : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __reserved_2 : 3,
  mask : 1,
  timer_mode : 1,
  __reserved_3 : 14;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_4[3];
  } lvt_timer;
-
   struct {
  u32 vector : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  delivery_mode : 3,
  __reserved_1 : 1,
  delivery_status : 1,
  __reserved_2 : 3,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  mask : 1,
  __reserved_3 : 15;
  u32 __reserved_4[3];
  } lvt_thermal;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
  u32 vector : 8,
  delivery_mode : 3,
  __reserved_1 : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  delivery_status : 1,
  __reserved_2 : 3,
  mask : 1,
  __reserved_3 : 15;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_4[3];
  } lvt_pc;
-
   struct {
  u32 vector : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  delivery_mode : 3,
  __reserved_1 : 1,
  delivery_status : 1,
  polarity : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  remote_irr : 1,
  trigger : 1,
  mask : 1,
  __reserved_2 : 15;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_3[3];
  } lvt_lint0;
-
   struct {
  u32 vector : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  delivery_mode : 3,
  __reserved_1 : 1,
  delivery_status : 1,
  polarity : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  remote_irr : 1,
  trigger : 1,
  mask : 1,
  __reserved_2 : 15;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_3[3];
  } lvt_lint1;
-
   struct {
  u32 vector : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __reserved_1 : 4,
  delivery_status : 1,
  __reserved_2 : 3,
  mask : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __reserved_3 : 15;
  u32 __reserved_4[3];
  } lvt_error;
-
   struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 initial_count;
  u32 __reserved_2[3];
  } timer_icr;
-
   const
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct {
  u32 curr_count;
  u32 __reserved_2[3];
  } timer_ccr;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct { u32 __reserved[4]; } __reserved_16;
-
   struct { u32 __reserved[4]; } __reserved_17;
-
   struct { u32 __reserved[4]; } __reserved_18;
-
   struct { u32 __reserved[4]; } __reserved_19;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
   struct {
  u32 divisor : 4,
  __reserved_1 : 28;
  u32 __reserved_2[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } timer_dcr;
-
   struct { u32 __reserved[4]; } __reserved_20;
-
 } __attribute__ ((packed));
-
 #undef u32
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/atomic.h b/ndk/platforms/android-9/arch-x86/include/asm/atomic.h
index 00289cf..9c65347 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/atomic.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/atomic.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "atomic_64.h"
+#include "atomic_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/atomic_32.h b/ndk/platforms/android-9/arch-x86/include/asm/atomic_32.h
index 677aac8..355b620 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/atomic_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/atomic_32.h
@@ -7,33 +7,39 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ARCH_I386_ATOMIC__
 #define __ARCH_I386_ATOMIC__
-
 #include <linux/compiler.h>
 #include <asm/processor.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/cmpxchg.h>
-
 typedef struct { int counter; } atomic_t;
-
 #define ATOMIC_INIT(i) { (i) }
-
 #define atomic_read(v) ((v)->counter)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define atomic_set(v,i) (((v)->counter) = (i))
-
 #define atomic_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new)))
 #define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
 #define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define atomic_inc_return(v) (atomic_add_return(1,v))
 #define atomic_dec_return(v) (atomic_sub_return(1,v))
 #define atomic_clear_mask(mask, addr)  __asm__ __volatile__(LOCK_PREFIX "andl %0,%1"  : : "r" (~(mask)),"m" (*addr) : "memory")
 #define atomic_set_mask(mask, addr)  __asm__ __volatile__(LOCK_PREFIX "orl %0,%1"  : : "r" (mask),"m" (*(addr)) : "memory")
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define smp_mb__before_atomic_dec() barrier()
 #define smp_mb__after_atomic_dec() barrier()
 #define smp_mb__before_atomic_inc() barrier()
 #define smp_mb__after_atomic_inc() barrier()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm-generic/atomic.h>
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/auxvec.h b/ndk/platforms/android-9/arch-x86/include/asm/auxvec.h
index f065eb1..d3cffec 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/auxvec.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/auxvec.h
@@ -7,14 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_AUXVEC_H
 #define _ASM_X86_AUXVEC_H
-
-#ifdef __i386__
 #define AT_SYSINFO 32
-#endif
 #define AT_SYSINFO_EHDR 33
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/bitops.h b/ndk/platforms/android-9/arch-x86/include/asm/bitops.h
index 3b58565..491b611 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/bitops.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/bitops.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "bitops_64.h"
+#include "bitops_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/bitops_32.h b/ndk/platforms/android-9/arch-x86/include/asm/bitops_32.h
index fa77fe2..b17b5f9 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/bitops_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/bitops_32.h
@@ -7,24 +7,29 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_BITOPS_H
 #define _I386_BITOPS_H
-
 #ifndef _LINUX_BITOPS_H
 #error only <linux/bitops.h> can be included directly
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
 #include <linux/compiler.h>
 #include <asm/alternative.h>
-
 #define ADDR (*(volatile long *) addr)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define smp_mb__before_clear_bit() barrier()
 #define smp_mb__after_clear_bit() barrier()
 #define test_bit(nr,addr)  (__builtin_constant_p(nr) ?   constant_test_bit((nr),(addr)) :   variable_test_bit((nr),(addr)))
 #undef ADDR
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm-generic/bitops/fls64.h>
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/bug.h b/ndk/platforms/android-9/arch-x86/include/asm/bug.h
index 9247022..4b3edf4 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/bug.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/bug.h
@@ -7,10 +7,17 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_BUG_H
 #define _ASM_X86_BUG_H
-
 #include <asm-generic/bug.h>
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/byteorder.h b/ndk/platforms/android-9/arch-x86/include/asm/byteorder.h
index a839798..74dc9d6 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/byteorder.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/byteorder.h
@@ -7,64 +7,52 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_BYTEORDER_H
 #define _ASM_X86_BYTEORDER_H
-
 #include <asm/types.h>
 #include <linux/compiler.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifdef __GNUC__
-
-#ifdef __i386__
-
 static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
 {
  __asm__("xchgb %b0,%h0\n\t"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  "rorl $16,%0\n\t"
  "xchgb %b0,%h0"
  :"=q" (x)
  : "0" (x));
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  return x;
 }
-
 static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 val)
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  union {
  struct { __u32 a,b; } s;
  __u64 u;
  } v;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  v.u = val;
  v.s.a = ___arch__swab32(v.s.a);
  v.s.b = ___arch__swab32(v.s.b);
  __asm__("xchgl %0,%1" : "=r" (v.s.a), "=r" (v.s.b) : "0" (v.s.a), "1" (v.s.b));
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  return v.u;
 }
-
-#else
-
-static __inline__ __attribute_const__ __u64 ___arch__swab64(__u64 x)
-{
- __asm__("bswapq %0" : "=r" (x) : "0" (x));
- return x;
-}
-
-static __inline__ __attribute_const__ __u32 ___arch__swab32(__u32 x)
-{
- __asm__("bswapl %0" : "=r" (x) : "0" (x));
- return x;
-}
-
-#endif
-
 #define __arch__swab64(x) ___arch__swab64(x)
 #define __arch__swab32(x) ___arch__swab32(x)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __BYTEORDER_HAS_U64__
-
 #endif
-
 #include <linux/byteorder/little_endian.h>
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cache.h b/ndk/platforms/android-9/arch-x86/include/asm/cache.h
index 2766a71..9c607e9 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cache.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cache.h
@@ -7,14 +7,19 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ARCH_X86_CACHE_H
 #define _ARCH_X86_CACHE_H
-
 #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
 #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __read_mostly __attribute__((__section__(".data.read_mostly")))
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cacheflush.h b/ndk/platforms/android-9/arch-x86/include/asm/cacheflush.h
index 028277b..92a6458 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cacheflush.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cacheflush.h
@@ -7,28 +7,35 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_CACHEFLUSH_H
 #define _ASM_X86_CACHEFLUSH_H
-
 #include <linux/mm.h>
-
 #define flush_cache_all() do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define flush_cache_mm(mm) do { } while (0)
 #define flush_cache_dup_mm(mm) do { } while (0)
 #define flush_cache_range(vma, start, end) do { } while (0)
 #define flush_cache_page(vma, vmaddr, pfn) do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define flush_dcache_page(page) do { } while (0)
 #define flush_dcache_mmap_lock(mapping) do { } while (0)
 #define flush_dcache_mmap_unlock(mapping) do { } while (0)
 #define flush_icache_range(start, end) do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define flush_icache_page(vma,pg) do { } while (0)
 #define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
 #define flush_cache_vmap(start, end) do { } while (0)
 #define flush_cache_vunmap(start, end) do { } while (0)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define copy_to_user_page(vma, page, vaddr, dst, src, len)   memcpy(dst, src, len)
 #define copy_from_user_page(vma, page, vaddr, dst, src, len)   memcpy(dst, src, len)
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg.h b/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg.h
index de059a2..9447850 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "cmpxchg_64.h"
+#include "cmpxchg_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg_32.h b/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg_32.h
index 3632f4c..0da9b38 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cmpxchg_32.h
@@ -7,25 +7,30 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_CMPXCHG_H
 #define __ASM_CMPXCHG_H
-
 #include <linux/bitops.h>  
-
 #define xchg(ptr,v) ((__typeof__(*(ptr)))__xchg((unsigned long)(v),(ptr),sizeof(*(ptr))))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct __xchg_dummy { unsigned long a[100]; };
 #define __xg(x) ((struct __xchg_dummy *)(x))
-
 #define ll_low(x) *(((unsigned int*)&(x))+0)
 #define ll_high(x) *(((unsigned int*)&(x))+1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define set_64bit(ptr,value)  (__builtin_constant_p(value) ?   __set_64bit_constant(ptr, value) :   __set_64bit_var(ptr, value) )
 #define _set_64bit(ptr,value)  (__builtin_constant_p(value) ?   __set_64bit(ptr, (unsigned int)(value), (unsigned int)((value)>>32ULL) ) :   __set_64bit(ptr, ll_low(value), ll_high(value)) )
-
 #define cmpxchg(ptr,o,n)  ({   __typeof__(*(ptr)) __ret;   if (likely(boot_cpu_data.x86 > 3))   __ret = __cmpxchg((ptr), (unsigned long)(o),   (unsigned long)(n), sizeof(*(ptr)));   else   __ret = cmpxchg_386((ptr), (unsigned long)(o),   (unsigned long)(n), sizeof(*(ptr)));   __ret;  })
 #define cmpxchg_local(ptr,o,n)  ({   __typeof__(*(ptr)) __ret;   if (likely(boot_cpu_data.x86 > 3))   __ret = __cmpxchg_local((ptr), (unsigned long)(o),   (unsigned long)(n), sizeof(*(ptr)));   else   __ret = cmpxchg_386((ptr), (unsigned long)(o),   (unsigned long)(n), sizeof(*(ptr)));   __ret;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cmpxchg64(ptr,o,n)  ((__typeof__(*(ptr)))__cmpxchg64((ptr),(unsigned long long)(o),  (unsigned long long)(n)))
 #define cmpxchg64_local(ptr,o,n)  ((__typeof__(*(ptr)))__cmpxchg64_local((ptr),(unsigned long long)(o),  (unsigned long long)(n)))
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cpufeature.h b/ndk/platforms/android-9/arch-x86/include/asm/cpufeature.h
index 47af457..7fcfacf 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cpufeature.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cpufeature.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "cpufeature_64.h"
+#include "cpufeature_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cpufeature_32.h b/ndk/platforms/android-9/arch-x86/include/asm/cpufeature_32.h
index a8ebc40..d3caa6f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cpufeature_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cpufeature_32.h
@@ -7,145 +7,165 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_I386_CPUFEATURE_H
 #define __ASM_I386_CPUFEATURE_H
-
 #ifndef __ASSEMBLY__
 #include <linux/bitops.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #include <asm/required-features.h>
-
 #define NCAPINTS 8  
-
 #define X86_FEATURE_FPU (0*32+ 0)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_VME (0*32+ 1)  
 #define X86_FEATURE_DE (0*32+ 2)  
 #define X86_FEATURE_PSE (0*32+ 3)  
 #define X86_FEATURE_TSC (0*32+ 4)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_MSR (0*32+ 5)  
 #define X86_FEATURE_PAE (0*32+ 6)  
 #define X86_FEATURE_MCE (0*32+ 7)  
 #define X86_FEATURE_CX8 (0*32+ 8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_APIC (0*32+ 9)  
 #define X86_FEATURE_SEP (0*32+11)  
 #define X86_FEATURE_MTRR (0*32+12)  
 #define X86_FEATURE_PGE (0*32+13)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_MCA (0*32+14)  
 #define X86_FEATURE_CMOV (0*32+15)  
 #define X86_FEATURE_PAT (0*32+16)  
 #define X86_FEATURE_PSE36 (0*32+17)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_PN (0*32+18)  
 #define X86_FEATURE_CLFLSH (0*32+19)  
 #define X86_FEATURE_DS (0*32+21)  
 #define X86_FEATURE_ACPI (0*32+22)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_MMX (0*32+23)  
 #define X86_FEATURE_FXSR (0*32+24)  
-
 #define X86_FEATURE_XMM (0*32+25)  
 #define X86_FEATURE_XMM2 (0*32+26)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_SELFSNOOP (0*32+27)  
 #define X86_FEATURE_HT (0*32+28)  
 #define X86_FEATURE_ACC (0*32+29)  
 #define X86_FEATURE_IA64 (0*32+30)  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_SYSCALL (1*32+11)  
 #define X86_FEATURE_MP (1*32+19)  
 #define X86_FEATURE_NX (1*32+20)  
 #define X86_FEATURE_MMXEXT (1*32+22)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_RDTSCP (1*32+27)  
 #define X86_FEATURE_LM (1*32+29)  
 #define X86_FEATURE_3DNOWEXT (1*32+30)  
 #define X86_FEATURE_3DNOW (1*32+31)  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_RECOVERY (2*32+ 0)  
 #define X86_FEATURE_LONGRUN (2*32+ 1)  
 #define X86_FEATURE_LRTI (2*32+ 3)  
-
 #define X86_FEATURE_CXMMX (3*32+ 0)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_K6_MTRR (3*32+ 1)  
 #define X86_FEATURE_CYRIX_ARR (3*32+ 2)  
 #define X86_FEATURE_CENTAUR_MCR (3*32+ 3)  
-
 #define X86_FEATURE_K8 (3*32+ 4)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_K7 (3*32+ 5)  
 #define X86_FEATURE_P3 (3*32+ 6)  
 #define X86_FEATURE_P4 (3*32+ 7)  
 #define X86_FEATURE_CONSTANT_TSC (3*32+ 8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_UP (3*32+ 9)  
 #define X86_FEATURE_FXSAVE_LEAK (3*32+10)  
 #define X86_FEATURE_ARCH_PERFMON (3*32+11)  
 #define X86_FEATURE_PEBS (3*32+12)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_BTS (3*32+13)  
-
 #define X86_FEATURE_SYNC_RDTSC (3*32+15)  
 #define X86_FEATURE_REP_GOOD (3*32+16)  
-
 #define X86_FEATURE_XMM3 (4*32+ 0)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_MWAIT (4*32+ 3)  
 #define X86_FEATURE_DSCPL (4*32+ 4)  
 #define X86_FEATURE_EST (4*32+ 7)  
 #define X86_FEATURE_TM2 (4*32+ 8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_CID (4*32+10)  
 #define X86_FEATURE_CX16 (4*32+13)  
 #define X86_FEATURE_XTPR (4*32+14)  
 #define X86_FEATURE_DCA (4*32+18)  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_XSTORE (5*32+ 2)  
 #define X86_FEATURE_XSTORE_EN (5*32+ 3)  
 #define X86_FEATURE_XCRYPT (5*32+ 6)  
 #define X86_FEATURE_XCRYPT_EN (5*32+ 7)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_ACE2 (5*32+ 8)  
 #define X86_FEATURE_ACE2_EN (5*32+ 9)  
 #define X86_FEATURE_PHE (5*32+ 10)  
 #define X86_FEATURE_PHE_EN (5*32+ 11)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_PMM (5*32+ 12)  
 #define X86_FEATURE_PMM_EN (5*32+ 13)  
-
 #define X86_FEATURE_LAHF_LM (6*32+ 0)  
 #define X86_FEATURE_CMP_LEGACY (6*32+ 1)  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_FEATURE_IDA (7*32+ 0)  
-
 #define cpu_has(c, bit)   (__builtin_constant_p(bit) &&   ( (((bit)>>5)==0 && (1UL<<((bit)&31) & REQUIRED_MASK0)) ||   (((bit)>>5)==1 && (1UL<<((bit)&31) & REQUIRED_MASK1)) ||   (((bit)>>5)==2 && (1UL<<((bit)&31) & REQUIRED_MASK2)) ||   (((bit)>>5)==3 && (1UL<<((bit)&31) & REQUIRED_MASK3)) ||   (((bit)>>5)==4 && (1UL<<((bit)&31) & REQUIRED_MASK4)) ||   (((bit)>>5)==5 && (1UL<<((bit)&31) & REQUIRED_MASK5)) ||   (((bit)>>5)==6 && (1UL<<((bit)&31) & REQUIRED_MASK6)) ||   (((bit)>>5)==7 && (1UL<<((bit)&31) & REQUIRED_MASK7)) )   ? 1 :   test_bit(bit, (c)->x86_capability))
 #define boot_cpu_has(bit) cpu_has(&boot_cpu_data, bit)
-
 #define cpu_has_fpu boot_cpu_has(X86_FEATURE_FPU)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_vme boot_cpu_has(X86_FEATURE_VME)
 #define cpu_has_de boot_cpu_has(X86_FEATURE_DE)
 #define cpu_has_pse boot_cpu_has(X86_FEATURE_PSE)
 #define cpu_has_tsc boot_cpu_has(X86_FEATURE_TSC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_pae boot_cpu_has(X86_FEATURE_PAE)
 #define cpu_has_pge boot_cpu_has(X86_FEATURE_PGE)
 #define cpu_has_apic boot_cpu_has(X86_FEATURE_APIC)
 #define cpu_has_sep boot_cpu_has(X86_FEATURE_SEP)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_mtrr boot_cpu_has(X86_FEATURE_MTRR)
 #define cpu_has_mmx boot_cpu_has(X86_FEATURE_MMX)
 #define cpu_has_fxsr boot_cpu_has(X86_FEATURE_FXSR)
 #define cpu_has_xmm boot_cpu_has(X86_FEATURE_XMM)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_xmm2 boot_cpu_has(X86_FEATURE_XMM2)
 #define cpu_has_xmm3 boot_cpu_has(X86_FEATURE_XMM3)
 #define cpu_has_ht boot_cpu_has(X86_FEATURE_HT)
 #define cpu_has_mp boot_cpu_has(X86_FEATURE_MP)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_nx boot_cpu_has(X86_FEATURE_NX)
 #define cpu_has_k6_mtrr boot_cpu_has(X86_FEATURE_K6_MTRR)
 #define cpu_has_cyrix_arr boot_cpu_has(X86_FEATURE_CYRIX_ARR)
 #define cpu_has_centaur_mcr boot_cpu_has(X86_FEATURE_CENTAUR_MCR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_xstore boot_cpu_has(X86_FEATURE_XSTORE)
 #define cpu_has_xstore_enabled boot_cpu_has(X86_FEATURE_XSTORE_EN)
 #define cpu_has_xcrypt boot_cpu_has(X86_FEATURE_XCRYPT)
 #define cpu_has_xcrypt_enabled boot_cpu_has(X86_FEATURE_XCRYPT_EN)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_ace2 boot_cpu_has(X86_FEATURE_ACE2)
 #define cpu_has_ace2_enabled boot_cpu_has(X86_FEATURE_ACE2_EN)
 #define cpu_has_phe boot_cpu_has(X86_FEATURE_PHE)
 #define cpu_has_phe_enabled boot_cpu_has(X86_FEATURE_PHE_EN)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_pmm boot_cpu_has(X86_FEATURE_PMM)
 #define cpu_has_pmm_enabled boot_cpu_has(X86_FEATURE_PMM_EN)
 #define cpu_has_ds boot_cpu_has(X86_FEATURE_DS)
 #define cpu_has_pebs boot_cpu_has(X86_FEATURE_PEBS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH)
 #define cpu_has_bts boot_cpu_has(X86_FEATURE_BTS)
-
 #endif
-
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/cputime.h b/ndk/platforms/android-9/arch-x86/include/asm/cputime.h
index 0e79e0b..5035a63 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/cputime.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/cputime.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/cputime.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/current.h b/ndk/platforms/android-9/arch-x86/include/asm/current.h
index b53c6fe..da85169 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/current.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/current.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "current_64.h"
+#include "current_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/current_32.h b/ndk/platforms/android-9/arch-x86/include/asm/current_32.h
index f74b371..0882f79 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/current_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/current_32.h
@@ -7,15 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_CURRENT_H
 #define _I386_CURRENT_H
-
 #include <linux/compiler.h>
 #include <asm/percpu.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct task_struct;
-
 #define current get_current()
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/delay.h b/ndk/platforms/android-9/arch-x86/include/asm/delay.h
index 7cb5f74..455455a 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/delay.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/delay.h
@@ -7,13 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_DELAY_H
 #define _ASM_X86_DELAY_H
-
 #define udelay(n) (__builtin_constant_p(n) ?   ((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c7ul)) :   __udelay(n))
-
 #define ndelay(n) (__builtin_constant_p(n) ?   ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) :   __ndelay(n))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/desc.h b/ndk/platforms/android-9/arch-x86/include/asm/desc.h
index e9d448b..b60787e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/desc.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/desc.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "desc_64.h"
+#include "desc_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/desc_32.h b/ndk/platforms/android-9/arch-x86/include/asm/desc_32.h
index f53191c..bb98242 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/desc_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/desc_32.h
@@ -7,59 +7,70 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ARCH_DESC_H
 #define __ARCH_DESC_H
-
 #include <asm/ldt.h>
 #include <asm/segment.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifndef __ASSEMBLY__
-
 #include <linux/preempt.h>
 #include <linux/smp.h>
 #include <linux/percpu.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/mmu.h>
-
 struct Xgt_desc_struct {
  unsigned short size;
  unsigned long address __attribute__((packed));
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short pad;
 } __attribute__ ((packed));
-
 struct gdt_page
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct desc_struct gdt[GDT_ENTRIES];
 } __attribute__((aligned(PAGE_SIZE)));
-
 #define DESCTYPE_LDT 0x82  
 #define DESCTYPE_TSS 0x89  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DESCTYPE_TASK 0x85  
 #define DESCTYPE_INT 0x8e  
 #define DESCTYPE_TRAP 0x8f  
 #define DESCTYPE_DPL3 0x60  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DESCTYPE_S 0x10  
 #define load_TR_desc() native_load_tr_desc()
 #define load_gdt(dtr) native_load_gdt(dtr)
 #define load_idt(dtr) native_load_idt(dtr)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define load_tr(tr) __asm__ __volatile("ltr %0"::"m" (tr))
 #define load_ldt(ldt) __asm__ __volatile("lldt %0"::"m" (ldt))
 #define store_gdt(dtr) native_store_gdt(dtr)
 #define store_idt(dtr) native_store_idt(dtr)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define store_tr(tr) (tr = native_store_tr())
 #define store_ldt(ldt) __asm__ ("sldt %0":"=m" (ldt))
 #define load_TLS(t, cpu) native_load_tls(t, cpu)
 #define set_ldt native_set_ldt
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define write_ldt_entry(dt, entry, a, b) write_dt_entry(dt, entry, a, b)
 #define write_gdt_entry(dt, entry, a, b) write_dt_entry(dt, entry, a, b)
 #define write_idt_entry(dt, entry, a, b) write_dt_entry(dt, entry, a, b)
 #define set_tss_desc(cpu,addr) __set_tss_desc(cpu, GDT_ENTRY_TSS, addr)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define LDT_entry_a(info)   ((((info)->base_addr & 0x0000ffff) << 16) | ((info)->limit & 0x0ffff))
 #define LDT_entry_b(info)   (((info)->base_addr & 0xff000000) |   (((info)->base_addr & 0x00ff0000) >> 16) |   ((info)->limit & 0xf0000) |   (((info)->read_exec_only ^ 1) << 9) |   ((info)->contents << 10) |   (((info)->seg_not_present ^ 1) << 15) |   ((info)->seg_32bit << 22) |   ((info)->limit_in_pages << 23) |   ((info)->useable << 20) |   0x7000)
 #define LDT_empty(info) (  (info)->base_addr == 0 &&   (info)->limit == 0 &&   (info)->contents == 0 &&   (info)->read_exec_only == 1 &&   (info)->seg_32bit == 0 &&   (info)->limit_in_pages == 0 &&   (info)->seg_not_present == 1 &&   (info)->useable == 0 )
 #else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GET_DESC_BASE(idx, gdt, base, lo_w, lo_b, hi_b)   movb idx*8+4(gdt), lo_b;   movb idx*8+7(gdt), hi_b;   shll $16, base;   movw idx*8+2(gdt), lo_w;
 #endif
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/desc_defs.h b/ndk/platforms/android-9/arch-x86/include/asm/desc_defs.h
index bf6de4a..32b46e1 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/desc_defs.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/desc_defs.h
@@ -7,64 +7,70 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ARCH_DESC_DEFS_H
 #define __ARCH_DESC_DEFS_H
-
 #ifndef __ASSEMBLY__
-
 #include <linux/types.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct desc_struct {
  u16 limit0;
  u16 base0;
  unsigned base1 : 8, type : 4, s : 1, dpl : 2, p : 1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned limit : 4, avl : 1, l : 1, d : 1, g : 1, base2 : 8;
 } __attribute__((packed));
-
 struct n_desc_struct {
  unsigned int a,b;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 enum {
  GATE_INTERRUPT = 0xE,
  GATE_TRAP = 0xF,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  GATE_CALL = 0xC,
 };
-
 struct gate_struct {
  u16 offset_low;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u16 segment;
  unsigned ist : 3, zero0 : 5, type : 5, dpl : 2, p : 1;
  u16 offset_middle;
  u32 offset_high;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 zero1;
 } __attribute__((packed));
-
 #define PTR_LOW(x) ((unsigned long)(x) & 0xFFFF)
 #define PTR_MIDDLE(x) (((unsigned long)(x) >> 16) & 0xFFFF)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTR_HIGH(x) ((unsigned long)(x) >> 32)
-
 enum {
  DESC_TSS = 0x9,
  DESC_LDT = 0x2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct ldttss_desc {
  u16 limit0;
  u16 base0;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned base1 : 8, type : 5, dpl : 2, p : 1;
  unsigned limit1 : 4, zero0 : 3, g : 1, base2 : 8;
  u32 base3;
  u32 zero1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } __attribute__((packed));
-
 struct desc_ptr {
  unsigned short size;
  unsigned long address;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } __attribute__((packed)) ;
-
 #endif
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/div64.h b/ndk/platforms/android-9/arch-x86/include/asm/div64.h
index 3fef43e..420d9e3 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/div64.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/div64.h
@@ -7,11 +7,19 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_DIV64_H
 #define _ASM_X86_DIV64_H
-
-#include <asm-generic/div64.h>
-
+#include <linux/types.h>
+#define do_div(n,base) ({   unsigned long __upper, __low, __high, __mod, __base;   __base = (base);   asm("":"=a" (__low), "=d" (__high):"A" (n));   __upper = __high;   if (__high) {   __upper = __high % (__base);   __high = __high / (__base);   }   asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (__base), "0" (__low), "1" (__upper));   asm("":"=A" (n):"a" (__low),"d" (__high));   __mod;  })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define div_long_long_rem(a,b,c) div_ll_X_l_rem(a,b,c)
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping.h b/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping.h
index 3da1da6..0a9d23b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "dma-mapping_64.h"
+#include "dma-mapping_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping_32.h b/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping_32.h
index 974a60b..6b41adf 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/dma-mapping_32.h
@@ -7,22 +7,27 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_I386_DMA_MAPPING_H
 #define _ASM_I386_DMA_MAPPING_H
-
 #include <linux/mm.h>
 #include <linux/scatterlist.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/cache.h>
 #include <asm/io.h>
 #include <asm/bug.h>
-
 #define dma_alloc_noncoherent(d, s, h, f) dma_alloc_coherent(d, s, h, f)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define dma_free_noncoherent(d, s, v, h) dma_free_coherent(d, s, v, h)
-
 #define dma_is_consistent(d, h) (1)
 #define ARCH_HAS_DMA_DECLARE_COHERENT_MEMORY
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/dma.h b/ndk/platforms/android-9/arch-x86/include/asm/dma.h
index ae51e02..1e96d90 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/dma.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/dma.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "dma_64.h"
+#include "dma_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/dma_32.h b/ndk/platforms/android-9/arch-x86/include/asm/dma_32.h
index 9c24f5e..8b77878 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/dma_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/dma_32.h
@@ -7,84 +7,92 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_DMA_H
 #define _ASM_DMA_H
-
 #include <linux/spinlock.h>  
 #include <asm/io.h>  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/delay.h>
-
 #ifdef HAVE_REALLY_SLOW_DMA_CONTROLLER
 #define dma_outb outb_p
 #else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define dma_outb outb
 #endif
-
 #define dma_inb inb
-
 #define MAX_DMA_CHANNELS 8
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)
-
 #define IO_DMA1_BASE 0x00  
 #define IO_DMA2_BASE 0xC0  
-
 #define DMA1_CMD_REG 0x08  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA1_STAT_REG 0x08  
 #define DMA1_REQ_REG 0x09  
 #define DMA1_MASK_REG 0x0A  
 #define DMA1_MODE_REG 0x0B  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA1_CLEAR_FF_REG 0x0C  
 #define DMA1_TEMP_REG 0x0D  
 #define DMA1_RESET_REG 0x0D  
 #define DMA1_CLR_MASK_REG 0x0E  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA1_MASK_ALL_REG 0x0F  
-
 #define DMA2_CMD_REG 0xD0  
 #define DMA2_STAT_REG 0xD0  
 #define DMA2_REQ_REG 0xD2  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA2_MASK_REG 0xD4  
 #define DMA2_MODE_REG 0xD6  
 #define DMA2_CLEAR_FF_REG 0xD8  
 #define DMA2_TEMP_REG 0xDA  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA2_RESET_REG 0xDA  
 #define DMA2_CLR_MASK_REG 0xDC  
 #define DMA2_MASK_ALL_REG 0xDE  
-
 #define DMA_ADDR_0 0x00  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_ADDR_1 0x02
 #define DMA_ADDR_2 0x04
 #define DMA_ADDR_3 0x06
 #define DMA_ADDR_4 0xC0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_ADDR_5 0xC4
 #define DMA_ADDR_6 0xC8
 #define DMA_ADDR_7 0xCC
-
 #define DMA_CNT_0 0x01  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_CNT_1 0x03
 #define DMA_CNT_2 0x05
 #define DMA_CNT_3 0x07
 #define DMA_CNT_4 0xC2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_CNT_5 0xC6
 #define DMA_CNT_6 0xCA
 #define DMA_CNT_7 0xCE
-
 #define DMA_PAGE_0 0x87  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_PAGE_1 0x83
 #define DMA_PAGE_2 0x81
 #define DMA_PAGE_3 0x82
 #define DMA_PAGE_5 0x8B
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_PAGE_6 0x89
 #define DMA_PAGE_7 0x8A
-
 #define DMA_MODE_READ 0x44  
 #define DMA_MODE_WRITE 0x48  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define DMA_MODE_CASCADE 0xC0  
-
 #define DMA_AUTOINIT 0x10
-
 #define isa_dma_bridge_buggy (0)
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/dwarf2.h b/ndk/platforms/android-9/arch-x86/include/asm/dwarf2.h
index c937591..916bcb8 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/dwarf2.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/dwarf2.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "dwarf2_64.h"
+#include "dwarf2_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/dwarf2_32.h b/ndk/platforms/android-9/arch-x86/include/asm/dwarf2_32.h
index a2dc3f1..0ec1650 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/dwarf2_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/dwarf2_32.h
@@ -7,27 +7,37 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _DWARF2_H
 #define _DWARF2_H
-
 #ifndef __ASSEMBLY__
 #warning "asm/dwarf2.h should be only included in pure assembly files"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
 #define CFI_STARTPROC ignore
 #define CFI_ENDPROC ignore
 #define CFI_DEF_CFA ignore
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CFI_DEF_CFA_REGISTER ignore
 #define CFI_DEF_CFA_OFFSET ignore
 #define CFI_ADJUST_CFA_OFFSET ignore
 #define CFI_OFFSET ignore
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CFI_REL_OFFSET ignore
 #define CFI_REGISTER ignore
 #define CFI_RESTORE ignore
 #define CFI_REMEMBER_STATE ignore
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CFI_RESTORE_STATE ignore
 #define CFI_UNDEFINED ignore
 #define CFI_SIGNAL_FRAME ignore
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/e820.h b/ndk/platforms/android-9/arch-x86/include/asm/e820.h
index 8a88ff0..08d5af9 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/e820.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/e820.h
@@ -7,30 +7,38 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_E820_H
 #define __ASM_E820_H
 #define E820MAP 0x2d0  
 #define E820MAX 128  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define E820NR 0x1e8  
-
 #define E820_RAM 1
 #define E820_RESERVED 2
 #define E820_ACPI 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define E820_NVS 4
-
 #ifndef __ASSEMBLY__
 struct e820entry {
  __u64 addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u64 size;
  __u32 type;
 } __attribute__((packed));
-
 struct e820map {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 nr_map;
  struct e820entry map[E820MAX];
 };
 #endif
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/elf.h b/ndk/platforms/android-9/arch-x86/include/asm/elf.h
index 6c6fbbf..2d1edfd 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/elf.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/elf.h
@@ -7,68 +7,44 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_ELF_H
 #define _ASM_X86_ELF_H
-
 #include <asm/ptrace.h>
 #include <asm/user.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/auxvec.h>
-
 typedef unsigned long elf_greg_t;
-
 #define ELF_NGREG (sizeof (struct user_regs_struct) / sizeof(elf_greg_t))
 typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct user_i387_struct elf_fpregset_t;
-
-#ifdef __i386__
-
 typedef struct user_fxsr_struct elf_fpxregset_t;
-
 #define R_386_NONE 0
 #define R_386_32 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define R_386_PC32 2
 #define R_386_GOT32 3
 #define R_386_PLT32 4
 #define R_386_COPY 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define R_386_GLOB_DAT 6
 #define R_386_JMP_SLOT 7
 #define R_386_RELATIVE 8
 #define R_386_GOTOFF 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define R_386_GOTPC 10
 #define R_386_NUM 11
-
 #define ELF_CLASS ELFCLASS32
 #define ELF_DATA ELFDATA2LSB
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ELF_ARCH EM_386
-
-#else
-
-#define R_X86_64_NONE 0  
-#define R_X86_64_64 1  
-#define R_X86_64_PC32 2  
-#define R_X86_64_GOT32 3  
-#define R_X86_64_PLT32 4  
-#define R_X86_64_COPY 5  
-#define R_X86_64_GLOB_DAT 6  
-#define R_X86_64_JUMP_SLOT 7  
-#define R_X86_64_RELATIVE 8  
-#define R_X86_64_GOTPCREL 9  
-#define R_X86_64_32 10  
-#define R_X86_64_32S 11  
-#define R_X86_64_16 12  
-#define R_X86_64_PC16 13  
-#define R_X86_64_8 14  
-#define R_X86_64_PC8 15  
-
-#define R_X86_64_NUM 16
-
-#define ELF_CLASS ELFCLASS64
-#define ELF_DATA ELFDATA2LSB
-#define ELF_ARCH EM_X86_64
-
-#endif
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/errno.h b/ndk/platforms/android-9/arch-x86/include/asm/errno.h
index e8f7425..392cd94 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/errno.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/errno.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/errno.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/fcntl.h b/ndk/platforms/android-9/arch-x86/include/asm/fcntl.h
index 00630ad..518d3a7 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/fcntl.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/fcntl.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/fcntl.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/fixmap.h b/ndk/platforms/android-9/arch-x86/include/asm/fixmap.h
index 19b9cc8..f8a1d18 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/fixmap.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/fixmap.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "fixmap_64.h"
+#include "fixmap_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/fixmap_32.h b/ndk/platforms/android-9/arch-x86/include/asm/fixmap_32.h
index 95de8a0..94a20a6 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/fixmap_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/fixmap_32.h
@@ -7,49 +7,53 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_FIXMAP_H
 #define _ASM_FIXMAP_H
-
 #define FIXADDR_USER_START __fix_to_virt(FIX_VDSO)
 #define FIXADDR_USER_END __fix_to_virt(FIX_VDSO - 1)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifndef __ASSEMBLY__
 #include <linux/kernel.h>
 #include <asm/acpi.h>
 #include <asm/apicdef.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/page.h>
-
 enum fixed_addresses {
  FIX_HOLE,
  FIX_VDSO,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  FIX_DBGP_BASE,
  FIX_EARLYCON_MEM_BASE,
  __end_of_permanent_fixed_addresses,
-
 #define NR_FIX_BTMAPS 16
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  FIX_BTMAP_END = __end_of_permanent_fixed_addresses,
  FIX_BTMAP_BEGIN = FIX_BTMAP_END + NR_FIX_BTMAPS - 1,
  FIX_WP_TEST,
  __end_of_fixed_addresses
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #define set_fixmap(idx, phys)   __set_fixmap(idx, phys, PAGE_KERNEL)
-
 #define set_fixmap_nocache(idx, phys)   __set_fixmap(idx, phys, PAGE_KERNEL_NOCACHE)
-
 #define clear_fixmap(idx)   __set_fixmap(idx, 0, __pgprot(0))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define FIXADDR_TOP ((unsigned long)__FIXADDR_TOP)
-
 #define __FIXADDR_SIZE (__end_of_permanent_fixed_addresses << PAGE_SHIFT)
 #define __FIXADDR_BOOT_SIZE (__end_of_fixed_addresses << PAGE_SHIFT)
 #define FIXADDR_START (FIXADDR_TOP - __FIXADDR_SIZE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define FIXADDR_BOOT_START (FIXADDR_TOP - __FIXADDR_BOOT_SIZE)
-
 #define __fix_to_virt(x) (FIXADDR_TOP - ((x) << PAGE_SHIFT))
 #define __virt_to_fix(x) ((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/genapic.h b/ndk/platforms/android-9/arch-x86/include/asm/genapic.h
index 84e687e..3dc5e45 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/genapic.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/genapic.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "genapic_64.h"
+#include "genapic_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/genapic_32.h b/ndk/platforms/android-9/arch-x86/include/asm/genapic_32.h
index 07801ea..89a68b3 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/genapic_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/genapic_32.h
@@ -7,67 +7,73 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_GENAPIC_H
 #define _ASM_GENAPIC_H 1
-
 #include <asm/mpspec.h>
-
 struct mpc_config_translation;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct mpc_config_bus;
 struct mp_config_table;
 struct mpc_config_processor;
-
 struct genapic {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char *name;
  int (*probe)(void);
-
  int (*apic_id_registered)(void);
  cpumask_t (*target_cpus)(void);
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int int_delivery_mode;
  int int_dest_mode;
  int ESR_DISABLE;
  int apic_destination_logical;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long (*check_apicid_used)(physid_mask_t bitmap, int apicid);
  unsigned long (*check_apicid_present)(int apicid);
  int no_balance_irq;
  int no_ioapic_check;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  void (*init_apic_ldr)(void);
  physid_mask_t (*ioapic_phys_id_map)(physid_mask_t map);
-
  void (*setup_apic_routing)(void);
  int (*multi_timer_check)(int apic, int irq);
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int (*apicid_to_node)(int logical_apicid);
  int (*cpu_to_logical_apicid)(int cpu);
  int (*cpu_present_to_apicid)(int mps_cpu);
  physid_mask_t (*apicid_to_cpu_present)(int phys_apicid);
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int (*mpc_apic_id)(struct mpc_config_processor *m,
  struct mpc_config_translation *t);
  void (*setup_portio_remap)(void);
  int (*check_phys_apicid_present)(int boot_cpu_physical_apicid);
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  void (*enable_apic_mode)(void);
  u32 (*phys_pkg_id)(u32 cpuid_apic, int index_msb);
-
  void (*mpc_oem_bus_info)(struct mpc_config_bus *, char *,
  struct mpc_config_translation *);
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  void (*mpc_oem_pci_bus)(struct mpc_config_bus *,
  struct mpc_config_translation *);
-
  int (*mps_oem_check)(struct mp_config_table *mpc, char *oem,
  char *productid);
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int (*acpi_madt_oem_check)(char *oem_id, char *oem_table_id);
-
  unsigned (*get_apic_id)(unsigned long x);
  unsigned long apic_id_mask;
  unsigned int (*cpu_mask_to_apicid)(cpumask_t cpumask);
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #define APICFUNC(x) .x = x,
-
 #define IPIFUNC(x)
-
 #define APIC_INIT(aname, aprobe) {   .name = aname,   .probe = aprobe,   .int_delivery_mode = INT_DELIVERY_MODE,   .int_dest_mode = INT_DEST_MODE,   .no_balance_irq = NO_BALANCE_IRQ,   .ESR_DISABLE = esr_disable,   .apic_destination_logical = APIC_DEST_LOGICAL,   APICFUNC(apic_id_registered)   APICFUNC(target_cpus)   APICFUNC(check_apicid_used)   APICFUNC(check_apicid_present)   APICFUNC(init_apic_ldr)   APICFUNC(ioapic_phys_id_map)   APICFUNC(setup_apic_routing)   APICFUNC(multi_timer_check)   APICFUNC(apicid_to_node)   APICFUNC(cpu_to_logical_apicid)   APICFUNC(cpu_present_to_apicid)   APICFUNC(apicid_to_cpu_present)   APICFUNC(mpc_apic_id)   APICFUNC(setup_portio_remap)   APICFUNC(check_phys_apicid_present)   APICFUNC(mpc_oem_bus_info)   APICFUNC(mpc_oem_pci_bus)   APICFUNC(mps_oem_check)   APICFUNC(get_apic_id)   .apic_id_mask = APIC_ID_MASK,   APICFUNC(cpu_mask_to_apicid)   APICFUNC(acpi_madt_oem_check)   IPIFUNC(send_IPI_mask)   IPIFUNC(send_IPI_allbutself)   IPIFUNC(send_IPI_all)   APICFUNC(enable_apic_mode)   APICFUNC(phys_pkg_id)   }
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/hardirq.h b/ndk/platforms/android-9/arch-x86/include/asm/hardirq.h
index ee224f1..4e3b8c1 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/hardirq.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/hardirq.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "hardirq_64.h"
+#include "hardirq_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/hardirq_32.h b/ndk/platforms/android-9/arch-x86/include/asm/hardirq_32.h
index b682f66..c1ee64f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/hardirq_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/hardirq_32.h
@@ -7,30 +7,37 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_HARDIRQ_H
 #define __ASM_HARDIRQ_H
-
 #include <linux/threads.h>
 #include <linux/irq.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct {
  unsigned int __softirq_pending;
  unsigned long idle_timestamp;
  unsigned int __nmi_count;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int apic_timer_irqs;
  unsigned int irq0_irqs;
  unsigned int irq_resched_count;
  unsigned int irq_call_count;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int irq_tlb_count;
  unsigned int irq_thermal_count;
  unsigned int irq_spurious_count;
 } ____cacheline_aligned irq_cpustat_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __ARCH_IRQ_STAT
 #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member)
-
 #include <linux/irq_cpustat.h>
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/highmem.h b/ndk/platforms/android-9/arch-x86/include/asm/highmem.h
index f738851..c669819 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/highmem.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/highmem.h
@@ -7,9 +7,15 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_HIGHMEM_H
 #define _ASM_HIGHMEM_H
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/hw_irq.h b/ndk/platforms/android-9/arch-x86/include/asm/hw_irq.h
index ed937c7..d69d8e9 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/hw_irq.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/hw_irq.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "hw_irq_64.h"
+#include "hw_irq_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/hw_irq_32.h b/ndk/platforms/android-9/arch-x86/include/asm/hw_irq_32.h
index 6f584fc..44fcd47 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/hw_irq_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/hw_irq_32.h
@@ -7,18 +7,23 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_HW_IRQ_H
 #define _ASM_HW_IRQ_H
-
 #include <linux/profile.h>
 #include <asm/atomic.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/irq.h>
 #include <asm/sections.h>
-
 #define NMI_VECTOR 0x02
-
 #define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/i387.h b/ndk/platforms/android-9/arch-x86/include/asm/i387.h
index 2692557..9333051 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/i387.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/i387.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "i387_64.h"
+#include "i387_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/i387_32.h b/ndk/platforms/android-9/arch-x86/include/asm/i387_32.h
index 8563fb9..4543da5 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/i387_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/i387_32.h
@@ -7,27 +7,32 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_I386_I387_H
 #define __ASM_I386_I387_H
-
 #include <linux/sched.h>
 #include <linux/init.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/kernel_stat.h>
 #include <asm/processor.h>
 #include <asm/sigcontext.h>
 #include <asm/user.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define restore_fpu(tsk)   alternative_input(   "nop ; frstor %1",   "fxrstor %1",   X86_FEATURE_FXSR,   "m" ((tsk)->thread.i387.fxsave))
-
 #define kernel_fpu_end() do { stts(); preempt_enable(); } while(0)
-
 #define safe_address (kstat_cpu(0).cpustat.user)
-
 #define __unlazy_fpu( tsk ) do {   if (task_thread_info(tsk)->status & TS_USEDFPU) {   __save_init_fpu(tsk);   stts();   } else   tsk->fpu_counter = 0;  } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __clear_fpu( tsk )  do {   if (task_thread_info(tsk)->status & TS_USEDFPU) {   asm volatile("fnclex ; fwait");   task_thread_info(tsk)->status &= ~TS_USEDFPU;   stts();   }  } while (0)
 #define unlazy_fpu( tsk ) do {   preempt_disable();   __unlazy_fpu(tsk);   preempt_enable();  } while (0)
 #define clear_fpu( tsk ) do {   preempt_disable();   __clear_fpu( tsk );   preempt_enable();  } while (0)
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/i8253.h b/ndk/platforms/android-9/arch-x86/include/asm/i8253.h
index 93b1d1a..576a356 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/i8253.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/i8253.h
@@ -7,13 +7,19 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_I8253_H__
 #define __ASM_I8253_H__
-
 #define PIT_MODE 0x43
 #define PIT_CH0 0x40
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PIT_CH2 0x42
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/i8259.h b/ndk/platforms/android-9/arch-x86/include/asm/i8259.h
index c2366ea..dc7e786 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/i8259.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/i8259.h
@@ -7,13 +7,19 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_I8259_H__
 #define __ASM_I8259_H__
-
 #define __byte(x,y) (((unsigned char *) &(y))[x])
 #define cached_master_mask (__byte(0, cached_irq_mask))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cached_slave_mask (__byte(1, cached_irq_mask))
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ia32_unistd.h b/ndk/platforms/android-9/arch-x86/include/asm/ia32_unistd.h
index 848d228..2cb53d0 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ia32_unistd.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ia32_unistd.h
@@ -7,16 +7,23 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_64_IA32_UNISTD_H_
 #define _ASM_X86_64_IA32_UNISTD_H_
-
 #define __NR_ia32_restart_syscall 0
 #define __NR_ia32_exit 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ia32_read 3
 #define __NR_ia32_write 4
 #define __NR_ia32_sigreturn 119
 #define __NR_ia32_rt_sigreturn 173
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/io.h b/ndk/platforms/android-9/arch-x86/include/asm/io.h
index ea52e66..4e81b8c 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/io.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/io.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "io_64.h"
+#include "io_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/io_32.h b/ndk/platforms/android-9/arch-x86/include/asm/io_32.h
index f7e0025..e0615be 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/io_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/io_32.h
@@ -7,21 +7,27 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_IO_H
 #define _ASM_IO_H
-
 #include <linux/string.h>
 #include <linux/compiler.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IO_SPACE_LIMIT 0xffff
-
 #define XQUAD_PORTIO_BASE 0xfe400000
 #define XQUAD_PORTIO_QUAD 0x40000  
-
 #ifdef REALLY_SLOW_IO
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #define __BUILDIO(bwl,bw,type)  static inline void out##bwl(unsigned type value, int port) {   out##bwl##_local(value, port);  }  static inline unsigned type in##bwl(int port) {   return in##bwl##_local(port);  }
 #define BUILDIO(bwl,bw,type)  static inline void out##bwl##_local(unsigned type value, int port) {   __asm__ __volatile__("out" #bwl " %" #bw "0, %w1" : : "a"(value), "Nd"(port));  }  static inline unsigned type in##bwl##_local(int port) {   unsigned type value;   __asm__ __volatile__("in" #bwl " %w1, %" #bw "0" : "=a"(value) : "Nd"(port));   return value;  }  static inline void out##bwl##_local_p(unsigned type value, int port) {   out##bwl##_local(value, port);   slow_down_io();  }  static inline unsigned type in##bwl##_local_p(int port) {   unsigned type value = in##bwl##_local(port);   slow_down_io();   return value;  }  __BUILDIO(bwl,bw,type)  static inline void out##bwl##_p(unsigned type value, int port) {   out##bwl(value, port);   slow_down_io();  }  static inline unsigned type in##bwl##_p(int port) {   unsigned type value = in##bwl(port);   slow_down_io();   return value;  }  static inline void outs##bwl(int port, const void *addr, unsigned long count) {   __asm__ __volatile__("rep; outs" #bwl : "+S"(addr), "+c"(count) : "d"(port));  }  static inline void ins##bwl(int port, void *addr, unsigned long count) {   __asm__ __volatile__("rep; ins" #bwl : "+D"(addr), "+c"(count) : "d"(port));  }
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/io_apic.h b/ndk/platforms/android-9/arch-x86/include/asm/io_apic.h
index ed608d3..54bf23a 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/io_apic.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/io_apic.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "io_apic_64.h"
+#include "io_apic_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/io_apic_32.h b/ndk/platforms/android-9/arch-x86/include/asm/io_apic_32.h
index cc858a3..1cd4401 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/io_apic_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/io_apic_32.h
@@ -7,90 +7,103 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_IO_APIC_H
 #define __ASM_IO_APIC_H
-
 #include <asm/types.h>
 #include <asm/mpspec.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/apicdef.h>
-
 union IO_APIC_reg_00 {
  u32 raw;
  struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_2 : 14,
  LTS : 1,
  delivery_type : 1,
  __reserved_1 : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ID : 8;
  } __attribute__ ((packed)) bits;
 };
-
 union IO_APIC_reg_01 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 raw;
  struct {
  u32 version : 8,
  __reserved_2 : 7,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  PRQ : 1,
  entries : 8,
  __reserved_1 : 8;
  } __attribute__ ((packed)) bits;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 union IO_APIC_reg_02 {
  u32 raw;
  struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 __reserved_2 : 24,
  arbitration : 4,
  __reserved_1 : 4;
  } __attribute__ ((packed)) bits;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 union IO_APIC_reg_03 {
  u32 raw;
  struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 boot_DT : 1,
  __reserved_1 : 31;
  } __attribute__ ((packed)) bits;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum ioapic_irq_destination_types {
  dest_Fixed = 0,
  dest_LowestPrio = 1,
  dest_SMI = 2,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  dest__reserved_1 = 3,
  dest_NMI = 4,
  dest_INIT = 5,
  dest__reserved_2 = 6,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  dest_ExtINT = 7
 };
-
 struct IO_APIC_route_entry {
  __u32 vector : 8,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  delivery_mode : 3,
  dest_mode : 1,
  delivery_status : 1,
  polarity : 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  irr : 1,
  trigger : 1,
  mask : 1,
  __reserved_2 : 15;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  union { struct { __u32
  __reserved_1 : 24,
  physical_dest : 4,
  __reserved_2 : 4;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } physical;
-
  struct { __u32
  __reserved_1 : 24,
  logical_dest : 8;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  } logical;
  } dest;
-
 } __attribute__ ((packed));
-
 #define io_apic_assign_pci_irqs 0
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ioctl.h b/ndk/platforms/android-9/arch-x86/include/asm/ioctl.h
index 6e446b6..7b7bd37 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ioctl.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ioctl.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/ioctl.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ioctls.h b/ndk/platforms/android-9/arch-x86/include/asm/ioctls.h
index 3aedc04..9eccb2b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ioctls.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ioctls.h
@@ -7,89 +7,107 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_IOCTLS_H
 #define _ASM_X86_IOCTLS_H
-
 #include <asm/ioctl.h>
-
 #define TCGETS 0x5401
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCSETS 0x5402  
 #define TCSETSW 0x5403
 #define TCSETSF 0x5404
 #define TCGETA 0x5405
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCSETA 0x5406
 #define TCSETAW 0x5407
 #define TCSETAF 0x5408
 #define TCSBRK 0x5409
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCXONC 0x540A
 #define TCFLSH 0x540B
 #define TIOCEXCL 0x540C
 #define TIOCNXCL 0x540D
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCSCTTY 0x540E
 #define TIOCGPGRP 0x540F
 #define TIOCSPGRP 0x5410
 #define TIOCOUTQ 0x5411
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCSTI 0x5412
 #define TIOCGWINSZ 0x5413
 #define TIOCSWINSZ 0x5414
 #define TIOCMGET 0x5415
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCMBIS 0x5416
 #define TIOCMBIC 0x5417
 #define TIOCMSET 0x5418
 #define TIOCGSOFTCAR 0x5419
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCSSOFTCAR 0x541A
 #define FIONREAD 0x541B
 #define TIOCINQ FIONREAD
 #define TIOCLINUX 0x541C
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCCONS 0x541D
 #define TIOCGSERIAL 0x541E
 #define TIOCSSERIAL 0x541F
 #define TIOCPKT 0x5420
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define FIONBIO 0x5421
 #define TIOCNOTTY 0x5422
 #define TIOCSETD 0x5423
 #define TIOCGETD 0x5424
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCSBRKP 0x5425  
-
 #define TIOCSBRK 0x5427  
 #define TIOCCBRK 0x5428  
 #define TIOCGSID 0x5429  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCGETS2 _IOR('T',0x2A, struct termios2)
 #define TCSETS2 _IOW('T',0x2B, struct termios2)
 #define TCSETSW2 _IOW('T',0x2C, struct termios2)
 #define TCSETSF2 _IOW('T',0x2D, struct termios2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCGPTN _IOR('T',0x30, unsigned int)  
 #define TIOCSPTLCK _IOW('T',0x31, int)  
-
 #define FIONCLEX 0x5450
 #define FIOCLEX 0x5451
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define FIOASYNC 0x5452
 #define TIOCSERCONFIG 0x5453
 #define TIOCSERGWILD 0x5454
 #define TIOCSERSWILD 0x5455
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCGLCKTRMIOS 0x5456
 #define TIOCSLCKTRMIOS 0x5457
 #define TIOCSERGSTRUCT 0x5458  
 #define TIOCSERGETLSR 0x5459  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCSERGETMULTI 0x545A  
 #define TIOCSERSETMULTI 0x545B  
-
 #define TIOCMIWAIT 0x545C  
 #define TIOCGICOUNT 0x545D  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCGHAYESESP 0x545E  
 #define TIOCSHAYESESP 0x545F  
 #define FIOQSIZE 0x5460
-
 #define TIOCPKT_DATA 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCPKT_FLUSHREAD 1
 #define TIOCPKT_FLUSHWRITE 2
 #define TIOCPKT_STOP 4
 #define TIOCPKT_START 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCPKT_NOSTOP 16
 #define TIOCPKT_DOSTOP 32
-
 #define TIOCSER_TEMT 0x01  
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ipcbuf.h b/ndk/platforms/android-9/arch-x86/include/asm/ipcbuf.h
index 32342c1..83dc12f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ipcbuf.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ipcbuf.h
@@ -7,24 +7,33 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_IPCBUF_H
 #define _ASM_X86_IPCBUF_H
-
 struct ipc64_perm
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_key_t key;
  __kernel_uid32_t uid;
  __kernel_gid32_t gid;
  __kernel_uid32_t cuid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_gid32_t cgid;
  __kernel_mode_t mode;
  unsigned short __pad1;
  unsigned short seq;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short __pad2;
  unsigned long __unused1;
  unsigned long __unused2;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/irq.h b/ndk/platforms/android-9/arch-x86/include/asm/irq.h
index 07a331d..eaa65db 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/irq.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/irq.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "irq_64.h"
+#include "irq_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/irq_32.h b/ndk/platforms/android-9/arch-x86/include/asm/irq_32.h
index 3141071..1d7fab6 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/irq_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/irq_32.h
@@ -7,17 +7,22 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_IRQ_H
 #define _ASM_IRQ_H
-
 #include <linux/sched.h>
-
 #include "irq_vectors.h"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/thread_info.h>
-
 #define irq_ctx_init(cpu) do { } while (0)
 #define irq_ctx_exit(cpu) do { } while (0)
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/irqflags.h b/ndk/platforms/android-9/arch-x86/include/asm/irqflags.h
index 4f84662..4136598 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/irqflags.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/irqflags.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "irqflags_64.h"
+#include "irqflags_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/irqflags_32.h b/ndk/platforms/android-9/arch-x86/include/asm/irqflags_32.h
index 9002e44..9d77264 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/irqflags_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/irqflags_32.h
@@ -7,27 +7,38 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_IRQFLAGS_H
 #define _ASM_IRQFLAGS_H
 #include <asm/processor-flags.h>
-
 #ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #ifndef __ASSEMBLY__
 #else
 #define DISABLE_INTERRUPTS(clobbers) cli
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ENABLE_INTERRUPTS(clobbers) sti
 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
 #define INTERRUPT_RETURN iret
 #define GET_CR0_INTO_EAX movl %cr0, %eax
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #ifndef __ASSEMBLY__
 #define raw_local_save_flags(flags)   do { (flags) = __raw_local_save_flags(); } while (0)
 #define raw_local_irq_save(flags)   do { (flags) = __raw_local_irq_save(); } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #define TRACE_IRQS_ON
 #define TRACE_IRQS_OFF
 #define LOCKDEP_SYS_EXIT
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ist.h b/ndk/platforms/android-9/arch-x86/include/asm/ist.h
index 0abab19..0349bd3 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ist.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ist.h
@@ -7,18 +7,24 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_IST_H
 #define _ASM_IST_H
-
 #include <linux/types.h>
-
 struct ist_info {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 signature;
  __u32 command;
  __u32 event;
  __u32 perf_level;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/kmap_types.h b/ndk/platforms/android-9/arch-x86/include/asm/kmap_types.h
index c2313ee..ba6af93 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/kmap_types.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/kmap_types.h
@@ -7,30 +7,38 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_KMAP_TYPES_H
 #define _ASM_X86_KMAP_TYPES_H
-
 #define D(n)
-
 enum km_type {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 D(0) KM_BOUNCE_READ,
 D(1) KM_SKB_SUNRPC_DATA,
 D(2) KM_SKB_DATA_SOFTIRQ,
 D(3) KM_USER0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 D(4) KM_USER1,
 D(5) KM_BIO_SRC_IRQ,
 D(6) KM_BIO_DST_IRQ,
 D(7) KM_PTE0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 D(8) KM_PTE1,
 D(9) KM_IRQ0,
 D(10) KM_IRQ1,
 D(11) KM_SOFTIRQ0,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 D(12) KM_SOFTIRQ1,
 D(13) KM_TYPE_NR
 };
-
 #undef D
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ldt.h b/ndk/platforms/android-9/arch-x86/include/asm/ldt.h
index 19b91ab..ff88760 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ldt.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ldt.h
@@ -7,35 +7,42 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_LDT_H
 #define _ASM_X86_LDT_H
-
 #define LDT_ENTRIES 8192
-
 #define LDT_ENTRY_SIZE 8
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifndef __ASSEMBLY__
-
 struct user_desc {
  unsigned int entry_number;
  unsigned int base_addr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int limit;
  unsigned int seg_32bit:1;
  unsigned int contents:2;
  unsigned int read_exec_only:1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int limit_in_pages:1;
  unsigned int seg_not_present:1;
  unsigned int useable:1;
 #ifdef __x86_64__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int lm:1;
 #endif
 };
-
 #define MODIFY_LDT_CONTENTS_DATA 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MODIFY_LDT_CONTENTS_STACK 1
 #define MODIFY_LDT_CONTENTS_CODE 2
-
 #endif
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/linkage.h b/ndk/platforms/android-9/arch-x86/include/asm/linkage.h
index f149e4d..3aae43d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/linkage.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/linkage.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "linkage_64.h"
+#include "linkage_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/linkage_32.h b/ndk/platforms/android-9/arch-x86/include/asm/linkage_32.h
index 6db10ee..e850947 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/linkage_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/linkage_32.h
@@ -7,15 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_LINKAGE_H
 #define __ASM_LINKAGE_H
-
 #define asmlinkage CPP_ASMLINKAGE __attribute__((regparm(0)))
 #define FASTCALL(x) x __attribute__((regparm(3)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define fastcall __attribute__((regparm(3)))
-
 #define prevent_tail_call(ret) __asm__ ("" : "=r" (ret) : "0" (ret))
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/local.h b/ndk/platforms/android-9/arch-x86/include/asm/local.h
index 85080b8..99acf6d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/local.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/local.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "local_64.h"
+#include "local_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/local_32.h b/ndk/platforms/android-9/arch-x86/include/asm/local_32.h
index fcad753..9c4c2b2 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/local_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/local_32.h
@@ -7,45 +7,55 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ARCH_I386_LOCAL_H
 #define _ARCH_I386_LOCAL_H
-
 #include <linux/percpu.h>
 #include <asm/system.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/atomic.h>
-
 typedef struct
 {
  atomic_long_t a;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } local_t;
-
 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
-
 #define local_read(l) atomic_long_read(&(l)->a)
 #define local_set(l,i) atomic_long_set(&(l)->a, (i))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define local_inc_return(l) (local_add_return(1,l))
 #define local_dec_return(l) (local_sub_return(1,l))
 #define local_cmpxchg(l, o, n)   (cmpxchg_local(&((l)->a.counter), (o), (n)))
 #define local_xchg(l, n) (xchg(&((l)->a.counter), (n)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define local_add_unless(l, a, u)  ({   long c, old;   c = local_read(l);   for (;;) {   if (unlikely(c == (u)))   break;   old = local_cmpxchg((l), c, c + (a));   if (likely(old == c))   break;   c = old;   }   c != (u);  })
 #define local_inc_not_zero(l) local_add_unless((l), 1, 0)
 #define __local_inc(l) local_inc(l)
 #define __local_dec(l) local_dec(l)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __local_add(i,l) local_add((i),(l))
 #define __local_sub(i,l) local_sub((i),(l))
 #define cpu_local_wrap_v(l)   ({ local_t res__;   preempt_disable();   res__ = (l);   preempt_enable();   res__; })
 #define cpu_local_wrap(l)   ({ preempt_disable();   l;   preempt_enable(); })  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_local_read(l) cpu_local_wrap_v(local_read(&__get_cpu_var(l)))
 #define cpu_local_set(l, i) cpu_local_wrap(local_set(&__get_cpu_var(l), (i)))
 #define cpu_local_inc(l) cpu_local_wrap(local_inc(&__get_cpu_var(l)))
 #define cpu_local_dec(l) cpu_local_wrap(local_dec(&__get_cpu_var(l)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define cpu_local_add(i, l) cpu_local_wrap(local_add((i), &__get_cpu_var(l)))
 #define cpu_local_sub(i, l) cpu_local_wrap(local_sub((i), &__get_cpu_var(l)))
 #define __cpu_local_inc(l) cpu_local_inc(l)
 #define __cpu_local_dec(l) cpu_local_dec(l)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __cpu_local_add(i, l) cpu_local_add((i), (l))
 #define __cpu_local_sub(i, l) cpu_local_sub((i), (l))
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/math_emu.h b/ndk/platforms/android-9/arch-x86/include/asm/math_emu.h
index 9380d19..068006c 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/math_emu.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/math_emu.h
@@ -7,34 +7,45 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_MATH_EMU_H
 #define _I386_MATH_EMU_H
-
 #include <asm/sigcontext.h>
-
 struct info {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long ___orig_eip;
  long ___ebx;
  long ___ecx;
  long ___edx;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long ___esi;
  long ___edi;
  long ___ebp;
  long ___eax;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long ___ds;
  long ___es;
  long ___fs;
  long ___orig_eax;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long ___eip;
  long ___cs;
  long ___eflags;
  long ___esp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long ___ss;
  long ___vm86_es;
  long ___vm86_ds;
  long ___vm86_fs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long ___vm86_gs;
 };
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc.h b/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc.h
index 8497877..f7e8781 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "mc146818rtc_64.h"
+#include "mc146818rtc_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc_32.h b/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc_32.h
index 899d608..b6af33a 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mc146818rtc_32.h
@@ -7,38 +7,44 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_MC146818RTC_H
 #define _ASM_MC146818RTC_H
-
 #include <asm/io.h>
 #include <asm/system.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/processor.h>
 #include <linux/mc146818rtc.h>
-
 #ifndef RTC_PORT
 #define RTC_PORT(x) (0x70 + (x))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define RTC_ALWAYS_BCD 1  
 #endif
-
 #ifdef __HAVE_ARCH_CMPXCHG
-
 #include <linux/smp.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define lock_cmos_prefix(reg)   do {   unsigned long cmos_flags;   local_irq_save(cmos_flags);   lock_cmos(reg)
 #define lock_cmos_suffix(reg)   unlock_cmos();   local_irq_restore(cmos_flags);   } while (0)
 #else
 #define lock_cmos_prefix(reg) do {} while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define lock_cmos_suffix(reg) do {} while (0)
 #define lock_cmos(reg)
 #define unlock_cmos()
 #define do_i_have_lock_cmos() 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define current_lock_cmos_reg() 0
 #endif
 #define CMOS_READ(addr) rtc_cmos_read(addr)
 #define CMOS_WRITE(val, addr) rtc_cmos_write(val, addr)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define RTC_IRQ 8
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mman.h b/ndk/platforms/android-9/arch-x86/include/asm/mman.h
index 7eda319..b0b4e1d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mman.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mman.h
@@ -7,24 +7,29 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_MMAN_H
 #define _ASM_X86_MMAN_H
-
 #include <asm-generic/mman.h>
-
 #define MAP_32BIT 0x40  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAP_GROWSDOWN 0x0100  
 #define MAP_DENYWRITE 0x0800  
 #define MAP_EXECUTABLE 0x1000  
 #define MAP_LOCKED 0x2000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAP_NORESERVE 0x4000  
 #define MAP_POPULATE 0x8000  
 #define MAP_NONBLOCK 0x10000  
-
 #define MCL_CURRENT 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MCL_FUTURE 2  
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mmsegment.h b/ndk/platforms/android-9/arch-x86/include/asm/mmsegment.h
index 76045c7..01bffca 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mmsegment.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mmsegment.h
@@ -7,13 +7,19 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_MMSEGMENT_H
 #define _ASM_MMSEGMENT_H 1
-
 typedef struct {
  unsigned long seg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } mm_segment_t;
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mmu.h b/ndk/platforms/android-9/arch-x86/include/asm/mmu.h
index 30db10a..61c3cc0 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mmu.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mmu.h
@@ -7,19 +7,25 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_MMU_H
 #define _ASM_X86_MMU_H
-
 #include <linux/spinlock.h>
 #include <linux/mutex.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct {
  void *ldt;
  int size;
  struct mutex lock;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  void *vdso;
 } mm_context_t;
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/module.h b/ndk/platforms/android-9/arch-x86/include/asm/module.h
index ff292d4..296ed2b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/module.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/module.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "module_64.h"
+#include "module_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/module_32.h b/ndk/platforms/android-9/arch-x86/include/asm/module_32.h
index 2e26729..fd1d099 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/module_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/module_32.h
@@ -7,23 +7,27 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_I386_MODULE_H
 #define _ASM_I386_MODULE_H
-
 struct mod_arch_specific
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #define Elf_Shdr Elf32_Shdr
 #define Elf_Sym Elf32_Sym
 #define Elf_Ehdr Elf32_Ehdr
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #error unknown processor family
-
 #define MODULE_STACKSIZE ""
-
 #define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_STACKSIZE
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mpspec.h b/ndk/platforms/android-9/arch-x86/include/asm/mpspec.h
index 2336504..217a7d4 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mpspec.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mpspec.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "mpspec_64.h"
+#include "mpspec_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mpspec_32.h b/ndk/platforms/android-9/arch-x86/include/asm/mpspec_32.h
index 7acbe8a..909c3c4 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mpspec_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mpspec_32.h
@@ -7,46 +7,49 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_MPSPEC_H
 #define __ASM_MPSPEC_H
-
 #include <linux/cpumask.h>
 #include <asm/mpspec_def.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <mach_mpspec.h>
-
 #define PHYSID_ARRAY_SIZE BITS_TO_LONGS(MAX_APICS)
-
 struct physid_mask
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long mask[PHYSID_ARRAY_SIZE];
 };
-
 typedef struct physid_mask physid_mask_t;
-
 #define physid_set(physid, map) set_bit(physid, (map).mask)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define physid_clear(physid, map) clear_bit(physid, (map).mask)
 #define physid_isset(physid, map) test_bit(physid, (map).mask)
 #define physid_test_and_set(physid, map) test_and_set_bit(physid, (map).mask)
-
 #define physids_and(dst, src1, src2) bitmap_and((dst).mask, (src1).mask, (src2).mask, MAX_APICS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define physids_or(dst, src1, src2) bitmap_or((dst).mask, (src1).mask, (src2).mask, MAX_APICS)
 #define physids_clear(map) bitmap_zero((map).mask, MAX_APICS)
 #define physids_complement(dst, src) bitmap_complement((dst).mask,(src).mask, MAX_APICS)
 #define physids_empty(map) bitmap_empty((map).mask, MAX_APICS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define physids_equal(map1, map2) bitmap_equal((map1).mask, (map2).mask, MAX_APICS)
 #define physids_weight(map) bitmap_weight((map).mask, MAX_APICS)
 #define physids_shift_right(d, s, n) bitmap_shift_right((d).mask, (s).mask, n, MAX_APICS)
 #define physids_shift_left(d, s, n) bitmap_shift_left((d).mask, (s).mask, n, MAX_APICS)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define physids_coerce(map) ((map).mask[0])
-
 #define physids_promote(physids)   ({   physid_mask_t __physid_mask = PHYSID_MASK_NONE;   __physid_mask.mask[0] = physids;   __physid_mask;   })
-
 #define physid_mask_of_physid(physid)   ({   physid_mask_t __physid_mask = PHYSID_MASK_NONE;   physid_set(physid, __physid_mask);   __physid_mask;   })
-
 #define PHYSID_MASK_ALL { {[0 ... PHYSID_ARRAY_SIZE-1] = ~0UL} }
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PHYSID_MASK_NONE { {[0 ... PHYSID_ARRAY_SIZE-1] = 0UL} }
-
 #endif
-
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/mpspec_def.h b/ndk/platforms/android-9/arch-x86/include/asm/mpspec_def.h
index 1f15363..f9bb33a 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/mpspec_def.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/mpspec_def.h
@@ -7,165 +7,190 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_MPSPEC_DEF_H
 #define __ASM_MPSPEC_DEF_H
-
 #define SMP_MAGIC_IDENT (('_'<<24)|('P'<<16)|('M'<<8)|'_')
-
 #define MAX_MPC_ENTRY 1024
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_APICS 256
-
 struct intel_mp_floating
 {
  char mpf_signature[4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long mpf_physptr;
  unsigned char mpf_length;
  unsigned char mpf_specification;
  unsigned char mpf_checksum;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpf_feature1;
  unsigned char mpf_feature2;
  unsigned char mpf_feature3;
  unsigned char mpf_feature4;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpf_feature5;
 };
-
 struct mp_config_table
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char mpc_signature[4];
 #define MPC_SIGNATURE "PCMP"
  unsigned short mpc_length;
  char mpc_spec;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char mpc_checksum;
  char mpc_oem[8];
  char mpc_productid[12];
  unsigned long mpc_oemptr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short mpc_oemsize;
  unsigned short mpc_oemcount;
  unsigned long mpc_lapic;
  unsigned long reserved;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #define MP_PROCESSOR 0
 #define MP_BUS 1
 #define MP_IOAPIC 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MP_INTSRC 3
 #define MP_LINTSRC 4
 #define MP_TRANSLATION 192  
-
 struct mpc_config_processor
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 {
  unsigned char mpc_type;
  unsigned char mpc_apicid;
  unsigned char mpc_apicver;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_cpuflag;
 #define CPU_ENABLED 1  
 #define CPU_BOOTPROCESSOR 2  
  unsigned long mpc_cpufeature;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CPU_STEPPING_MASK 0x0F
 #define CPU_MODEL_MASK 0xF0
 #define CPU_FAMILY_MASK 0xF00
  unsigned long mpc_featureflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long mpc_reserved[2];
 };
-
 struct mpc_config_bus
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_type;
  unsigned char mpc_busid;
  unsigned char mpc_bustype[6];
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BUSTYPE_EISA "EISA"
 #define BUSTYPE_ISA "ISA"
 #define BUSTYPE_INTERN "INTERN"  
 #define BUSTYPE_MCA "MCA"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BUSTYPE_VL "VL"  
 #define BUSTYPE_PCI "PCI"
 #define BUSTYPE_PCMCIA "PCMCIA"
 #define BUSTYPE_CBUS "CBUS"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BUSTYPE_CBUSII "CBUSII"
 #define BUSTYPE_FUTURE "FUTURE"
 #define BUSTYPE_MBI "MBI"
 #define BUSTYPE_MBII "MBII"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BUSTYPE_MPI "MPI"
 #define BUSTYPE_MPSA "MPSA"
 #define BUSTYPE_NUBUS "NUBUS"
 #define BUSTYPE_TC "TC"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define BUSTYPE_VME "VME"
 #define BUSTYPE_XPRESS "XPRESS"
-
 struct mpc_config_ioapic
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_type;
  unsigned char mpc_apicid;
  unsigned char mpc_apicver;
  unsigned char mpc_flags;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MPC_APIC_USABLE 0x01
  unsigned long mpc_apicaddr;
 };
-
 struct mpc_config_intsrc
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 {
  unsigned char mpc_type;
  unsigned char mpc_irqtype;
  unsigned short mpc_irqflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_srcbus;
  unsigned char mpc_srcbusirq;
  unsigned char mpc_dstapic;
  unsigned char mpc_dstirq;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 enum mp_irq_source_types {
  mp_INT = 0,
  mp_NMI = 1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  mp_SMI = 2,
  mp_ExtINT = 3
 };
-
 #define MP_IRQDIR_DEFAULT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MP_IRQDIR_HIGH 1
 #define MP_IRQDIR_LOW 3
-
 struct mpc_config_lintsrc
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_type;
  unsigned char mpc_irqtype;
  unsigned short mpc_irqflag;
  unsigned char mpc_srcbusid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_srcbusirq;
  unsigned char mpc_destapic;
 #define MP_APIC_ALL 0xFF
  unsigned char mpc_destapiclint;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct mp_config_oemtable
 {
  char oem_signature[4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MPC_OEM_SIGNATURE "_OEM"
  unsigned short oem_length;
  char oem_rev;
  char oem_checksum;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char mpc_oem[8];
 };
-
 struct mpc_config_translation
 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char mpc_type;
  unsigned char trans_len;
  unsigned char trans_type;
  unsigned char trans_quad;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char trans_global;
  unsigned char trans_local;
  unsigned short trans_reserved;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum mp_bustype {
  MP_BUS_ISA = 1,
  MP_BUS_EISA,
  MP_BUS_PCI,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  MP_BUS_MCA,
 };
 #endif
-
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/msgbuf.h b/ndk/platforms/android-9/arch-x86/include/asm/msgbuf.h
index 8843e78..99caf76 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/msgbuf.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/msgbuf.h
@@ -7,32 +7,35 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_MSGBUF_H
 #define _ASM_X86_MSGBUF_H
-
 struct msqid64_ds {
  struct ipc64_perm msg_perm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_time_t msg_stime;
-#ifdef __i386__
  unsigned long __unused1;
-#endif
  __kernel_time_t msg_rtime;
-#ifdef __i386__
  unsigned long __unused2;
-#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_time_t msg_ctime;
-#ifdef __i386__
  unsigned long __unused3;
-#endif
  unsigned long msg_cbytes;
  unsigned long msg_qnum;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long msg_qbytes;
  __kernel_pid_t msg_lspid;
  __kernel_pid_t msg_lrpid;
  unsigned long __unused4;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long __unused5;
 };
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/msr-index.h b/ndk/platforms/android-9/arch-x86/include/asm/msr-index.h
index 8ea204e..2336f82 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/msr-index.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/msr-index.h
@@ -7,277 +7,310 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_MSR_INDEX_H
 #define __ASM_MSR_INDEX_H
-
 #define MSR_EFER 0xc0000080  
 #define MSR_STAR 0xc0000081  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_LSTAR 0xc0000082  
 #define MSR_CSTAR 0xc0000083  
 #define MSR_SYSCALL_MASK 0xc0000084  
 #define MSR_FS_BASE 0xc0000100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_GS_BASE 0xc0000101  
 #define MSR_KERNEL_GS_BASE 0xc0000102  
-
 #define _EFER_SCE 0  
 #define _EFER_LME 8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _EFER_LMA 10  
 #define _EFER_NX 11  
-
 #define EFER_SCE (1<<_EFER_SCE)
 #define EFER_LME (1<<_EFER_LME)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EFER_LMA (1<<_EFER_LMA)
 #define EFER_NX (1<<_EFER_NX)
-
 #define MSR_IA32_PERFCTR0 0x000000c1
 #define MSR_IA32_PERFCTR1 0x000000c2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_FSB_FREQ 0x000000cd
-
 #define MSR_MTRRcap 0x000000fe
 #define MSR_IA32_BBL_CR_CTL 0x00000119
-
 #define MSR_IA32_SYSENTER_CS 0x00000174
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_SYSENTER_ESP 0x00000175
 #define MSR_IA32_SYSENTER_EIP 0x00000176
-
 #define MSR_IA32_MCG_CAP 0x00000179
 #define MSR_IA32_MCG_STATUS 0x0000017a
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_MCG_CTL 0x0000017b
-
 #define MSR_IA32_PEBS_ENABLE 0x000003f1
 #define MSR_IA32_DS_AREA 0x00000600
 #define MSR_IA32_PERF_CAPABILITIES 0x00000345
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_MTRRfix64K_00000 0x00000250
 #define MSR_MTRRfix16K_80000 0x00000258
 #define MSR_MTRRfix16K_A0000 0x00000259
 #define MSR_MTRRfix4K_C0000 0x00000268
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_MTRRfix4K_C8000 0x00000269
 #define MSR_MTRRfix4K_D0000 0x0000026a
 #define MSR_MTRRfix4K_D8000 0x0000026b
 #define MSR_MTRRfix4K_E0000 0x0000026c
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_MTRRfix4K_E8000 0x0000026d
 #define MSR_MTRRfix4K_F0000 0x0000026e
 #define MSR_MTRRfix4K_F8000 0x0000026f
 #define MSR_MTRRdefType 0x000002ff
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_DEBUGCTLMSR 0x000001d9
 #define MSR_IA32_LASTBRANCHFROMIP 0x000001db
 #define MSR_IA32_LASTBRANCHTOIP 0x000001dc
 #define MSR_IA32_LASTINTFROMIP 0x000001dd
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_LASTINTTOIP 0x000001de
-
 #define MSR_IA32_MC0_CTL 0x00000400
 #define MSR_IA32_MC0_STATUS 0x00000401
 #define MSR_IA32_MC0_ADDR 0x00000402
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_MC0_MISC 0x00000403
-
 #define MSR_P6_PERFCTR0 0x000000c1
 #define MSR_P6_PERFCTR1 0x000000c2
 #define MSR_P6_EVNTSEL0 0x00000186
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P6_EVNTSEL1 0x00000187
-
 #define MSR_AMD64_IBSFETCHCTL 0xc0011030
 #define MSR_AMD64_IBSFETCHLINAD 0xc0011031
 #define MSR_AMD64_IBSFETCHPHYSAD 0xc0011032
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_AMD64_IBSOPCTL 0xc0011033
 #define MSR_AMD64_IBSOPRIP 0xc0011034
 #define MSR_AMD64_IBSOPDATA 0xc0011035
 #define MSR_AMD64_IBSOPDATA2 0xc0011036
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_AMD64_IBSOPDATA3 0xc0011037
 #define MSR_AMD64_IBSDCLINAD 0xc0011038
 #define MSR_AMD64_IBSDCPHYSAD 0xc0011039
 #define MSR_AMD64_IBSCTL 0xc001103a
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K8_TOP_MEM1 0xc001001a
 #define MSR_K8_TOP_MEM2 0xc001001d
 #define MSR_K8_SYSCFG 0xc0010010
 #define MSR_K8_HWCR 0xc0010015
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K8_ENABLE_C1E 0xc0010055
 #define K8_MTRRFIXRANGE_DRAM_ENABLE 0x00040000  
 #define K8_MTRRFIXRANGE_DRAM_MODIFY 0x00080000  
 #define K8_MTRR_RDMEM_WRMEM_MASK 0x18181818  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K7_EVNTSEL0 0xc0010000
 #define MSR_K7_PERFCTR0 0xc0010004
 #define MSR_K7_EVNTSEL1 0xc0010001
 #define MSR_K7_PERFCTR1 0xc0010005
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K7_EVNTSEL2 0xc0010002
 #define MSR_K7_PERFCTR2 0xc0010006
 #define MSR_K7_EVNTSEL3 0xc0010003
 #define MSR_K7_PERFCTR3 0xc0010007
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K7_CLK_CTL 0xc001001b
 #define MSR_K7_HWCR 0xc0010015
 #define MSR_K7_FID_VID_CTL 0xc0010041
 #define MSR_K7_FID_VID_STATUS 0xc0010042
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K6_EFER 0xc0000080
 #define MSR_K6_STAR 0xc0000081
 #define MSR_K6_WHCR 0xc0000082
 #define MSR_K6_UWCCR 0xc0000085
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_K6_EPMR 0xc0000086
 #define MSR_K6_PSOR 0xc0000087
 #define MSR_K6_PFIR 0xc0000088
-
 #define MSR_IDT_FCR1 0x00000107
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IDT_FCR2 0x00000108
 #define MSR_IDT_FCR3 0x00000109
 #define MSR_IDT_FCR4 0x0000010a
-
 #define MSR_IDT_MCR0 0x00000110
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IDT_MCR1 0x00000111
 #define MSR_IDT_MCR2 0x00000112
 #define MSR_IDT_MCR3 0x00000113
 #define MSR_IDT_MCR4 0x00000114
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IDT_MCR5 0x00000115
 #define MSR_IDT_MCR6 0x00000116
 #define MSR_IDT_MCR7 0x00000117
 #define MSR_IDT_MCR_CTRL 0x00000120
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_VIA_FCR 0x00001107
 #define MSR_VIA_LONGHAUL 0x0000110a
 #define MSR_VIA_RNG 0x0000110b
 #define MSR_VIA_BCR2 0x00001147
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_TMTA_LONGRUN_CTRL 0x80868010
 #define MSR_TMTA_LONGRUN_FLAGS 0x80868011
 #define MSR_TMTA_LRTI_READOUT 0x80868018
 #define MSR_TMTA_LRTI_VOLT_MHZ 0x8086801a
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_P5_MC_ADDR 0x00000000
 #define MSR_IA32_P5_MC_TYPE 0x00000001
 #define MSR_IA32_TSC 0x00000010
 #define MSR_IA32_PLATFORM_ID 0x00000017
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_EBL_CR_POWERON 0x0000002a
-
 #define MSR_IA32_APICBASE 0x0000001b
 #define MSR_IA32_APICBASE_BSP (1<<8)
 #define MSR_IA32_APICBASE_ENABLE (1<<11)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_APICBASE_BASE (0xfffff<<12)
-
 #define MSR_IA32_UCODE_WRITE 0x00000079
 #define MSR_IA32_UCODE_REV 0x0000008b
-
 #define MSR_IA32_PERF_STATUS 0x00000198
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_PERF_CTL 0x00000199
-
 #define MSR_IA32_MPERF 0x000000e7
 #define MSR_IA32_APERF 0x000000e8
-
 #define MSR_IA32_THERM_CONTROL 0x0000019a
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_THERM_INTERRUPT 0x0000019b
 #define MSR_IA32_THERM_STATUS 0x0000019c
 #define MSR_IA32_MISC_ENABLE 0x000001a0
-
 #define MSR_P6_EVNTSEL0 0x00000186
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P6_EVNTSEL1 0x00000187
-
 #define MSR_IA32_MCG_EAX 0x00000180
 #define MSR_IA32_MCG_EBX 0x00000181
 #define MSR_IA32_MCG_ECX 0x00000182
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_MCG_EDX 0x00000183
 #define MSR_IA32_MCG_ESI 0x00000184
 #define MSR_IA32_MCG_EDI 0x00000185
 #define MSR_IA32_MCG_EBP 0x00000186
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_IA32_MCG_ESP 0x00000187
 #define MSR_IA32_MCG_EFLAGS 0x00000188
 #define MSR_IA32_MCG_EIP 0x00000189
 #define MSR_IA32_MCG_RESERVED 0x0000018a
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_BPU_PERFCTR0 0x00000300
 #define MSR_P4_BPU_PERFCTR1 0x00000301
 #define MSR_P4_BPU_PERFCTR2 0x00000302
 #define MSR_P4_BPU_PERFCTR3 0x00000303
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_MS_PERFCTR0 0x00000304
 #define MSR_P4_MS_PERFCTR1 0x00000305
 #define MSR_P4_MS_PERFCTR2 0x00000306
 #define MSR_P4_MS_PERFCTR3 0x00000307
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_FLAME_PERFCTR0 0x00000308
 #define MSR_P4_FLAME_PERFCTR1 0x00000309
 #define MSR_P4_FLAME_PERFCTR2 0x0000030a
 #define MSR_P4_FLAME_PERFCTR3 0x0000030b
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_IQ_PERFCTR0 0x0000030c
 #define MSR_P4_IQ_PERFCTR1 0x0000030d
 #define MSR_P4_IQ_PERFCTR2 0x0000030e
 #define MSR_P4_IQ_PERFCTR3 0x0000030f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_IQ_PERFCTR4 0x00000310
 #define MSR_P4_IQ_PERFCTR5 0x00000311
 #define MSR_P4_BPU_CCCR0 0x00000360
 #define MSR_P4_BPU_CCCR1 0x00000361
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_BPU_CCCR2 0x00000362
 #define MSR_P4_BPU_CCCR3 0x00000363
 #define MSR_P4_MS_CCCR0 0x00000364
 #define MSR_P4_MS_CCCR1 0x00000365
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_MS_CCCR2 0x00000366
 #define MSR_P4_MS_CCCR3 0x00000367
 #define MSR_P4_FLAME_CCCR0 0x00000368
 #define MSR_P4_FLAME_CCCR1 0x00000369
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_FLAME_CCCR2 0x0000036a
 #define MSR_P4_FLAME_CCCR3 0x0000036b
 #define MSR_P4_IQ_CCCR0 0x0000036c
 #define MSR_P4_IQ_CCCR1 0x0000036d
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_IQ_CCCR2 0x0000036e
 #define MSR_P4_IQ_CCCR3 0x0000036f
 #define MSR_P4_IQ_CCCR4 0x00000370
 #define MSR_P4_IQ_CCCR5 0x00000371
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_ALF_ESCR0 0x000003ca
 #define MSR_P4_ALF_ESCR1 0x000003cb
 #define MSR_P4_BPU_ESCR0 0x000003b2
 #define MSR_P4_BPU_ESCR1 0x000003b3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_BSU_ESCR0 0x000003a0
 #define MSR_P4_BSU_ESCR1 0x000003a1
 #define MSR_P4_CRU_ESCR0 0x000003b8
 #define MSR_P4_CRU_ESCR1 0x000003b9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_CRU_ESCR2 0x000003cc
 #define MSR_P4_CRU_ESCR3 0x000003cd
 #define MSR_P4_CRU_ESCR4 0x000003e0
 #define MSR_P4_CRU_ESCR5 0x000003e1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_DAC_ESCR0 0x000003a8
 #define MSR_P4_DAC_ESCR1 0x000003a9
 #define MSR_P4_FIRM_ESCR0 0x000003a4
 #define MSR_P4_FIRM_ESCR1 0x000003a5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_FLAME_ESCR0 0x000003a6
 #define MSR_P4_FLAME_ESCR1 0x000003a7
 #define MSR_P4_FSB_ESCR0 0x000003a2
 #define MSR_P4_FSB_ESCR1 0x000003a3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_IQ_ESCR0 0x000003ba
 #define MSR_P4_IQ_ESCR1 0x000003bb
 #define MSR_P4_IS_ESCR0 0x000003b4
 #define MSR_P4_IS_ESCR1 0x000003b5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_ITLB_ESCR0 0x000003b6
 #define MSR_P4_ITLB_ESCR1 0x000003b7
 #define MSR_P4_IX_ESCR0 0x000003c8
 #define MSR_P4_IX_ESCR1 0x000003c9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_MOB_ESCR0 0x000003aa
 #define MSR_P4_MOB_ESCR1 0x000003ab
 #define MSR_P4_MS_ESCR0 0x000003c0
 #define MSR_P4_MS_ESCR1 0x000003c1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_PMH_ESCR0 0x000003ac
 #define MSR_P4_PMH_ESCR1 0x000003ad
 #define MSR_P4_RAT_ESCR0 0x000003bc
 #define MSR_P4_RAT_ESCR1 0x000003bd
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_SAAT_ESCR0 0x000003ae
 #define MSR_P4_SAAT_ESCR1 0x000003af
 #define MSR_P4_SSU_ESCR0 0x000003be
 #define MSR_P4_SSU_ESCR1 0x000003bf  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_TBPU_ESCR0 0x000003c2
 #define MSR_P4_TBPU_ESCR1 0x000003c3
 #define MSR_P4_TC_ESCR0 0x000003c4
 #define MSR_P4_TC_ESCR1 0x000003c5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_P4_U2L_ESCR0 0x000003b0
 #define MSR_P4_U2L_ESCR1 0x000003b1
-
 #define MSR_CORE_PERF_FIXED_CTR0 0x00000309
 #define MSR_CORE_PERF_FIXED_CTR1 0x0000030a
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_CORE_PERF_FIXED_CTR2 0x0000030b
 #define MSR_CORE_PERF_FIXED_CTR_CTRL 0x0000038d
 #define MSR_CORE_PERF_GLOBAL_STATUS 0x0000038e
 #define MSR_CORE_PERF_GLOBAL_CTRL 0x0000038f
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MSR_CORE_PERF_GLOBAL_OVF_CTRL 0x00000390
-
 #define MSR_GEODE_BUSCONT_CONF0 0x00001900
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/msr.h b/ndk/platforms/android-9/arch-x86/include/asm/msr.h
index f1da917..00fb800 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/msr.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/msr.h
@@ -7,48 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_X86_MSR_H_
 #define __ASM_X86_MSR_H_
-
 #include <asm/msr-index.h>
-
 #ifndef __ASSEMBLY__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/types.h>
 #endif
-
-#ifdef __i386__
-
-#else
-
-#ifndef __ASSEMBLY__
-#include <linux/errno.h>
-
-#define rdmsr(msr,val1,val2)   __asm__ __volatile__("rdmsr"   : "=a" (val1), "=d" (val2)   : "c" (msr))
-
-#define rdmsrl(msr,val) do { unsigned long a__,b__;   __asm__ __volatile__("rdmsr"   : "=a" (a__), "=d" (b__)   : "c" (msr));   val = a__ | (b__<<32);  } while(0)
-
-#define wrmsr(msr,val1,val2)   __asm__ __volatile__("wrmsr"   :     : "c" (msr), "a" (val1), "d" (val2))
-
-#define wrmsrl(msr,val) wrmsr(msr,(__u32)((__u64)(val)),((__u64)(val))>>32)
-
-#define rdtsc(low,high)   __asm__ __volatile__("rdtsc" : "=a" (low), "=d" (high))
-
-#define rdtscl(low)   __asm__ __volatile__ ("rdtsc" : "=a" (low) : : "edx")
-
-#define rdtscp(low,high,aux)   __asm__ __volatile__ (".byte 0x0f,0x01,0xf9" : "=a" (low), "=d" (high), "=c" (aux))
-
-#define rdtscll(val) do {   unsigned int __a,__d;   __asm__ __volatile__("rdtsc" : "=a" (__a), "=d" (__d));   (val) = ((unsigned long)__a) | (((unsigned long)__d)<<32);  } while(0)
-
-#define rdtscpll(val, aux) do {   unsigned long __a, __d;   __asm__ __volatile__ (".byte 0x0f,0x01,0xf9" : "=a" (__a), "=d" (__d), "=c" (aux));   (val) = (__d << 32) | __a;  } while (0)
-
-#define write_tsc(val1,val2) wrmsr(0x10, val1, val2)
-
-#define write_rdtscp_aux(val) wrmsr(0xc0000103, val, 0)
-
-#define rdpmc(counter,low,high)   __asm__ __volatile__("rdpmc"   : "=a" (low), "=d" (high)   : "c" (counter))
-
-#endif
-#endif
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/page.h b/ndk/platforms/android-9/arch-x86/include/asm/page.h
index e6dcf27..3b45383 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/page.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/page.h
@@ -7,10 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#ifdef __i386__
 #include "page_32.h"
-#else
-#include "page_64.h"
-#endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/page_32.h b/ndk/platforms/android-9/arch-x86/include/asm/page_32.h
index 718cf95..5e864ad 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/page_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/page_32.h
@@ -7,16 +7,22 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_PAGE_H
 #define _I386_PAGE_H
-
 #define PAGE_SHIFT 12
 #define PAGE_SIZE (1UL << PAGE_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PAGE_MASK (~(PAGE_SIZE-1))
-
 #define LARGE_PAGE_MASK (~(LARGE_PAGE_SIZE-1))
 #define LARGE_PAGE_SIZE (1UL << PMD_SHIFT)
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/param.h b/ndk/platforms/android-9/arch-x86/include/asm/param.h
index 3fafd55..cd77123 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/param.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/param.h
@@ -7,20 +7,24 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_PARAM_H
 #define _ASM_X86_PARAM_H
-
 #ifndef HZ
 #define HZ 100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
 #define EXEC_PAGESIZE 4096
-
 #ifndef NOGROUP
 #define NOGROUP (-1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/paravirt.h b/ndk/platforms/android-9/arch-x86/include/asm/paravirt.h
index ab0d08e..257e968 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/paravirt.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/paravirt.h
@@ -7,9 +7,15 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_PARAVIRT_H
 #define __ASM_PARAVIRT_H
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pda.h b/ndk/platforms/android-9/arch-x86/include/asm/pda.h
index 6711224..a105f28 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pda.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pda.h
@@ -7,59 +7,65 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef X86_64_PDA_H
 #define X86_64_PDA_H
-
 #ifndef __ASSEMBLY__
 #include <linux/stddef.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/types.h>
 #include <linux/cache.h>
 #include <asm/page.h>
-
 struct x8664_pda {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct task_struct *pcurrent;
  unsigned long data_offset;
  unsigned long kernelstack;
  unsigned long oldrsp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int irqcount;
  int cpunumber;
  char *irqstackptr;
  int nodenumber;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int __softirq_pending;
  unsigned int __nmi_count;
  short mmu_state;
  short isidle;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct mm_struct *active_mm;
  unsigned apic_timer_irqs;
  unsigned irq0_irqs;
  unsigned irq_resched_count;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned irq_call_count;
  unsigned irq_tlb_count;
  unsigned irq_thermal_count;
  unsigned irq_threshold_count;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned irq_spurious_count;
 } ____cacheline_aligned_in_smp;
-
 #define cpu_pda(i) (_cpu_pda[i])
-
 #define pda_offset(field) offsetof(struct x8664_pda, field)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pda_to_op(op,field,val) do {   typedef typeof(_proxy_pda.field) T__;   if (0) { T__ tmp__; tmp__ = (val); }     switch (sizeof(_proxy_pda.field)) {   case 2:   asm(op "w %1,%%gs:%c2" :   "+m" (_proxy_pda.field) :   "ri" ((T__)val),   "i"(pda_offset(field)));   break;   case 4:   asm(op "l %1,%%gs:%c2" :   "+m" (_proxy_pda.field) :   "ri" ((T__)val),   "i" (pda_offset(field)));   break;   case 8:   asm(op "q %1,%%gs:%c2":   "+m" (_proxy_pda.field) :   "ri" ((T__)val),   "i"(pda_offset(field)));   break;   default:   __bad_pda_field();   }   } while (0)
-
 #define pda_from_op(op,field) ({   typeof(_proxy_pda.field) ret__;   switch (sizeof(_proxy_pda.field)) {   case 2:   asm(op "w %%gs:%c1,%0" :   "=r" (ret__) :   "i" (pda_offset(field)),   "m" (_proxy_pda.field));   break;   case 4:   asm(op "l %%gs:%c1,%0":   "=r" (ret__):   "i" (pda_offset(field)),   "m" (_proxy_pda.field));   break;   case 8:   asm(op "q %%gs:%c1,%0":   "=r" (ret__) :   "i" (pda_offset(field)),   "m" (_proxy_pda.field));   break;   default:   __bad_pda_field();   }   ret__; })
-
 #define read_pda(field) pda_from_op("mov",field)
 #define write_pda(field,val) pda_to_op("mov",field,val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define add_pda(field,val) pda_to_op("add",field,val)
 #define sub_pda(field,val) pda_to_op("sub",field,val)
 #define or_pda(field,val) pda_to_op("or",field,val)
-
 #define test_and_clear_bit_pda(bit,field) ({   int old__;   asm volatile("btr %2,%%gs:%c3\n\tsbbl %0,%0"   : "=r" (old__), "+m" (_proxy_pda.field)   : "dIr" (bit), "i" (pda_offset(field)) : "memory");   old__;  })
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
 #define PDA_STACKOFFSET (5*8)
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/percpu.h b/ndk/platforms/android-9/arch-x86/include/asm/percpu.h
index 7740e67..607b92e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/percpu.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/percpu.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "percpu_64.h"
+#include "percpu_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/percpu_32.h b/ndk/platforms/android-9/arch-x86/include/asm/percpu_32.h
index 21135d6..86bf3aa 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/percpu_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/percpu_32.h
@@ -7,30 +7,33 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ARCH_I386_PERCPU__
 #define __ARCH_I386_PERCPU__
-
 #ifdef __ASSEMBLY__
-
 #define PER_CPU(var, reg)   movl $per_cpu__##var, reg
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PER_CPU_VAR(var) per_cpu__##var
-
 #else
-
 #include <asm-generic/percpu.h>
 #define __percpu_seg ""
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define percpu_to_op(op,var,val)   do {   typedef typeof(var) T__;   if (0) { T__ tmp__; tmp__ = (val); }   switch (sizeof(var)) {   case 1:   asm(op "b %1,"__percpu_seg"%0"   : "+m" (var)   :"ri" ((T__)val));   break;   case 2:   asm(op "w %1,"__percpu_seg"%0"   : "+m" (var)   :"ri" ((T__)val));   break;   case 4:   asm(op "l %1,"__percpu_seg"%0"   : "+m" (var)   :"ri" ((T__)val));   break;   default: __bad_percpu_size();   }   } while (0)
-
 #define percpu_from_op(op,var)   ({   typeof(var) ret__;   switch (sizeof(var)) {   case 1:   asm(op "b "__percpu_seg"%1,%0"   : "=r" (ret__)   : "m" (var));   break;   case 2:   asm(op "w "__percpu_seg"%1,%0"   : "=r" (ret__)   : "m" (var));   break;   case 4:   asm(op "l "__percpu_seg"%1,%0"   : "=r" (ret__)   : "m" (var));   break;   default: __bad_percpu_size();   }   ret__; })
-
 #define x86_read_percpu(var) percpu_from_op("mov", per_cpu__##var)
 #define x86_write_percpu(var,val) percpu_to_op("mov", per_cpu__##var, val)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define x86_add_percpu(var,val) percpu_to_op("add", per_cpu__##var, val)
 #define x86_sub_percpu(var,val) percpu_to_op("sub", per_cpu__##var, val)
 #define x86_or_percpu(var,val) percpu_to_op("or", per_cpu__##var, val)
 #endif
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pgalloc.h b/ndk/platforms/android-9/arch-x86/include/asm/pgalloc.h
index d5a032b..9175367 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pgalloc.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pgalloc.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "pgalloc_64.h"
+#include "pgalloc_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pgalloc_32.h b/ndk/platforms/android-9/arch-x86/include/asm/pgalloc_32.h
index bc0f884..022ca61 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pgalloc_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pgalloc_32.h
@@ -7,24 +7,29 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_PGALLOC_H
 #define _I386_PGALLOC_H
-
 #include <linux/threads.h>
 #include <linux/mm.h>  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define paravirt_alloc_pt(mm, pfn) do { } while (0)
 #define paravirt_alloc_pd(pfn) do { } while (0)
 #define paravirt_alloc_pd(pfn) do { } while (0)
 #define paravirt_alloc_pd_clone(pfn, clonepfn, start, count) do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define paravirt_release_pt(pfn) do { } while (0)
 #define paravirt_release_pd(pfn) do { } while (0)
-
 #define pmd_populate_kernel(mm, pmd, pte)  do {   paravirt_alloc_pt(mm, __pa(pte) >> PAGE_SHIFT);   set_pmd(pmd, __pmd(_PAGE_TABLE + __pa(pte)));  } while (0)
-
 #define pmd_populate(mm, pmd, pte)  do {   paravirt_alloc_pt(mm, page_to_pfn(pte));   set_pmd(pmd, __pmd(_PAGE_TABLE +   ((unsigned long long)page_to_pfn(pte) <<   (unsigned long long) PAGE_SHIFT)));  } while (0)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __pte_free_tlb(tlb,pte)  do {   paravirt_release_pt(page_to_pfn(pte));   tlb_remove_page((tlb),(pte));  } while (0)
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level-defs.h b/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level-defs.h
index 9edc6c5..9a60db5 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level-defs.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level-defs.h
@@ -7,16 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_PGTABLE_2LEVEL_DEFS_H
 #define _I386_PGTABLE_2LEVEL_DEFS_H
-
 #define SHARED_KERNEL_PMD 0
-
 #define PGDIR_SHIFT 22
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTRS_PER_PGD 1024
-
 #define PTRS_PER_PTE 1024
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level.h b/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level.h
index 7ade4ed..77cdefd 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pgtable-2level.h
@@ -7,33 +7,44 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_PGTABLE_2LEVEL_H
 #define _I386_PGTABLE_2LEVEL_H
-
 #define pte_ERROR(e)   printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, (e).pte_low)
 #define pgd_ERROR(e)   printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define set_pte(pteptr, pteval) native_set_pte(pteptr, pteval)
 #define set_pte_at(mm,addr,ptep,pteval) native_set_pte_at(mm, addr, ptep, pteval)
 #define set_pmd(pmdptr, pmdval) native_set_pmd(pmdptr, pmdval)
 #define set_pte_atomic(pteptr, pteval) set_pte(pteptr,pteval)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define set_pte_present(mm,addr,ptep,pteval) set_pte_at(mm,addr,ptep,pteval)
 #define pte_clear(mm,addr,xp) do { set_pte_at(mm, addr, xp, __pte(0)); } while (0)
 #define pmd_clear(xp) do { set_pmd(xp, __pmd(0)); } while (0)
 #define native_ptep_get_and_clear(xp) native_local_ptep_get_and_clear(xp)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pte_page(x) pfn_to_page(pte_pfn(x))
 #define pte_none(x) (!(x).pte_low)
 #define pte_pfn(x) (pte_val(x) >> PAGE_SHIFT)
 #define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pfn_pmd(pfn, prot) __pmd(((pfn) << PAGE_SHIFT) | pgprot_val(prot))
 #define PTE_FILE_MAX_BITS 29
 #define pte_to_pgoff(pte)   ((((pte).pte_low >> 1) & 0x1f ) + (((pte).pte_low >> 8) << 5 ))
 #define pgoff_to_pte(off)   ((pte_t) { (((off) & 0x1f) << 1) + (((off) >> 5) << 8) + _PAGE_FILE })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __swp_type(x) (((x).val >> 1) & 0x1f)
 #define __swp_offset(x) ((x).val >> 8)
 #define __swp_entry(type, offset) ((swp_entry_t) { ((type) << 1) | ((offset) << 8) })
 #define __pte_to_swp_entry(pte) ((swp_entry_t) { (pte).pte_low })
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __swp_entry_to_pte(x) ((pte_t) { (x).val })
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pgtable.h b/ndk/platforms/android-9/arch-x86/include/asm/pgtable.h
index 797e473..a9bed6b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pgtable.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pgtable.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "pgtable_64.h"
+#include "pgtable_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/pgtable_32.h b/ndk/platforms/android-9/arch-x86/include/asm/pgtable_32.h
index c63ba93..4740571 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/pgtable_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/pgtable_32.h
@@ -7,169 +7,182 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_PGTABLE_H
 #define _I386_PGTABLE_H
-
 #ifndef __ASSEMBLY__
 #include <asm/processor.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/fixmap.h>
 #include <linux/threads.h>
 #include <asm/paravirt.h>
-
 #include <linux/bitops.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/slab.h>
 #include <linux/list.h>
 #include <linux/spinlock.h>
-
 struct mm_struct;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct vm_area_struct;
-
 #define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
-
 #include <asm/pgtable-2level-defs.h>
-
 #define PGDIR_SIZE (1UL << PGDIR_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PGDIR_MASK (~(PGDIR_SIZE-1))
-
 #define USER_PTRS_PER_PGD (TASK_SIZE/PGDIR_SIZE)
 #define FIRST_USER_ADDRESS 0
-
 #define USER_PGD_PTRS (PAGE_OFFSET >> PGDIR_SHIFT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KERNEL_PGD_PTRS (PTRS_PER_PGD-USER_PGD_PTRS)
-
 #define TWOLEVEL_PGDIR_SHIFT 22
 #define BOOT_USER_PGD_PTRS (__PAGE_OFFSET >> TWOLEVEL_PGDIR_SHIFT)
 #define BOOT_KERNEL_PGD_PTRS (1024-BOOT_USER_PGD_PTRS)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VMALLOC_OFFSET (8*1024*1024)
 #define VMALLOC_START (((unsigned long) high_memory +   2*VMALLOC_OFFSET-1) & ~(VMALLOC_OFFSET-1))
 #define VMALLOC_END (FIXADDR_START-2*PAGE_SIZE)
-
 #define _PAGE_BIT_PRESENT 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_BIT_RW 1
 #define _PAGE_BIT_USER 2
 #define _PAGE_BIT_PWT 3
 #define _PAGE_BIT_PCD 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_BIT_ACCESSED 5
 #define _PAGE_BIT_DIRTY 6
 #define _PAGE_BIT_PSE 7  
 #define _PAGE_BIT_GLOBAL 8  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_BIT_UNUSED1 9  
 #define _PAGE_BIT_UNUSED2 10
 #define _PAGE_BIT_UNUSED3 11
 #define _PAGE_BIT_NX 63
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_PRESENT 0x001
 #define _PAGE_RW 0x002
 #define _PAGE_USER 0x004
 #define _PAGE_PWT 0x008
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_PCD 0x010
 #define _PAGE_ACCESSED 0x020
 #define _PAGE_DIRTY 0x040
 #define _PAGE_PSE 0x080  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_GLOBAL 0x100  
 #define _PAGE_UNUSED1 0x200  
 #define _PAGE_UNUSED2 0x400
 #define _PAGE_UNUSED3 0x800
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _PAGE_FILE 0x040  
 #define _PAGE_PROTNONE 0x080  
 #define _PAGE_NX 0
-
 #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED | _PAGE_DIRTY)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _KERNPG_TABLE (_PAGE_PRESENT | _PAGE_RW | _PAGE_ACCESSED | _PAGE_DIRTY)
 #define _PAGE_CHG_MASK (PTE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY)
-
 #define PAGE_NONE   __pgprot(_PAGE_PROTNONE | _PAGE_ACCESSED)
 #define PAGE_SHARED   __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PAGE_SHARED_EXEC   __pgprot(_PAGE_PRESENT | _PAGE_RW | _PAGE_USER | _PAGE_ACCESSED)
 #define PAGE_COPY_NOEXEC   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_NX)
 #define PAGE_COPY_EXEC   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
 #define PAGE_COPY   PAGE_COPY_NOEXEC
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PAGE_READONLY   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_NX)
 #define PAGE_READONLY_EXEC   __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED)
-
 #define _PAGE_KERNEL   (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_NX)
 #define _PAGE_KERNEL_EXEC   (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
 #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
 #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_PCD)
 #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
-
 #define PAGE_KERNEL __pgprot(__PAGE_KERNEL)
 #define PAGE_KERNEL_RO __pgprot(__PAGE_KERNEL_RO)
 #define PAGE_KERNEL_EXEC __pgprot(__PAGE_KERNEL_EXEC)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PAGE_KERNEL_RX __pgprot(__PAGE_KERNEL_RX)
 #define PAGE_KERNEL_NOCACHE __pgprot(__PAGE_KERNEL_NOCACHE)
 #define PAGE_KERNEL_LARGE __pgprot(__PAGE_KERNEL_LARGE)
 #define PAGE_KERNEL_LARGE_EXEC __pgprot(__PAGE_KERNEL_LARGE_EXEC)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __P000 PAGE_NONE
 #define __P001 PAGE_READONLY
 #define __P010 PAGE_COPY
 #define __P011 PAGE_COPY
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __P100 PAGE_READONLY_EXEC
 #define __P101 PAGE_READONLY_EXEC
 #define __P110 PAGE_COPY_EXEC
 #define __P111 PAGE_COPY_EXEC
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __S000 PAGE_NONE
 #define __S001 PAGE_READONLY
 #define __S010 PAGE_SHARED
 #define __S011 PAGE_SHARED
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __S100 PAGE_READONLY_EXEC
 #define __S101 PAGE_READONLY_EXEC
 #define __S110 PAGE_SHARED_EXEC
 #define __S111 PAGE_SHARED_EXEC
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #undef TEST_ACCESS_OK
-
 #define pte_present(x) ((x).pte_low & (_PAGE_PRESENT | _PAGE_PROTNONE))
-
 #define pmd_none(x) (!(unsigned long)pmd_val(x))
 #define pmd_present(x) (pmd_val(x) & _PAGE_PRESENT)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pmd_bad(x) ((pmd_val(x) & (~PAGE_MASK & ~_PAGE_USER)) != _KERNPG_TABLE)
-
 #define pages_to_mb(x) ((x) >> (20-PAGE_SHIFT))
-
 #include <asm/pgtable-2level.h>
 #define pte_update(mm, addr, ptep) do { } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pte_update_defer(mm, addr, ptep) do { } while (0)
 #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
 #define ptep_set_access_flags(vma, address, ptep, entry, dirty)  ({   int __changed = !pte_same(*(ptep), entry);   if (__changed && dirty) {   (ptep)->pte_low = (entry).pte_low;   pte_update_defer((vma)->vm_mm, (address), (ptep));   flush_tlb_page(vma, address);   }   __changed;  })
 #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ptep_test_and_clear_young(vma, addr, ptep) ({   int __ret = 0;   if (pte_young(*(ptep)))   __ret = test_and_clear_bit(_PAGE_BIT_ACCESSED,   &(ptep)->pte_low);   if (__ret)   pte_update((vma)->vm_mm, addr, ptep);   __ret;  })
 #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
 #define ptep_clear_flush_young(vma, address, ptep)  ({   int __young;   __young = ptep_test_and_clear_young((vma), (address), (ptep));   if (__young)   flush_tlb_page(vma, address);   __young;  })
 #define __HAVE_ARCH_PTEP_GET_AND_CLEAR
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __HAVE_ARCH_PTEP_GET_AND_CLEAR_FULL
 #define __HAVE_ARCH_PTEP_SET_WRPROTECT
 #define pgprot_noncached(prot) ((boot_cpu_data.x86 > 3)   ? (__pgprot(pgprot_val(prot) | _PAGE_PCD | _PAGE_PWT)) : (prot))
 #define mk_pte(page, pgprot) pfn_pte(page_to_pfn(page), (pgprot))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pmd_large(pmd)  ((pmd_val(pmd) & (_PAGE_PSE|_PAGE_PRESENT)) == (_PAGE_PSE|_PAGE_PRESENT))
 #define pgd_index(address) (((address) >> PGDIR_SHIFT) & (PTRS_PER_PGD-1))
 #define pgd_index_k(addr) pgd_index(addr)
 #define pgd_offset(mm, address) ((mm)->pgd+pgd_index(address))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pgd_offset_k(address) pgd_offset(&init_mm, address)
 #define pmd_index(address)   (((address) >> PMD_SHIFT) & (PTRS_PER_PMD-1))
 #define pte_index(address)   (((address) >> PAGE_SHIFT) & (PTRS_PER_PTE - 1))
 #define pte_offset_kernel(dir, address)   ((pte_t *) pmd_page_vaddr(*(dir)) + pte_index(address))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
 #define pmd_page_vaddr(pmd)   ((unsigned long) __va(pmd_val(pmd) & PAGE_MASK))
-
- #define pte_offset_map(dir, address)   ((pte_t *)page_address(pmd_page(*(dir))) + pte_index(address))
+#define pte_offset_map(dir, address)   ((pte_t *)page_address(pmd_page(*(dir))) + pte_index(address))
 #define pte_offset_map_nested(dir, address) pte_offset_map(dir, address)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define pte_unmap(pte) do { } while (0)
 #define pte_unmap_nested(pte) do { } while (0)
 #define kpte_clear_flush(ptep, vaddr)  do {   pte_clear(&init_mm, vaddr, ptep);   __flush_tlb_one(vaddr);  } while (0)
 #define update_mmu_cache(vma,address,pte) do { } while (0)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
 #define io_remap_pfn_range(vma, vaddr, pfn, size, prot)   remap_pfn_range(vma, vaddr, pfn, size, prot)
 #include <asm-generic/pgtable.h>
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/poll.h b/ndk/platforms/android-9/arch-x86/include/asm/poll.h
index 5b16673..d7e8adc 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/poll.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/poll.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/poll.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/posix_types.h b/ndk/platforms/android-9/arch-x86/include/asm/posix_types.h
index 79bb490..4e26788 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/posix_types.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/posix_types.h
@@ -7,10 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#ifdef __i386__
 #include "posix_types_32.h"
-#else
-#include "posix_types_64.h"
-#endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/posix_types_32.h b/ndk/platforms/android-9/arch-x86/include/asm/posix_types_32.h
index 97a8b69..90136d2 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/posix_types_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/posix_types_32.h
@@ -7,64 +7,72 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ARCH_I386_POSIX_TYPES_H
 #define __ARCH_I386_POSIX_TYPES_H
-
 typedef unsigned long __kernel_ino_t;
 typedef unsigned short __kernel_mode_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef unsigned short __kernel_nlink_t;
 typedef long __kernel_off_t;
 typedef int __kernel_pid_t;
 typedef unsigned short __kernel_ipc_pid_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef unsigned short __kernel_uid_t;
 typedef unsigned short __kernel_gid_t;
 typedef unsigned int __kernel_size_t;
 typedef int __kernel_ssize_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef int __kernel_ptrdiff_t;
 typedef long __kernel_time_t;
 typedef long __kernel_suseconds_t;
 typedef long __kernel_clock_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef int __kernel_timer_t;
 typedef int __kernel_clockid_t;
 typedef int __kernel_daddr_t;
 typedef char * __kernel_caddr_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef unsigned short __kernel_uid16_t;
 typedef unsigned short __kernel_gid16_t;
 typedef unsigned int __kernel_uid32_t;
 typedef unsigned int __kernel_gid32_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef unsigned short __kernel_old_uid_t;
 typedef unsigned short __kernel_old_gid_t;
 typedef unsigned short __kernel_old_dev_t;
-
 #ifdef __GNUC__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef long long __kernel_loff_t;
 #endif
-
 typedef struct {
 #ifdef __USE_ALL
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int val[2];
 #else
  int __val[2];
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } __kernel_fsid_t;
-
 #if !defined(__GLIBC__) || __GLIBC__ < 2
-
 #undef __FD_SET
 #define __FD_SET(fd,fdsetp)   __asm__ __volatile__("btsl %1,%0":   "+m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd)))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #undef __FD_CLR
 #define __FD_CLR(fd,fdsetp)   __asm__ __volatile__("btrl %1,%0":   "+m" (*(__kernel_fd_set *) (fdsetp)):"r" ((int) (fd)))
-
 #undef __FD_ISSET
 #define __FD_ISSET(fd,fdsetp) (__extension__ ({   unsigned char __result;   __asm__ __volatile__("btl %1,%2 ; setb %0"   :"=q" (__result) :"r" ((int) (fd)),   "m" (*(__kernel_fd_set *) (fdsetp)));   __result; }))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #undef __FD_ZERO
 #define __FD_ZERO(fdsetp)  do {   int __d0, __d1;   __asm__ __volatile__("cld ; rep ; stosl"   :"=m" (*(__kernel_fd_set *) (fdsetp)),   "=&c" (__d0), "=&D" (__d1)   :"a" (0), "1" (__FDSET_LONGS),   "2" ((__kernel_fd_set *) (fdsetp)) : "memory");  } while (0)
-
 #endif
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/prctl.h b/ndk/platforms/android-9/arch-x86/include/asm/prctl.h
index 8852ca7..d194cf8 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/prctl.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/prctl.h
@@ -7,14 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef X86_64_PRCTL_H
 #define X86_64_PRCTL_H 1
-
 #define ARCH_SET_GS 0x1001
 #define ARCH_SET_FS 0x1002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ARCH_GET_FS 0x1003
 #define ARCH_GET_GS 0x1004
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/processor-flags.h b/ndk/platforms/android-9/arch-x86/include/asm/processor-flags.h
index 79e8f7d..ab46527 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/processor-flags.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/processor-flags.h
@@ -7,73 +7,88 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_I386_PROCESSOR_FLAGS_H
 #define __ASM_I386_PROCESSOR_FLAGS_H
-
 #define X86_EFLAGS_CF 0x00000001  
 #define X86_EFLAGS_PF 0x00000004  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_EFLAGS_AF 0x00000010  
 #define X86_EFLAGS_ZF 0x00000040  
 #define X86_EFLAGS_SF 0x00000080  
 #define X86_EFLAGS_TF 0x00000100  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_EFLAGS_IF 0x00000200  
 #define X86_EFLAGS_DF 0x00000400  
 #define X86_EFLAGS_OF 0x00000800  
 #define X86_EFLAGS_IOPL 0x00003000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_EFLAGS_NT 0x00004000  
 #define X86_EFLAGS_RF 0x00010000  
 #define X86_EFLAGS_VM 0x00020000  
 #define X86_EFLAGS_AC 0x00040000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_EFLAGS_VIF 0x00080000  
 #define X86_EFLAGS_VIP 0x00100000  
 #define X86_EFLAGS_ID 0x00200000  
-
 #define X86_CR0_PE 0x00000001  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR0_MP 0x00000002  
 #define X86_CR0_EM 0x00000004  
 #define X86_CR0_TS 0x00000008  
 #define X86_CR0_ET 0x00000010  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR0_NE 0x00000020  
 #define X86_CR0_WP 0x00010000  
 #define X86_CR0_AM 0x00040000  
 #define X86_CR0_NW 0x20000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR0_CD 0x40000000  
 #define X86_CR0_PG 0x80000000  
-
 #define X86_CR3_PWT 0x00000008  
 #define X86_CR3_PCD 0x00000010  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR4_VME 0x00000001  
 #define X86_CR4_PVI 0x00000002  
 #define X86_CR4_TSD 0x00000004  
 #define X86_CR4_DE 0x00000008  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR4_PSE 0x00000010  
 #define X86_CR4_PAE 0x00000020  
 #define X86_CR4_MCE 0x00000040  
 #define X86_CR4_PGE 0x00000080  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR4_PCE 0x00000100  
 #define X86_CR4_OSFXSR 0x00000200  
 #define X86_CR4_OSXMMEXCPT 0x00000400  
 #define X86_CR4_VMXE 0x00002000  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_CR8_TPR 0x0000000F  
-
 #define CX86_PCR0 0x20
 #define CX86_GCR 0xb8
 #define CX86_CCR0 0xc0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CX86_CCR1 0xc1
 #define CX86_CCR2 0xc2
 #define CX86_CCR3 0xc3
 #define CX86_CCR4 0xe8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CX86_CCR5 0xe9
 #define CX86_CCR6 0xea
 #define CX86_CCR7 0xeb
 #define CX86_PCR1 0xf0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CX86_DIR0 0xfe
 #define CX86_DIR1 0xff
 #define CX86_ARR_BASE 0xc4
 #define CX86_RCR_BASE 0xdc
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/processor.h b/ndk/platforms/android-9/arch-x86/include/asm/processor.h
index 7d47749..e9eaec8 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/processor.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/processor.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "processor_64.h"
+#include "processor_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/processor_32.h b/ndk/platforms/android-9/arch-x86/include/asm/processor_32.h
index 539edd1..c759016 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/processor_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/processor_32.h
@@ -7,318 +7,342 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_I386_PROCESSOR_H
 #define __ASM_I386_PROCESSOR_H
-
 #include <asm/vm86.h>
 #include <asm/math_emu.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/segment.h>
 #include <asm/page.h>
 #include <asm/types.h>
 #include <asm/sigcontext.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/cpufeature.h>
 #include <asm/msr.h>
 #include <asm/system.h>
 #include <linux/cache.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/threads.h>
 #include <asm/percpu.h>
 #include <linux/cpumask.h>
 #include <linux/init.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/processor-flags.h>
-
 struct desc_struct {
  unsigned long a,b;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define desc_empty(desc)   (!((desc)->a | (desc)->b))
-
 #define desc_equal(desc1, desc2)   (((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b))
-
 #define current_text_addr() ({ void *pc; __asm__("movl $1f,%0\n1:":"=g" (pc)); pc; })
-
 struct cpuinfo_x86 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 x86;
  __u8 x86_vendor;
  __u8 x86_model;
  __u8 x86_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char wp_works_ok;
  char hlt_works_ok;
  char hard_math;
  char rfu;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int cpuid_level;
  unsigned long x86_capability[NCAPINTS];
  char x86_vendor_id[16];
  char x86_model_id[64];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int x86_cache_size;
  int x86_cache_alignment;
  char fdiv_bug;
  char f00f_bug;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char coma_bug;
  char pad0;
  int x86_power;
  unsigned long loops_per_jiffy;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char x86_max_cores;
  unsigned char apicid;
  unsigned short x86_clflush_size;
 } __attribute__((__aligned__(SMP_CACHE_BYTES)));
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_VENDOR_INTEL 0
 #define X86_VENDOR_CYRIX 1
 #define X86_VENDOR_AMD 2
 #define X86_VENDOR_UMC 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_VENDOR_NEXGEN 4
 #define X86_VENDOR_CENTAUR 5
 #define X86_VENDOR_TRANSMETA 7
 #define X86_VENDOR_NSC 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define X86_VENDOR_NUM 9
 #define X86_VENDOR_UNKNOWN 0xff
-
 #define cpu_data(cpu) boot_cpu_data
 #define current_cpu_data boot_cpu_data
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define load_cr3(pgdir) write_cr3(__pa(pgdir))
-
 #define TASK_SIZE (PAGE_OFFSET)
-
 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
-
 #define HAVE_ARCH_PICK_MMAP_LAYOUT
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IO_BITMAP_BITS 65536
 #define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
 #define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
 #define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define INVALID_IO_BITMAP_OFFSET 0x8000
 #define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
-
 struct i387_fsave_struct {
  long cwd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long swd;
  long twd;
  long fip;
  long fcs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long foo;
  long fos;
  long st_space[20];
  long status;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct i387_fxsave_struct {
  unsigned short cwd;
  unsigned short swd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short twd;
  unsigned short fop;
  long fip;
  long fcs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long foo;
  long fos;
  long mxcsr;
  long mxcsr_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long st_space[32];
  long xmm_space[32];
  long padding[56];
 } __attribute__ ((aligned (16)));
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct i387_soft_struct {
  long cwd;
  long swd;
  long twd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long fip;
  long fcs;
  long foo;
  long fos;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long st_space[20];
  unsigned char ftop, changed, lookahead, no_update, rm, alimit;
  struct info *info;
  unsigned long entry_eip;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 union i387_union {
  struct i387_fsave_struct fsave;
  struct i387_fxsave_struct fxsave;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct i387_soft_struct soft;
 };
-
 typedef struct {
  unsigned long seg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 } mm_segment_t;
-
 struct thread_struct;
-
 struct i386_hw_tss {
  unsigned short back_link,__blh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long esp0;
  unsigned short ss0,__ss0h;
  unsigned long esp1;
  unsigned short ss1,__ss1h;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long esp2;
  unsigned short ss2,__ss2h;
  unsigned long __cr3;
  unsigned long eip;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long eflags;
  unsigned long eax,ecx,edx,ebx;
  unsigned long esp;
  unsigned long ebp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long esi;
  unsigned long edi;
  unsigned short es, __esh;
  unsigned short cs, __csh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short ss, __ssh;
  unsigned short ds, __dsh;
  unsigned short fs, __fsh;
  unsigned short gs, __gsh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short ldt, __ldth;
  unsigned short trace, io_bitmap_base;
 } __attribute__((packed));
-
 struct tss_struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct i386_hw_tss x86_tss;
-
  unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
-
  unsigned long io_bitmap_max;
  struct thread_struct *io_bitmap_owner;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long __cacheline_filler[35];
-
  unsigned long stack[64];
 } __attribute__((packed));
-
 #define ARCH_MIN_TASKALIGN 16
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct thread_struct {
-
  struct desc_struct tls_array[GDT_ENTRY_TLS_ENTRIES];
  unsigned long esp0;
  unsigned long sysenter_cs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long eip;
  unsigned long esp;
  unsigned long fs;
  unsigned long gs;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long debugreg[8];
-
  unsigned long cr2, trap_no, error_code;
-
  union i387_union i387;
-
  struct vm86_struct __user * vm86_info;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long screen_bitmap;
  unsigned long v86flags, v86mask, saved_esp0;
  unsigned int saved_fs, saved_gs;
-
  unsigned long *io_bitmap_ptr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long iopl;
-
  unsigned long io_bitmap_max;
 };
-
 #define INIT_THREAD {   .esp0 = sizeof(init_stack) + (long)&init_stack,   .vm86_info = NULL,   .sysenter_cs = __KERNEL_CS,   .io_bitmap_ptr = NULL,   .fs = __KERNEL_PERCPU,  }
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define INIT_TSS {   .x86_tss = {   .esp0 = sizeof(init_stack) + (long)&init_stack,   .ss0 = __KERNEL_DS,   .ss1 = __KERNEL_CS,   .io_bitmap_base = INVALID_IO_BITMAP_OFFSET,   },   .io_bitmap = { [ 0 ... IO_BITMAP_LONGS] = ~0 },  }
-
 #define start_thread(regs, new_eip, new_esp) do {   __asm__("movl %0,%%gs": :"r" (0));   regs->xfs = 0;   set_fs(USER_DS);   regs->xds = __USER_DS;   regs->xes = __USER_DS;   regs->xss = __USER_DS;   regs->xcs = __USER_CS;   regs->eip = new_eip;   regs->esp = new_esp;  } while (0)
-
 struct task_struct;
 struct mm_struct;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define THREAD_SIZE_LONGS (THREAD_SIZE/sizeof(unsigned long))
 #define KSTK_TOP(info)  ({   unsigned long *__ptr = (unsigned long *)(info);   (unsigned long)(&__ptr[THREAD_SIZE_LONGS]);  })
-
 #define task_pt_regs(task)  ({   struct pt_regs *__regs__;   __regs__ = (struct pt_regs *)(KSTK_TOP(task_stack_page(task))-8);   __regs__ - 1;  })
-
 #define KSTK_EIP(task) (task_pt_regs(task)->eip)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define KSTK_ESP(task) (task_pt_regs(task)->esp)
-
 struct microcode_header {
  unsigned int hdrver;
  unsigned int rev;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int date;
  unsigned int sig;
  unsigned int cksum;
  unsigned int ldrver;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int pf;
  unsigned int datasize;
  unsigned int totalsize;
  unsigned int reserved[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct microcode {
  struct microcode_header hdr;
  unsigned int bits[0];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 typedef struct microcode microcode_t;
 typedef struct microcode_header microcode_header_t;
-
 struct extended_signature {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int sig;
  unsigned int pf;
  unsigned int cksum;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct extended_sigtable {
  unsigned int count;
  unsigned int cksum;
  unsigned int reserved[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct extended_signature sigs[0];
 };
-
 #define cpu_relax() rep_nop()
 #define paravirt_enabled() 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __cpuid native_cpuid
 #define get_debugreg(var, register)   (var) = native_get_debugreg(register)
 #define set_debugreg(value, register)   native_set_debugreg(register, value)
 #define set_iopl_mask native_set_iopl_mask
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GENERIC_NOP1 ".byte 0x90\n"
 #define GENERIC_NOP2 ".byte 0x89,0xf6\n"
 #define GENERIC_NOP3 ".byte 0x8d,0x76,0x00\n"
 #define GENERIC_NOP4 ".byte 0x8d,0x74,0x26,0x00\n"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GENERIC_NOP5 GENERIC_NOP1 GENERIC_NOP4
 #define GENERIC_NOP6 ".byte 0x8d,0xb6,0x00,0x00,0x00,0x00\n"
 #define GENERIC_NOP7 ".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00\n"
 #define GENERIC_NOP8 GENERIC_NOP1 GENERIC_NOP7
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define K8_NOP1 GENERIC_NOP1
 #define K8_NOP2 ".byte 0x66,0x90\n" 
 #define K8_NOP3 ".byte 0x66,0x66,0x90\n" 
 #define K8_NOP4 ".byte 0x66,0x66,0x66,0x90\n" 
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define K8_NOP5 K8_NOP3 K8_NOP2 
 #define K8_NOP6 K8_NOP3 K8_NOP3
 #define K8_NOP7 K8_NOP4 K8_NOP3
 #define K8_NOP8 K8_NOP4 K8_NOP4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define K7_NOP1 GENERIC_NOP1
 #define K7_NOP2 ".byte 0x8b,0xc0\n" 
 #define K7_NOP3 ".byte 0x8d,0x04,0x20\n"
 #define K7_NOP4 ".byte 0x8d,0x44,0x20,0x00\n"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define K7_NOP5 K7_NOP4 ASM_NOP1
 #define K7_NOP6 ".byte 0x8d,0x80,0,0,0,0\n"
 #define K7_NOP7 ".byte 0x8D,0x04,0x05,0,0,0,0\n"
 #define K7_NOP8 K7_NOP7 ASM_NOP1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define P6_NOP1 GENERIC_NOP1
 #define P6_NOP2 ".byte 0x66,0x90\n"
 #define P6_NOP3 ".byte 0x0f,0x1f,0x00\n"
 #define P6_NOP4 ".byte 0x0f,0x1f,0x40,0\n"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define P6_NOP5 ".byte 0x0f,0x1f,0x44,0x00,0\n"
 #define P6_NOP6 ".byte 0x66,0x0f,0x1f,0x44,0x00,0\n"
 #define P6_NOP7 ".byte 0x0f,0x1f,0x80,0,0,0,0\n"
 #define P6_NOP8 ".byte 0x0f,0x1f,0x84,0x00,0,0,0,0\n"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ASM_NOP1 GENERIC_NOP1
 #define ASM_NOP2 GENERIC_NOP2
 #define ASM_NOP3 GENERIC_NOP3
 #define ASM_NOP4 GENERIC_NOP4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ASM_NOP5 GENERIC_NOP5
 #define ASM_NOP6 GENERIC_NOP6
 #define ASM_NOP7 GENERIC_NOP7
 #define ASM_NOP8 GENERIC_NOP8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ASM_NOP_MAX 8
 #define ARCH_HAS_PREFETCH
 #define ARCH_HAS_PREFETCH
 #define ARCH_HAS_PREFETCHW
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ARCH_HAS_SPINLOCK_PREFETCH
 #define spin_lock_prefetch(x) prefetchw(x)
-
 #define cache_line_size() (boot_cpu_data.x86_cache_alignment)
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ptrace-abi.h b/ndk/platforms/android-9/arch-x86/include/asm/ptrace-abi.h
index 3e6ea08..bbc7e86 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ptrace-abi.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ptrace-abi.h
@@ -7,82 +7,57 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_PTRACE_ABI_H
 #define _ASM_X86_PTRACE_ABI_H
-
-#ifdef __i386__
-
 #define EBX 0
 #define ECX 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EDX 2
 #define ESI 3
 #define EDI 4
 #define EBP 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EAX 6
 #define DS 7
 #define ES 8
 #define FS 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GS 10
 #define ORIG_EAX 11
 #define EIP 12
 #define CS 13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EFL 14
 #define UESP 15
 #define SS 16
 #define FRAME_SIZE 17
-
-#else
-
-#if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS)
-#define R15 0
-#define R14 8
-#define R13 16
-#define R12 24
-#define RBP 32
-#define RBX 40
-
-#define R11 48
-#define R10 56
-#define R9 64
-#define R8 72
-#define RAX 80
-#define RCX 88
-#define RDX 96
-#define RSI 104
-#define RDI 112
-#define ORIG_RAX 120  
-
-#define RIP 128
-#define CS 136
-#define EFLAGS 144
-#define RSP 152
-#define SS 160
-#define ARGOFFSET R11
-#endif
-
-#define FRAME_SIZE 168
-
-#endif
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTRACE_GETREGS 12
 #define PTRACE_SETREGS 13
 #define PTRACE_GETFPREGS 14
 #define PTRACE_SETFPREGS 15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTRACE_GETFPXREGS 18
 #define PTRACE_SETFPXREGS 19
-
 #define PTRACE_OLDSETOPTIONS 21
-
 #define PTRACE_GET_THREAD_AREA 25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTRACE_SET_THREAD_AREA 26
-
 #ifdef __x86_64__
 #define PTRACE_ARCH_PRCTL 30
 #else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PTRACE_SYSEMU 31
 #define PTRACE_SYSEMU_SINGLESTEP 32
 #endif
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/ptrace.h b/ndk/platforms/android-9/arch-x86/include/asm/ptrace.h
index 4743e0f..95d381e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/ptrace.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/ptrace.h
@@ -7,68 +7,43 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_PTRACE_H
 #define _ASM_X86_PTRACE_H
-
 #include <linux/compiler.h>  
 #include <asm/ptrace-abi.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #ifndef __ASSEMBLY__
-
-#ifdef __i386__
-
 struct pt_regs {
  long ebx;
  long ecx;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long edx;
  long esi;
  long edi;
  long ebp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long eax;
  int xds;
  int xes;
  int xfs;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long orig_eax;
  long eip;
  int xcs;
  long eflags;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long esp;
  int xss;
 };
-
-#else
-
-struct pt_regs {
- unsigned long r15;
- unsigned long r14;
- unsigned long r13;
- unsigned long r12;
- unsigned long rbp;
- unsigned long rbx;
-
- unsigned long r11;
- unsigned long r10;
- unsigned long r9;
- unsigned long r8;
- unsigned long rax;
- unsigned long rcx;
- unsigned long rdx;
- unsigned long rsi;
- unsigned long rdi;
- unsigned long orig_rax;
-
- unsigned long rip;
- unsigned long cs;
- unsigned long eflags;
- unsigned long rsp;
- unsigned long ss;
-
-};
-
 #endif
-#endif
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/required-features.h b/ndk/platforms/android-9/arch-x86/include/asm/required-features.h
index a96517a..df9d33c 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/required-features.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/required-features.h
@@ -7,38 +7,42 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_REQUIRED_FEATURES_H
 #define _ASM_REQUIRED_FEATURES_H 1
-
 #define NEED_FPU (1<<(X86_FEATURE_FPU & 31))
-
 #define NEED_PAE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NEED_CX8 0
-
 #define NEED_CMOV 0
-
 #define NEED_3DNOW 0
-
 #define NEED_PSE 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NEED_MSR 0
 #define NEED_PGE 0
 #define NEED_FXSR 0
 #define NEED_XMM 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NEED_XMM2 0
 #define NEED_LM 0
-
 #define REQUIRED_MASK0 (NEED_FPU|NEED_PSE|NEED_MSR|NEED_PAE|  NEED_CX8|NEED_PGE|NEED_FXSR|NEED_CMOV|  NEED_XMM|NEED_XMM2)
 #define SSE_MASK (NEED_XMM|NEED_XMM2)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW)
-
 #define REQUIRED_MASK2 0
 #define REQUIRED_MASK3 0
 #define REQUIRED_MASK4 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define REQUIRED_MASK5 0
 #define REQUIRED_MASK6 0
 #define REQUIRED_MASK7 0
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/resource.h b/ndk/platforms/android-9/arch-x86/include/asm/resource.h
index 29d9e12..371adb5 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/resource.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/resource.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/resource.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/rwlock.h b/ndk/platforms/android-9/arch-x86/include/asm/rwlock.h
index 3693542..82a96e0 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/rwlock.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/rwlock.h
@@ -7,12 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_RWLOCK_H
 #define _ASM_X86_RWLOCK_H
-
 #define RW_LOCK_BIAS 0x01000000
 #define RW_LOCK_BIAS_STR "0x01000000"
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/scatterlist.h b/ndk/platforms/android-9/arch-x86/include/asm/scatterlist.h
index fa4d0cc..b691d08 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/scatterlist.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/scatterlist.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "scatterlist_64.h"
+#include "scatterlist_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/scatterlist_32.h b/ndk/platforms/android-9/arch-x86/include/asm/scatterlist_32.h
index 29044c3..e3c777d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/scatterlist_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/scatterlist_32.h
@@ -7,25 +7,29 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_SCATTERLIST_H
 #define _I386_SCATTERLIST_H
-
 #include <asm/types.h>
-
 struct scatterlist {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long page_link;
  unsigned int offset;
  dma_addr_t dma_address;
  unsigned int length;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #define ARCH_HAS_SG_CHAIN
-
 #define sg_dma_address(sg) ((sg)->dma_address)
 #define sg_dma_len(sg) ((sg)->length)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ISA_DMA_THRESHOLD (0x00ffffff)
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/sections.h b/ndk/platforms/android-9/arch-x86/include/asm/sections.h
index a21da3e..7f35a59 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/sections.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/sections.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #include <asm-generic/sections.h>
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/segment.h b/ndk/platforms/android-9/arch-x86/include/asm/segment.h
index 6877a80..145e21d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/segment.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/segment.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "segment_64.h"
+#include "segment_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/segment_32.h b/ndk/platforms/android-9/arch-x86/include/asm/segment_32.h
index 54b312b..5d7d0f9 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/segment_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/segment_32.h
@@ -7,83 +7,75 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_SEGMENT_H
 #define _ASM_SEGMENT_H
-
 #define GDT_ENTRY_TLS_ENTRIES 3
 #define GDT_ENTRY_TLS_MIN 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
-
 #define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
-
 #define GDT_ENTRY_DEFAULT_USER_CS 14
 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS * 8 + 3)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GDT_ENTRY_DEFAULT_USER_DS 15
 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS * 8 + 3)
-
 #define GDT_ENTRY_KERNEL_BASE 12
-
 #define GDT_ENTRY_KERNEL_CS (GDT_ENTRY_KERNEL_BASE + 0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS * 8)
-
 #define GDT_ENTRY_KERNEL_DS (GDT_ENTRY_KERNEL_BASE + 1)
 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS * 8)
-
 #define GDT_ENTRY_TSS (GDT_ENTRY_KERNEL_BASE + 4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GDT_ENTRY_LDT (GDT_ENTRY_KERNEL_BASE + 5)
-
 #define GDT_ENTRY_PNPBIOS_BASE (GDT_ENTRY_KERNEL_BASE + 6)
 #define GDT_ENTRY_APMBIOS_BASE (GDT_ENTRY_KERNEL_BASE + 11)
-
 #define GDT_ENTRY_ESPFIX_SS (GDT_ENTRY_KERNEL_BASE + 14)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8)
-
 #define GDT_ENTRY_PERCPU (GDT_ENTRY_KERNEL_BASE + 15)
 #define __KERNEL_PERCPU 0
-
 #define GDT_ENTRY_DOUBLEFAULT_TSS 31
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GDT_ENTRIES 32
 #define GDT_SIZE (GDT_ENTRIES * 8)
-
 #define GDT_ENTRY_BOOT_CS 2
 #define __BOOT_CS (GDT_ENTRY_BOOT_CS * 8)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GDT_ENTRY_BOOT_DS (GDT_ENTRY_BOOT_CS + 1)
 #define __BOOT_DS (GDT_ENTRY_BOOT_DS * 8)
-
 #define GDT_ENTRY_PNPBIOS_CS32 (GDT_ENTRY_PNPBIOS_BASE + 0)
 #define GDT_ENTRY_PNPBIOS_CS16 (GDT_ENTRY_PNPBIOS_BASE + 1)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define GDT_ENTRY_PNPBIOS_DS (GDT_ENTRY_PNPBIOS_BASE + 2)
 #define GDT_ENTRY_PNPBIOS_TS1 (GDT_ENTRY_PNPBIOS_BASE + 3)
 #define GDT_ENTRY_PNPBIOS_TS2 (GDT_ENTRY_PNPBIOS_BASE + 4)
-
 #define PNP_CS32 (GDT_ENTRY_PNPBIOS_CS32 * 8)  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16 * 8)  
 #define PNP_DS (GDT_ENTRY_PNPBIOS_DS * 8)  
 #define PNP_TS1 (GDT_ENTRY_PNPBIOS_TS1 * 8)  
 #define PNP_TS2 (GDT_ENTRY_PNPBIOS_TS2 * 8)  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IDT_ENTRIES 256
-
 #define SEGMENT_RPL_MASK 0x3
-
 #define SEGMENT_TI_MASK 0x4
-
 #define USER_RPL 0x3
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SEGMENT_LDT 0x4
 #define SEGMENT_GDT 0x0
-
 #define get_kernel_rpl() 0
-
 #define SEGMENT_IS_KERNEL_CODE(x) (((x) & 0xfc) == GDT_ENTRY_KERNEL_CS * 8)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SEGMENT_IS_FLAT_CODE(x) (((x) & 0xec) == GDT_ENTRY_KERNEL_CS * 8)
-
 #define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == GDT_ENTRY_PNPBIOS_BASE * 8)
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/semaphore.h b/ndk/platforms/android-9/arch-x86/include/asm/semaphore.h
index 8b4c595..7a2223e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/semaphore.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/semaphore.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "semaphore_64.h"
+#include "semaphore_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/semaphore_32.h b/ndk/platforms/android-9/arch-x86/include/asm/semaphore_32.h
index babe779..7d48d0e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/semaphore_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/semaphore_32.h
@@ -7,11 +7,17 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_SEMAPHORE_H
 #define _I386_SEMAPHORE_H
-
 #include <linux/linkage.h>
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/sembuf.h b/ndk/platforms/android-9/arch-x86/include/asm/sembuf.h
index 1695208..d1cb296 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/sembuf.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/sembuf.h
@@ -7,20 +7,28 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SEMBUF_H
 #define _ASM_X86_SEMBUF_H
-
 struct semid64_ds {
  struct ipc64_perm sem_perm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_time_t sem_otime;
  unsigned long __unused1;
  __kernel_time_t sem_ctime;
  unsigned long __unused2;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long sem_nsems;
  unsigned long __unused3;
  unsigned long __unused4;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/setup.h b/ndk/platforms/android-9/arch-x86/include/asm/setup.h
index 696ed97..fe6ca0f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/setup.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/setup.h
@@ -7,11 +7,17 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SETUP_H
 #define _ASM_X86_SETUP_H
-
 #define COMMAND_LINE_SIZE 2048
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/shmbuf.h b/ndk/platforms/android-9/arch-x86/include/asm/shmbuf.h
index 314ccb7..5ecfe08 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/shmbuf.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/shmbuf.h
@@ -7,43 +7,48 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SHMBUF_H
 #define _ASM_X86_SHMBUF_H
-
 struct shmid64_ds {
  struct ipc64_perm shm_perm;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  size_t shm_segsz;
  __kernel_time_t shm_atime;
-#ifdef __i386__
  unsigned long __unused1;
-#endif
  __kernel_time_t shm_dtime;
-#ifdef __i386__
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long __unused2;
-#endif
  __kernel_time_t shm_ctime;
-#ifdef __i386__
  unsigned long __unused3;
-#endif
  __kernel_pid_t shm_cpid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __kernel_pid_t shm_lpid;
  unsigned long shm_nattch;
  unsigned long __unused4;
  unsigned long __unused5;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct shminfo64 {
  unsigned long shmmax;
  unsigned long shmmin;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long shmmni;
  unsigned long shmseg;
  unsigned long shmall;
  unsigned long __unused1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long __unused2;
  unsigned long __unused3;
  unsigned long __unused4;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/shmparam.h b/ndk/platforms/android-9/arch-x86/include/asm/shmparam.h
index e667ba1..43fd83e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/shmparam.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/shmparam.h
@@ -7,11 +7,17 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SHMPARAM_H
 #define _ASM_X86_SHMPARAM_H
-
 #define SHMLBA PAGE_SIZE  
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/sigcontext.h b/ndk/platforms/android-9/arch-x86/include/asm/sigcontext.h
index a8f76f0..390189f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/sigcontext.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/sigcontext.h
@@ -7,126 +7,87 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SIGCONTEXT_H
 #define _ASM_X86_SIGCONTEXT_H
-
 #include <linux/compiler.h>
 #include <asm/types.h>
-
-#ifdef __i386__
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct _fpreg {
  unsigned short significand[4];
  unsigned short exponent;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct _fpxreg {
  unsigned short significand[4];
  unsigned short exponent;
  unsigned short padding[3];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct _xmmreg {
  unsigned long element[4];
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct _fpstate {
-
  unsigned long cw;
  unsigned long sw;
  unsigned long tag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long ipoff;
  unsigned long cssel;
  unsigned long dataoff;
  unsigned long datasel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct _fpreg _st[8];
  unsigned short status;
  unsigned short magic;
-
  unsigned long _fxsr_env[6];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long mxcsr;
  unsigned long reserved;
  struct _fpxreg _fxsr_st[8];
  struct _xmmreg _xmm[8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long padding[56];
 };
-
 #define X86_FXSR_MAGIC 0x0000
-
 struct sigcontext {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short gs, __gsh;
  unsigned short fs, __fsh;
  unsigned short es, __esh;
  unsigned short ds, __dsh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long edi;
  unsigned long esi;
  unsigned long ebp;
  unsigned long esp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long ebx;
  unsigned long edx;
  unsigned long ecx;
  unsigned long eax;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long trapno;
  unsigned long err;
  unsigned long eip;
  unsigned short cs, __csh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long eflags;
  unsigned long esp_at_signal;
  unsigned short ss, __ssh;
  struct _fpstate __user * fpstate;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long oldmask;
  unsigned long cr2;
 };
-
-#else
-
-struct _fpstate {
- __u16 cwd;
- __u16 swd;
- __u16 twd;
- __u16 fop;
- __u64 rip;
- __u64 rdp;
- __u32 mxcsr;
- __u32 mxcsr_mask;
- __u32 st_space[32];
- __u32 xmm_space[64];
- __u32 reserved2[24];
-};
-
-struct sigcontext {
- unsigned long r8;
- unsigned long r9;
- unsigned long r10;
- unsigned long r11;
- unsigned long r12;
- unsigned long r13;
- unsigned long r14;
- unsigned long r15;
- unsigned long rdi;
- unsigned long rsi;
- unsigned long rbp;
- unsigned long rbx;
- unsigned long rdx;
- unsigned long rax;
- unsigned long rcx;
- unsigned long rsp;
- unsigned long rip;
- unsigned long eflags;
- unsigned short cs;
- unsigned short gs;
- unsigned short fs;
- unsigned short __pad0;
- unsigned long err;
- unsigned long trapno;
- unsigned long oldmask;
- unsigned long cr2;
- struct _fpstate __user *fpstate;
- unsigned long reserved1[8];
-};
-
 #endif
-
-#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/siginfo.h b/ndk/platforms/android-9/arch-x86/include/asm/siginfo.h
index 0d21d22..6459be7 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/siginfo.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/siginfo.h
@@ -7,15 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SIGINFO_H
 #define _ASM_X86_SIGINFO_H
-
 #ifdef __x86_64__
 #define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
 #include <asm-generic/siginfo.h>
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/signal.h b/ndk/platforms/android-9/arch-x86/include/asm/signal.h
index 6d84eab..1c8f2f6 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/signal.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/signal.h
@@ -7,121 +7,112 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SIGNAL_H
 #define _ASM_X86_SIGNAL_H
-
 #ifndef __ASSEMBLY__
 #include <linux/types.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/time.h>
 #include <linux/compiler.h>
-
 struct siginfo;
-
 #define NSIG 32
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef unsigned long sigset_t;
-
 #endif
-
 #define SIGHUP 1
 #define SIGINT 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGQUIT 3
 #define SIGILL 4
 #define SIGTRAP 5
 #define SIGABRT 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGIOT 6
 #define SIGBUS 7
 #define SIGFPE 8
 #define SIGKILL 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGUSR1 10
 #define SIGSEGV 11
 #define SIGUSR2 12
 #define SIGPIPE 13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGALRM 14
 #define SIGTERM 15
 #define SIGSTKFLT 16
 #define SIGCHLD 17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGCONT 18
 #define SIGSTOP 19
 #define SIGTSTP 20
 #define SIGTTIN 21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGTTOU 22
 #define SIGURG 23
 #define SIGXCPU 24
 #define SIGXFSZ 25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGVTALRM 26
 #define SIGPROF 27
 #define SIGWINCH 28
 #define SIGIO 29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGPOLL SIGIO
-
 #define SIGPWR 30
 #define SIGSYS 31
 #define SIGUNUSED 31
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIGRTMIN 32
 #define SIGRTMAX _NSIG
-
 #define SA_NOCLDSTOP 0x00000001u
 #define SA_NOCLDWAIT 0x00000002u
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SA_SIGINFO 0x00000004u
 #define SA_ONSTACK 0x08000000u
 #define SA_RESTART 0x10000000u
 #define SA_NODEFER 0x40000000u
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SA_RESETHAND 0x80000000u
-
 #define SA_NOMASK SA_NODEFER
 #define SA_ONESHOT SA_RESETHAND
-
 #define SA_RESTORER 0x04000000
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SS_ONSTACK 1
 #define SS_DISABLE 2
-
 #define MINSIGSTKSZ 2048
 #define SIGSTKSZ 8192
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm-generic/signal.h>
-
 #ifndef __ASSEMBLY__
-
-#ifdef __i386__
-
 struct sigaction {
  union {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __sighandler_t _sa_handler;
  void (*_sa_sigaction)(int, struct siginfo *, void *);
  } _u;
  sigset_t sa_mask;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long sa_flags;
  void (*sa_restorer)(void);
 };
-
 #define sa_handler _u._sa_handler
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define sa_sigaction _u._sa_sigaction
-
-#else
-
-struct sigaction {
- __sighandler_t sa_handler;
- unsigned long sa_flags;
- __sigrestore_t sa_restorer;
- sigset_t sa_mask;
-};
-
-struct k_sigaction {
- struct sigaction sa;
-};
-
-#endif
-
 typedef struct sigaltstack {
  void __user *ss_sp;
  int ss_flags;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  size_t ss_size;
 } stack_t;
-
 #endif
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/smp.h b/ndk/platforms/android-9/arch-x86/include/asm/smp.h
index 40d4601..4e439d5 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/smp.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/smp.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "smp_64.h"
+#include "smp_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/smp_32.h b/ndk/platforms/android-9/arch-x86/include/asm/smp_32.h
index f093a24..e428b7b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/smp_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/smp_32.h
@@ -7,28 +7,30 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_SMP_H
 #define __ASM_SMP_H
-
 #ifndef __ASSEMBLY__
 #include <linux/kernel.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/threads.h>
 #include <linux/cpumask.h>
 #endif
-
 #define BAD_APICID 0xFFu
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define safe_smp_processor_id() 0
 #define cpu_physical_id(cpu) boot_cpu_physical_apicid
-
 #define NO_PROC_ID 0xFF  
-
 #ifndef __ASSEMBLY__
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define hard_smp_processor_id() 0
-
 #endif
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/socket.h b/ndk/platforms/android-9/arch-x86/include/asm/socket.h
index 27d243f..b520169 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/socket.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/socket.h
@@ -7,57 +7,63 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_SOCKET_H
 #define _ASM_SOCKET_H
-
 #include <asm/sockios.h>
-
 #define SOL_SOCKET 1
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_DEBUG 1
 #define SO_REUSEADDR 2
 #define SO_TYPE 3
 #define SO_ERROR 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_DONTROUTE 5
 #define SO_BROADCAST 6
 #define SO_SNDBUF 7
 #define SO_RCVBUF 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_SNDBUFFORCE 32
 #define SO_RCVBUFFORCE 33
 #define SO_KEEPALIVE 9
 #define SO_OOBINLINE 10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_NO_CHECK 11
 #define SO_PRIORITY 12
 #define SO_LINGER 13
 #define SO_BSDCOMPAT 14
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_PASSCRED 16
 #define SO_PEERCRED 17
 #define SO_RCVLOWAT 18
 #define SO_SNDLOWAT 19
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_RCVTIMEO 20
 #define SO_SNDTIMEO 21
-
 #define SO_SECURITY_AUTHENTICATION 22
 #define SO_SECURITY_ENCRYPTION_TRANSPORT 23
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_SECURITY_ENCRYPTION_NETWORK 24
-
 #define SO_BINDTODEVICE 25
-
 #define SO_ATTACH_FILTER 26
 #define SO_DETACH_FILTER 27
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_PEERNAME 28
 #define SO_TIMESTAMP 29
 #define SCM_TIMESTAMP SO_TIMESTAMP
-
 #define SO_ACCEPTCONN 30
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SO_PEERSEC 31
 #define SO_PASSSEC 34
 #define SO_TIMESTAMPNS 35
 #define SCM_TIMESTAMPNS SO_TIMESTAMPNS
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/sockios.h b/ndk/platforms/android-9/arch-x86/include/asm/sockios.h
index ebdfa98..d8bd1a3 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/sockios.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/sockios.h
@@ -7,17 +7,24 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_SOCKIOS_H
 #define _ASM_X86_SOCKIOS_H
-
 #define FIOSETOWN 0x8901
 #define SIOCSPGRP 0x8902
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define FIOGETOWN 0x8903
 #define SIOCGPGRP 0x8904
 #define SIOCATMARK 0x8905
 #define SIOCGSTAMP 0x8906  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SIOCGSTAMPNS 0x8907  
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/spinlock.h b/ndk/platforms/android-9/arch-x86/include/asm/spinlock.h
index 10d123a..286bf86 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/spinlock.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/spinlock.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "spinlock_64.h"
+#include "spinlock_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/spinlock_32.h b/ndk/platforms/android-9/arch-x86/include/asm/spinlock_32.h
index 171783e..5d2eb05 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/spinlock_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/spinlock_32.h
@@ -7,23 +7,30 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_SPINLOCK_H
 #define __ASM_SPINLOCK_H
-
 #include <asm/atomic.h>
 #include <asm/rwlock.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/page.h>
 #include <asm/processor.h>
 #include <linux/compiler.h>
-
 #define CLI_STRING "cli"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define STI_STRING "sti"
 #define CLI_STI_CLOBBERS
 #define CLI_STI_INPUT_ARGS
-
 #define _raw_spin_relax(lock) cpu_relax()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _raw_read_relax(lock) cpu_relax()
 #define _raw_write_relax(lock) cpu_relax()
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/spinlock_types.h b/ndk/platforms/android-9/arch-x86/include/asm/spinlock_types.h
index ab914c4..9af3cce 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/spinlock_types.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/spinlock_types.h
@@ -7,25 +7,29 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_SPINLOCK_TYPES_H
 #define __ASM_SPINLOCK_TYPES_H
-
 #ifndef __LINUX_SPINLOCK_TYPES_H
 #error "please don't include this file directly"
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
-
 typedef struct {
  unsigned int slock;
 } raw_spinlock_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __RAW_SPIN_LOCK_UNLOCKED { 1 }
-
 typedef struct {
  unsigned int lock;
 } raw_rwlock_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __RAW_RW_LOCK_UNLOCKED { RW_LOCK_BIAS }
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/stat.h b/ndk/platforms/android-9/arch-x86/include/asm/stat.h
index 837d716..3878c88 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/stat.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/stat.h
@@ -7,114 +7,85 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_STAT_H
 #define _ASM_X86_STAT_H
-
 #define STAT_HAVE_NSEC 1
-
-#ifdef __i386__
 struct stat {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long st_dev;
  unsigned long st_ino;
  unsigned short st_mode;
  unsigned short st_nlink;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short st_uid;
  unsigned short st_gid;
  unsigned long st_rdev;
  unsigned long st_size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long st_blksize;
  unsigned long st_blocks;
  unsigned long st_atime;
  unsigned long st_atime_nsec;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long st_mtime;
  unsigned long st_mtime_nsec;
  unsigned long st_ctime;
  unsigned long st_ctime_nsec;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long __unused4;
  unsigned long __unused5;
 };
-
 #define STAT64_HAS_BROKEN_ST_INO 1
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct stat64 {
  unsigned long long st_dev;
  unsigned char __pad0[4];
-
  unsigned long __st_ino;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int st_mode;
  unsigned int st_nlink;
-
  unsigned long st_uid;
  unsigned long st_gid;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long long st_rdev;
  unsigned char __pad3[4];
-
  long long st_size;
  unsigned long st_blksize;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long long st_blocks;
-
  unsigned long st_atime;
  unsigned long st_atime_nsec;
-
  unsigned long st_mtime;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned int st_mtime_nsec;
-
  unsigned long st_ctime;
  unsigned long st_ctime_nsec;
-
  unsigned long long st_ino;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
-#else
-
-struct stat {
- unsigned long st_dev;
- unsigned long st_ino;
- unsigned long st_nlink;
-
- unsigned int st_mode;
- unsigned int st_uid;
- unsigned int st_gid;
- unsigned int __pad0;
- unsigned long st_rdev;
- long st_size;
- long st_blksize;
- long st_blocks;
-
- unsigned long st_atime;
- unsigned long st_atime_nsec;
- unsigned long st_mtime;
- unsigned long st_mtime_nsec;
- unsigned long st_ctime;
- unsigned long st_ctime_nsec;
- long __unused[3];
-};
-#endif
-
 struct __old_kernel_stat {
  unsigned short st_dev;
  unsigned short st_ino;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short st_mode;
  unsigned short st_nlink;
  unsigned short st_uid;
  unsigned short st_gid;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short st_rdev;
-#ifdef __i386__
  unsigned long st_size;
  unsigned long st_atime;
  unsigned long st_mtime;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long st_ctime;
-#else
- unsigned int st_size;
- unsigned int st_atime;
- unsigned int st_mtime;
- unsigned int st_ctime;
-#endif
 };
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/statfs.h b/ndk/platforms/android-9/arch-x86/include/asm/statfs.h
index 592d864..7472605 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/statfs.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/statfs.h
@@ -7,56 +7,17 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_STATFS_H
 #define _ASM_X86_STATFS_H
-
-#ifdef __i386__
 #include <asm-generic/statfs.h>
-#else
-
-struct statfs {
- long f_type;
- long f_bsize;
- long f_blocks;
- long f_bfree;
- long f_bavail;
- long f_files;
- long f_ffree;
- __kernel_fsid_t f_fsid;
- long f_namelen;
- long f_frsize;
- long f_spare[5];
-};
-
-struct statfs64 {
- long f_type;
- long f_bsize;
- long f_blocks;
- long f_bfree;
- long f_bavail;
- long f_files;
- long f_ffree;
- __kernel_fsid_t f_fsid;
- long f_namelen;
- long f_frsize;
- long f_spare[5];
-};
-
-struct compat_statfs64 {
- __u32 f_type;
- __u32 f_bsize;
- __u64 f_blocks;
- __u64 f_bfree;
- __u64 f_bavail;
- __u64 f_files;
- __u64 f_ffree;
- __kernel_fsid_t f_fsid;
- __u32 f_namelen;
- __u32 f_frsize;
- __u32 f_spare[5];
-} __attribute__((packed));
-
 #endif
-#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/string.h b/ndk/platforms/android-9/arch-x86/include/asm/string.h
index 92fa291..874b2f0 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/string.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/string.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "string_64.h"
+#include "string_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/string_32.h b/ndk/platforms/android-9/arch-x86/include/asm/string_32.h
index 58a72d7..3063858 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/string_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/string_32.h
@@ -7,9 +7,15 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_STRING_H_
 #define _I386_STRING_H_
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/swiotlb.h b/ndk/platforms/android-9/arch-x86/include/asm/swiotlb.h
index 5ee37b3..79bd3e7 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/swiotlb.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/swiotlb.h
@@ -7,13 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_SWIOTLB_H
 #define _ASM_SWIOTLB_H 1
-
 #include <asm/dma-mapping.h>
-
 #define swiotlb 0
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/system.h b/ndk/platforms/android-9/arch-x86/include/asm/system.h
index 834193b..12767cd 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/system.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/system.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "system_64.h"
+#include "system_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/system_32.h b/ndk/platforms/android-9/arch-x86/include/asm/system_32.h
index d799ae6..ec01cc6 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/system_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/system_32.h
@@ -7,27 +7,35 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __ASM_SYSTEM_H
 #define __ASM_SYSTEM_H
-
 #include <linux/kernel.h>
 #include <asm/segment.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <asm/cpufeature.h>
 #include <asm/cmpxchg.h>
-
 #define nop() __asm__ __volatile__ ("nop")
 #define mb() alternative("lock; addl $0,0(%%esp)", "mfence", X86_FEATURE_XMM2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define rmb() alternative("lock; addl $0,0(%%esp)", "lfence", X86_FEATURE_XMM2)
 #define wmb() alternative("lock; addl $0,0(%%esp)", "sfence", X86_FEATURE_XMM)
 #define read_barrier_depends() do { } while(0)
 #define smp_mb() barrier()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define smp_rmb() barrier()
 #define smp_wmb() barrier()
 #define smp_read_barrier_depends() do { } while(0)
 #define set_mb(var, value) do { var = value; barrier(); } while (0)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/irqflags.h>
 #define HAVE_DISABLE_HLT
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/termbits.h b/ndk/platforms/android-9/arch-x86/include/asm/termbits.h
index 6d7c5e8..0d03ddd 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/termbits.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/termbits.h
@@ -7,195 +7,230 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_TERMBITS_H
 #define _ASM_X86_TERMBITS_H
-
 #include <linux/posix_types.h>
-
 typedef unsigned char cc_t;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef unsigned int speed_t;
 typedef unsigned int tcflag_t;
-
 #define NCCS 19
 struct termios {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  tcflag_t c_iflag;
  tcflag_t c_oflag;
  tcflag_t c_cflag;
  tcflag_t c_lflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  cc_t c_line;
  cc_t c_cc[NCCS];
 };
-
 struct termios2 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  tcflag_t c_iflag;
  tcflag_t c_oflag;
  tcflag_t c_cflag;
  tcflag_t c_lflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  cc_t c_line;
  cc_t c_cc[NCCS];
  speed_t c_ispeed;
  speed_t c_ospeed;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct ktermios {
  tcflag_t c_iflag;
  tcflag_t c_oflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  tcflag_t c_cflag;
  tcflag_t c_lflag;
  cc_t c_line;
  cc_t c_cc[NCCS];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  speed_t c_ispeed;
  speed_t c_ospeed;
 };
-
 #define VINTR 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VQUIT 1
 #define VERASE 2
 #define VKILL 3
 #define VEOF 4
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VTIME 5
 #define VMIN 6
 #define VSWTC 7
 #define VSTART 8
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VSTOP 9
 #define VSUSP 10
 #define VEOL 11
 #define VREPRINT 12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VDISCARD 13
 #define VWERASE 14
 #define VLNEXT 15
 #define VEOL2 16
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IGNBRK 0000001
 #define BRKINT 0000002
 #define IGNPAR 0000004
 #define PARMRK 0000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define INPCK 0000020
 #define ISTRIP 0000040
 #define INLCR 0000100
 #define IGNCR 0000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ICRNL 0000400
 #define IUCLC 0001000
 #define IXON 0002000
 #define IXANY 0004000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IXOFF 0010000
 #define IMAXBEL 0020000
 #define IUTF8 0040000
-
 #define OPOST 0000001
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define OLCUC 0000002
 #define ONLCR 0000004
 #define OCRNL 0000010
 #define ONOCR 0000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ONLRET 0000040
 #define OFILL 0000100
 #define OFDEL 0000200
 #define NLDLY 0000400
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NL0 0000000
 #define NL1 0000400
 #define CRDLY 0003000
 #define CR0 0000000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CR1 0001000
 #define CR2 0002000
 #define CR3 0003000
 #define TABDLY 0014000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TAB0 0000000
 #define TAB1 0004000
 #define TAB2 0010000
 #define TAB3 0014000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define XTABS 0014000
 #define BSDLY 0020000
 #define BS0 0000000
 #define BS1 0020000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VTDLY 0040000
 #define VT0 0000000
 #define VT1 0040000
 #define FFDLY 0100000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define FF0 0000000
 #define FF1 0100000
-
 #define CBAUD 0010017
 #define B0 0000000  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B50 0000001
 #define B75 0000002
 #define B110 0000003
 #define B134 0000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B150 0000005
 #define B200 0000006
 #define B300 0000007
 #define B600 0000010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B1200 0000011
 #define B1800 0000012
 #define B2400 0000013
 #define B4800 0000014
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B9600 0000015
 #define B19200 0000016
 #define B38400 0000017
 #define EXTA B19200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define EXTB B38400
 #define CSIZE 0000060
 #define CS5 0000000
 #define CS6 0000020
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CS7 0000040
 #define CS8 0000060
 #define CSTOPB 0000100
 #define CREAD 0000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PARENB 0000400
 #define PARODD 0001000
 #define HUPCL 0002000
 #define CLOCAL 0004000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CBAUDEX 0010000
 #define BOTHER 0010000  
 #define B57600 0010001
 #define B115200 0010002
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B230400 0010003
 #define B460800 0010004
 #define B500000 0010005
 #define B576000 0010006
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B921600 0010007
 #define B1000000 0010010
 #define B1152000 0010011
 #define B1500000 0010012
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B2000000 0010013
 #define B2500000 0010014
 #define B3000000 0010015
 #define B3500000 0010016
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define B4000000 0010017
 #define CIBAUD 002003600000  
 #define CMSPAR 010000000000  
 #define CRTSCTS 020000000000  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IBSHIFT 16  
-
 #define ISIG 0000001
 #define ICANON 0000002
 #define XCASE 0000004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ECHO 0000010
 #define ECHOE 0000020
 #define ECHOK 0000040
 #define ECHONL 0000100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define NOFLSH 0000200
 #define TOSTOP 0000400
 #define ECHOCTL 0001000
 #define ECHOPRT 0002000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define ECHOKE 0004000
 #define FLUSHO 0010000
 #define PENDIN 0040000
 #define IEXTEN 0100000
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCOOFF 0
 #define TCOON 1
 #define TCIOFF 2
 #define TCION 3
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCIFLUSH 0
 #define TCOFLUSH 1
 #define TCIOFLUSH 2
-
 #define TCSANOW 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCSADRAIN 1
 #define TCSAFLUSH 2
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/termios.h b/ndk/platforms/android-9/arch-x86/include/asm/termios.h
index 6542c78..2aca2fc 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/termios.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/termios.h
@@ -7,61 +7,94 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_TERMIOS_H
 #define _ASM_X86_TERMIOS_H
-
 #include <asm/termbits.h>
 #include <asm/ioctls.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct winsize {
  unsigned short ws_row;
  unsigned short ws_col;
  unsigned short ws_xpixel;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short ws_ypixel;
 };
-
 #define NCC 8
 struct termio {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short c_iflag;
  unsigned short c_oflag;
  unsigned short c_cflag;
  unsigned short c_lflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned char c_line;
  unsigned char c_cc[NCC];
 };
-
 #define TIOCM_LE 0x001
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCM_DTR 0x002
 #define TIOCM_RTS 0x004
 #define TIOCM_ST 0x008
 #define TIOCM_SR 0x010
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCM_CTS 0x020
 #define TIOCM_CAR 0x040
 #define TIOCM_RNG 0x080
 #define TIOCM_DSR 0x100
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCM_CD TIOCM_CAR
 #define TIOCM_RI TIOCM_RNG
 #define TIOCM_OUT1 0x2000
 #define TIOCM_OUT2 0x4000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TIOCM_LOOP 0x8000
-
 #define N_TTY 0
 #define N_SLIP 1
 #define N_MOUSE 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_PPP 3
+#define N_STRIP 4
+#define N_AX25 5
+#define N_X25 6
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_6PACK 7
+#define N_MASC 8
+#define N_R3964 9
+#define N_PROFIBUS_FDL 10
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_IRDA 11
+#define N_SMSBLOCK 12
+#define N_HDLC 13
+#define N_SYNC_PPP 14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define N_HCI 15
+#define N_TTY 0
+#define N_SLIP 1
+#define N_MOUSE 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define N_PPP 3
 #define N_STRIP 4
 #define N_AX25 5
 #define N_X25 6  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define N_6PACK 7
 #define N_MASC 8  
 #define N_R3964 9  
 #define N_PROFIBUS_FDL 10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define N_IRDA 11  
 #define N_SMSBLOCK 12  
 #define N_HDLC 13  
 #define N_SYNC_PPP 14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define N_HCI 15  
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/thread_info.h b/ndk/platforms/android-9/arch-x86/include/asm/thread_info.h
index ff46b08..d15e362 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/thread_info.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/thread_info.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "thread_info_64.h"
+#include "thread_info_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/thread_info_32.h b/ndk/platforms/android-9/arch-x86/include/asm/thread_info_32.h
index 5664ef8..07fc66b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/thread_info_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/thread_info_32.h
@@ -7,9 +7,15 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_THREAD_INFO_H
 #define _ASM_THREAD_INFO_H
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/tlbflush.h b/ndk/platforms/android-9/arch-x86/include/asm/tlbflush.h
index fd6b226..fd576df 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/tlbflush.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/tlbflush.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "tlbflush_64.h"
+#include "tlbflush_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/tlbflush_32.h b/ndk/platforms/android-9/arch-x86/include/asm/tlbflush_32.h
index 8ebff80..e0ab132 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/tlbflush_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/tlbflush_32.h
@@ -7,37 +7,37 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_TLBFLUSH_H
 #define _I386_TLBFLUSH_H
-
 #include <linux/mm.h>
 #include <asm/processor.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __flush_tlb() __native_flush_tlb()
 #define __flush_tlb_global() __native_flush_tlb_global()
 #define __flush_tlb_single(addr) __native_flush_tlb_single(addr)
-
 #define __native_flush_tlb()   do {   unsigned int tmpreg;     __asm__ __volatile__(   "movl %%cr3, %0;              \n"   "movl %0, %%cr3;  # flush TLB \n"   : "=r" (tmpreg)   :: "memory");   } while (0)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __native_flush_tlb_global()   do {   unsigned int tmpreg, cr4, cr4_orig;     __asm__ __volatile__(   "movl %%cr4, %2;  # turn off PGE     \n"   "movl %2, %1;                        \n"   "andl %3, %1;                        \n"   "movl %1, %%cr4;                     \n"   "movl %%cr3, %0;                     \n"   "movl %0, %%cr3;  # flush TLB        \n"   "movl %2, %%cr4;  # turn PGE back on \n"   : "=&r" (tmpreg), "=&r" (cr4), "=&r" (cr4_orig)   : "i" (~X86_CR4_PGE)   : "memory");   } while (0)
-
 #define __native_flush_tlb_single(addr)   __asm__ __volatile__("invlpg (%0)" ::"r" (addr) : "memory")
-
 #define __flush_tlb_all()   do {   if (cpu_has_pge)   __flush_tlb_global();   else   __flush_tlb();   } while (0)
-
 #define cpu_has_invlpg (boot_cpu_data.x86 > 3)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __flush_tlb_one(addr)   do {   if (cpu_has_invlpg)   __flush_tlb_single(addr);   else   __flush_tlb();   } while (0)
-
 #define TLB_FLUSH_ALL 0xffffffff
-
 #include <linux/sched.h>
-
 #define flush_tlb() __flush_tlb()
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define flush_tlb_all() __flush_tlb_all()
 #define local_flush_tlb() __flush_tlb()
-
 #define flush_tlb_others(mask, mm, va)   native_flush_tlb_others(&mask, mm, va)
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/tsc.h b/ndk/platforms/android-9/arch-x86/include/asm/tsc.h
index 2528cd1..e99a1a5 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/tsc.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/tsc.h
@@ -7,16 +7,20 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_TSC_H
 #define _ASM_X86_TSC_H
-
 #include <asm/processor.h>
-
 #define NS_SCALE 10  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define US_SCALE 32  
-
 typedef unsigned long long cycles_t;
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/types.h b/ndk/platforms/android-9/arch-x86/include/asm/types.h
index 4af92b0..b71d89b 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/types.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/types.h
@@ -7,34 +7,32 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_TYPES_H
 #define _ASM_X86_TYPES_H
-
 #ifndef __ASSEMBLY__
-
 typedef unsigned short umode_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef __signed__ char __s8;
 typedef unsigned char __u8;
-
 typedef __signed__ short __s16;
 typedef unsigned short __u16;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef __signed__ int __s32;
 typedef unsigned int __u32;
-
-#ifdef __i386__
 #ifdef __GNUC__
 __extension__ typedef __signed__ long long __s64;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 __extension__ typedef unsigned long long __u64;
 #endif
-#else
-typedef __signed__ long long __s64;
-typedef unsigned long long __u64;
 #endif
-
 #endif
-
-#endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/uaccess.h b/ndk/platforms/android-9/arch-x86/include/asm/uaccess.h
index b2bec69..b167f6d 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/uaccess.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/uaccess.h
@@ -7,6 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#include "uaccess_64.h"
+#include "uaccess_32.h"
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/uaccess_32.h b/ndk/platforms/android-9/arch-x86/include/asm/uaccess_32.h
index 9827fc4..47e4dcd 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/uaccess_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/uaccess_32.h
@@ -7,77 +7,68 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __i386_UACCESS_H
 #define __i386_UACCESS_H
-
 #include <linux/errno.h>
 #include <linux/thread_info.h>
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <linux/prefetch.h>
 #include <linux/string.h>
 #include <asm/page.h>
-
 #define VERIFY_READ 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VERIFY_WRITE 1
-
 #define MAKE_MM_SEG(s) ((mm_segment_t) { (s) })
-
 #define KERNEL_DS MAKE_MM_SEG(0xFFFFFFFFUL)
 #define USER_DS MAKE_MM_SEG(PAGE_OFFSET)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define get_ds() (KERNEL_DS)
 #define get_fs() (current_thread_info()->addr_limit)
 #define set_fs(x) (current_thread_info()->addr_limit = (x))
-
 #define segment_eq(a,b) ((a).seg == (b).seg)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __addr_ok(addr) ((unsigned long __force)(addr) < (current_thread_info()->addr_limit.seg))
-
 #define __range_ok(addr,size) ({   unsigned long flag,roksum;   __chk_user_ptr(addr);   asm("addl %3,%1 ; sbbl %0,%0; cmpl %1,%4; sbbl $0,%0"   :"=&r" (flag), "=r" (roksum)   :"1" (addr),"g" ((int)(size)),"rm" (current_thread_info()->addr_limit.seg));   flag; })
-
 #define access_ok(type,addr,size) (likely(__range_ok(addr,size) == 0))
-
 struct exception_table_entry
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 {
  unsigned long insn, fixup;
 };
-
 #define __get_user_x(size,ret,x,ptr)   __asm__ __volatile__("call __get_user_" #size   :"=a" (ret),"=d" (x)   :"0" (ptr))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define get_user(x,ptr)  ({ int __ret_gu;   unsigned long __val_gu;   __chk_user_ptr(ptr);   switch(sizeof (*(ptr))) {   case 1: __get_user_x(1,__ret_gu,__val_gu,ptr); break;   case 2: __get_user_x(2,__ret_gu,__val_gu,ptr); break;   case 4: __get_user_x(4,__ret_gu,__val_gu,ptr); break;   default: __get_user_x(X,__ret_gu,__val_gu,ptr); break;   }   (x) = (__typeof__(*(ptr)))__val_gu;   __ret_gu;  })
-
 #define __put_user_1(x, ptr) __asm__ __volatile__("call __put_user_1":"=a" (__ret_pu):"0" ((typeof(*(ptr)))(x)), "c" (ptr))
 #define __put_user_2(x, ptr) __asm__ __volatile__("call __put_user_2":"=a" (__ret_pu):"0" ((typeof(*(ptr)))(x)), "c" (ptr))
 #define __put_user_4(x, ptr) __asm__ __volatile__("call __put_user_4":"=a" (__ret_pu):"0" ((typeof(*(ptr)))(x)), "c" (ptr))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __put_user_8(x, ptr) __asm__ __volatile__("call __put_user_8":"=a" (__ret_pu):"A" ((typeof(*(ptr)))(x)), "c" (ptr))
 #define __put_user_X(x, ptr) __asm__ __volatile__("call __put_user_X":"=a" (__ret_pu):"c" (ptr))
-
 #define put_user(x,ptr)  ({   int __ret_pu;   __typeof__(*(ptr)) __pus_tmp = x;   __ret_pu=0;   if(unlikely(__copy_to_user_ll(ptr, &__pus_tmp,   sizeof(*(ptr))) != 0))   __ret_pu=-EFAULT;   __ret_pu;   })
-
 #define __get_user(x,ptr)   __get_user_nocheck((x),(ptr),sizeof(*(ptr)))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __put_user(x,ptr)   __put_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
-
 #define __put_user_nocheck(x,ptr,size)  ({   long __pu_err;   __put_user_size((x),(ptr),(size),__pu_err,-EFAULT);   __pu_err;  })
-
 #define __put_user_u64(x, addr, err)   __asm__ __volatile__(   "1:	movl %%eax,0(%2)\n"   "2:	movl %%edx,4(%2)\n"   "3:\n"   ".section .fixup,\"ax\"\n"   "4:	movl %3,%0\n"   "	jmp 3b\n"   ".previous\n"   ".section __ex_table,\"a\"\n"   "	.align 4\n"   "	.long 1b,4b\n"   "	.long 2b,4b\n"   ".previous"   : "=r"(err)   : "A" (x), "r" (addr), "i"(-EFAULT), "0"(err))
-
 #define __put_user_size(x,ptr,size,retval,errret)  do {   __typeof__(*(ptr)) __pus_tmp = x;   retval = 0;     if(unlikely(__copy_to_user_ll(ptr, &__pus_tmp, size) != 0))   retval = errret;  } while (0)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct __large_struct { unsigned long buf[100]; };
 #define __m(x) (*(struct __large_struct __user *)(x))
-
 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret)   __asm__ __volatile__(   "1:	mov"itype" %"rtype"1,%2\n"   "2:\n"   ".section .fixup,\"ax\"\n"   "3:	movl %3,%0\n"   "	jmp 2b\n"   ".previous\n"   ".section __ex_table,\"a\"\n"   "	.align 4\n"   "	.long 1b,3b\n"   ".previous"   : "=r"(err)   : ltype (x), "m"(__m(addr)), "i"(errret), "0"(err))
-
 #define __get_user_nocheck(x,ptr,size)  ({   long __gu_err;   unsigned long __gu_val;   __get_user_size(__gu_val,(ptr),(size),__gu_err,-EFAULT);  (x) = (__typeof__(*(ptr)))__gu_val;   __gu_err;  })
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __get_user_size(x,ptr,size,retval,errret)  do {   retval = 0;   __chk_user_ptr(ptr);   switch (size) {   case 1: __get_user_asm(x,ptr,retval,"b","b","=q",errret);break;   case 2: __get_user_asm(x,ptr,retval,"w","w","=r",errret);break;   case 4: __get_user_asm(x,ptr,retval,"l","","=r",errret);break;   default: (x) = __get_user_bad();   }  } while (0)
-
 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret)   __asm__ __volatile__(   "1:	mov"itype" %2,%"rtype"1\n"   "2:\n"   ".section .fixup,\"ax\"\n"   "3:	movl %3,%0\n"   "	xor"itype" %"rtype"1,%"rtype"1\n"   "	jmp 2b\n"   ".previous\n"   ".section __ex_table,\"a\"\n"   "	.align 4\n"   "	.long 1b,3b\n"   ".previous"   : "=r"(err), ltype (x)   : "m"(__m(addr)), "i"(errret), "0"(err))
-
 #define ARCH_HAS_NOCACHE_UACCESS
-
 #define strlen_user(str) strnlen_user(str, LONG_MAX)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/unaligned.h b/ndk/platforms/android-9/arch-x86/include/asm/unaligned.h
index ce7a8a7..8f2287c 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/unaligned.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/unaligned.h
@@ -7,13 +7,18 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_UNALIGNED_H
 #define _ASM_X86_UNALIGNED_H
-
 #define get_unaligned(ptr) (*(ptr))
-
 #define put_unaligned(val, ptr) ((void)( *(ptr) = (val) ))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/unistd.h b/ndk/platforms/android-9/arch-x86/include/asm/unistd.h
index 769f836..d109f5f 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/unistd.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/unistd.h
@@ -7,10 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#ifdef __i386__
 #include "unistd_32.h"
-#else
-#include "unistd_64.h"
-#endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/unistd_32.h b/ndk/platforms/android-9/arch-x86/include/asm/unistd_32.h
index b3d8b19..4536585 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/unistd_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/unistd_32.h
@@ -7,335 +7,419 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_I386_UNISTD_H_
 #define _ASM_I386_UNISTD_H_
-
 #define __NR_restart_syscall 0
 #define __NR_exit 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_fork 2
 #define __NR_read 3
 #define __NR_write 4
 #define __NR_open 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_close 6
 #define __NR_waitpid 7
 #define __NR_creat 8
 #define __NR_link 9
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_unlink 10
 #define __NR_execve 11
 #define __NR_chdir 12
 #define __NR_time 13
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_mknod 14
 #define __NR_chmod 15
 #define __NR_lchown 16
 #define __NR_break 17
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_oldstat 18
 #define __NR_lseek 19
 #define __NR_getpid 20
 #define __NR_mount 21
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_umount 22
 #define __NR_setuid 23
 #define __NR_getuid 24
 #define __NR_stime 25
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ptrace 26
 #define __NR_alarm 27
 #define __NR_oldfstat 28
 #define __NR_pause 29
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_utime 30
 #define __NR_stty 31
 #define __NR_gtty 32
 #define __NR_access 33
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_nice 34
 #define __NR_ftime 35
 #define __NR_sync 36
 #define __NR_kill 37
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_rename 38
 #define __NR_mkdir 39
 #define __NR_rmdir 40
 #define __NR_dup 41
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_pipe 42
 #define __NR_times 43
 #define __NR_prof 44
 #define __NR_brk 45
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setgid 46
 #define __NR_getgid 47
 #define __NR_signal 48
 #define __NR_geteuid 49
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_getegid 50
 #define __NR_acct 51
 #define __NR_umount2 52
 #define __NR_lock 53
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ioctl 54
 #define __NR_fcntl 55
 #define __NR_mpx 56
 #define __NR_setpgid 57
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ulimit 58
 #define __NR_oldolduname 59
 #define __NR_umask 60
 #define __NR_chroot 61
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ustat 62
 #define __NR_dup2 63
 #define __NR_getppid 64
 #define __NR_getpgrp 65
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setsid 66
 #define __NR_sigaction 67
 #define __NR_sgetmask 68
 #define __NR_ssetmask 69
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setreuid 70
 #define __NR_setregid 71
 #define __NR_sigsuspend 72
 #define __NR_sigpending 73
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_sethostname 74
 #define __NR_setrlimit 75
 #define __NR_getrlimit 76  
 #define __NR_getrusage 77
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_gettimeofday 78
 #define __NR_settimeofday 79
 #define __NR_getgroups 80
 #define __NR_setgroups 81
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_select 82
 #define __NR_symlink 83
 #define __NR_oldlstat 84
 #define __NR_readlink 85
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_uselib 86
 #define __NR_swapon 87
 #define __NR_reboot 88
 #define __NR_readdir 89
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_mmap 90
 #define __NR_munmap 91
 #define __NR_truncate 92
 #define __NR_ftruncate 93
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_fchmod 94
 #define __NR_fchown 95
 #define __NR_getpriority 96
 #define __NR_setpriority 97
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_profil 98
 #define __NR_statfs 99
 #define __NR_fstatfs 100
 #define __NR_ioperm 101
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_socketcall 102
 #define __NR_syslog 103
 #define __NR_setitimer 104
 #define __NR_getitimer 105
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_stat 106
 #define __NR_lstat 107
 #define __NR_fstat 108
 #define __NR_olduname 109
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_iopl 110
 #define __NR_vhangup 111
 #define __NR_idle 112
 #define __NR_vm86old 113
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_wait4 114
 #define __NR_swapoff 115
 #define __NR_sysinfo 116
 #define __NR_ipc 117
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_fsync 118
 #define __NR_sigreturn 119
 #define __NR_clone 120
 #define __NR_setdomainname 121
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_uname 122
 #define __NR_modify_ldt 123
 #define __NR_adjtimex 124
 #define __NR_mprotect 125
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_sigprocmask 126
 #define __NR_create_module 127
 #define __NR_init_module 128
 #define __NR_delete_module 129
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_get_kernel_syms 130
 #define __NR_quotactl 131
 #define __NR_getpgid 132
 #define __NR_fchdir 133
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_bdflush 134
 #define __NR_sysfs 135
 #define __NR_personality 136
 #define __NR_afs_syscall 137  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setfsuid 138
 #define __NR_setfsgid 139
 #define __NR__llseek 140
 #define __NR_getdents 141
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR__newselect 142
 #define __NR_flock 143
 #define __NR_msync 144
 #define __NR_readv 145
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_writev 146
 #define __NR_getsid 147
 #define __NR_fdatasync 148
 #define __NR__sysctl 149
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_mlock 150
 #define __NR_munlock 151
 #define __NR_mlockall 152
 #define __NR_munlockall 153
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_sched_setparam 154
 #define __NR_sched_getparam 155
 #define __NR_sched_setscheduler 156
 #define __NR_sched_getscheduler 157
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_sched_yield 158
 #define __NR_sched_get_priority_max 159
 #define __NR_sched_get_priority_min 160
 #define __NR_sched_rr_get_interval 161
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_nanosleep 162
 #define __NR_mremap 163
 #define __NR_setresuid 164
 #define __NR_getresuid 165
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_vm86 166
 #define __NR_query_module 167
 #define __NR_poll 168
 #define __NR_nfsservctl 169
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setresgid 170
 #define __NR_getresgid 171
 #define __NR_prctl 172
 #define __NR_rt_sigreturn 173
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_rt_sigaction 174
 #define __NR_rt_sigprocmask 175
 #define __NR_rt_sigpending 176
 #define __NR_rt_sigtimedwait 177
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_rt_sigqueueinfo 178
 #define __NR_rt_sigsuspend 179
 #define __NR_pread64 180
 #define __NR_pwrite64 181
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_chown 182
 #define __NR_getcwd 183
 #define __NR_capget 184
 #define __NR_capset 185
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_sigaltstack 186
 #define __NR_sendfile 187
 #define __NR_getpmsg 188  
 #define __NR_putpmsg 189  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_vfork 190
 #define __NR_ugetrlimit 191  
 #define __NR_mmap2 192
 #define __NR_truncate64 193
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ftruncate64 194
 #define __NR_stat64 195
 #define __NR_lstat64 196
 #define __NR_fstat64 197
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_lchown32 198
 #define __NR_getuid32 199
 #define __NR_getgid32 200
 #define __NR_geteuid32 201
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_getegid32 202
 #define __NR_setreuid32 203
 #define __NR_setregid32 204
 #define __NR_getgroups32 205
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setgroups32 206
 #define __NR_fchown32 207
 #define __NR_setresuid32 208
 #define __NR_getresuid32 209
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setresgid32 210
 #define __NR_getresgid32 211
 #define __NR_chown32 212
 #define __NR_setuid32 213
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_setgid32 214
 #define __NR_setfsuid32 215
 #define __NR_setfsgid32 216
 #define __NR_pivot_root 217
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_mincore 218
 #define __NR_madvise 219
 #define __NR_madvise1 219  
 #define __NR_getdents64 220
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_fcntl64 221
-
 #define __NR_gettid 224
 #define __NR_readahead 225
 #define __NR_setxattr 226
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_lsetxattr 227
 #define __NR_fsetxattr 228
 #define __NR_getxattr 229
 #define __NR_lgetxattr 230
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_fgetxattr 231
 #define __NR_listxattr 232
 #define __NR_llistxattr 233
 #define __NR_flistxattr 234
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_removexattr 235
 #define __NR_lremovexattr 236
 #define __NR_fremovexattr 237
 #define __NR_tkill 238
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_sendfile64 239
 #define __NR_futex 240
 #define __NR_sched_setaffinity 241
 #define __NR_sched_getaffinity 242
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_set_thread_area 243
 #define __NR_get_thread_area 244
 #define __NR_io_setup 245
 #define __NR_io_destroy 246
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_io_getevents 247
 #define __NR_io_submit 248
 #define __NR_io_cancel 249
 #define __NR_fadvise64 250
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_exit_group 252
 #define __NR_lookup_dcookie 253
 #define __NR_epoll_create 254
 #define __NR_epoll_ctl 255
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_epoll_wait 256
 #define __NR_remap_file_pages 257
 #define __NR_set_tid_address 258
 #define __NR_timer_create 259
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_timer_settime (__NR_timer_create+1)
 #define __NR_timer_gettime (__NR_timer_create+2)
 #define __NR_timer_getoverrun (__NR_timer_create+3)
 #define __NR_timer_delete (__NR_timer_create+4)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_clock_settime (__NR_timer_create+5)
 #define __NR_clock_gettime (__NR_timer_create+6)
 #define __NR_clock_getres (__NR_timer_create+7)
 #define __NR_clock_nanosleep (__NR_timer_create+8)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_statfs64 268
 #define __NR_fstatfs64 269
 #define __NR_tgkill 270
 #define __NR_utimes 271
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_fadvise64_64 272
 #define __NR_vserver 273
 #define __NR_mbind 274
 #define __NR_get_mempolicy 275
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_set_mempolicy 276
 #define __NR_mq_open 277
 #define __NR_mq_unlink (__NR_mq_open+1)
 #define __NR_mq_timedsend (__NR_mq_open+2)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_mq_timedreceive (__NR_mq_open+3)
 #define __NR_mq_notify (__NR_mq_open+4)
 #define __NR_mq_getsetattr (__NR_mq_open+5)
 #define __NR_kexec_load 283
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_waitid 284
-
 #define __NR_add_key 286
 #define __NR_request_key 287
 #define __NR_keyctl 288
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ioprio_set 289
 #define __NR_ioprio_get 290
 #define __NR_inotify_init 291
 #define __NR_inotify_add_watch 292
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_inotify_rm_watch 293
 #define __NR_migrate_pages 294
 #define __NR_openat 295
 #define __NR_mkdirat 296
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_mknodat 297
 #define __NR_fchownat 298
 #define __NR_futimesat 299
 #define __NR_fstatat64 300
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_unlinkat 301
 #define __NR_renameat 302
 #define __NR_linkat 303
 #define __NR_symlinkat 304
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_readlinkat 305
 #define __NR_fchmodat 306
 #define __NR_faccessat 307
 #define __NR_pselect6 308
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_ppoll 309
 #define __NR_unshare 310
 #define __NR_set_robust_list 311
 #define __NR_get_robust_list 312
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_splice 313
 #define __NR_sync_file_range 314
 #define __NR_tee 315
 #define __NR_vmsplice 316
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_move_pages 317
 #define __NR_getcpu 318
 #define __NR_epoll_pwait 319
 #define __NR_utimensat 320
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define __NR_signalfd 321
 #define __NR_timerfd 322
 #define __NR_eventfd 323
 #define __NR_fallocate 324
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
+#define __NR_perf_event_open 364
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/user.h b/ndk/platforms/android-9/arch-x86/include/asm/user.h
index 980b0aa..054182ed 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/user.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/user.h
@@ -7,10 +7,13 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
-#ifdef __i386__
 #include "user_32.h"
-#else
-#include "user_64.h"
-#endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/user32.h b/ndk/platforms/android-9/arch-x86/include/asm/user32.h
index 89eabb1..1549efd 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/user32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/user32.h
@@ -7,67 +7,79 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef USER32_H
 #define USER32_H 1
-
 struct user_i387_ia32_struct {
  u32 cwd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 swd;
  u32 twd;
  u32 fip;
  u32 fcs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  u32 foo;
  u32 fos;
  u32 st_space[20];
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct user32_fxsr_struct {
  unsigned short cwd;
  unsigned short swd;
  unsigned short twd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short fop;
  int fip;
  int fcs;
  int foo;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int fos;
  int mxcsr;
  int reserved;
  int st_space[32];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int xmm_space[32];
  int padding[56];
 };
-
 struct user_regs_struct32 {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 ebx, ecx, edx, esi, edi, ebp, eax;
  unsigned short ds, __ds, es, __es;
  unsigned short fs, __fs, gs, __gs;
  __u32 orig_eax, eip;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short cs, __cs;
  __u32 eflags, esp;
  unsigned short ss, __ss;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct user32 {
  struct user_regs_struct32 regs;
  int u_fpvalid;
-
  struct user_i387_ia32_struct i387;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 u_tsize;
  __u32 u_dsize;
  __u32 u_ssize;
  __u32 start_code;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 start_stack;
  __u32 signal;
  int reserved;
  __u32 u_ar0;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 u_fpstate;
  __u32 magic;
  char u_comm[32];
  int u_debugreg[8];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/user_32.h b/ndk/platforms/android-9/arch-x86/include/asm/user_32.h
index 8e0296c..6825b35 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/user_32.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/user_32.h
@@ -7,75 +7,85 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _I386_USER_H
 #define _I386_USER_H
-
 #include <asm/page.h>
-
 struct user_i387_struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long cwd;
  long swd;
  long twd;
  long fip;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long fcs;
  long foo;
  long fos;
  long st_space[20];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct user_fxsr_struct {
  unsigned short cwd;
  unsigned short swd;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short twd;
  unsigned short fop;
  long fip;
  long fcs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long foo;
  long fos;
  long mxcsr;
  long reserved;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long st_space[32];
  long xmm_space[32];
  long padding[56];
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct user_regs_struct {
  long ebx, ecx, edx, esi, edi, ebp, eax;
  unsigned short ds, __ds, es, __es;
  unsigned short fs, __fs, gs, __gs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long orig_eax, eip;
  unsigned short cs, __cs;
  long eflags, esp;
  unsigned short ss, __ss;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct user{
-
  struct user_regs_struct regs;
-
  int u_fpvalid;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct user_i387_struct i387;
-
  unsigned long int u_tsize;
  unsigned long int u_dsize;
  unsigned long int u_ssize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long start_code;
  unsigned long start_stack;
  long int signal;
  int reserved;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct user_pt_regs * u_ar0;
-
  struct user_i387_struct* u_fpstate;
  unsigned long magic;
  char u_comm[32];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  int u_debugreg[8];
 };
 #define NBPG PAGE_SIZE
 #define UPAGES 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define HOST_TEXT_START_ADDR (u.start_code)
 #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/vm86.h b/ndk/platforms/android-9/arch-x86/include/asm/vm86.h
index d0e71f1..222a11e 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/vm86.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/vm86.h
@@ -7,107 +7,119 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _LINUX_VM86_H
 #define _LINUX_VM86_H
-
 #define TF_MASK 0x00000100
 #define IF_MASK 0x00000200
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define IOPL_MASK 0x00003000
 #define NT_MASK 0x00004000
 #define VM_MASK 0  
 #define AC_MASK 0x00040000
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VIF_MASK 0x00080000  
 #define VIP_MASK 0x00100000  
 #define ID_MASK 0x00200000
-
 #define BIOSSEG 0x0f000
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CPU_086 0
 #define CPU_186 1
 #define CPU_286 2
 #define CPU_386 3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define CPU_486 4
 #define CPU_586 5
-
 #define VM86_TYPE(retval) ((retval) & 0xff)
 #define VM86_ARG(retval) ((retval) >> 8)
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VM86_SIGNAL 0  
 #define VM86_UNKNOWN 1  
 #define VM86_INTx 2  
 #define VM86_STI 3  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VM86_PICRETURN 4  
 #define VM86_TRAP 6  
-
 #define VM86_PLUS_INSTALL_CHECK 0
 #define VM86_ENTER 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VM86_ENTER_NO_BYPASS 2
 #define VM86_REQUEST_IRQ 3
 #define VM86_FREE_IRQ 4
 #define VM86_GET_IRQ_BITS 5
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VM86_GET_AND_RESET_IRQ 6
-
 struct vm86_regs {
-
  long ebx;
  long ecx;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long edx;
  long esi;
  long edi;
  long ebp;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long eax;
  long __null_ds;
  long __null_es;
  long __null_fs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long __null_gs;
  long orig_eax;
  long eip;
  unsigned short cs, __csh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  long eflags;
  long esp;
  unsigned short ss, __ssh;
-
  unsigned short es, __esh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned short ds, __dsh;
  unsigned short fs, __fsh;
  unsigned short gs, __gsh;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct revectored_struct {
  unsigned long __map[8];
 };
-
 struct vm86_struct {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct vm86_regs regs;
  unsigned long flags;
  unsigned long screen_bitmap;
  unsigned long cpu_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct revectored_struct int_revectored;
  struct revectored_struct int21_revectored;
 };
-
 #define VM86_SCREEN_BITMAP 0x0001
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct vm86plus_info_struct {
  unsigned long force_return_for_pic:1;
  unsigned long vm86dbg_active:1;
  unsigned long vm86dbg_TFpendig:1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long unused:28;
  unsigned long is_vm86pus:1;
  unsigned char vm86dbg_intxxtab[32];
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct vm86plus_struct {
  struct vm86_regs regs;
  unsigned long flags;
  unsigned long screen_bitmap;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  unsigned long cpu_type;
  struct revectored_struct int_revectored;
  struct revectored_struct int21_revectored;
  struct vm86plus_info_struct vm86plus;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/voyager.h b/ndk/platforms/android-9/arch-x86/include/asm/voyager.h
index c6f50a9..364b211 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/voyager.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/voyager.h
@@ -7,431 +7,454 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #undef VOYAGER_DEBUG
 #undef VOYAGER_CAT_DEBUG
-
 #ifdef VOYAGER_DEBUG
 #define VDEBUG(x) printk x
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #else
 #define VDEBUG(x)
 #endif
-
 #define VOYAGER_LEVEL5_AND_ABOVE 0x3435
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_LEVEL4 0x3360
-
 #define VOYAGER_DINO 0x43
-
 #define VOYAGER_MC_SETUP 0x96
-
 #define VOYAGER_CAT_CONFIG_PORT 0x97
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_CAT_DESELECT 0xff
 #define VOYAGER_SSPB_RELOCATION_PORT 0x98
-
 #define VOYAGER_CAT_IRCYC 0x01
-
 #define VOYAGER_CAT_DRCYC 0x02
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_CAT_RUN 0x0F
-
 #define VOYAGER_CAT_END 0x80
-
 #define VOYAGER_CAT_HOLD 0x90
-
 #define VOYAGER_CAT_STEP 0xE0
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_CAT_CLEMSON 0xFF
-
 #define VOYAGER_CAT_HEADER 0x7F
-
 #define VOYAGER_MIN_MODULE 0x10
 #define VOYAGER_MAX_MODULE 0x1f
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_ASIC_ID_REG 0x00
 #define VOYAGER_ASIC_TYPE_REG 0x01
-
 #define VOYAGER_AUTO_INC_REG 0x02
 #define VOYAGER_AUTO_INC 0x04
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_NO_AUTO_INC 0xfb
 #define VOYAGER_SUBADDRDATA 0x03
 #define VOYAGER_SCANPATH 0x05
 #define VOYAGER_CONNECT_ASIC 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_DISCONNECT_ASIC 0xfe
 #define VOYAGER_SUBADDRLO 0x06
 #define VOYAGER_SUBADDRHI 0x07
 #define VOYAGER_SUBMODSELECT 0x08
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_SUBMODPRESENT 0x09
-
 #define VOYAGER_SUBADDR_LO 0xff
 #define VOYAGER_SUBADDR_HI 0xffff
-
 #define VOYAGER_MAX_SCAN_PATH 0x100
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_MAX_REG_SIZE 4
-
 #define VOYAGER_MAX_MODULES 16
-
 #define VOYAGER_MAX_ASICS_PER_MODULE 7
-
 #define VOYAGER_CAT_ID 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_PSI 0x1a
-
 #define VOYAGER_READ_CONFIG 0x1
 #define VOYAGER_WRITE_CONFIG 0x2
 #define VOYAGER_BYPASS 0xff
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct voyager_asic
 {
  __u8 asic_addr;
  __u8 asic_type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 asic_id;
  __u8 jtag_id[4];
  __u8 asic_location;
  __u8 bit_location;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 ireg_length;
  __u16 subaddr;
  struct voyager_asic *next;
 } voyager_asic_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct voyager_module {
  __u8 module_addr;
  __u8 scan_path_connected;
  __u16 ee_size;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 num_asics;
  __u16 inst_bits;
  __u16 largest_reg;
  __u16 smallest_reg;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  voyager_asic_t *asic;
  struct voyager_module *submodule;
  struct voyager_module *next;
 } voyager_module_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 typedef struct voyager_eeprom_hdr {
  __u8 module_id[4];
  __u8 version_id;
  __u8 config_id;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 boundry_id;
  __u16 ee_size;
  __u8 assembly[11];
  __u8 assembly_rev;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 tracer[4];
  __u16 assembly_cksum;
  __u16 power_consump;
  __u16 num_asics;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 bist_time;
  __u16 err_log_offset;
  __u16 scan_path_offset;
  __u16 cct_offset;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 log_length;
  __u16 xsum_end;
  __u8 reserved[4];
  __u8 sflag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 part_number[13];
  __u8 version[10];
  __u8 signature[8];
  __u16 eeprom_chksum;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 data_stamp_offset;
  __u8 eflag ;
 } __attribute__((packed)) voyager_eprom_hdr_t;
-
 #define VOYAGER_EPROM_SIZE_OFFSET ((__u16)(&(((voyager_eprom_hdr_t *)0)->ee_size)))
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_XSUM_END_OFFSET 0x2a
-
 typedef struct voyager_sp_table {
  __u8 asic_id;
  __u8 bypass_flag;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 asic_data_offset;
  __u16 config_data_offset;
 } __attribute__((packed)) voyager_sp_table_t;
-
 typedef struct voyager_jtag_table {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 icode[4];
  __u8 runbist[4];
  __u8 intest[4];
  __u8 samp_preld[4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 ireg_len;
 } __attribute__((packed)) voyager_jtt_t;
-
 typedef struct voyager_asic_data_table {
  __u8 jtag_id[4];
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 length_bsr;
  __u16 length_bist_reg;
  __u32 bist_clk;
  __u16 subaddr_bits;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 seed_bits;
  __u16 sig_bits;
  __u16 jtag_offset;
 } __attribute__((packed)) voyager_at_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_WCBIC0 0x41  
 #define VOYAGER_WCBIC1 0x49  
 #define VOYAGER_WCBIC2 0x51  
 #define VOYAGER_WCBIC3 0x59  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_WCBIC4 0x61  
 #define VOYAGER_WCBIC5 0x69  
 #define VOYAGER_WCBIC6 0x71  
 #define VOYAGER_WCBIC7 0x79  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_WCBIC_TOM_L 0x4
 #define VOYAGER_WCBIC_TOM_H 0x5
-
 #define VOYAGER_VMC1 0x81
 #define VOYAGER_VMC2 0x91
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_VMC3 0xa1
 #define VOYAGER_VMC4 0xb1
-
 #define VOYAGER_VMC_MEMORY_SETUP 0x9
 #define VMC_Interleaving 0x01
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VMC_4Way 0x02
 #define VMC_EvenCacheLines 0x04
 #define VMC_HighLine 0x08
 #define VMC_Start0_Enable 0x20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VMC_Start1_Enable 0x40
 #define VMC_Vremap 0x80
 #define VOYAGER_VMC_BANK_DENSITY 0xa
 #define VMC_BANK_EMPTY 0
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VMC_BANK_4MB 1
 #define VMC_BANK_16MB 2
 #define VMC_BANK_64MB 3
 #define VMC_BANK0_MASK 0x03
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VMC_BANK1_MASK 0x0C
 #define VMC_BANK2_MASK 0x30
 #define VMC_BANK3_MASK 0xC0
-
 #define VOYAGER_MMC_ASIC_ID 1
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_MMC_MEMORY0_MODULE 0x14
 #define VOYAGER_MMC_MEMORY1_MODULE 0x15
-
 #define VOYAGER_MMA_ASIC_ID 2
-
 #define VOYAGER_QUAD_BASEBOARD 1
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_QUAD_QDATA0 1
 #define VOYAGER_QUAD_QDATA1 2
 #define VOYAGER_QUAD_QABC 3
-
 #define VOYAGER_PROCESSOR_PRESENT_MASK 0x88a
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_MEMORY_CLICKMAP 0xa23
 #define VOYAGER_DUMP_LOCATION 0xb1a
-
 #define VOYAGER_SUS_IN_CONTROL_PORT 0x3ff
 #define VOYAGER_IN_CONTROL_FLAG 0x80
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_PSI_STATUS_REG 0x08
 #define PSI_DC_FAIL 0x01
 #define PSI_MON 0x02
 #define PSI_FAULT 0x04
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_ALARM 0x08
 #define PSI_CURRENT 0x10
 #define PSI_DVM 0x20
 #define PSI_PSCFAULT 0x40
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_STAT_CHG 0x80
-
 #define VOYAGER_PSI_SUPPLY_REG 0x8000
-
 #define PSI_FAIL_DC 0x01
 #define PSI_FAIL_AC 0x02
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_MON_INT 0x04
 #define PSI_SWITCH_OFF 0x08
 #define PSI_HX_OFF 0x10
 #define PSI_SECURITY 0x20
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_CMOS_BATT_LOW 0x40
 #define PSI_CMOS_BATT_FAIL 0x80
-
 #define PSI_CLR_SWITCH_OFF 0x13
 #define PSI_CLR_HX_OFF 0x14
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_CLR_CMOS_BATT_FAIL 0x17
-
 #define VOYAGER_PSI_MASK 0x8001
 #define PSI_MASK_MASK 0x10
-
 #define VOYAGER_PSI_AC_FAIL_REG 0x8004
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define AC_FAIL_STAT_CHANGE 0x80
-
 #define VOYAGER_PSI_GENERAL_REG 0x8007
-
 #define PSI_SWITCH_ON 0x01
 #define PSI_SWITCH_ENABLED 0x02
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_ALARM_ENABLED 0x08
 #define PSI_SECURE_ENABLED 0x10
 #define PSI_COLD_RESET 0x20
 #define PSI_COLD_START 0x80
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_POWER_DOWN 0x10
 #define PSI_SWITCH_DISABLE 0x01
 #define PSI_SWITCH_ENABLE 0x11
 #define PSI_CLEAR 0x12
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_ALARM_DISABLE 0x03
 #define PSI_ALARM_ENABLE 0x13
 #define PSI_CLEAR_COLD_RESET 0x05
 #define PSI_SET_COLD_RESET 0x15
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define PSI_CLEAR_COLD_START 0x07
 #define PSI_SET_COLD_START 0x17
-
 struct voyager_bios_info {
  __u8 len;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 major;
  __u8 minor;
  __u8 debug;
  __u8 num_classes;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 class_1;
  __u8 class_2;
 };
-
 #define NUMBER_OF_MC_BUSSES 2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define SLOTS_PER_MC_BUS 8
 #define MAX_CPUS 16  
 #define MAX_PROCESSOR_BOARDS 4  
 #define MAX_CACHE_LEVELS 4  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define MAX_SHARED_CPUS 4  
 #define NUMBER_OF_POS_REGS 8
-
 typedef struct {
  __u8 MC_Slot;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 POS_Values[NUMBER_OF_POS_REGS];
 } __attribute__((packed)) MC_SlotInformation_t;
-
 struct QuadDescription {
  __u8 Type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 StructureVersion;
  __u32 CPI_BaseAddress;
  __u32 LARC_BankSize;
  __u32 LocalMemoryStateBits;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 Slot;
 } __attribute__((packed));
-
 struct ProcBoardInfo {
  __u8 Type;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 StructureVersion;
  __u8 NumberOfBoards;
  struct QuadDescription QuadData[MAX_PROCESSOR_BOARDS];
 } __attribute__((packed));
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct CacheDescription {
  __u8 Level;
  __u32 TotalSize;
  __u16 LineSize;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 Associativity;
  __u8 CacheType;
  __u8 WriteType;
  __u8 Number_CPUs_SharedBy;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 Shared_CPUs_Hardware_IDs[MAX_SHARED_CPUS];
-
 } __attribute__((packed));
-
 struct CPU_Description {
  __u8 CPU_HardwareId;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  char *FRU_String;
  __u8 NumberOfCacheLevels;
  struct CacheDescription CacheLevelData[MAX_CACHE_LEVELS];
 } __attribute__((packed));
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct CPU_Info {
  __u8 Type;
  __u8 StructureVersion;
  __u8 NumberOf_CPUs;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  struct CPU_Description CPU_Data[MAX_CPUS];
 } __attribute__((packed));
-
 typedef struct {
  __u8 Mailbox_SUS;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 Mailbox_OS;
  __u8 SUS_MailboxVersion;
  __u8 OS_MailboxVersion;
  __u32 OS_Flags;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 SUS_Flags;
  __u32 WatchDogPeriod;
  __u32 WatchDogCount;
  __u32 MemoryFor_SUS_ErrorLog;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  MC_SlotInformation_t MC_SlotInfo[NUMBER_OF_MC_BUSSES*SLOTS_PER_MC_BUS];
-
  struct ProcBoardInfo *BoardData;
  struct CPU_Info *CPU_Data;
-
 } Voyager_KernelSUS_Mbox_t;
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct voyager_qic_cpi {
-
  struct {
  __u32 pad1[3];
  __u32 cpi;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 pad2[4];
  } qic_cpi[8];
 };
-
 struct voyager_status {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 power_fail:1;
  __u32 switch_off:1;
  __u32 request_from_kernel:1;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct voyager_psi_regs {
  __u8 cat_id;
  __u8 cat_dev;
  __u8 cat_control;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 subaddr;
  __u8 dummy4;
  __u8 checkbit;
  __u8 subaddr_low;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 subaddr_high;
  __u8 intstatus;
  __u8 stat1;
  __u8 stat3;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 fault;
  __u8 tms;
  __u8 gen;
  __u8 sysconf;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 dummy15;
 };
-
 struct voyager_psi_subregs {
  __u8 supply;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 mask;
  __u8 present;
  __u8 DCfail;
  __u8 ACfail;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 fail;
  __u8 UPSfail;
  __u8 genstatus;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct voyager_psi {
  struct voyager_psi_regs regs;
  struct voyager_psi_subregs subregs;
 };
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct voyager_SUS {
 #define VOYAGER_DUMP_BUTTON_NMI 0x1
 #define VOYAGER_SUS_VALID 0x2
 #define VOYAGER_SYSINT_COMPLETE 0x3
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 SUS_mbox;
 #define VOYAGER_NO_COMMAND 0x0
 #define VOYAGER_IGNORE_DUMP 0x1
 #define VOYAGER_DO_DUMP 0x2
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_SYSINT_HANDSHAKE 0x3
 #define VOYAGER_DO_MEM_DUMP 0x4
 #define VOYAGER_SYSINT_WAS_RECOVERED 0x5
  __u8 kernel_mbox;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_MAILBOX_VERSION 0x10
  __u8 SUS_version;
  __u8 kernel_version;
 #define VOYAGER_OS_HAS_SYSINT 0x1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_OS_IN_PROGRESS 0x2
 #define VOYAGER_UPDATING_WDPERIOD 0x4
  __u32 kernel_flags;
 #define VOYAGER_SUS_BOOTING 0x1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_SUS_IN_PROGRESS 0x2
  __u32 SUS_flags;
  __u32 watchdog_period;
  __u32 watchdog_count;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 SUS_errorlog;
-
 };
-
 #define VOYAGER_PSI_READ 0
 #define VOYAGER_PSI_WRITE 1
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VOYAGER_PSI_SUBREAD 2
 #define VOYAGER_PSI_SUBWRITE 3
-
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/vsyscall.h b/ndk/platforms/android-9/arch-x86/include/asm/vsyscall.h
index a7bee3b..41a52cf 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/vsyscall.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/vsyscall.h
@@ -7,21 +7,28 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _ASM_X86_64_VSYSCALL_H_
 #define _ASM_X86_64_VSYSCALL_H_
-
 enum vsyscall_num {
  __NR_vgettimeofday,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __NR_vtime,
  __NR_vgetcpu,
 };
-
 #define VSYSCALL_START (-10UL << 20)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define VSYSCALL_SIZE 1024
 #define VSYSCALL_END (-2UL << 20)
 #define VSYSCALL_MAPPED_PAGES 1
 #define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/asm/xen/hypercall.h b/ndk/platforms/android-9/arch-x86/include/asm/xen/hypercall.h
index 3c523a8..bb2342c 100644
--- a/ndk/platforms/android-9/arch-x86/include/asm/xen/hypercall.h
+++ b/ndk/platforms/android-9/arch-x86/include/asm/xen/hypercall.h
@@ -7,28 +7,29 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef __HYPERCALL_H__
 #define __HYPERCALL_H__
-
 #include <linux/errno.h>
 #include <linux/string.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #include <xen/interface/xen.h>
 #include <xen/interface/sched.h>
 #include <xen/interface/physdev.h>
-
 #define _hypercall0(type, name)  ({   long __res;   asm volatile (   "call %[call]"   : "=a" (__res)   : [call] "m" (hypercall_page[__HYPERVISOR_##name])   : "memory" );   (type)__res;  })
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _hypercall1(type, name, a1)  ({   long __res, __ign1;   asm volatile (   "call %[call]"   : "=a" (__res), "=b" (__ign1)   : "1" ((long)(a1)),   [call] "m" (hypercall_page[__HYPERVISOR_##name])   : "memory" );   (type)__res;  })
-
 #define _hypercall2(type, name, a1, a2)  ({   long __res, __ign1, __ign2;   asm volatile (   "call %[call]"   : "=a" (__res), "=b" (__ign1), "=c" (__ign2)   : "1" ((long)(a1)), "2" ((long)(a2)),   [call] "m" (hypercall_page[__HYPERVISOR_##name])   : "memory" );   (type)__res;  })
-
 #define _hypercall3(type, name, a1, a2, a3)  ({   long __res, __ign1, __ign2, __ign3;   asm volatile (   "call %[call]"   : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   "=d" (__ign3)   : "1" ((long)(a1)), "2" ((long)(a2)),   "3" ((long)(a3)),   [call] "m" (hypercall_page[__HYPERVISOR_##name])   : "memory" );   (type)__res;  })
-
 #define _hypercall4(type, name, a1, a2, a3, a4)  ({   long __res, __ign1, __ign2, __ign3, __ign4;   asm volatile (   "call %[call]"   : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   "=d" (__ign3), "=S" (__ign4)   : "1" ((long)(a1)), "2" ((long)(a2)),   "3" ((long)(a3)), "4" ((long)(a4)),   [call] "m" (hypercall_page[__HYPERVISOR_##name])   : "memory" );   (type)__res;  })
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define _hypercall5(type, name, a1, a2, a3, a4, a5)  ({   long __res, __ign1, __ign2, __ign3, __ign4, __ign5;   asm volatile (   "call %[call]"   : "=a" (__res), "=b" (__ign1), "=c" (__ign2),   "=d" (__ign3), "=S" (__ign4), "=D" (__ign5)   : "1" ((long)(a1)), "2" ((long)(a2)),   "3" ((long)(a3)), "4" ((long)(a4)),   "5" ((long)(a5)),   [call] "m" (hypercall_page[__HYPERVISOR_##name])   : "memory" );   (type)__res;  })
-
 #endif
diff --git a/ndk/platforms/android-9/arch-x86/include/machine/asm.h b/ndk/platforms/android-9/arch-x86/include/machine/asm.h
index 7a23060..49d3ea8 100644
--- a/ndk/platforms/android-9/arch-x86/include/machine/asm.h
+++ b/ndk/platforms/android-9/arch-x86/include/machine/asm.h
@@ -103,6 +103,12 @@
 #define _ENTRY(x) \
 	.text; _ALIGN_TEXT; .globl x; .type x,@function; x:
 
+#define _ASM_SIZE(x)    .size x, .-x;
+
+#define _END(x) \
+	.fnend; \
+	_ASM_SIZE(x)
+
 #ifdef GPROF
 # define _PROF_PROLOGUE	\
 	pushl %ebp; movl %esp,%ebp; call PIC_PLT(mcount); popl %ebp
@@ -112,8 +118,12 @@
 
 #define	ENTRY(y)	_ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
 #define	NENTRY(y)	_ENTRY(_C_LABEL(y))
+#define	END(y)		_END(_C_LABEL(y))
 #define	ASENTRY(y)	_ENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
 
+#define ENTRY_PRIVATE(y)  ENTRY(y); .hidden _C_LABEL(y)
+
+
 #define	ALTENTRY(name)	.globl _C_LABEL(name); _C_LABEL(name):
 
 #define	ASMSTR		.asciz
diff --git a/ndk/platforms/android-9/arch-x86/lib/crtbegin_dynamic.o b/ndk/platforms/android-9/arch-x86/lib/crtbegin_dynamic.o
deleted file mode 100644
index 17704f5..0000000
--- a/ndk/platforms/android-9/arch-x86/lib/crtbegin_dynamic.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-9/arch-x86/lib/crtbegin_so.o b/ndk/platforms/android-9/arch-x86/lib/crtbegin_so.o
deleted file mode 100644
index cf50f1d..0000000
--- a/ndk/platforms/android-9/arch-x86/lib/crtbegin_so.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-9/arch-x86/lib/crtbegin_static.o b/ndk/platforms/android-9/arch-x86/lib/crtbegin_static.o
deleted file mode 100644
index 17704f5..0000000
--- a/ndk/platforms/android-9/arch-x86/lib/crtbegin_static.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-9/arch-x86/lib/crtend_android.o b/ndk/platforms/android-9/arch-x86/lib/crtend_android.o
deleted file mode 100644
index 87716a0..0000000
--- a/ndk/platforms/android-9/arch-x86/lib/crtend_android.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-9/arch-x86/lib/crtend_so.o b/ndk/platforms/android-9/arch-x86/lib/crtend_so.o
deleted file mode 100644
index 4c4460f..0000000
--- a/ndk/platforms/android-9/arch-x86/lib/crtend_so.o
+++ /dev/null
Binary files differ
diff --git a/ndk/platforms/android-9/arch-x86/src/__dso_handle.S b/ndk/platforms/android-9/arch-x86/src/__dso_handle.S
new file mode 100644
index 0000000..3e80128
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/__dso_handle.S
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+# The __dso_handle global variable is used by static
+# C++ constructors and destructors in the binary.
+# See http://www.codesourcery.com/public/cxx-abi/abi.html#dso-dtor
+#
+        .section .bss
+        .align 4
+
+#ifndef CRT_LEGACY_WORKAROUND
+	.hidden __dso_handle
+#endif
+
+        .globl __dso_handle
+__dso_handle:
+        .long 0
diff --git a/ndk/platforms/android-9/arch-x86/src/__dso_handle_so.S b/ndk/platforms/android-9/arch-x86/src/__dso_handle_so.S
new file mode 100644
index 0000000..77a5d7f
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/__dso_handle_so.S
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+# The __dso_handle global variable is used by static
+# C++ constructors and destructors in the binary.
+# See http://www.codesourcery.com/public/cxx-abi/abi.html#dso-dtor
+#
+	.data
+        .align 4
+	.hidden __dso_handle
+        .globl __dso_handle
+__dso_handle:
+        .long __dso_handle
diff --git a/ndk/platforms/android-9/arch-x86/include/sys/atomics.h b/ndk/platforms/android-9/arch-x86/src/__stack_chk_fail_local.S
similarity index 62%
copy from ndk/platforms/android-9/arch-x86/include/sys/atomics.h
copy to ndk/platforms/android-9/arch-x86/src/__stack_chk_fail_local.S
index 7aed3ae..59fe86e 100644
--- a/ndk/platforms/android-9/arch-x86/include/sys/atomics.h
+++ b/ndk/platforms/android-9/arch-x86/src/__stack_chk_fail_local.S
@@ -25,41 +25,24 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#ifndef _SYS_ATOMICS_H
-#define _SYS_ATOMICS_H
+/*
+ * Contributed by: Intel Corporation
+ */
 
-#include <sys/cdefs.h>
-#include <sys/time.h>
+	.text
+	.p2align 4,,15
+	.globl	__stack_chk_fail_local
+	.hidden	__stack_chk_fail_local
+	.type	__stack_chk_fail_local, @function
 
-__BEGIN_DECLS
+__stack_chk_fail_local:
+#ifdef __PIC__
+	pushl	%ebx
+	call	__x86.get_pc_thunk.bx
+	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
+	call	__stack_chk_fail@PLT
+#else /* PIC */
+	jmp   __stack_chk_fail
+#endif /* not PIC */
 
-static inline __attribute__((always_inline)) int
-__atomic_cmpxchg(int old, int _new, volatile int *ptr)
-{
-  return !__sync_bool_compare_and_swap (ptr, old, _new);
-}
-
-static inline __attribute__((always_inline)) int
-__atomic_swap(int _new, volatile int *ptr)
-{
-  return __sync_lock_test_and_set(ptr, _new);
-}
-
-static inline __attribute__((always_inline)) int
-__atomic_dec(volatile int *ptr)
-{
-  return __sync_fetch_and_sub (ptr, 1);
-}
-
-static inline __attribute__((always_inline)) int
-__atomic_inc(volatile int *ptr)
-{
-  return __sync_fetch_and_add (ptr, 1);
-}
-
-int __futex_wait(volatile void *ftx, int val, const struct timespec *timeout);
-int __futex_wake(volatile void *ftx, int count);
-
-__END_DECLS
-
-#endif /* _SYS_ATOMICS_H */
+	.size	__stack_chk_fail_local, .-__stack_chk_fail_local
diff --git a/ndk/platforms/android-9/arch-x86/src/atexit.S b/ndk/platforms/android-9/arch-x86/src/atexit.S
new file mode 100644
index 0000000..b28f40b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/atexit.S
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+	.text
+	.p2align 4,,15
+	.globl	atexit
+	.hidden	atexit
+	.type	atexit, @function
+atexit:
+	pushl	%ebp
+	movl	%esp, %ebp
+	pushl	%ebx
+	call	__x86.get_pc_thunk.bx
+	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
+	subl	$20, %esp
+	movl	$0, 4(%esp)
+	movl	__dso_handle@GOTOFF(%ebx), %eax
+	movl	%eax, 8(%esp)
+	movl	8(%ebp), %eax
+	movl	%eax, (%esp)
+	call	__cxa_atexit@PLT
+	addl	$20, %esp
+	popl	%ebx
+	popl	%ebp
+	ret
+	.size	atexit, .-atexit
+
+	.section	.text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
+	.globl	__x86.get_pc_thunk.bx
+	.hidden	__x86.get_pc_thunk.bx
+	.type	__x86.get_pc_thunk.bx, @function
+__x86.get_pc_thunk.bx:
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	nop
+	movl	(%esp), %ebx
+	ret
diff --git a/ndk/platforms/android-9/arch-x86/src/crtbegin_dynamic.S b/ndk/platforms/android-9/arch-x86/src/crtbegin_dynamic.S
new file mode 100644
index 0000000..177244b
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/crtbegin_dynamic.S
@@ -0,0 +1,139 @@
+# bionic/arch-x86/bionic/crtbegin_dynamic.S
+#
+# Copyright 2006, The Android Open Source Project
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of Google Inc. nor the names of its contributors may
+#       be used to endorse or promote products derived from this software
+#       without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY Google Inc. ``AS IS'' AND ANY EXPRESS OR 
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 
+# EVENT SHALL Google Inc. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+	.text
+	.align 4
+	.type _start, @function
+	.globl _start
+
+# this is the small startup code that is first run when
+# any executable that is dynamically-linked with Bionic
+# runs.
+#
+# it's purpose is to call __libc_init with appropriate
+# arguments, which are:
+#
+#    - the address of the raw data block setup by the Linux
+#      kernel ELF loader
+#
+#    - address of an "onexit" function, not used on any
+#      platform supported by Bionic
+#
+#    - address of the "main" function of the program. We
+#      can't hard-code it in the adr pseudo instruction
+#      so we use a tiny trampoline that will get relocated
+#      by the dynamic linker before this code runs
+#
+#    - address of the constructor list
+#
+_start:	
+        mov     %esp, %eax
+        # before push arguments, align the stack to a 16 byte boundary
+        andl    $~15, %esp
+        mov     $1f, %edx
+        pushl   %edx
+        mov     $0f, %edx
+        pushl   %edx
+        mov     $0, %edx
+        pushl   %edx
+        pushl   %eax
+        call     __libc_init
+
+0:
+        jmp   main
+
+1:  .long   __PREINIT_ARRAY__
+    .long   __INIT_ARRAY__
+    .long   __FINI_ARRAY__
+
+	.section .preinit_array, "aw"
+	.globl __PREINIT_ARRAY__
+__PREINIT_ARRAY__:
+	.long -1
+
+	.section .init_array, "aw"
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+	.long	frame_dummy
+
+	.section .fini_array, "aw"
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+	.long	__do_global_dtors_aux
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__EH_FRAME_BEGIN__, @object
+__EH_FRAME_BEGIN__:
+	.text
+	.p2align 4,,15
+	.type	__do_global_dtors_aux, @function
+__do_global_dtors_aux:
+	pushl	%ebp
+	movl	%esp, %ebp
+	subl	$24, %esp
+	cmpb	$0, completed.4454
+	jne	.L4
+	movl	$__deregister_frame_info_bases, %eax
+	testl	%eax, %eax
+	je	.L3
+	movl	$__EH_FRAME_BEGIN__, (%esp)
+	call	__deregister_frame_info_bases
+.L3:
+	movb	$1, completed.4454
+.L4:
+	leave
+	ret
+	.text
+	.p2align 4,,15
+	.type	frame_dummy, @function
+frame_dummy:
+	pushl	%ebp
+	movl	$__register_frame_info_bases, %eax
+	movl	%esp, %ebp
+	subl	$24, %esp
+	testl	%eax, %eax
+	je	.L7
+	movl	%ebx, 12(%esp)
+	movl	$0, 8(%esp)
+	movl	$object.4466, 4(%esp)
+	movl	$__EH_FRAME_BEGIN__, (%esp)
+	call	__register_frame_info_bases
+.L7:
+	leave
+	ret
+	.local	completed.4454
+	.comm	completed.4454,1,1
+	.local	object.4466
+	.comm	object.4466,24,4
+	.weak	__register_frame_info_bases
+	.weak	__deregister_frame_info_bases
+
+#include "__dso_handle.S"
+#include "atexit.S"
+#include "__stack_chk_fail_local.S"
diff --git a/ndk/platforms/android-9/arch-x86/src/crtbegin_so.S b/ndk/platforms/android-9/arch-x86/src/crtbegin_so.S
new file mode 100644
index 0000000..99662fe
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/crtbegin_so.S
@@ -0,0 +1,111 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+.section .init_array, "aw"
+.align 4
+.type __INIT_ARRAY__, @object
+.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+    .long -1
+    .long frame_dummy
+
+.section .fini_array, "aw"
+.align 4
+.type __FINI_ARRAY__, @object
+.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+    .long -1
+    .long __do_global_dtors_aux
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__EH_FRAME_BEGIN__, @object
+__EH_FRAME_BEGIN__:
+	.text
+	.p2align 4,,15
+	.type	__do_global_dtors_aux, @function
+__do_global_dtors_aux:
+	pushl	%ebp
+	movl	%esp, %ebp
+	pushl	%ebx
+	call	__x86.get_pc_thunk.bx
+	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
+	subl	$20, %esp
+	cmpb	$0, completed.4454@GOTOFF(%ebx)
+	jne	.L5
+	movl	__dso_handle@GOTOFF(%ebx), %eax
+	movl	%eax, (%esp)
+	call	__cxa_finalize@PLT
+	movl	__deregister_frame_info_bases@GOT(%ebx), %eax
+	testl	%eax, %eax
+	je	.L4
+	leal	__EH_FRAME_BEGIN__@GOTOFF(%ebx), %eax
+	movl	%eax, (%esp)
+	call	__deregister_frame_info_bases@PLT
+.L4:
+	movb	$1, completed.4454@GOTOFF(%ebx)
+.L5:
+	addl	$20, %esp
+	popl	%ebx
+	popl	%ebp
+	ret
+	.text
+	.p2align 4,,15
+	.type	frame_dummy, @function
+frame_dummy:
+	pushl	%ebp
+	movl	%esp, %ebp
+	pushl	%ebx
+	call	__x86.get_pc_thunk.bx
+	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
+	subl	$20, %esp
+	movl	__register_frame_info_bases@GOT(%ebx), %eax
+	testl	%eax, %eax
+	je	.L8
+	leal	object.4469@GOTOFF(%ebx), %eax
+	movl	%eax, 4(%esp)
+	leal	__EH_FRAME_BEGIN__@GOTOFF(%ebx), %eax
+	movl	%ebx, 12(%esp)
+	movl	$0, 8(%esp)
+	movl	%eax, (%esp)
+	call	__register_frame_info_bases@PLT
+.L8:
+	addl	$20, %esp
+	popl	%ebx
+	popl	%ebp
+	ret
+	.local	completed.4454
+	.comm	completed.4454,1,1
+	.local	object.4469
+	.comm	object.4469,24,4
+	.weak	__register_frame_info_bases
+	.weak	__deregister_frame_info_bases
+
+#include "__dso_handle_so.S"
+#include "atexit.S"
+#include "__stack_chk_fail_local.S"
diff --git a/ndk/platforms/android-9/arch-x86/src/crtbegin_static.S b/ndk/platforms/android-9/arch-x86/src/crtbegin_static.S
new file mode 100644
index 0000000..4f95b1e
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/crtbegin_static.S
@@ -0,0 +1,139 @@
+# bionic/arch-x86/bionic/crtbegin_static.S
+#
+# Copyright 2006, The Android Open Source Project
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above copyright
+#       notice, this list of conditions and the following disclaimer in the
+#       documentation and/or other materials provided with the distribution.
+#     * Neither the name of Google Inc. nor the names of its contributors may
+#       be used to endorse or promote products derived from this software
+#       without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY Google Inc. ``AS IS'' AND ANY EXPRESS OR 
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 
+# EVENT SHALL Google Inc. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+	.text
+	.align 4
+	.type _start, @function
+	.globl _start
+
+# this is the small startup code that is first run when
+# any executable that is statically-linked with Bionic
+# runs.
+#
+# it's purpose is to call __libc_init with appropriate
+# arguments, which are:
+#
+#    - the address of the raw data block setup by the Linux
+#      kernel ELF loader
+#
+#    - address of an "onexit" function, not used on any
+#      platform supported by Bionic
+#
+#    - address of the "main" function of the program. We
+#      can't hard-code it in the adr pseudo instruction
+#      so we use a tiny trampoline that will get relocated
+#      by the dynamic linker before this code runs
+#
+#    - address of the constructor list
+#
+_start:	
+        mov     %esp, %eax
+        # before push arguments, align the stack to a 16 byte boundary
+        andl    $~15, %esp
+        mov     $1f, %edx
+        pushl   %edx
+        mov     $0f, %edx
+        pushl   %edx
+        mov     $0, %edx
+        pushl   %edx
+        pushl   %eax
+        call    __libc_init
+
+0:  jmp   main
+
+1:  .long   __PREINIT_ARRAY__
+    .long   __INIT_ARRAY__
+    .long   __FINI_ARRAY__
+
+	.section .preinit_array, "aw"
+	.globl __PREINIT_ARRAY__
+__PREINIT_ARRAY__:
+	.long -1
+
+	.section .init_array, "aw"
+	.globl __INIT_ARRAY__
+__INIT_ARRAY__:
+	.long -1
+	.long	frame_dummy
+
+	.section .fini_array, "aw"
+	.globl __FINI_ARRAY__
+__FINI_ARRAY__:
+	.long -1
+	.long	__do_global_dtors_aux
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__EH_FRAME_BEGIN__, @object
+__EH_FRAME_BEGIN__:
+	.text
+	.p2align 4,,15
+	.type	__do_global_dtors_aux, @function
+__do_global_dtors_aux:
+	pushl	%ebp
+	movl	%esp, %ebp
+	subl	$24, %esp
+	cmpb	$0, completed.4454
+	jne	.L4
+	movl	$__deregister_frame_info_bases, %eax
+	testl	%eax, %eax
+	je	.L3
+	movl	$__EH_FRAME_BEGIN__, (%esp)
+	call	__deregister_frame_info_bases
+.L3:
+	movb	$1, completed.4454
+.L4:
+	leave
+	ret
+	.text
+	.p2align 4,,15
+	.type	frame_dummy, @function
+frame_dummy:
+	pushl	%ebp
+	movl	$__register_frame_info_bases, %eax
+	movl	%esp, %ebp
+	subl	$24, %esp
+	testl	%eax, %eax
+	je	.L7
+	movl	%ebx, 12(%esp)
+	movl	$0, 8(%esp)
+	movl	$object.4466, 4(%esp)
+	movl	$__EH_FRAME_BEGIN__, (%esp)
+	call	__register_frame_info_bases
+.L7:
+	leave
+	ret
+	.local	completed.4454
+	.comm	completed.4454,1,1
+	.local	object.4466
+	.comm	object.4466,24,4
+	.weak	__register_frame_info_bases
+	.weak	__deregister_frame_info_bases
+
+#include "__dso_handle.S"
+#include "__stack_chk_fail_local.S"
+/* NOTE: atexit() is  not be provided by crtbegin_static.S, but by libc.a */
+
diff --git a/ndk/platforms/android-9/arch-x86/src/crtend.S b/ndk/platforms/android-9/arch-x86/src/crtend.S
new file mode 100644
index 0000000..68447e7
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/crtend.S
@@ -0,0 +1,15 @@
+	.section .preinit_array, "aw"
+	.long 0
+
+	.section .init_array, "aw"
+	.long 0
+
+	.section .fini_array, "aw"
+	.long 0
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__FRAME_END__, @object
+	.size	__FRAME_END__, 4
+__FRAME_END__:
+	.zero	4
diff --git a/ndk/platforms/android-9/arch-x86/src/crtend_so.S b/ndk/platforms/android-9/arch-x86/src/crtend_so.S
new file mode 100644
index 0000000..63e58b9
--- /dev/null
+++ b/ndk/platforms/android-9/arch-x86/src/crtend_so.S
@@ -0,0 +1,12 @@
+.section .init_array, "aw"
+    .long 0
+
+.section .fini_array, "aw"
+    .long 0
+
+	.section	.eh_frame,"a",@progbits
+	.align 4
+	.type	__FRAME_END__, @object
+	.size	__FRAME_END__, 4
+__FRAME_END__:
+	.zero	4
diff --git a/ndk/platforms/android-9/include/android/asset_manager.h b/ndk/platforms/android-9/include/android/asset_manager.h
index 4fa0ef3..57dd7cb 100644
--- a/ndk/platforms/android-9/include/android/asset_manager.h
+++ b/ndk/platforms/android-9/include/android/asset_manager.h
@@ -18,6 +18,8 @@
 #ifndef ANDROID_ASSET_MANAGER_H
 #define ANDROID_ASSET_MANAGER_H
 
+#include <sys/types.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
diff --git a/ndk/platforms/android-9/include/android/native_activity.h b/ndk/platforms/android-9/include/android/native_activity.h
index d89bc8b..52997bf 100644
--- a/ndk/platforms/android-9/include/android/native_activity.h
+++ b/ndk/platforms/android-9/include/android/native_activity.h
@@ -60,7 +60,14 @@
     JNIEnv* env;
 
     /**
-     * The NativeActivity Java class.
+     * The NativeActivity object handle.
+     *
+     * IMPORTANT NOTE: This member is mis-named. It should really be named
+     * 'activity' instead of 'clazz', since it's a reference to the
+     * NativeActivity instance created by the system for you.
+     *
+     * We unfortunately cannot change this without breaking NDK
+     * source-compatibility.
      */
     jobject clazz;
 
diff --git a/ndk/platforms/android-9/include/android/rect.h b/ndk/platforms/android-9/include/android/rect.h
index 3e81f53..bcd42a9 100644
--- a/ndk/platforms/android-9/include/android/rect.h
+++ b/ndk/platforms/android-9/include/android/rect.h
@@ -18,11 +18,16 @@
 #ifndef ANDROID_RECT_H
 #define ANDROID_RECT_H
 
+#include <stdint.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 typedef struct ARect {
+#ifdef __cplusplus
+    typedef int32_t value_type;
+#endif
     int32_t left;
     int32_t top;
     int32_t right;
diff --git a/ndk/platforms/android-9/include/pthread.h b/ndk/platforms/android-9/include/pthread.h
index 5e87043..4baf82f 100644
--- a/ndk/platforms/android-9/include/pthread.h
+++ b/ndk/platforms/android-9/include/pthread.h
@@ -103,7 +103,7 @@
 /*
  * Prototypes
  */
-#if __cplusplus
+#ifdef __cplusplus
 extern "C" {
 #endif
 
@@ -302,7 +302,7 @@
         __pthread_cleanup_pop( &__cleanup, (execute)); \
     } while (0);
 
-#if __cplusplus
+#ifdef __cplusplus
 } /* extern "C" */
 #endif
 
@@ -311,4 +311,4 @@
 #define LONG_LONG_MAX __LONG_LONG_MAX__
 #define LONG_LONG_MIN (-__LONG_LONG_MAX__ - 1)
 
-#endif // _PTHREAD_H_
+#endif /* _PTHREAD_H_ */
diff --git a/ndk/platforms/android-9/arch-x86/include/sys/atomics.h b/ndk/platforms/android-9/include/sys/eventfd.h
similarity index 62%
copy from ndk/platforms/android-9/arch-x86/include/sys/atomics.h
copy to ndk/platforms/android-9/include/sys/eventfd.h
index 7aed3ae..19244a5 100644
--- a/ndk/platforms/android-9/arch-x86/include/sys/atomics.h
+++ b/ndk/platforms/android-9/include/sys/eventfd.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011 The Android Open Source Project
+ * Copyright (C) 2008 The Android Open Source Project
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -25,41 +25,26 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#ifndef _SYS_ATOMICS_H
-#define _SYS_ATOMICS_H
+#ifndef _SYS_EVENTFD_H
+#define _SYS_EVENTFD_H
 
 #include <sys/cdefs.h>
-#include <sys/time.h>
+#include <fcntl.h>
 
 __BEGIN_DECLS
 
-static inline __attribute__((always_inline)) int
-__atomic_cmpxchg(int old, int _new, volatile int *ptr)
-{
-  return !__sync_bool_compare_and_swap (ptr, old, _new);
-}
+#define  EFD_CLOEXEC   O_CLOEXEC
+#define  EFD_NONBLOCK  O_NONBLOCK
 
-static inline __attribute__((always_inline)) int
-__atomic_swap(int _new, volatile int *ptr)
-{
-  return __sync_lock_test_and_set(ptr, _new);
-}
+/* type of event counter */
+typedef uint64_t  eventfd_t;
 
-static inline __attribute__((always_inline)) int
-__atomic_dec(volatile int *ptr)
-{
-  return __sync_fetch_and_sub (ptr, 1);
-}
+extern int eventfd(unsigned int initval, int flags);
 
-static inline __attribute__((always_inline)) int
-__atomic_inc(volatile int *ptr)
-{
-  return __sync_fetch_and_add (ptr, 1);
-}
-
-int __futex_wait(volatile void *ftx, int val, const struct timespec *timeout);
-int __futex_wake(volatile void *ftx, int count);
+/* Compatibility with GLibc */
+extern int eventfd_read(int fd, eventfd_t *counter);
+extern int eventfd_write(int fd, const eventfd_t counter);
 
 __END_DECLS
 
-#endif /* _SYS_ATOMICS_H */
+#endif /* _SYS_EVENTFD_H */
diff --git a/ndk/platforms/android-9/include/unistd.h b/ndk/platforms/android-9/include/unistd.h
index 21154ad..f92ec10 100644
--- a/ndk/platforms/android-9/include/unistd.h
+++ b/ndk/platforms/android-9/include/unistd.h
@@ -70,8 +70,9 @@
 extern int execle(const char *, const char *, ...);
 extern int capget(cap_user_header_t hdrp, cap_user_data_t datap);
 extern int capset(cap_user_header_t hdrp, const cap_user_data_t datap);
-extern int prctl(int  option,  unsigned long arg2, unsigned long arg3,
-                 unsigned long arg4, unsigned long arg5);
+
+/* IMPORTANT: See comment under <sys/prctl.h> about this declaration */
+extern int prctl(int  option, ...);
 
 extern int nice(int);
 
@@ -128,7 +129,7 @@
 
 extern int close(int);
 extern off_t lseek(int, off_t, int);
-extern loff_t lseek64(int, loff_t, int);
+extern off64_t lseek64(int, off64_t, int);
 
 extern ssize_t read(int, void *, size_t);
 extern ssize_t write(int, const void *, size_t);
diff --git a/ndk/platforms/android-9/include/wchar.h b/ndk/platforms/android-9/include/wchar.h
index 9b744a5..86d6d73 100644
--- a/ndk/platforms/android-9/include/wchar.h
+++ b/ndk/platforms/android-9/include/wchar.h
@@ -28,6 +28,7 @@
 #ifndef _WCHAR_H_
 #define _WCHAR_H_
 
+#include <limits.h>
 #include <sys/cdefs.h>
 #include <stdio.h>
 
diff --git a/ndk/platforms/android-9/samples/native-activity/AndroidManifest.xml b/ndk/platforms/android-9/samples/native-activity/AndroidManifest.xml
index 1fd3620..ee83d12 100644
--- a/ndk/platforms/android-9/samples/native-activity/AndroidManifest.xml
+++ b/ndk/platforms/android-9/samples/native-activity/AndroidManifest.xml
@@ -6,7 +6,7 @@
         android:versionName="1.0">
 
     <!-- This is the platform API where NativeActivity was introduced. -->
-    <uses-sdk android:minSdkVersion="8" />
+    <uses-sdk android:minSdkVersion="9" />
 
     <!-- This .apk has no Java code itself, so set hasCode to false. -->
     <application android:label="@string/app_name" android:hasCode="false">
diff --git a/ndk/platforms/android-9/samples/native-activity/default.properties b/ndk/platforms/android-9/samples/native-activity/default.properties
index 9d135cb..9a2c9f6 100644
--- a/ndk/platforms/android-9/samples/native-activity/default.properties
+++ b/ndk/platforms/android-9/samples/native-activity/default.properties
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-7
+target=android-9
diff --git a/ndk/platforms/android-9/samples/native-plasma/AndroidManifest.xml b/ndk/platforms/android-9/samples/native-plasma/AndroidManifest.xml
index 28408b9..43acf0d 100644
--- a/ndk/platforms/android-9/samples/native-plasma/AndroidManifest.xml
+++ b/ndk/platforms/android-9/samples/native-plasma/AndroidManifest.xml
@@ -3,7 +3,7 @@
       package="com.example.native_plasma"
       android:versionCode="1"
       android:versionName="1.0">
-    <uses-sdk android:minSdkVersion="8" />
+    <uses-sdk android:minSdkVersion="9" />
     <application android:label="@string/app_name"
                  android:hasCode="false" android:debuggable="true">
         <activity android:name="android.app.NativeActivity"
diff --git a/ndk/platforms/android-9/samples/native-plasma/default.properties b/ndk/platforms/android-9/samples/native-plasma/default.properties
index 9d135cb..9a2c9f6 100644
--- a/ndk/platforms/android-9/samples/native-plasma/default.properties
+++ b/ndk/platforms/android-9/samples/native-plasma/default.properties
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-7
+target=android-9
diff --git a/ndk/platforms/android-9/samples/native-plasma/src/Dummy.java b/ndk/platforms/android-9/samples/native-plasma/src/Dummy.java
deleted file mode 100644
index 596215a..0000000
--- a/ndk/platforms/android-9/samples/native-plasma/src/Dummy.java
+++ /dev/null
@@ -1,4 +0,0 @@
-// Temporary until the NDK build system can deal with there being no Java source.
-class Dummy {
-
-}
diff --git a/ndk/samples/hello-jni/default.properties b/ndk/samples/hello-jni/default.properties
index 0b9250e..4513a1e 100644
--- a/ndk/samples/hello-jni/default.properties
+++ b/ndk/samples/hello-jni/default.properties
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-8
+target=android-3
diff --git a/ndk/samples/hello-neon/AndroidManifest.xml b/ndk/samples/hello-neon/AndroidManifest.xml
index 2d362d6..ff06e09 100644
--- a/ndk/samples/hello-neon/AndroidManifest.xml
+++ b/ndk/samples/hello-neon/AndroidManifest.xml
@@ -3,6 +3,7 @@
       package="com.example.neon"
       android:versionCode="1"
       android:versionName="1.0">
+    <uses-sdk android:minSdkVersion="4" />
     <application android:label="@string/app_name">
         <activity android:name=".HelloNeon"
                   android:label="@string/app_name">
diff --git a/ndk/samples/hello-neon/default.properties b/ndk/samples/hello-neon/default.properties
index 4513a1e..9d79b12 100644
--- a/ndk/samples/hello-neon/default.properties
+++ b/ndk/samples/hello-neon/default.properties
@@ -8,4 +8,4 @@
 # project structure.
 
 # Project target.
-target=android-3
+target=android-4
diff --git a/ndk/sources/android/native_app_glue/android_native_app_glue.c b/ndk/sources/android/native_app_glue/android_native_app_glue.c
index 3069f17..82fc030 100644
--- a/ndk/sources/android/native_app_glue/android_native_app_glue.c
+++ b/ndk/sources/android/native_app_glue/android_native_app_glue.c
@@ -26,6 +26,14 @@
 #include <android/log.h>
 
 #define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "threaded_app", __VA_ARGS__))
+#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "threaded_app", __VA_ARGS__))
+
+/* For debug builds, always enable the debug traces in this library */
+#ifndef NDEBUG
+#  define LOGV(...)  ((void)__android_log_print(ANDROID_LOG_VERBOSE, "threaded_app", __VA_ARGS__))
+#else
+#  define LOGV(...)  ((void)0)
+#endif
 
 static void free_saved_state(struct android_app* android_app) {
     pthread_mutex_lock(&android_app->mutex);
@@ -47,7 +55,7 @@
         }
         return cmd;
     } else {
-        LOGI("No data on command pipe!");
+        LOGE("No data on command pipe!");
     }
     return -1;
 }
@@ -57,7 +65,7 @@
     AConfiguration_getLanguage(android_app->config, lang);
     AConfiguration_getCountry(android_app->config, country);
 
-    LOGI("Config: mcc=%d mnc=%d lang=%c%c cnt=%c%c orien=%d touch=%d dens=%d "
+    LOGV("Config: mcc=%d mnc=%d lang=%c%c cnt=%c%c orien=%d touch=%d dens=%d "
             "keys=%d nav=%d keysHid=%d navHid=%d sdk=%d size=%d long=%d "
             "modetype=%d modenight=%d",
             AConfiguration_getMcc(android_app->config),
@@ -80,14 +88,14 @@
 void android_app_pre_exec_cmd(struct android_app* android_app, int8_t cmd) {
     switch (cmd) {
         case APP_CMD_INPUT_CHANGED:
-            LOGI("APP_CMD_INPUT_CHANGED\n");
+            LOGV("APP_CMD_INPUT_CHANGED\n");
             pthread_mutex_lock(&android_app->mutex);
             if (android_app->inputQueue != NULL) {
                 AInputQueue_detachLooper(android_app->inputQueue);
             }
             android_app->inputQueue = android_app->pendingInputQueue;
             if (android_app->inputQueue != NULL) {
-                LOGI("Attaching input queue to looper");
+                LOGV("Attaching input queue to looper");
                 AInputQueue_attachLooper(android_app->inputQueue,
                         android_app->looper, LOOPER_ID_INPUT, NULL,
                         &android_app->inputPollSource);
@@ -97,7 +105,7 @@
             break;
 
         case APP_CMD_INIT_WINDOW:
-            LOGI("APP_CMD_INIT_WINDOW\n");
+            LOGV("APP_CMD_INIT_WINDOW\n");
             pthread_mutex_lock(&android_app->mutex);
             android_app->window = android_app->pendingWindow;
             pthread_cond_broadcast(&android_app->cond);
@@ -105,7 +113,7 @@
             break;
 
         case APP_CMD_TERM_WINDOW:
-            LOGI("APP_CMD_TERM_WINDOW\n");
+            LOGV("APP_CMD_TERM_WINDOW\n");
             pthread_cond_broadcast(&android_app->cond);
             break;
 
@@ -113,7 +121,7 @@
         case APP_CMD_START:
         case APP_CMD_PAUSE:
         case APP_CMD_STOP:
-            LOGI("activityState=%d\n", cmd);
+            LOGV("activityState=%d\n", cmd);
             pthread_mutex_lock(&android_app->mutex);
             android_app->activityState = cmd;
             pthread_cond_broadcast(&android_app->cond);
@@ -121,14 +129,14 @@
             break;
 
         case APP_CMD_CONFIG_CHANGED:
-            LOGI("APP_CMD_CONFIG_CHANGED\n");
+            LOGV("APP_CMD_CONFIG_CHANGED\n");
             AConfiguration_fromAssetManager(android_app->config,
                     android_app->activity->assetManager);
             print_cur_config(android_app);
             break;
 
         case APP_CMD_DESTROY:
-            LOGI("APP_CMD_DESTROY\n");
+            LOGV("APP_CMD_DESTROY\n");
             android_app->destroyRequested = 1;
             break;
     }
@@ -137,7 +145,7 @@
 void android_app_post_exec_cmd(struct android_app* android_app, int8_t cmd) {
     switch (cmd) {
         case APP_CMD_TERM_WINDOW:
-            LOGI("APP_CMD_TERM_WINDOW\n");
+            LOGV("APP_CMD_TERM_WINDOW\n");
             pthread_mutex_lock(&android_app->mutex);
             android_app->window = NULL;
             pthread_cond_broadcast(&android_app->cond);
@@ -145,7 +153,7 @@
             break;
 
         case APP_CMD_SAVE_STATE:
-            LOGI("APP_CMD_SAVE_STATE\n");
+            LOGV("APP_CMD_SAVE_STATE\n");
             pthread_mutex_lock(&android_app->mutex);
             android_app->stateSaved = 1;
             pthread_cond_broadcast(&android_app->cond);
@@ -163,7 +171,7 @@
 }
 
 static void android_app_destroy(struct android_app* android_app) {
-    LOGI("android_app_destroy!");
+    LOGV("android_app_destroy!");
     free_saved_state(android_app);
     pthread_mutex_lock(&android_app->mutex);
     if (android_app->inputQueue != NULL) {
@@ -179,7 +187,7 @@
 static void process_input(struct android_app* app, struct android_poll_source* source) {
     AInputEvent* event = NULL;
     if (AInputQueue_getEvent(app->inputQueue, &event) >= 0) {
-        LOGI("New input event: type=%d\n", AInputEvent_getType(event));
+        LOGV("New input event: type=%d\n", AInputEvent_getType(event));
         if (AInputQueue_preDispatchEvent(app->inputQueue, event)) {
             return;
         }
@@ -187,7 +195,7 @@
         if (app->onInputEvent != NULL) handled = app->onInputEvent(app, event);
         AInputQueue_finishEvent(app->inputQueue, event, handled);
     } else {
-        LOGI("Failure reading next input event: %s\n", strerror(errno));
+        LOGE("Failure reading next input event: %s\n", strerror(errno));
     }
 }
 
@@ -250,7 +258,8 @@
 
     int msgpipe[2];
     if (pipe(msgpipe)) {
-        LOGI("could not create pipe: %s", strerror(errno));
+        LOGE("could not create pipe: %s", strerror(errno));
+        return NULL;
     }
     android_app->msgread = msgpipe[0];
     android_app->msgwrite = msgpipe[1];
@@ -272,7 +281,7 @@
 
 static void android_app_write_cmd(struct android_app* android_app, int8_t cmd) {
     if (write(android_app->msgwrite, &cmd, sizeof(cmd)) != sizeof(cmd)) {
-        LOGI("Failure writing android_app cmd: %s\n", strerror(errno));
+        LOGE("Failure writing android_app cmd: %s\n", strerror(errno));
     }
 }
 
@@ -326,17 +335,17 @@
 }
 
 static void onDestroy(ANativeActivity* activity) {
-    LOGI("Destroy: %p\n", activity);
+    LOGV("Destroy: %p\n", activity);
     android_app_free((struct android_app*)activity->instance);
 }
 
 static void onStart(ANativeActivity* activity) {
-    LOGI("Start: %p\n", activity);
+    LOGV("Start: %p\n", activity);
     android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_START);
 }
 
 static void onResume(ANativeActivity* activity) {
-    LOGI("Resume: %p\n", activity);
+    LOGV("Resume: %p\n", activity);
     android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_RESUME);
 }
 
@@ -344,7 +353,7 @@
     struct android_app* android_app = (struct android_app*)activity->instance;
     void* savedState = NULL;
 
-    LOGI("SaveInstanceState: %p\n", activity);
+    LOGV("SaveInstanceState: %p\n", activity);
     pthread_mutex_lock(&android_app->mutex);
     android_app->stateSaved = 0;
     android_app_write_cmd(android_app, APP_CMD_SAVE_STATE);
@@ -365,56 +374,56 @@
 }
 
 static void onPause(ANativeActivity* activity) {
-    LOGI("Pause: %p\n", activity);
+    LOGV("Pause: %p\n", activity);
     android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_PAUSE);
 }
 
 static void onStop(ANativeActivity* activity) {
-    LOGI("Stop: %p\n", activity);
+    LOGV("Stop: %p\n", activity);
     android_app_set_activity_state((struct android_app*)activity->instance, APP_CMD_STOP);
 }
 
 static void onConfigurationChanged(ANativeActivity* activity) {
     struct android_app* android_app = (struct android_app*)activity->instance;
-    LOGI("ConfigurationChanged: %p\n", activity);
+    LOGV("ConfigurationChanged: %p\n", activity);
     android_app_write_cmd(android_app, APP_CMD_CONFIG_CHANGED);
 }
 
 static void onLowMemory(ANativeActivity* activity) {
     struct android_app* android_app = (struct android_app*)activity->instance;
-    LOGI("LowMemory: %p\n", activity);
+    LOGV("LowMemory: %p\n", activity);
     android_app_write_cmd(android_app, APP_CMD_LOW_MEMORY);
 }
 
 static void onWindowFocusChanged(ANativeActivity* activity, int focused) {
-    LOGI("WindowFocusChanged: %p -- %d\n", activity, focused);
+    LOGV("WindowFocusChanged: %p -- %d\n", activity, focused);
     android_app_write_cmd((struct android_app*)activity->instance,
             focused ? APP_CMD_GAINED_FOCUS : APP_CMD_LOST_FOCUS);
 }
 
 static void onNativeWindowCreated(ANativeActivity* activity, ANativeWindow* window) {
-    LOGI("NativeWindowCreated: %p -- %p\n", activity, window);
+    LOGV("NativeWindowCreated: %p -- %p\n", activity, window);
     android_app_set_window((struct android_app*)activity->instance, window);
 }
 
 static void onNativeWindowDestroyed(ANativeActivity* activity, ANativeWindow* window) {
-    LOGI("NativeWindowDestroyed: %p -- %p\n", activity, window);
+    LOGV("NativeWindowDestroyed: %p -- %p\n", activity, window);
     android_app_set_window((struct android_app*)activity->instance, NULL);
 }
 
 static void onInputQueueCreated(ANativeActivity* activity, AInputQueue* queue) {
-    LOGI("InputQueueCreated: %p -- %p\n", activity, queue);
+    LOGV("InputQueueCreated: %p -- %p\n", activity, queue);
     android_app_set_input((struct android_app*)activity->instance, queue);
 }
 
 static void onInputQueueDestroyed(ANativeActivity* activity, AInputQueue* queue) {
-    LOGI("InputQueueDestroyed: %p -- %p\n", activity, queue);
+    LOGV("InputQueueDestroyed: %p -- %p\n", activity, queue);
     android_app_set_input((struct android_app*)activity->instance, NULL);
 }
 
 void ANativeActivity_onCreate(ANativeActivity* activity,
         void* savedState, size_t savedStateSize) {
-    LOGI("Creating: %p\n", activity);
+    LOGV("Creating: %p\n", activity);
     activity->callbacks->onDestroy = onDestroy;
     activity->callbacks->onStart = onStart;
     activity->callbacks->onResume = onResume;
diff --git a/samples/ActionBarCompat/AndroidManifest.xml b/samples/ActionBarCompat/AndroidManifest.xml
index 1a48274..a78339b 100644
--- a/samples/ActionBarCompat/AndroidManifest.xml
+++ b/samples/ActionBarCompat/AndroidManifest.xml
@@ -20,6 +20,8 @@
     android:versionName="1.0">
 
     <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="14" />
+    <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
+    <supports-screens android:largeScreens="true"/>
 
     <application android:label="@string/app_name"
         android:icon="@drawable/ic_launcher"
diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 4e63dde..bcb0fcb 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -615,24 +615,28 @@
             </intent-filter>
         </activity>
 
-<!-- BEGIN_INCLUDE(no_task_affinity) -->
         <activity android:name=".app.IncomingMessage"
-                android:label="App/Notification/IncomingMessage"
-                android:taskAffinity="">
+                android:label="App/Notification/IncomingMessage">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.SAMPLE_CODE" />
             </intent-filter>
         </activity>
-<!-- END_INCLUDE(no_task_affinity) -->
 
-        <activity android:name=".app.IncomingMessageView" android:label="App/Notification/IncomingMessageView">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.EMBED" />
-            </intent-filter>
+        <activity android:name=".app.IncomingMessageView"
+                android:label="App/Notification/IncomingMessageView">
         </activity>
 
+<!-- BEGIN_INCLUDE(interstitial_affinity) -->
+        <activity android:name=".app.IncomingMessageInterstitial"
+                android:label="You have messages"
+                android:theme="@style/ThemeHoloDialog"
+                android:launchMode="singleTask"
+                android:taskAffinity=""
+                android:excludeFromRecents="true">
+        </activity>
+<!-- END_INCLUDE(interstitial_affinity) -->
+
         <!-- This is used to display a notification selected by the user
              from StatusBarNotifications.  Note the configuration here so
              that the activity layers on top of whatever the user is doing,
diff --git a/samples/ApiDemos/res/layout/incoming_message.xml b/samples/ApiDemos/res/layout/incoming_message.xml
index 3c0d92a..21b0752 100644
--- a/samples/ApiDemos/res/layout/incoming_message.xml
+++ b/samples/ApiDemos/res/layout/incoming_message.xml
@@ -17,12 +17,34 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:padding="8dp">
 
-    <Button
-        android:id="@+id/notify"
+    <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="@string/incoming_message_notify_text" />
+        android:layout_gravity="center"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="Display a notification that will switch to the app in a new activity stack." />
+
+    <Button
+        android:id="@+id/notify_app"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Show App Notification" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingTop="16dp"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="Display a notification that will go to a dedicated interstitial activity." />
+
+    <Button
+        android:id="@+id/notify_interstitial"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Show Interstitial Notification" />
 
 </LinearLayout>
diff --git a/samples/ApiDemos/res/layout/incoming_message_interstitial.xml b/samples/ApiDemos/res/layout/incoming_message_interstitial.xml
new file mode 100644
index 0000000..6a79325
--- /dev/null
+++ b/samples/ApiDemos/res/layout/incoming_message_interstitial.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="8dp">
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:paddingBottom="4dp"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="This would be where you would see a summary of the information related to the notification.  Instead, we'll just give you a button." />
+
+    <Button
+        android:id="@+id/notify_app"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="Switch To App" />
+
+</LinearLayout>
diff --git a/samples/ApiDemos/res/layout/incoming_message_view.xml b/samples/ApiDemos/res/layout/incoming_message_view.xml
index b2daf4e..a40807c 100644
--- a/samples/ApiDemos/res/layout/incoming_message_view.xml
+++ b/samples/ApiDemos/res/layout/incoming_message_view.xml
@@ -23,6 +23,15 @@
     android:paddingTop="4dip"
     >
 
+    <TextView
+        android:layout_gravity="center_vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:paddingBottom="12dip"
+        android:textAppearance="?android:attr/textAppearanceMedium"
+        android:text="@string/incoming_message_view_message_text"
+        />
+
         <LinearLayout
             android:orientation="horizontal"
             android:layout_width="match_parent"
@@ -35,23 +44,35 @@
                     android:src="@drawable/sample_thumb_2"
                     />
 
-                <TextView
-                    android:id="@+id/message"
-                    android:layout_gravity="center_vertical"
-                    android:layout_width="wrap_content"
+                <LinearLayout
+                    android:orientation="vertical"
+                    android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:layout_gravity="center_vertical"
                     android:paddingLeft="6dip"
-                    android:text="@string/incoming_message_view_message_text"
-                    />
+                    >
+                    <TextView
+                        android:id="@+id/from"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textAppearance="?android:attr/textAppearanceSmall"
+                        />
+                    <TextView
+                        android:id="@+id/message"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textAppearance="?android:attr/textAppearanceMedium"
+                        />
+                </LinearLayout>
 
         </LinearLayout>
 
         <TextView
-            android:id="@+id/message"
             android:layout_gravity="center_vertical"
 			android:layout_width="wrap_content"
 			android:layout_height="wrap_content"
             android:paddingTop="12dip"
+            android:textAppearance="?android:attr/textAppearanceMedium"
             android:text="@string/imcoming_message_view_message2_text"
             />
 
diff --git a/samples/ApiDemos/res/layout/linear_layout_5.xml b/samples/ApiDemos/res/layout/linear_layout_5.xml
index b5d45c0..a0ff63b 100644
--- a/samples/ApiDemos/res/layout/linear_layout_5.xml
+++ b/samples/ApiDemos/res/layout/linear_layout_5.xml
@@ -35,16 +35,10 @@
 
     <!--
         Followed by the EditText field...
-
-        Also give it a standard background (the "android:"
-        part in @android:drawable/editbox_background
-        means it is system resource rather than
-        an application resource.
     -->
     <EditText
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:background="@android:drawable/editbox_background"/>
+        android:layout_height="wrap_content"/>
 
     <!--
         Use a horizontal layout to hold the two buttons.
diff --git a/samples/ApiDemos/res/layout/link.xml b/samples/ApiDemos/res/layout/link.xml
index d4eaf0c..6c034dd 100644
--- a/samples/ApiDemos/res/layout/link.xml
+++ b/samples/ApiDemos/res/layout/link.xml
@@ -14,43 +14,55 @@
      limitations under the License.
 -->
 
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content">
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
 
-  <!-- Four TextView widgets, each one displaying text containing links. -->
+    <LinearLayout android:orientation="vertical"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:showDividers="middle"
+                  android:divider="?android:attr/listDivider">
 
-  <!-- text1 automatically linkifies things like URLs and phone numbers. -->
-  <TextView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/text1"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:autoLink="all"
-            android:text="@string/link_text_auto"
-            />
+      <!-- Four TextView widgets, each one displaying text containing links. -->
 
-  <!-- text2 uses a string resource containing explicit <a> tags to
-       specify links. -->
-  <TextView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/text2"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:text="@string/link_text_manual"
-            />
+      <!-- text1 automatically linkifies things like URLs and phone numbers. -->
+      <TextView android:id="@+id/text1"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:paddingBottom="8dp"
+                android:autoLink="all"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/link_text_auto"
+                />
 
-  <!-- text3 builds the text in the Java code using HTML. -->
-  <TextView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/text3"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            />
+      <!-- text2 uses a string resource containing explicit <a> tags to
+           specify links. -->
+      <TextView android:id="@+id/text2"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:paddingTop="8dp"
+                android:paddingBottom="8dp"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/link_text_manual"
+                />
 
-  <!-- text4 builds the text in the Java code without using HTML. -->
-  <TextView xmlns:android="http://schemas.android.com/apk/res/android"
-            android:id="@+id/text4"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            />
+      <!-- text3 builds the text in the Java code using HTML. -->
+      <TextView android:id="@+id/text3"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:paddingTop="8dp"
+                android:paddingBottom="8dp"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                />
 
-</LinearLayout>
+      <!-- text4 builds the text in the Java code without using HTML. -->
+      <TextView android:id="@+id/text4"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:paddingTop="8dp"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                />
+
+    </LinearLayout>
+</ScrollView>
diff --git a/samples/ApiDemos/res/layout/relative_layout_2.xml b/samples/ApiDemos/res/layout/relative_layout_2.xml
index 083953a..87a5377 100644
--- a/samples/ApiDemos/res/layout/relative_layout_2.xml
+++ b/samples/ApiDemos/res/layout/relative_layout_2.xml
@@ -33,16 +33,11 @@
 
     <!--
         Put the EditText field under the TextView
-        Also give it a standard background (the "android:"
-        part in @android:drawable/editbox_background
-        means it is system resource rather than
-        an application resource.
     -->
     <EditText
         android:id="@+id/entry"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:background="@android:drawable/editbox_background"
         android:layout_below="@id/label"/>
 
     <!--
diff --git a/samples/ApiDemos/res/values-v11/styles.xml b/samples/ApiDemos/res/values-v11/styles.xml
index 04c6f3f..3b4fead 100644
--- a/samples/ApiDemos/res/values-v11/styles.xml
+++ b/samples/ApiDemos/res/values-v11/styles.xml
@@ -19,6 +19,10 @@
     <style name="ThemeHolo" parent="android:Theme.Holo">
     </style>
 
+    <!-- For API level 11 or later, the Holo theme is available and we prefer that. -->
+    <style name="ThemeHoloDialog" parent="android:Theme.Holo.Dialog">
+    </style>
+
     <!-- For API level 11 or later, we can use the magical DialogWhenLarge theme. -->
     <style name="ThemeDialogWhenLarge" parent="android:style/Theme.Holo.DialogWhenLarge">
     </style>
diff --git a/samples/ApiDemos/res/values/strings.xml b/samples/ApiDemos/res/values/strings.xml
index 2913844..c637655 100644
--- a/samples/ApiDemos/res/values/strings.xml
+++ b/samples/ApiDemos/res/values/strings.xml
@@ -1019,14 +1019,21 @@
     <string name="linear_layout_8_b">B</string>
     <string name="linear_layout_8_c">C</string>
     <string name="linear_layout_9_button">Button</string>
-    <string name="link_text_auto"><b>text1:</b> This is some text.  In
+    <string name="link_text_auto"><b>text1: Various kinds
+      of data that will be auto-linked.</b>  In
       this text are some things that are actionable.  For instance,
       you can click on http://www.google.com and it will launch the
-      web browser.  You can click on google.com too.  And, if you
-      click on (415) 555-1212 it should dial the phone.
+      web browser.  You can click on google.com too.  If you
+      click on (415) 555-1212 it should dial the phone.  Or just write
+      foobar@example.com for an e-mail link.  If you have a URI like
+      http://www.example.com/lala/foobar@example.com you should get the
+      full link not the e-mail address.  Or you can put a location
+      like 1600 Amphitheatre Parkway, Mountain View, CA 94043.  To summarize:
+      https://www.google.com, or 650-253-0000, somebody@example.com,
+      or 9606 North MoPac Expressway, Suite 400, Austin, TX 78759.
     </string>
-    <string name="link_text_manual"><b>text2:</b> This is some other
-      text, with a <a href="http://www.google.com">link</a> specified
+    <string name="link_text_manual"><b>text2: Explicit links using &lt;a&gt; markup.</b>
+      This has markup for a <a href="http://www.google.com">link</a> specified
       via an &lt;a&gt; tag.  Use a \"tel:\" URL
       to <a href="tel:4155551212">dial a phone number</a>.
     </string>
@@ -1195,11 +1202,9 @@
 
     <string name="google_login_username_text"></string>
 
-    <string name="incoming_message_notify_text">Show Notification</string>
-
     <string name="incoming_message_info_message_text">this is the text of a previous message.\nkthx. meet u for dinner. cul8r</string>
 
-    <string name="incoming_message_view_message_text">this is the text of a previous message.\nkthx. meet u for dinner. cul8r</string>
+    <string name="incoming_message_view_message_text">This is the text of the posted notification.</string>
     <string name="imcoming_message_view_message2_text">Did you notice that the status bar icon disappeared?</string>
     <string name="imcoming_message_ticker_text">New text message: <xliff:g id="text">%0$s</xliff:g></string>
 
diff --git a/samples/ApiDemos/res/values/styles.xml b/samples/ApiDemos/res/values/styles.xml
index 10dcf35..49a1c25 100644
--- a/samples/ApiDemos/res/values/styles.xml
+++ b/samples/ApiDemos/res/values/styles.xml
@@ -30,6 +30,13 @@
     <style name="ThemeHolo" parent="android:Theme">
     </style>
 
+    <!-- This is a theme that will adjust itself depending on the API version.
+         The default definition is the safe one, using a theme that has always
+         been defined.  Look at values-11/styles.xml for a variation that is
+         selected when the holographic theme is available. -->
+    <style name="ThemeHoloDialog" parent="android:Theme.Dialog">
+    </style>
+
     <!-- Base application theme is the default theme. -->
     <style name="Theme" parent="android:Theme">
     </style>
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarTabs.java b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarTabs.java
index 11c1bc2..df6752c 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/ActionBarTabs.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/ActionBarTabs.java
@@ -52,7 +52,9 @@
 
     public void onRemoveTab(View v) {
         final ActionBar bar = getActionBar();
-        bar.removeTabAt(bar.getTabCount() - 1);
+        if (bar.getTabCount() > 0) {
+            bar.removeTabAt(bar.getTabCount() - 1);
+        }
     }
 
     public void onToggleTabs(View v) {
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessage.java b/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessage.java
index 41d2ea3..63a254f 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessage.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessage.java
@@ -16,22 +16,24 @@
 
 package com.example.android.apis.app;
 
+import java.util.Random;
+
 import com.example.android.apis.R;
 
 import android.app.Activity;
 import android.app.Notification;
 import android.app.NotificationManager;
 import android.app.PendingIntent;
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
 import android.os.Bundle;
-import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.Button;
-import android.widget.TextView;
 
+/**
+ * UI for posting an example notification.
+ */
 public class IncomingMessage extends Activity {
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -39,36 +41,82 @@
 
         setContentView(R.layout.incoming_message);
 
-        Button button = (Button) findViewById(R.id.notify);
+        Button button = (Button) findViewById(R.id.notify_app);
         button.setOnClickListener(new Button.OnClickListener() {
                 public void onClick(View v) {
-                    showNotification();
+                    showAppNotification();
+                }
+            });
+
+        button = (Button) findViewById(R.id.notify_interstitial);
+        button.setOnClickListener(new Button.OnClickListener() {
+                public void onClick(View v) {
+                    showInterstitialNotification();
                 }
             });
     }
 
-    private View inflateView(int resource) {
-        LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-        return vi.inflate(resource, null);
+//BEGIN_INCLUDE(app_notification)
+//BEGIN_INCLUDE(intent_array)
+    /**
+     * This method creates an array of Intent objects representing the
+     * activity stack for the incoming message details state that the
+     * application should be in when launching it from a notification.
+     */
+    static Intent[] makeMessageIntentStack(Context context, CharSequence from,
+            CharSequence msg) {
+        // A typical convention for notifications is to launch the user deeply
+        // into an application representing the data in the notification; to
+        // accomplish this, we can build an array of intents to insert the back
+        // stack stack history above the item being displayed.
+        Intent[] intents = new Intent[4];
+
+        // First: root activity of ApiDemos.
+        // This is a convenient way to make the proper Intent to launch and
+        // reset an application's task.
+        intents[0] = Intent.makeRestartActivityTask(new ComponentName(context,
+                com.example.android.apis.ApiDemos.class));
+
+        // "App"
+        intents[1] = new Intent(context, com.example.android.apis.ApiDemos.class);
+        intents[1].putExtra("com.example.android.apis.Path", "App");
+        // "App/Notification"
+        intents[2] = new Intent(context, com.example.android.apis.ApiDemos.class);
+        intents[2].putExtra("com.example.android.apis.Path", "App/Notification");
+
+        // Now the activity to display to the user.  Also fill in the data it
+        // should display.
+        intents[3] = new Intent(context, IncomingMessageView.class);
+        intents[3].putExtra(IncomingMessageView.KEY_FROM, from);
+        intents[3].putExtra(IncomingMessageView.KEY_MESSAGE, msg);
+
+        return intents;
     }
+//END_INCLUDE(intent_array)
 
     /**
      * The notification is the icon and associated expanded entry in the
      * status bar.
      */
-    protected void showNotification() {
+    void showAppNotification() {
         // look up the notification manager service
         NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
 
         // The details of our fake message
         CharSequence from = "Joe";
-        CharSequence message = "kthx. meet u for dinner. cul8r";
+        CharSequence message;
+        switch ((new Random().nextInt()) % 3) {
+            case 0: message = "r u hungry?  i am starved"; break;
+            case 1: message = "im nearby u"; break;
+            default: message = "kthx. meet u for dinner. cul8r"; break;
+        }
 
-        // The PendingIntent to launch our activity if the user selects this notification
-//BEGIN_INCLUDE(pending_intent)
-        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
-                new Intent(this, IncomingMessageView.class), 0);
-//END_INCLUDE(pending_intent)
+        // The PendingIntent to launch our activity if the user selects this
+        // notification.  Note the use of FLAG_CANCEL_CURRENT so that, if there
+        // is already an active matching pending intent, cancel it and replace
+        // it with the new array of Intents.
+        PendingIntent contentIntent = PendingIntent.getActivities(this, 0,
+                makeMessageIntentStack(this, from, message), PendingIntent.FLAG_CANCEL_CURRENT);
 
         // The ticker text, this uses a formatted string so our message could be localized
         String tickerText = getString(R.string.imcoming_message_ticker_text, message);
@@ -80,20 +128,10 @@
         // Set the info for the views that show in the notification panel.
         notif.setLatestEventInfo(this, from, message, contentIntent);
 
-        /*
-        // On tablets, the ticker shows the sender, the first line of the message,
-        // the photo of the person and the app icon.  For our sample, we just show
-        // the same icon twice.  If there is no sender, just pass an array of 1 Bitmap.
-        notif.tickerTitle = from;
-        notif.tickerSubtitle = message;
-        notif.tickerIcons = new Bitmap[2];
-        notif.tickerIcons[0] = getIconBitmap();;
-        notif.tickerIcons[1] = getIconBitmap();;
-        */
-
-        // after a 0ms delay, vibrate for 250ms, pause for 100 ms and
-        // then vibrate for 500ms.
-        notif.vibrate = new long[] { 0, 250, 100, 500};
+        // We'll have this notification do the default sound, vibration, and led.
+        // Note that if you want any of these behaviors, you should always have
+        // a preference for the user to turn them off.
+        notif.defaults = Notification.DEFAULT_ALL;
 
         // Note that we use R.layout.incoming_message_panel as the ID for
         // the notification.  It could be any integer you want, but we use
@@ -102,10 +140,58 @@
         // application.
         nm.notify(R.string.imcoming_message_ticker_text, notif);
     }
+//END_INCLUDE(app_notification)
 
-    private Bitmap getIconBitmap() {
-        BitmapFactory f = new BitmapFactory();
-        return f.decodeResource(getResources(), R.drawable.app_sample_code);
+//BEGIN_INCLUDE(interstitial_notification)
+    /**
+     * The notification is the icon and associated expanded entry in the
+     * status bar.
+     */
+    void showInterstitialNotification() {
+        // look up the notification manager service
+        NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
+
+        // The details of our fake message
+        CharSequence from = "Dianne";
+        CharSequence message;
+        switch ((new Random().nextInt()) % 3) {
+            case 0: message = "i am ready for some dinner"; break;
+            case 1: message = "how about thai down the block?"; break;
+            default: message = "meet u soon. dont b late!"; break;
+        }
+
+        // The PendingIntent to launch our activity if the user selects this
+        // notification.  Note the use of FLAG_CANCEL_CURRENT so that, if there
+        // is already an active matching pending intent, cancel it and replace
+        // it with the new Intent.
+        Intent intent = new Intent(this, IncomingMessageInterstitial.class);
+        intent.putExtra(IncomingMessageView.KEY_FROM, from);
+        intent.putExtra(IncomingMessageView.KEY_MESSAGE, message);
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
+                intent, PendingIntent.FLAG_CANCEL_CURRENT);
+
+        // The ticker text, this uses a formatted string so our message could be localized
+        String tickerText = getString(R.string.imcoming_message_ticker_text, message);
+
+        // construct the Notification object.
+        Notification notif = new Notification(R.drawable.stat_sample, tickerText,
+                System.currentTimeMillis());
+
+        // Set the info for the views that show in the notification panel.
+        notif.setLatestEventInfo(this, from, message, contentIntent);
+
+        // We'll have this notification do the default sound, vibration, and led.
+        // Note that if you want any of these behaviors, you should always have
+        // a preference for the user to turn them off.
+        notif.defaults = Notification.DEFAULT_ALL;
+
+        // Note that we use R.layout.incoming_message_panel as the ID for
+        // the notification.  It could be any integer you want, but we use
+        // the convention of using a resource id for a string related to
+        // the notification.  It will always be a unique number within your
+        // application.
+        nm.notify(R.string.imcoming_message_ticker_text, notif);
     }
+//END_INCLUDE(interstitial_notification)
 }
-
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageInterstitial.java b/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageInterstitial.java
new file mode 100644
index 0000000..f9bbd7b
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageInterstitial.java
@@ -0,0 +1,64 @@
+/*
+ * 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.example.android.apis.app;
+
+import com.example.android.apis.R;
+
+import android.app.Activity;
+import android.app.NotificationManager;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+
+/**
+ * This is an activity that provides an interstitial UI for the notification
+ * that is posted by {@link IncomingMessage}.  It allows the user to switch
+ * to the app in its appropriate state if they want.
+ */
+public class IncomingMessageInterstitial extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setContentView(R.layout.incoming_message_interstitial);
+
+        Button button = (Button) findViewById(R.id.notify_app);
+        button.setOnClickListener(new Button.OnClickListener() {
+                public void onClick(View v) {
+                    switchToApp();
+                }
+            });
+    }
+
+//BEGIN_INCLUDE(app_launch)
+    /**
+     * Perform a switch to the app.  A new activity stack is started, replacing
+     * whatever is currently running, and this activity is finished.
+     */
+    void switchToApp() {
+        // We will launch the app showing what the user picked.  In this simple
+        // example, it is just what the notification gave us.
+        CharSequence from = getIntent().getCharSequenceExtra(IncomingMessageView.KEY_FROM);
+        CharSequence msg = getIntent().getCharSequenceExtra(IncomingMessageView.KEY_MESSAGE);
+        // Build the new activity stack, launch it, and finish this UI.
+        Intent[] stack = IncomingMessage.makeMessageIntentStack(this, from, msg);
+        startActivities(stack);
+        finish();
+    }
+//END_INCLUDE(app_launch)
+}
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageView.java b/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageView.java
index 13ea3da..144184d 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageView.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/IncomingMessageView.java
@@ -21,6 +21,7 @@
 import android.app.Activity;
 import android.app.NotificationManager;
 import android.os.Bundle;
+import android.widget.TextView;
 
 /**
  * This activity is run as the click activity for {@link IncomingMessage}.
@@ -28,11 +29,26 @@
  * has been "read."
  */
 public class IncomingMessageView extends Activity {
+    /**
+     * Extra that can be supplied to Intent: who the message is from.
+     */
+    static final public String KEY_FROM = "from";
+    /**
+     * Extra that can be supplied to Intent: the message that was sent.
+     */
+    static final public String KEY_MESSAGE = "message";
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.incoming_message_view);
 
+        // Fill in the message content.
+        ((TextView)findViewById(R.id.from)).setText(
+                getIntent().getCharSequenceExtra(KEY_FROM));
+        ((TextView)findViewById(R.id.message)).setText(
+                getIntent().getCharSequenceExtra(KEY_MESSAGE));
+
         // look up the notification manager service
         NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
 
diff --git a/samples/ApiDemos/src/com/example/android/apis/text/Link.java b/samples/ApiDemos/src/com/example/android/apis/text/Link.java
index b569d19..cc3ed5b 100644
--- a/samples/ApiDemos/src/com/example/android/apis/text/Link.java
+++ b/samples/ApiDemos/src/com/example/android/apis/text/Link.java
@@ -59,7 +59,7 @@
         TextView t3 = (TextView) findViewById(R.id.text3);
         t3.setText(
             Html.fromHtml(
-                "<b>text3:</b>  Text with a " +
+                "<b>text3: Constructed from HTML programmatically.</b>  Text with a " +
                 "<a href=\"http://www.google.com\">link</a> " +
                 "created in the Java source code using HTML."));
         t3.setMovementMethod(LinkMovementMethod.getInstance());
@@ -70,11 +70,11 @@
         // hardcoded value.
 
         SpannableString ss = new SpannableString(
-            "text4: Click here to dial the phone.");
+            "text4: Manually created spans. Click here to dial the phone.");
 
-        ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 6,
+        ss.setSpan(new StyleSpan(Typeface.BOLD), 0, 30,
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
-        ss.setSpan(new URLSpan("tel:4155551212"), 13, 17,
+        ss.setSpan(new URLSpan("tel:4155551212"), 31+6, 31+10,
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
 
         TextView t4 = (TextView) findViewById(R.id.text4);
diff --git a/samples/AppNavigation/Android.mk b/samples/AppNavigation/Android.mk
new file mode 100644
index 0000000..758201e
--- /dev/null
+++ b/samples/AppNavigation/Android.mk
@@ -0,0 +1,19 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := samples tests
+
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := AppNavigation
+
+LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
+
+LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+
+# Use the following include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/AppNavigation/AndroidManifest.xml b/samples/AppNavigation/AndroidManifest.xml
new file mode 100644
index 0000000..135016e
--- /dev/null
+++ b/samples/AppNavigation/AndroidManifest.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<manifest android:versionCode="1"
+        android:versionName="1"
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.example.android.appnavigation">
+
+    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
+
+    <application android:label="@string/app_name">
+        <activity android:name=".app.AppNavHomeActivity"
+                android:label="@string/app_nav_home_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".app.SimpleUpActivity"
+                  android:label="@string/simple_up_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+            <meta-data android:name="android.support.PARENT_ACTIVITY"
+                       android:value=".app.AppNavHomeActivity" />
+        </activity>
+
+        <activity android:name=".app.PeerActivity"
+                  android:label="@string/peer_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+            <meta-data android:name="android.support.PARENT_ACTIVITY"
+                       android:value=".app.AppNavHomeActivity" />
+        </activity>
+
+        <activity android:name=".app.ViewFromOtherTaskActivity"
+                  android:label="@string/view_from_other_task_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+            <meta-data android:name="android.support.PARENT_ACTIVITY"
+                       android:value=".app.AppNavHomeActivity" />
+        </activity>
+
+        <activity android:name=".app.OutsideTaskActivity"
+                  android:label="@string/outside_task_label"
+                  android:theme="@style/Theme.Light"
+                  android:taskAffinity="com.example.android.appnavigation.outsidetask">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
+        <activity android:name=".app.ContentViewActivity"
+                  android:label="@string/content_view_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <action android:name="android.intent.action.VIEW" />
+                <data android:mimeType="application/x-example" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="android.support.PARENT_ACTIVITY"
+                       android:value=".app.ContentCategoryActivity" />
+        </activity>
+
+        <activity android:name=".app.ContentCategoryActivity"
+                  android:label="@string/content_category_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+            <meta-data android:name="android.support.PARENT_ACTIVITY"
+                       android:value=".app.AppNavHomeActivity" />
+        </activity>
+
+        <activity android:name=".app.NotificationsActivity"
+                  android:label="@string/notifications_label">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.SAMPLE_CODE" />
+            </intent-filter>
+            <meta-data android:name="android.support.PARENT_ACTIVITY"
+                       android:value=".app.AppNavHomeActivity" />
+        </activity>
+
+        <activity android:name=".app.InterstitialMessageActivity"
+                  android:label="@string/interstitial_label"
+                  android:theme="@style/Theme.Dialog"
+                  android:launchMode="singleTask"
+                  android:excludeFromRecents="true"
+                  android:taskAffinity="">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/samples/AppNavigation/res/layout/content_category.xml b/samples/AppNavigation/res/layout/content_category.xml
new file mode 100644
index 0000000..2727260
--- /dev/null
+++ b/samples/AppNavigation/res/layout/content_category.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:padding="16dp"
+              android:orientation="vertical">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/intermediate_description" />
+    <Button android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/launch_content_view"
+            android:onClick="onViewContent" />
+</LinearLayout>
diff --git a/samples/AppNavigation/res/layout/content_view.xml b/samples/AppNavigation/res/layout/content_view.xml
new file mode 100644
index 0000000..eabd2eb
--- /dev/null
+++ b/samples/AppNavigation/res/layout/content_view.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:padding="16dp"
+              android:orientation="vertical">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/content_view_description" />
+    <TextView android:id="@+id/status_text"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:layout_marginTop="8dp"
+              android:text="@string/default_status_text" />
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/AppNavigation/res/layout/interstitial_message.xml b/samples/AppNavigation/res/layout/interstitial_message.xml
new file mode 100644
index 0000000..d957ecd
--- /dev/null
+++ b/samples/AppNavigation/res/layout/interstitial_message.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical"
+              style="@style/InterstitialDialogLayout">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/interstitial_description"
+              android:layout_marginTop="16dp"
+              android:layout_marginBottom="16dp"
+              android:layout_marginLeft="16dp"
+              android:layout_marginRight="16dp"/>
+    <LinearLayout android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  style="@style/ButtonBar">
+        <Button android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:text="@string/launch_content_view"
+                android:onClick="onViewContent"
+                style="@style/ButtonBarButton"/>
+    </LinearLayout>
+</LinearLayout>
diff --git a/samples/AppNavigation/res/layout/notifications.xml b/samples/AppNavigation/res/layout/notifications.xml
new file mode 100644
index 0000000..10112f3
--- /dev/null
+++ b/samples/AppNavigation/res/layout/notifications.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:padding="16dp"
+              android:orientation="vertical">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/notifications_description" />
+    <Button android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/post_direct_notification"
+            android:onClick="onPostDirect" />
+    <Button android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/post_interstitial_notification"
+            android:onClick="onPostInterstitial" />
+</LinearLayout>
diff --git a/samples/AppNavigation/res/layout/outside_task.xml b/samples/AppNavigation/res/layout/outside_task.xml
new file mode 100644
index 0000000..00c78aa
--- /dev/null
+++ b/samples/AppNavigation/res/layout/outside_task.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:padding="16dp"
+              android:orientation="vertical">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/outside_task_description" />
+    <Button android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/launch_content_view"
+            android:onClick="onViewContent" />
+</LinearLayout>
diff --git a/samples/AppNavigation/res/layout/peer.xml b/samples/AppNavigation/res/layout/peer.xml
new file mode 100644
index 0000000..ee706b3
--- /dev/null
+++ b/samples/AppNavigation/res/layout/peer.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:padding="16dp"
+              android:orientation="vertical">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/peer_description" />
+    <TextView android:id="@+id/peer_counter"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:layout_marginTop="8dp"
+              android:text="@string/peer_count" />
+    <Button android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/launch_peer"
+            android:onClick="onLaunchPeer" />
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/AppNavigation/res/layout/simple_up.xml b/samples/AppNavigation/res/layout/simple_up.xml
new file mode 100644
index 0000000..2897d84
--- /dev/null
+++ b/samples/AppNavigation/res/layout/simple_up.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+          android:layout_width="match_parent"
+          android:layout_height="match_parent"
+          android:text="@string/simple_up_description"
+          android:padding="16dp" />
diff --git a/samples/AppNavigation/res/layout/view_from_other_task.xml b/samples/AppNavigation/res/layout/view_from_other_task.xml
new file mode 100644
index 0000000..941d74c
--- /dev/null
+++ b/samples/AppNavigation/res/layout/view_from_other_task.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:padding="16dp"
+              android:orientation="vertical">
+    <TextView android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:text="@string/view_from_other_task_description" />
+    <Button android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="8dp"
+            android:text="@string/launch_other_task"
+            android:onClick="onLaunchOtherTask" />
+</LinearLayout>
\ No newline at end of file
diff --git a/samples/AppNavigation/res/values-v11/styles.xml b/samples/AppNavigation/res/values-v11/styles.xml
new file mode 100644
index 0000000..e61e9d4
--- /dev/null
+++ b/samples/AppNavigation/res/values-v11/styles.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <style name="InterstitialDialogLayout">
+        <item name="android:divider">?android:attr/dividerHorizontal</item>
+        <item name="android:showDividers">middle</item>
+    </style>
+
+    <style name="ButtonBar" parent="@android:style/Holo.ButtonBar.AlertDialog" />
+    <style name="ButtonBarButton" parent="@android:style/Widget.Holo.Button.Borderless" />
+
+</resources>
diff --git a/samples/AppNavigation/res/values-v11/themes.xml b/samples/AppNavigation/res/values-v11/themes.xml
new file mode 100644
index 0000000..b9f7fdb
--- /dev/null
+++ b/samples/AppNavigation/res/values-v11/themes.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <style name="Theme.Light" parent="@android:style/Theme.Holo.Light" />
+    <style name="Theme.Dialog" parent="@android:style/Theme.Holo.Dialog" />
+</resources>
diff --git a/samples/AppNavigation/res/values-v14/themes.xml b/samples/AppNavigation/res/values-v14/themes.xml
new file mode 100644
index 0000000..79fabda
--- /dev/null
+++ b/samples/AppNavigation/res/values-v14/themes.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <style name="Theme.Light" parent="@android:style/Theme.DeviceDefault.Light" />
+</resources>
diff --git a/samples/AppNavigation/res/values/ids.xml b/samples/AppNavigation/res/values/ids.xml
new file mode 100644
index 0000000..c143cf7
--- /dev/null
+++ b/samples/AppNavigation/res/values/ids.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <item type="id" name="direct_notification" />
+    <item type="id" name="interstitial_notification" />
+</resources>
diff --git a/samples/AppNavigation/res/values/strings.xml b/samples/AppNavigation/res/values/strings.xml
new file mode 100644
index 0000000..66ac469
--- /dev/null
+++ b/samples/AppNavigation/res/values/strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <string name="app_name">App Navigation Sample</string>
+    <string name="app_nav_home_label">App Navigation</string>
+
+    <string name="simple_up_label">Simple Up Navigation</string>
+    <string name="simple_up_description">This demo shows the simple case of up navigation that does not ever need to cross across different tasks. Press the up button on the action bar to return to the demo list. For simple drill-down navigation, the application up and system back buttons will navigate to the same location, leaving the task\'s back stack in the same state.</string>
+
+    <string name="peer_label">Peer Activities</string>
+    <string name="peer_description">This is an activity that shows content with many navigation peers. Think of a content browser that offers links to related content items. Pressing back from this activity will return to the previously viewed content item if you reached this point through a related link. If you reached it from the app nav example home activity, back will return there. Navigating up from this activity will always return to the app nav example home activity and clean up the back stack along the way.</string>
+    <string name="launch_peer">Link to another peer activity</string>
+    <string name="peer_count">Peer count: </string>
+
+    <string name="view_from_other_task_label">View from other task</string>
+    <string name="view_from_other_task_description">This combined demo shows how to handle up navigation when another task has launched your app\'s activity on its own task stack. Navigating up in this scenario should synthesize a task stack representing the most common or direct navigation path to the parent activity. The code example shows how to handle this using helper code from the support library. Press the button below to launch a separate task and begin the demo.</string>
+    <string name="launch_other_task">Launch new task</string>
+
+    <string name="outside_task_label">Outside Task</string>
+    <string name="outside_task_description">This activity has been launched in a new task. You can confirm this by pressing the Recents button now and switching back to the app navigation example task. This activity will view content with the fake mimetype \"application/x-example\" which will be received by another code example activity to continue the demo. Press the View button below.</string>
+
+    <string name="content_view_label">Content Viewer</string>
+    <string name="content_view_description">This activity can receive ACTION_VIEW intents with the mimetype \"application/x-example\", sent by the outside task component of this demo. If you launched the activity this way then it will be on the viewing activity\'s task stack. Press the back button to finish this activity and return to the activity that wanted to view the content. Press the up button in the action bar to jump back into the main demo task with a synthesized back stack. This matches the pattern for content viewers such as a photo gallery or video player.</string>
+    <string name="default_status_text">Navigated here from category</string>
+
+    <string name="content_category_label">Content Category</string>
+    <string name="intermediate_description">This activity is a parent for the example content viewer activity. Navigating up from the content viewer will lead here. Navigating up from here will lead back to the app navigation home activity. Note that if you reached this activity by navigating up from the example content viewer activity, you are back on the main app navigation example task. Press the button below to navigate to the content viewer activity.</string>
+    <string name="launch_content_view">Launch content view activity</string>
+
+    <string name="notifications_label">Notifications</string>
+    <string name="notifications_description">There are two classes of notifications: notifications that deep-link into an app directly, (e.g. an incoming SMS) and notifications that present an interstitial/summary of multiple collapsed notifications before linking into the app itself. (e.g. Calendar event notifications.) The buttons below will create notifications of each type.</string>
+    <string name="post_direct_notification">Post direct notification</string>
+    <string name="post_interstitial_notification">Post interstitial notification</string>
+
+    <string name="interstitial_label">Interstitial</string>
+    <string name="interstitial_description">This is an interstitial activity running in response to a notification. It presents a summary of info in a lightweight manner that does not exist as a task in Recents. Tap the button below to jump to the primary content.</string>
+
+</resources>
diff --git a/samples/AppNavigation/res/values/styles.xml b/samples/AppNavigation/res/values/styles.xml
new file mode 100644
index 0000000..d869170
--- /dev/null
+++ b/samples/AppNavigation/res/values/styles.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <style name="InterstitialDialogLayout" />
+
+    <style name="ButtonBar" parent="@android:style/ButtonBar" />
+    <style name="ButtonBarButton" parent="@android:style/Widget.Button" />
+
+</resources>
diff --git a/samples/AppNavigation/res/values/themes.xml b/samples/AppNavigation/res/values/themes.xml
new file mode 100644
index 0000000..beebacf
--- /dev/null
+++ b/samples/AppNavigation/res/values/themes.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+    <style name="Theme.Light" parent="@android:style/Theme.Light" />
+    <style name="Theme.Dialog" parent="@android:style/Theme.Dialog" />
+</resources>
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/ActionBarCompat.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/ActionBarCompat.java
new file mode 100644
index 0000000..0822336
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/ActionBarCompat.java
@@ -0,0 +1,42 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import android.app.Activity;
+import android.os.Build;
+
+/**
+ * Very limited shim for enabling the action bar's up button on devices that support it.
+ */
+public class ActionBarCompat {
+    /**
+     * This class will only ever be loaded if the version check succeeds,
+     * keeping the verifier from rejecting the use of framework classes that
+     * don't exist on older platform versions.
+     */
+    static class ActionBarCompatImpl {
+        static void setDisplayHomeAsUpEnabled(Activity activity, boolean enable) {
+            activity.getActionBar().setDisplayHomeAsUpEnabled(enable);
+        }
+    }
+
+    public static void setDisplayHomeAsUpEnabled(Activity activity, boolean enable) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+            ActionBarCompatImpl.setDisplayHomeAsUpEnabled(activity, enable);
+        }
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/AppNavHomeActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/AppNavHomeActivity.java
new file mode 100644
index 0000000..469ab4e
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/AppNavHomeActivity.java
@@ -0,0 +1,121 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import android.app.ListActivity;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Home activity for app navigation code samples.
+ */
+public class AppNavHomeActivity extends ListActivity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        setListAdapter(new SampleAdapter(querySampleActivities()));
+    }
+
+    @Override
+    protected void onListItemClick(ListView lv, View v, int pos, long id) {
+        SampleInfo info = (SampleInfo) getListAdapter().getItem(pos);
+        startActivity(info.intent);
+    }
+
+    protected List<SampleInfo> querySampleActivities() {
+        Intent intent = new Intent(Intent.ACTION_MAIN, null);
+        intent.setPackage(getPackageName());
+        intent.addCategory(Intent.CATEGORY_SAMPLE_CODE);
+
+        PackageManager pm = getPackageManager();
+        List<ResolveInfo> infos = pm.queryIntentActivities(intent, 0);
+
+        ArrayList<SampleInfo> samples = new ArrayList<SampleInfo>();
+
+        final int count = infos.size();
+        for (int i = 0; i < count; i++) {
+            final ResolveInfo info = infos.get(i);
+            final CharSequence labelSeq = info.loadLabel(pm);
+            String label = labelSeq != null ? labelSeq.toString() : info.activityInfo.name;
+
+            Intent target = new Intent();
+            target.setClassName(info.activityInfo.applicationInfo.packageName,
+                    info.activityInfo.name);
+            SampleInfo sample = new SampleInfo(label, target);
+            samples.add(sample);
+        }
+
+        return samples;
+    }
+
+    static class SampleInfo {
+        String name;
+        Intent intent;
+
+        SampleInfo(String name, Intent intent) {
+            this.name = name;
+            this.intent = intent;
+        }
+    }
+
+    class SampleAdapter extends BaseAdapter {
+        private List<SampleInfo> mItems;
+
+        public SampleAdapter(List<SampleInfo> items) {
+            mItems = items;
+        }
+
+        @Override
+        public int getCount() {
+            return mItems.size();
+        }
+
+        @Override
+        public Object getItem(int position) {
+            return mItems.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = getLayoutInflater().inflate(android.R.layout.simple_list_item_1,
+                        parent, false);
+                convertView.setTag(convertView.findViewById(android.R.id.text1));
+            }
+            TextView tv = (TextView) convertView.getTag();
+            tv.setText(mItems.get(position).name);
+            return convertView;
+        }
+
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/ContentCategoryActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/ContentCategoryActivity.java
new file mode 100644
index 0000000..534f391
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/ContentCategoryActivity.java
@@ -0,0 +1,50 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NavUtils;
+import android.view.MenuItem;
+import android.view.View;
+
+public class ContentCategoryActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.content_category);
+
+        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            NavUtils.navigateUpFromSameTask(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    public void onViewContent(View v) {
+        Intent target = new Intent(this, ContentViewActivity.class);
+        startActivity(target);
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/ContentViewActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/ContentViewActivity.java
new file mode 100644
index 0000000..5283230
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/ContentViewActivity.java
@@ -0,0 +1,67 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NavUtils;
+import android.support.v4.app.ShareCompat;
+import android.support.v4.app.TaskStackBuilder;
+import android.text.TextUtils;
+import android.view.MenuItem;
+import android.widget.TextView;
+
+public class ContentViewActivity extends Activity {
+    public static final String EXTRA_TEXT = "com.example.android.appnavigation.EXTRA_TEXT";
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.content_view);
+
+        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
+
+        Intent intent = getIntent();
+        if (Intent.ACTION_VIEW.equals(intent.getAction())) {
+            TextView tv = (TextView) findViewById(R.id.status_text);
+            tv.setText("Viewing content from ACTION_VIEW");
+        } else if (intent.hasExtra(EXTRA_TEXT)) {
+            TextView tv = (TextView) findViewById(R.id.status_text);
+            tv.setText(intent.getStringExtra(EXTRA_TEXT));
+        }
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            Intent upIntent = NavUtils.getParentActivityIntent(this);
+            if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
+                TaskStackBuilder.from(this)
+                        .addParentStack(this)
+                        .startActivities();
+                finish();
+            } else {
+                NavUtils.navigateUpTo(this, upIntent);
+            }
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/InterstitialMessageActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/InterstitialMessageActivity.java
new file mode 100644
index 0000000..1d0154d
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/InterstitialMessageActivity.java
@@ -0,0 +1,42 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.TaskStackBuilder;
+import android.view.View;
+
+public class InterstitialMessageActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.interstitial_message);
+    }
+
+    public void onViewContent(View v) {
+        TaskStackBuilder.from(this)
+                .addParentStack(ContentViewActivity.class)
+                .addNextIntent(new Intent(this, ContentViewActivity.class)
+                        .putExtra(ContentViewActivity.EXTRA_TEXT, "From Interstitial Notification"))
+                .startActivities();
+        finish();
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/NotificationsActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/NotificationsActivity.java
new file mode 100644
index 0000000..f14dbc6
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/NotificationsActivity.java
@@ -0,0 +1,80 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.Activity;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NavUtils;
+import android.support.v4.app.NotificationCompat;
+import android.support.v4.app.TaskStackBuilder;
+import android.view.MenuItem;
+import android.view.View;
+
+public class NotificationsActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.notifications);
+
+        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            NavUtils.navigateUpFromSameTask(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    public void onPostDirect(View v) {
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
+                .setTicker("Direct Notification")
+                .setSmallIcon(android.R.drawable.stat_notify_chat)
+                .setContentTitle("Direct Notification")
+                .setContentText("This will open the content viewer")
+                .setAutoCancel(true)
+                .setContentIntent(TaskStackBuilder.from(this)
+                        .addParentStack(ContentViewActivity.class)
+                        .addNextIntent(new Intent(this, ContentViewActivity.class)
+                                .putExtra(ContentViewActivity.EXTRA_TEXT, "From Notification"))
+                        .getPendingIntent(0, 0));
+        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+        nm.notify("direct_tag", R.id.direct_notification, builder.getNotification());
+    }
+
+    public void onPostInterstitial(View v) {
+        NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
+                .setTicker("Interstitial Notification")
+                .setSmallIcon(android.R.drawable.stat_notify_chat)
+                .setContentTitle("Interstitial Notification")
+                .setContentText("This will show a detail page")
+                .setAutoCancel(true)
+                .setContentIntent(PendingIntent.getActivity(this, 0,
+                        new Intent(this, InterstitialMessageActivity.class)
+                                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
+                                        Intent.FLAG_ACTIVITY_CLEAR_TASK), 0));
+        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
+        nm.notify("interstitial_tag", R.id.interstitial_notification, builder.getNotification());
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/OutsideTaskActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/OutsideTaskActivity.java
new file mode 100644
index 0000000..4022fa6
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/OutsideTaskActivity.java
@@ -0,0 +1,38 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.View;
+
+public class OutsideTaskActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.outside_task);
+    }
+
+    public void onViewContent(View v) {
+        Intent intent = new Intent(Intent.ACTION_VIEW)
+                .setType("application/x-example")
+                .addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
+        startActivity(intent);
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/PeerActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/PeerActivity.java
new file mode 100644
index 0000000..45083fd
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/PeerActivity.java
@@ -0,0 +1,62 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NavUtils;
+import android.view.MenuItem;
+import android.view.View;
+import android.widget.TextView;
+
+public class PeerActivity extends Activity {
+    private static final String EXTRA_PEER_COUNT =
+            "com.example.android.appnavigation.EXTRA_PEER_COUNT";
+
+    private int mPeerCount;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.peer);
+
+        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
+
+        mPeerCount = getIntent().getIntExtra(EXTRA_PEER_COUNT, 0) + 1;
+        TextView tv = (TextView) findViewById(R.id.peer_counter);
+        tv.setText(getResources().getText(R.string.peer_count).toString() + mPeerCount);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            NavUtils.navigateUpFromSameTask(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
+    public void onLaunchPeer(View v) {
+        Intent target = new Intent(this, PeerActivity.class);
+        target.putExtra(EXTRA_PEER_COUNT, mPeerCount);
+        startActivity(target);
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/SimpleUpActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/SimpleUpActivity.java
new file mode 100644
index 0000000..4141951
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/SimpleUpActivity.java
@@ -0,0 +1,44 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.os.Bundle;
+import android.support.v4.app.NavUtils;
+import android.view.MenuItem;
+
+public class SimpleUpActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.simple_up);
+
+        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            NavUtils.navigateUpFromSameTask(this);
+            return true;
+        }
+        return super.onOptionsItemSelected(item);
+    }
+}
diff --git a/samples/AppNavigation/src/com/example/android/appnavigation/app/ViewFromOtherTaskActivity.java b/samples/AppNavigation/src/com/example/android/appnavigation/app/ViewFromOtherTaskActivity.java
new file mode 100644
index 0000000..06e1699
--- /dev/null
+++ b/samples/AppNavigation/src/com/example/android/appnavigation/app/ViewFromOtherTaskActivity.java
@@ -0,0 +1,52 @@
+/*
+ * 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.example.android.appnavigation.app;
+
+import com.example.android.appnavigation.R;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v4.app.NavUtils;
+import android.view.MenuItem;
+import android.view.View;
+
+public class ViewFromOtherTaskActivity extends Activity {
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.view_from_other_task);
+
+        ActionBarCompat.setDisplayHomeAsUpEnabled(this, true);
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            NavUtils.navigateUpFromSameTask(this);
+            return true;
+        }
+        return false;
+    }
+
+    public void onLaunchOtherTask(View v) {
+        Intent target = new Intent(this, OutsideTaskActivity.class)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
+                        Intent.FLAG_ACTIVITY_TASK_ON_HOME);
+        startActivity(target);
+    }
+}
diff --git a/samples/BackupRestore/AndroidManifest.xml b/samples/BackupRestore/AndroidManifest.xml
index af86634..bccd4f7 100644
--- a/samples/BackupRestore/AndroidManifest.xml
+++ b/samples/BackupRestore/AndroidManifest.xml
@@ -26,6 +26,7 @@
 
     <!-- The backup/restore mechanism was introduced in API version 8 -->
     <uses-sdk android:minSdkVersion="8"/>
+    <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
 
     <application android:label="Backup/Restore"
         android:backupAgent="ExampleAgent">
diff --git a/samples/BluetoothHDP/_index.html b/samples/BluetoothHDP/_index.html
index 3871bf3..3fb3bab 100755
--- a/samples/BluetoothHDP/_index.html
+++ b/samples/BluetoothHDP/_index.html
@@ -1,4 +1,11 @@
-<p>A sample application that demonstrates how to communicate with a Bluetooth Health Device Profile (HDP) device.  This feature is available on Android 4.0 (API level 14) or above platforms.</p>
+<p>A sample application that demonstrates how to communicate with a Bluetooth Health Device Profile (HDP) device.  This feature is available on Android 4.0 (API level 14) or above platforms. The Android Bluetooth Health API lets you create
+applications that use Bluetooth to communicate with health devices that support
+Bluetooth, such as heart-rate monitors, blood meters, thermometers, scales, and
+so on. For a list of supported devices and their corresponding device data
+specialization codes, refer to <strong>Bluetooth Assigned Numbers</strong> at <a
+href="http://www.bluetooth.org">www.bluetooth.org</a>. Note that these values
+are also referenced in the ISO/IEEE 11073-20601 [7] specification as
+MDC_DEV_SPEC_PROFILE_* in the Nomenclature Codes Annex.</p>
 
 <p>The application manages connection with Bluetooth HDP-enabled devices.  Possible device type include blood pressure monitor, glucose meter, thermometer, etc.  Upon connection, the application retrieves raw data sent from the device.  Note that in order to interpret the data, a parser that conforms to the IEEE 11073-xxxxx specifications would be required.</p>
 
diff --git a/samples/BrowserPlugin/jni/RenderingThread.h b/samples/BrowserPlugin/jni/RenderingThread.h
index cb4fb96..6136019 100644
--- a/samples/BrowserPlugin/jni/RenderingThread.h
+++ b/samples/BrowserPlugin/jni/RenderingThread.h
@@ -26,6 +26,7 @@
 #include "SkCanvas.h"
 #include "SkBitmap.h"
 
+#include <utils/threads.h>
 #include <EGL/egl.h>
 #include <GLES2/gl2.h>
 
diff --git a/samples/CrossCompatibility/AndroidManifest.xml b/samples/CrossCompatibility/AndroidManifest.xml
index 1097a4d..43eb4ff 100644
--- a/samples/CrossCompatibility/AndroidManifest.xml
+++ b/samples/CrossCompatibility/AndroidManifest.xml
@@ -3,6 +3,11 @@
       package="com.example.android.touchexample"
       android:versionCode="1"
       android:versionName="1.0">
+
+    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
+    <uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
+    <supports-screens android:largeScreens="true"/>
+
     <application android:icon="@drawable/icon" android:label="@string/app_name">
         <activity android:name=".TouchExampleActivity"
                   android:label="@string/app_name">
@@ -13,5 +18,5 @@
         </activity>
 
     </application>
-    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
+
 </manifest>
diff --git a/samples/CrossCompatibility/src/com/example/android/touchexample/TouchExample b/samples/CrossCompatibility/src/com/example/android/touchexample/TouchExample
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/samples/CrossCompatibility/src/com/example/android/touchexample/TouchExample
diff --git a/samples/CubeLiveWallpaper/_index.html b/samples/CubeLiveWallpaper/_index.html
index a429215..ce512f8 100644
--- a/samples/CubeLiveWallpaper/_index.html
+++ b/samples/CubeLiveWallpaper/_index.html
@@ -56,19 +56,19 @@
 supported only on Android 2.1 (API level 7) and higher versions of the platform.
 To ensure that your application can only be installed on devices that support
 live wallpapers, remember to add the following to the application's manifest
-before publishing to Android Market:</p>
+before publishing to Google Play:</p>
 
 <ul>
 <li><code>&lt;uses-sdk android:minSdkVersion="7" /&gt;</code>, which indicates 
-to Android Market and the platform that your application requires Android 2.1 or 
+to Google Play and the platform that your application requires Android 2.1 or 
 higher. For more information, see the <a href="../../../guide/appendix/api-levels.html">API Levels</a>
 and the documentation for the 
 <a href="../../../guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
 element.</li>
 <li><code>&lt;uses-feature android:name="android.software.live_wallpaper" /&gt;</code>, 
-which tells Android Market that your application includes a live wallpaper.
-Android Market uses this feature as a filter, when presenting users lists of
-available applications. When you declaring this feature, Android Market
+which tells Google Play that your application includes a live wallpaper.
+Google Play uses this feature as a filter, when presenting users lists of
+available applications. When you declaring this feature, Google Play
 displays your application only to users whose devices support live wallpapers,
 while hiding it from other devices on which it would not be able to run. For
 more information, see the documentation for the
diff --git a/samples/NFCDemo/_index.html b/samples/NFCDemo/_index.html
index d1c53f1..07978f2 100644
--- a/samples/NFCDemo/_index.html
+++ b/samples/NFCDemo/_index.html
@@ -83,13 +83,13 @@
   among devices running Android 2.3 (API level 9) or higher, not all devices will offer NFC
   support. To ensure that your application can only be installed on devices that are capable
   of supporting NFC, remember to add the following to the application's manifest before
-  publishing to Android Market:
+  publishing to Google Play:
 </p>
 <ul>
   <li>
     <code>&lt;uses-sdk android:minSdkVersion="9" /&gt;
     </code>,
-    which indicates to Android Market and the platform that your application requires
+    which indicates to Google Play and the platform that your application requires
     Android 2.3 or higher. For more information, see
     <a href="../../../guide/appendix/api-levels.html">API Levels
     </a>
@@ -100,17 +100,17 @@
     </a> element.
   </li>
 </ul>
-<p>To control how Android Market filters your application
+<p>To control how Google Play filters your application
   from devices that do not support NFC, remember to add the following to the application's manifest
   <ul>
     <li>
       <code>&lt;uses-feature android:name="android.hardware.nfc" /&gt;
       </code>,
-      which tells Android Market that your application uses the NFC API. The declaration
+      which tells Google Play that your application uses the NFC API. The declaration
       should include an
       <code>android:required
       </code> attribute that indicates whether you want
-      Android Market to filter the application from devices that do not offer NFC support. Other
+      Google Play to filter the application from devices that do not offer NFC support. Other
       <code>&lt;uses-feature&gt;
       </code> declarations may also be needed, depending on your
       implementation. For more information, see the documentation for the
diff --git a/samples/SampleSyncAdapter/AndroidManifest.xml b/samples/SampleSyncAdapter/AndroidManifest.xml
index 285abfb..48f6fad 100644
--- a/samples/SampleSyncAdapter/AndroidManifest.xml
+++ b/samples/SampleSyncAdapter/AndroidManifest.xml
@@ -45,8 +45,12 @@
         android:name="android.permission.READ_SYNC_SETTINGS" />
     <uses-permission
         android:name="android.permission.WRITE_SYNC_SETTINGS" />
+    <uses-permission
+        android:name="android.permission.READ_SOCIAL_STREAM" />
+    <uses-permission
+        android:name="android.permission.WRITE_SOCIAL_STREAM" />
 
-    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14"/>
+    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
 
     <application
         android:icon="@drawable/icon"
diff --git a/samples/SampleSyncAdapter/res/raw/img1.jpg b/samples/SampleSyncAdapter/res/raw/img1.jpg
new file mode 100644
index 0000000..24a492c
--- /dev/null
+++ b/samples/SampleSyncAdapter/res/raw/img1.jpg
Binary files differ
diff --git a/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/BatchOperation.java b/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/BatchOperation.java
index 3a9c879..f70547b 100644
--- a/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/BatchOperation.java
+++ b/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/BatchOperation.java
@@ -26,6 +26,7 @@
 import android.util.Log;
 
 import java.util.ArrayList;
+import java.util.List;
 
 /**
  * This class handles execution of batch mOperations on Contacts provider.
@@ -52,24 +53,27 @@
         mOperations.add(cpo);
     }
 
-    public Uri execute() {
-        Uri result = null;
+    public List<Uri> execute() {
+        List<Uri> resultUris = new ArrayList<Uri>();
 
         if (mOperations.size() == 0) {
-            return result;
+            return resultUris;
         }
         // Apply the mOperations to the content provider
         try {
             ContentProviderResult[] results = mResolver.applyBatch(ContactsContract.AUTHORITY,
                     mOperations);
-            if ((results != null) && (results.length > 0))
-                result = results[0].uri;
+            if ((results != null) && (results.length > 0)){
+                for (int i = 0; i < results.length; i++){
+                    resultUris.add(results[i].uri);
+                }
+            }
         } catch (final OperationApplicationException e1) {
             Log.e(TAG, "storing contact data failed", e1);
         } catch (final RemoteException e2) {
             Log.e(TAG, "storing contact data failed", e2);
         }
         mOperations.clear();
-        return result;
+        return resultUris;
     }
 }
diff --git a/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java b/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java
index 6b2dfb1..5b09eb1 100644
--- a/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java
+++ b/samples/SampleSyncAdapter/src/com/example/android/samplesync/platform/ContactManager.java
@@ -24,7 +24,10 @@
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.Context;
+import android.content.res.AssetFileDescriptor;
 import android.database.Cursor;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
 import android.net.Uri;
 import android.provider.ContactsContract;
 import android.provider.ContactsContract.CommonDataKinds.Email;
@@ -38,8 +41,14 @@
 import android.provider.ContactsContract.RawContacts;
 import android.provider.ContactsContract.Settings;
 import android.provider.ContactsContract.StatusUpdates;
+import android.provider.ContactsContract.StreamItemPhotos;
+import android.provider.ContactsContract.StreamItems;
 import android.util.Log;
 
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -235,6 +244,43 @@
     }
 
     /**
+     * Demonstrate how to add stream items and stream item photos to a raw
+     * contact. This just adds items for all of the contacts for this sync
+     * adapter with some locally created text and an image. You should check
+     * for stream items on the server that you are syncing with and use the
+     * text and photo data from there instead.
+     *
+     * @param context The context of Authenticator Activity
+     * @param rawContacts The list of users we want to update
+     */
+    public static void addStreamItems(Context context, List<RawContact> rawContacts,
+             String accountName, String accountType) {
+        final ContentResolver resolver = context.getContentResolver();
+        final BatchOperation batchOperation = new BatchOperation(context, resolver);
+        String text = "This is a test stream item!";
+        String message = "via SampleSyncAdapter";
+        for (RawContact rawContact : rawContacts) {
+           addContactStreamItem(context, lookupRawContact(resolver,
+                   rawContact.getServerContactId()), accountName, accountType,
+                   text, message, batchOperation );
+        }
+        List<Uri> streamItemUris = batchOperation.execute();
+
+        // Stream item photos are added after the stream items that they are
+        // associated with, using the stream item's ID as a reference.
+
+        for (Uri uri : streamItemUris){
+          // All you need is the ID of the stream item, which is the last index
+          // path segment returned by getPathSegments().
+          long streamItemId = Long.parseLong(uri.getPathSegments().get(
+                  uri.getPathSegments().size()-1));
+          addStreamItemPhoto(context, resolver, streamItemId, accountName,
+                  accountType, batchOperation);
+        }
+        batchOperation.execute();
+    }
+
+    /**
      * After we've finished up a sync operation, we want to clean up the sync-state
      * so that we're ready for the next time.  This involves clearing out the 'dirty'
      * flag on the synced contacts - but we also have to finish the DELETE operation
@@ -518,7 +564,7 @@
      * But it's a useful demo to see how it's done.
      *
      * @param context the Authenticator Activity context
-     * @param rawContact the contact who's status we should update
+     * @param rawContact the contact whose status we should update
      * @param batchOperation allow us to batch together multiple operations
      */
     private static void updateContactStatus(Context context, RawContact rawContact,
@@ -550,6 +596,59 @@
     }
 
     /**
+     * Adds a stream item to a raw contact. The stream item is usually obtained
+     * from the server you are syncing with, but we create it here locally as an
+     * example.
+     *
+     * @param context the Authenticator Activity context
+     * @param rawContactId the raw contact ID that the stream item is associated with
+     * @param accountName the account name of the sync adapter
+     * @param accountType the account type of the sync adapter
+     * @param text the text of the stream item
+     * @param comments the comments for the stream item, such as where the stream item came from
+     * @param batchOperation allow us to batch together multiple operations
+     */
+    private static void addContactStreamItem(Context context, long rawContactId,
+        String accountName, String accountType, String text, String comments,
+        BatchOperation batchOperation) {
+
+        final ContentValues values = new ContentValues();
+        final ContentResolver resolver = context.getContentResolver();
+        if (rawContactId > 0){
+            values.put(StreamItems.RAW_CONTACT_ID, rawContactId);
+            values.put(StreamItems.TEXT, text);
+            values.put(StreamItems.TIMESTAMP, System.currentTimeMillis());
+            values.put(StreamItems.COMMENTS, comments);
+            values.put(StreamItems.ACCOUNT_NAME, accountName);
+            values.put(StreamItems.ACCOUNT_TYPE, accountType);
+
+            batchOperation.add(ContactOperations.newInsertCpo(
+                    StreamItems.CONTENT_URI, false, true).withValues(values).build());
+        }
+    }
+
+    private static void addStreamItemPhoto(Context context, ContentResolver
+        resolver, long streamItemId, String accountName, String accountType,
+        BatchOperation batchOperation){
+
+        ByteArrayOutputStream stream = new ByteArrayOutputStream();
+        Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
+                R.raw.img1);
+        bitmap.compress(Bitmap.CompressFormat.JPEG, 30, stream);
+        byte[] photoData = stream.toByteArray();
+
+        final ContentValues values = new ContentValues();
+        values.put(StreamItemPhotos.STREAM_ITEM_ID, streamItemId);
+        values.put(StreamItemPhotos.SORT_INDEX, 1);
+        values.put(StreamItemPhotos.PHOTO, photoData);
+        values.put(StreamItems.ACCOUNT_NAME, accountName);
+        values.put(StreamItems.ACCOUNT_TYPE, accountType);
+
+        batchOperation.add(ContactOperations.newInsertCpo(
+                StreamItems.CONTENT_PHOTO_URI, false, true).withValues(values).build());
+    }
+
+    /**
      * Clear the local system 'dirty' flag for a contact.
      *
      * @param context the Authenticator Activity context
diff --git a/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java b/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java
index 0f570cd..8aa0784 100644
--- a/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java
+++ b/samples/SampleSyncAdapter/src/com/example/android/samplesync/syncadapter/SyncAdapter.java
@@ -32,6 +32,7 @@
 import android.content.ContentProviderClient;
 import android.content.Context;
 import android.content.SyncResult;
+import android.os.Build;
 import android.os.Bundle;
 import android.text.TextUtils;
 import android.util.Log;
@@ -115,8 +116,21 @@
             // 2-way contact sync providers - it's more likely that one-way
             // sync providers (IM clients, social networking apps, etc) would
             // use this feature.
+
             ContactManager.updateStatusMessages(mContext, updatedContacts);
 
+            // This is a demo of how you can add stream items for contacts on
+            // the client. This probably won't apply to
+            // 2-way contact sync providers - it's more likely that one-way
+            // sync providers (IM clients, social networking apps, etc) would
+            // use this feature. This is only supported in ICS MR1 or above.
+
+            if (Build.VERSION.SDK_INT >=
+                    Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
+                ContactManager.addStreamItems(mContext, updatedContacts,
+                    account.name, account.type);
+            }
+
             // Save off the new sync marker. On our next sync, we only want to receive
             // contacts that have changed since this sync...
             setServerSyncMarker(account, newSyncState);
@@ -168,3 +182,4 @@
         mAccountManager.setUserData(account, SYNC_MARKER_KEY, Long.toString(marker));
     }
 }
+
diff --git a/samples/SearchableDictionary/AndroidManifest.xml b/samples/SearchableDictionary/AndroidManifest.xml
index 5d835ee..d8fed69 100644
--- a/samples/SearchableDictionary/AndroidManifest.xml
+++ b/samples/SearchableDictionary/AndroidManifest.xml
@@ -21,7 +21,7 @@
         android:versionCode="2"
         android:versionName="2.0">
 
-    <uses-sdk android:minSdkVersion="11" />
+    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />
 
     <application android:label="@string/app_name"
                  android:icon="@drawable/ic_dictionary">
diff --git a/samples/SearchableDictionary/res/menu/options_menu.xml b/samples/SearchableDictionary/res/menu/options_menu.xml
index c35c7d4..06f9958 100644
--- a/samples/SearchableDictionary/res/menu/options_menu.xml
+++ b/samples/SearchableDictionary/res/menu/options_menu.xml
@@ -21,6 +21,6 @@
     <item android:id="@+id/search"
           android:title="@string/menu_search"
           android:icon="@drawable/ic_menu_search"
-          android:showAsAction="ifRoom"
+          android:showAsAction="collapseActionView|ifRoom"
           android:actionViewClass="android.widget.SearchView" />
 </menu>
diff --git a/samples/SearchableDictionary/src/com/example/android/searchabledict/SearchableDictionary.java b/samples/SearchableDictionary/src/com/example/android/searchabledict/SearchableDictionary.java
index a83ebce..a65953b 100644
--- a/samples/SearchableDictionary/src/com/example/android/searchabledict/SearchableDictionary.java
+++ b/samples/SearchableDictionary/src/com/example/android/searchabledict/SearchableDictionary.java
@@ -23,6 +23,7 @@
 import android.content.Intent;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -59,7 +60,7 @@
     @Override
     protected void onNewIntent(Intent intent) {
         // Because this activity has set launchMode="singleTop", the system calls this method
-        // to deliver the intent if this actvity is currently the foreground activity when
+        // to deliver the intent if this activity is currently the foreground activity when
         // invoked again (when the user executes a search from this activity, we don't create
         // a new instance of this activity, so the system delivers the search intent here)
         handleIntent(intent);
@@ -71,7 +72,6 @@
             Intent wordIntent = new Intent(this, WordActivity.class);
             wordIntent.setData(intent.getData());
             startActivity(wordIntent);
-            finish();
         } else if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
             // handles a search query
             String query = intent.getStringExtra(SearchManager.QUERY);
@@ -113,6 +113,8 @@
 
             // Define the on-click listener for the list items
             mListView.setOnItemClickListener(new OnItemClickListener() {
+
+                @Override
                 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                     // Build the Intent used to open WordActivity with a specific word Uri
                     Intent wordIntent = new Intent(getApplicationContext(), WordActivity.class);
@@ -130,10 +132,12 @@
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.options_menu, menu);
 
-        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
-        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
-        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
-        searchView.setIconifiedByDefault(false);
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
+            SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
+            SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
+            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
+            searchView.setIconifiedByDefault(false);
+        }
 
         return true;
     }
diff --git a/samples/SearchableDictionary/src/com/example/android/searchabledict/WordActivity.java b/samples/SearchableDictionary/src/com/example/android/searchabledict/WordActivity.java
index d56a145..d78e494 100644
--- a/samples/SearchableDictionary/src/com/example/android/searchabledict/WordActivity.java
+++ b/samples/SearchableDictionary/src/com/example/android/searchabledict/WordActivity.java
@@ -23,6 +23,7 @@
 import android.content.Intent;
 import android.database.Cursor;
 import android.net.Uri;
+import android.os.Build;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -34,14 +35,15 @@
  * Displays a word and its definition.
  */
 public class WordActivity extends Activity {
-
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.word);
 
-        ActionBar actionBar = getActionBar();
-        actionBar.setDisplayHomeAsUpEnabled(true);
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
+            ActionBar actionBar = getActionBar();
+            actionBar.setDisplayHomeAsUpEnabled(true);
+        }
 
         Uri uri = getIntent().getData();
         Cursor cursor = managedQuery(uri, null, null, null, null);
@@ -67,10 +69,12 @@
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.options_menu, menu);
 
-        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
-        SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
-        searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
-        searchView.setIconifiedByDefault(false);
+        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
+            SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
+            SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
+            searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
+            searchView.setIconifiedByDefault(false);
+        }
         
         return true;
     }
diff --git a/samples/SipDemo/_index.html b/samples/SipDemo/_index.html
index 0af4a8c..ab187a0 100644
--- a/samples/SipDemo/_index.html
+++ b/samples/SipDemo/_index.html
@@ -26,20 +26,20 @@
 the platform. Also, among devices running Android 2.3 (API level 9) or higher,
 not all devices will offer SIP support. To ensure that your application can only
 be installed on devices that are capable of supporting SIP, remember to add the
-following to the application's manifest before publishing to Android Market:</p>
+following to the application's manifest before publishing to Google Play:</p>
 <ul> <li><code>&lt;uses-sdk android:minSdkVersion="9" /&gt;</code>, which
-  indicates to Android Market and the platform that your application requires
+  indicates to Google Play and the platform that your application requires
   Android 2.3 or higher. For more information, see <a
     href="../../../guide/appendix/api-levels.html">API Levels</a> and the
   documentation for the <a
     href="../../../guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
-  element.</li> </ul> <p>To control how Android Market filters your application
+  element.</li> </ul> <p>To control how Google Play filters your application
 from devices that do not support SIP, remember to add the following to the
 application's manifest <ul> <li><code>&lt;uses-feature
-    android:name="android.hardware.sip.voip" /&gt;</code>, which tells Android
-  Market that your application uses the SIP API. The declaration should include
+    android:name="android.hardware.sip.voip" /&gt;</code>, which tells Google
+  Play that your application uses the SIP API. The declaration should include
   an <code>android:required</code> attribute that indicates whether you want
-  Android Market to filter the application from devices that do not offer SIP
+  Google Play to filter the application from devices that do not offer SIP
   support. Other <code>&lt;uses-feature&gt;</code> declarations may also be
   needed, depending on your implementation. For more information, see the
   documentation for the <a
diff --git a/samples/Snake/AndroidManifest.xml b/samples/Snake/AndroidManifest.xml
index 36a9939..757a2d6 100644
--- a/samples/Snake/AndroidManifest.xml
+++ b/samples/Snake/AndroidManifest.xml
@@ -14,22 +14,31 @@
      limitations under the License.
 -->
 
-<!-- Declare the contents of this Android application.  The namespace
-     attribute brings in the Android platform namespace, and the package
-     supplies a unique name for the application.  When writing your
-     own application, the package name must be changed from "com.example.*"
-     to come from a domain that you own or have control over. -->
+<!-- Declare the contents of this Android application. The namespace attribute 
+  brings in the Android platform namespace, and the package supplies a unique 
+  name for the application. When writing your own application, the package 
+  name must be changed from "com.example.*" to come from a domain that you 
+  own or have control over. -->
+
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-    package="com.example.android.snake">
-    <application android:label="Snake on a Phone">
-      <activity android:name="Snake"
-        android:theme="@android:style/Theme.NoTitleBar"
-        android:screenOrientation="portrait"
-        android:configChanges="keyboardHidden|orientation">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN" />
-                <category android:name="android.intent.category.LAUNCHER" />
-            </intent-filter>
-        </activity>
-    </application>
-</manifest> 
+  package="com.example.android.snake">
+
+  <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="15" />
+  <!-- Declares that the app supports devices w/o touch, such as a Google TV device -->
+  <uses-feature android:name="android.hardware.touchscreen"
+    android:required="false" />
+
+  <supports-screens android:largeScreens="true" />
+
+  <application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
+    <activity android:name="Snake" android:configChanges="keyboardHidden|orientation"
+      android:screenOrientation="nosensor" android:theme="@android:style/Theme.NoTitleBar">
+      <intent-filter>
+        <action android:name="android.intent.action.MAIN" />
+
+        <category android:name="android.intent.category.LAUNCHER" />
+      </intent-filter>
+    </activity>
+  </application>
+
+</manifest>
diff --git a/samples/Snake/res/drawable-hdpi/ic_launcher.png b/samples/Snake/res/drawable-hdpi/ic_launcher.png
new file mode 100755
index 0000000..b500381
--- /dev/null
+++ b/samples/Snake/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/Snake/res/drawable-ldpi/ic_launcher.png b/samples/Snake/res/drawable-ldpi/ic_launcher.png
new file mode 100755
index 0000000..f0efb98
--- /dev/null
+++ b/samples/Snake/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/samples/Snake/res/drawable-mdpi/dpad_down.xml b/samples/Snake/res/drawable-mdpi/dpad_down.xml
new file mode 100755
index 0000000..1b635a2
--- /dev/null
+++ b/samples/Snake/res/drawable-mdpi/dpad_down.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+        android:fromDegrees="180"
+        android:toDegrees="180"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:drawable="@drawable/dpad_up"/>
diff --git a/samples/Snake/res/drawable-mdpi/dpad_left.xml b/samples/Snake/res/drawable-mdpi/dpad_left.xml
new file mode 100755
index 0000000..b9f9648
--- /dev/null
+++ b/samples/Snake/res/drawable-mdpi/dpad_left.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+        android:fromDegrees="-90"
+        android:toDegrees="-90"
+        android:pivotX="50%"
+        android:pivotY="50%"
+        android:drawable="@drawable/dpad_up"/>
diff --git a/samples/Snake/res/drawable-mdpi/dpad_right.xml b/samples/Snake/res/drawable-mdpi/dpad_right.xml
new file mode 100755
index 0000000..15b35d6
--- /dev/null
+++ b/samples/Snake/res/drawable-mdpi/dpad_right.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+   android:fromDegrees="90"
+   android:toDegrees="90"
+   android:pivotX="50%"
+   android:pivotY="50%"
+   android:drawable="@drawable/dpad_up"/>
diff --git a/samples/Snake/res/drawable-mdpi/dpad_up.png b/samples/Snake/res/drawable-mdpi/dpad_up.png
new file mode 100755
index 0000000..01d6511
--- /dev/null
+++ b/samples/Snake/res/drawable-mdpi/dpad_up.png
Binary files differ
diff --git a/samples/Snake/res/drawable/greenstar.png b/samples/Snake/res/drawable-mdpi/greenstar.png
old mode 100644
new mode 100755
similarity index 100%
rename from samples/Snake/res/drawable/greenstar.png
rename to samples/Snake/res/drawable-mdpi/greenstar.png
Binary files differ
diff --git a/samples/Snake/res/drawable-mdpi/ic_launcher.png b/samples/Snake/res/drawable-mdpi/ic_launcher.png
new file mode 100755
index 0000000..31d5bbd
--- /dev/null
+++ b/samples/Snake/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/Snake/res/drawable/redstar.png b/samples/Snake/res/drawable-mdpi/redstar.png
old mode 100644
new mode 100755
similarity index 100%
rename from samples/Snake/res/drawable/redstar.png
rename to samples/Snake/res/drawable-mdpi/redstar.png
Binary files differ
diff --git a/samples/Snake/res/drawable/yellowstar.png b/samples/Snake/res/drawable-mdpi/yellowstar.png
old mode 100644
new mode 100755
similarity index 100%
rename from samples/Snake/res/drawable/yellowstar.png
rename to samples/Snake/res/drawable-mdpi/yellowstar.png
Binary files differ
diff --git a/samples/Snake/res/drawable-xhdpi/ic_launcher.png b/samples/Snake/res/drawable-xhdpi/ic_launcher.png
new file mode 100755
index 0000000..46cfcbf
--- /dev/null
+++ b/samples/Snake/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/samples/Snake/res/layout/snake_layout.xml b/samples/Snake/res/layout/snake_layout.xml
old mode 100644
new mode 100755
index ef8abe3..fc35fb6
--- a/samples/Snake/res/layout/snake_layout.xml
+++ b/samples/Snake/res/layout/snake_layout.xml
@@ -4,9 +4,9 @@
      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.
@@ -14,30 +14,70 @@
      limitations under the License.
 -->
 
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
-	android:layout_width="match_parent"
-	android:layout_height="match_parent">
-	
-	<com.example.android.snake.SnakeView
-	 android:id="@+id/snake"
-		android:layout_width="match_parent"
-                android:layout_height="match_parent"
-                tileSize="24"
-                />
-	
-	<RelativeLayout
-		android:layout_width="match_parent"
-		android:layout_height="match_parent" >
-		
-		<TextView
-		 android:id="@+id/text"
-			android:text="@string/snake_layout_text_text"
-			android:visibility="visible"
-			android:layout_width="wrap_content"
-			android:layout_height="wrap_content"
-			android:layout_centerInParent="true"
-			android:gravity="center_horizontal"
-			android:textColor="#ff8888ff"
-			android:textSize="24sp"/>
-	</RelativeLayout>
-</FrameLayout>
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
+  xmlns:app="http://schemas.android.com/apk/res/com.example.android.snake">
+
+  <com.example.android.snake.BackgroundView
+    android:id="@+id/background"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    app:colorSegmentOne="@color/muted_red"
+    app:colorSegmentTwo="@color/muted_yellow"
+    app:colorSegmentThree="@color/muted_blue"
+    app:colorSegmentFour="@color/muted_green"
+     />
+
+  <com.example.android.snake.SnakeView
+    android:id="@+id/snake"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    app:tileSize="24dp" />
+
+  <TextView android:id="@+id/text"
+  android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_gravity="center"
+    android:gravity="center"
+    android:textColor="@color/text_violet"
+    android:textSize="24sp"
+    android:visibility="visible" />
+
+  <RelativeLayout android:id="@+id/arrowContainer"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:visibility="gone">
+
+    <ImageView android:id="@+id/imageUp"
+    android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentTop="true"
+      android:layout_centerHorizontal="true"
+      android:padding="20dp"
+      android:src="@drawable/dpad_up" />
+
+    <ImageView android:id="@+id/imageLeft"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentLeft="true"
+      android:layout_centerVertical="true"
+      android:padding="20dp"
+      android:src="@drawable/dpad_left" />
+
+    <ImageView android:id="@+id/imageRight"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentRight="true"
+      android:layout_centerVertical="true"
+      android:padding="20dp"
+      android:src="@drawable/dpad_right" />
+
+    <ImageView android:id="@+id/imageDown"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:layout_alignParentBottom="true"
+      android:layout_centerHorizontal="true"
+      android:padding="20dp"
+      android:src="@drawable/dpad_down" />
+  </RelativeLayout>
+
+</merge>
diff --git a/samples/Snake/res/values-nonav/strings.xml b/samples/Snake/res/values-nonav/strings.xml
new file mode 100755
index 0000000..5b63b12
--- /dev/null
+++ b/samples/Snake/res/values-nonav/strings.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+
+<resources>
+  <string name="app_name">Snake</string>
+  <string name="mode_ready">Snake\nTouch Screen To Play</string>
+  <string name="mode_pause">Paused\nTouch Screen To Resume</string>
+  <string name="mode_lose">Game Over\nScore: %1$d \nTouch Screen To Play</string>
+</resources>
diff --git a/samples/Snake/res/values/attrs.xml b/samples/Snake/res/values/attrs.xml
old mode 100644
new mode 100755
index c846864..6f1d1b4
--- a/samples/Snake/res/values/attrs.xml
+++ b/samples/Snake/res/values/attrs.xml
@@ -4,9 +4,9 @@
      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.
@@ -15,8 +15,16 @@
 -->
 
 <resources>
-  <declare-styleable name="TileView">
-    <attr name="tileSize" format="integer" />
-  </declare-styleable>
-</resources>
 
+  <declare-styleable name="TileView">
+    <attr name="tileSize" format="dimension" />
+  </declare-styleable>
+  <declare-styleable name="BackgroundView">
+  <!-- Defining properties to use four different colors in 4 segments of BackgroundView -->
+    <attr name="colorSegmentOne" format="color" />
+    <attr name="colorSegmentTwo" format="color" />
+    <attr name="colorSegmentThree" format="color" />
+    <attr name="colorSegmentFour" format="color" />
+  </declare-styleable>
+
+</resources>
diff --git a/samples/Snake/res/values/colors.xml b/samples/Snake/res/values/colors.xml
new file mode 100755
index 0000000..e5d90bf
--- /dev/null
+++ b/samples/Snake/res/values/colors.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- 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.
+-->
+<resources>
+  <color name="muted_red">#ff400010</color>
+  <color name="muted_yellow">#ff404000</color>
+  <color name="muted_blue">#ff100050</color>
+  <color name="muted_green">#ff004000</color>
+  <color name="text_violet">#ff8888ff</color>
+  </resources>
diff --git a/samples/Snake/res/values/strings.xml b/samples/Snake/res/values/strings.xml
old mode 100644
new mode 100755
index 3c4a89d..f95ef4c
--- a/samples/Snake/res/values/strings.xml
+++ b/samples/Snake/res/values/strings.xml
@@ -4,9 +4,9 @@
      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.
@@ -15,10 +15,8 @@
 -->
 
 <resources>
+  <string name="app_name">Snake</string>
   <string name="mode_ready">Snake\nPress Up To Play</string>
   <string name="mode_pause">Paused\nPress Up To Resume</string>
-  <string name="mode_lose_prefix">Game Over\nScore: </string>
-  <string name="mode_lose_suffix">\nPress Up To Play</string>
-
-    <string name="snake_layout_text_text"></string>
+  <string name="mode_lose">Game Over\nScore: %1$d \nPress Up To Play</string>
 </resources>
diff --git a/samples/Snake/src/com/example/android/snake/BackgroundView.java b/samples/Snake/src/com/example/android/snake/BackgroundView.java
new file mode 100755
index 0000000..bda571e
--- /dev/null
+++ b/samples/Snake/src/com/example/android/snake/BackgroundView.java
@@ -0,0 +1,90 @@
+/*
+ * 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.example.android.snake;
+
+import android.content.Context;
+import android.content.res.TypedArray;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.util.AttributeSet;
+import android.view.View;
+
+import java.util.Arrays;
+
+/**
+ * Background View: Draw 4 full-screen RGBY triangles
+ */
+public class BackgroundView extends View {
+
+    private int[] mColors = new int[4];
+
+    private final short[] mIndices =
+            { 0, 1, 2, 0, 3, 4, 0, 1, 4 // Corner points for triangles (with offset = 2)
+    };
+
+    private float[] mVertexPoints = null;
+
+    public BackgroundView(Context context, AttributeSet attrs) {
+        super(context, attrs);
+        setFocusable(true);
+
+        // retrieve colors for 4 segments from styleable properties
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.BackgroundView);
+        mColors[0] = a.getColor(R.styleable.BackgroundView_colorSegmentOne, Color.RED);
+        mColors[1] = a.getColor(R.styleable.BackgroundView_colorSegmentTwo, Color.YELLOW);
+        mColors[2] = a.getColor(R.styleable.BackgroundView_colorSegmentThree, Color.BLUE);
+        mColors[3] = a.getColor(R.styleable.BackgroundView_colorSegmentFour, Color.GREEN);
+
+        a.recycle();
+    }
+
+    @Override
+    protected void onDraw(Canvas canvas) {
+        assert(mVertexPoints != null);
+
+        // Colors for each vertex
+        int[] mFillColors = new int[mVertexPoints.length];
+
+        for (int triangle = 0; triangle < mColors.length; triangle++) {
+            // Set color for all vertex points to current triangle color
+            Arrays.fill(mFillColors, mColors[triangle]);
+
+            // Draw one triangle
+            canvas.drawVertices(Canvas.VertexMode.TRIANGLES, mVertexPoints.length, mVertexPoints,
+                    0, null, 0, // No Textures
+                    mFillColors, 0, mIndices,
+                    triangle * 2, 3, // Use 3 vertices via Index Array with offset 2
+                    new Paint());
+        }
+    }
+
+    @Override
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(w, h, oldw, oldh);
+
+     // Construct our center and four corners
+        mVertexPoints = new float[] {
+                w / 2, h / 2,
+                0, 0,
+                w, 0,
+                w, h,
+                0, h
+        };
+    }
+
+}
diff --git a/samples/Snake/src/com/example/android/snake/Snake.java b/samples/Snake/src/com/example/android/snake/Snake.java
old mode 100644
new mode 100755
index 6306693..ddf0c3c
--- a/samples/Snake/src/com/example/android/snake/Snake.java
+++ b/samples/Snake/src/com/example/android/snake/Snake.java
@@ -18,27 +18,38 @@
 
 import android.app.Activity;
 import android.os.Bundle;
-import android.view.Window;
+import android.view.KeyEvent;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.View.OnTouchListener;
 import android.widget.TextView;
 
 /**
  * Snake: a simple game that everyone can enjoy.
  * 
- * This is an implementation of the classic Game "Snake", in which you control a
- * serpent roaming around the garden looking for apples. Be careful, though,
- * because when you catch one, not only will you become longer, but you'll move
- * faster. Running into yourself or the walls will end the game.
+ * This is an implementation of the classic Game "Snake", in which you control a serpent roaming
+ * around the garden looking for apples. Be careful, though, because when you catch one, not only
+ * will you become longer, but you'll move faster. Running into yourself or the walls will end the
+ * game.
  * 
  */
 public class Snake extends Activity {
 
-    private SnakeView mSnakeView;
-    
+    /**
+     * Constants for desired direction of moving the snake
+     */
+    public static int MOVE_LEFT = 0;
+    public static int MOVE_UP = 1;
+    public static int MOVE_DOWN = 2;
+    public static int MOVE_RIGHT = 3;
+
     private static String ICICLE_KEY = "snake-view";
 
+    private SnakeView mSnakeView;
+
     /**
-     * Called when Activity is first created. Turns off the title bar, sets up
-     * the content views, and fires up the SnakeView.
+     * Called when Activity is first created. Turns off the title bar, sets up the content views,
+     * and fires up the SnakeView.
      * 
      */
     @Override
@@ -48,7 +59,8 @@
         setContentView(R.layout.snake_layout);
 
         mSnakeView = (SnakeView) findViewById(R.id.snake);
-        mSnakeView.setTextView((TextView) findViewById(R.id.text));
+        mSnakeView.setDependentViews((TextView) findViewById(R.id.text),
+                findViewById(R.id.arrowContainer), findViewById(R.id.background));
 
         if (savedInstanceState == null) {
             // We were just launched -- set up a new game
@@ -62,6 +74,31 @@
                 mSnakeView.setMode(SnakeView.PAUSE);
             }
         }
+        mSnakeView.setOnTouchListener(new OnTouchListener() {
+
+            @Override
+            public boolean onTouch(View v, MotionEvent event) {
+                if (mSnakeView.getGameState() == SnakeView.RUNNING) {
+                    // Normalize x,y between 0 and 1
+                    float x = event.getX() / v.getWidth();
+                    float y = event.getY() / v.getHeight();
+
+                    // Direction will be [0,1,2,3] depending on quadrant
+                    int direction = 0;
+                    direction = (x > y) ? 1 : 0;
+                    direction |= (x > 1 - y) ? 2 : 0;
+
+                    // Direction is same as the quadrant which was clicked
+                    mSnakeView.moveSnake(direction);
+
+                } else {
+                    // If the game is not running then on touching any part of the screen
+                    // we start the game by sending MOVE_UP signal to SnakeView
+                    mSnakeView.moveSnake(MOVE_UP);
+                }
+                return false;
+            }
+        });
     }
 
     @Override
@@ -73,8 +110,34 @@
 
     @Override
     public void onSaveInstanceState(Bundle outState) {
-        //Store the game state
+        // Store the game state
         outState.putBundle(ICICLE_KEY, mSnakeView.saveState());
     }
 
+    /**
+     * Handles key events in the game. Update the direction our snake is traveling based on the
+     * DPAD.
+     *
+     */
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent msg) {
+
+        switch (keyCode) {
+            case KeyEvent.KEYCODE_DPAD_UP:
+                mSnakeView.moveSnake(MOVE_UP);
+                break;
+            case KeyEvent.KEYCODE_DPAD_RIGHT:
+                mSnakeView.moveSnake(MOVE_RIGHT);
+                break;
+            case KeyEvent.KEYCODE_DPAD_DOWN:
+                mSnakeView.moveSnake(MOVE_DOWN);
+                break;
+            case KeyEvent.KEYCODE_DPAD_LEFT:
+                mSnakeView.moveSnake(MOVE_LEFT);
+                break;
+        }
+
+        return super.onKeyDown(keyCode, msg);
+    }
+
 }
diff --git a/samples/Snake/src/com/example/android/snake/SnakeView.java b/samples/Snake/src/com/example/android/snake/SnakeView.java
old mode 100644
new mode 100755
index 8dd0232..a8e654f
--- a/samples/Snake/src/com/example/android/snake/SnakeView.java
+++ b/samples/Snake/src/com/example/android/snake/SnakeView.java
@@ -16,33 +16,29 @@
 
 package com.example.android.snake;
 
-import java.util.ArrayList;
-import java.util.Random;
-
 import android.content.Context;
 import android.content.res.Resources;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.util.AttributeSet;
-import android.os.Bundle;
 import android.util.Log;
-import android.view.KeyEvent;
 import android.view.View;
 import android.widget.TextView;
 
+import java.util.ArrayList;
+import java.util.Random;
+
 /**
  * SnakeView: implementation of a simple game of Snake
- * 
- * 
  */
 public class SnakeView extends TileView {
 
     private static final String TAG = "SnakeView";
 
     /**
-     * Current mode of application: READY to run, RUNNING, or you have already
-     * lost. static final ints are used instead of an enum for performance
-     * reasons.
+     * Current mode of application: READY to run, RUNNING, or you have already lost. static final
+     * ints are used instead of an enum for performance reasons.
      */
     private int mMode = READY;
     public static final int PAUSE = 0;
@@ -68,26 +64,36 @@
     private static final int GREEN_STAR = 3;
 
     /**
-     * mScore: used to track the number of apples captured mMoveDelay: number of
-     * milliseconds between snake movements. This will decrease as apples are
-     * captured.
+     * mScore: Used to track the number of apples captured mMoveDelay: number of milliseconds
+     * between snake movements. This will decrease as apples are captured.
      */
     private long mScore = 0;
     private long mMoveDelay = 600;
     /**
-     * mLastMove: tracks the absolute time when the snake last moved, and is used
-     * to determine if a move should be made based on mMoveDelay.
+     * mLastMove: Tracks the absolute time when the snake last moved, and is used to determine if a
+     * move should be made based on mMoveDelay.
      */
     private long mLastMove;
-    
+
     /**
-     * mStatusText: text shows to the user in some run states
+     * mStatusText: Text shows to the user in some run states
      */
     private TextView mStatusText;
 
     /**
-     * mSnakeTrail: a list of Coordinates that make up the snake's body
-     * mAppleList: the secret location of the juicy apples the snake craves.
+     * mArrowsView: View which shows 4 arrows to signify 4 directions in which the snake can move
+     */
+    private View mArrowsView;
+
+    /**
+     * mBackgroundView: Background View which shows 4 different colored triangles pressing which
+     * moves the snake
+     */
+    private View mBackgroundView;
+
+    /**
+     * mSnakeTrail: A list of Coordinates that make up the snake's body mAppleList: The secret
+     * location of the juicy apples the snake craves.
      */
     private ArrayList<Coordinate> mSnakeTrail = new ArrayList<Coordinate>();
     private ArrayList<Coordinate> mAppleList = new ArrayList<Coordinate>();
@@ -98,10 +104,11 @@
     private static final Random RNG = new Random();
 
     /**
-     * Create a simple handler that we can use to cause animation to happen.  We
-     * set ourselves as a target and we can use the sleep()
-     * function to cause an update/invalidate to occur at a later date.
+     * Create a simple handler that we can use to cause animation to happen. We set ourselves as a
+     * target and we can use the sleep() function to cause an update/invalidate to occur at a later
+     * date.
      */
+
     private RefreshHandler mRedrawHandler = new RefreshHandler();
 
     class RefreshHandler extends Handler {
@@ -113,12 +120,11 @@
         }
 
         public void sleep(long delayMillis) {
-        	this.removeMessages(0);
+            this.removeMessages(0);
             sendMessageDelayed(obtainMessage(0), delayMillis);
         }
     };
 
-
     /**
      * Constructs a SnakeView based on inflation from XML
      * 
@@ -127,26 +133,26 @@
      */
     public SnakeView(Context context, AttributeSet attrs) {
         super(context, attrs);
-        initSnakeView();
-   }
-
-    public SnakeView(Context context, AttributeSet attrs, int defStyle) {
-    	super(context, attrs, defStyle);
-    	initSnakeView();
+        initSnakeView(context);
     }
 
-    private void initSnakeView() {
+    public SnakeView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+        initSnakeView(context);
+    }
+
+    private void initSnakeView(Context context) {
+
         setFocusable(true);
 
         Resources r = this.getContext().getResources();
-        
+
         resetTiles(4);
         loadTile(RED_STAR, r.getDrawable(R.drawable.redstar));
         loadTile(YELLOW_STAR, r.getDrawable(R.drawable.yellowstar));
         loadTile(GREEN_STAR, r.getDrawable(R.drawable.greenstar));
-    	
+
     }
-    
 
     private void initNewGame() {
         mSnakeTrail.clear();
@@ -155,7 +161,6 @@
         // For now we're just going to load up a short default eastbound snake
         // that's just turned north
 
-        
         mSnakeTrail.add(new Coordinate(7, 7));
         mSnakeTrail.add(new Coordinate(6, 7));
         mSnakeTrail.add(new Coordinate(5, 7));
@@ -172,30 +177,29 @@
         mScore = 0;
     }
 
-
     /**
-     * Given a ArrayList of coordinates, we need to flatten them into an array of
-     * ints before we can stuff them into a map for flattening and storage.
+     * Given a ArrayList of coordinates, we need to flatten them into an array of ints before we can
+     * stuff them into a map for flattening and storage.
      * 
      * @param cvec : a ArrayList of Coordinate objects
-     * @return : a simple array containing the x/y values of the coordinates
-     * as [x1,y1,x2,y2,x3,y3...]
+     * @return : a simple array containing the x/y values of the coordinates as
+     *         [x1,y1,x2,y2,x3,y3...]
      */
     private int[] coordArrayListToArray(ArrayList<Coordinate> cvec) {
-        int count = cvec.size();
-        int[] rawArray = new int[count * 2];
-        for (int index = 0; index < count; index++) {
-            Coordinate c = cvec.get(index);
-            rawArray[2 * index] = c.x;
-            rawArray[2 * index + 1] = c.y;
+        int[] rawArray = new int[cvec.size() * 2];
+
+        int i = 0;
+        for (Coordinate c : cvec) {
+            rawArray[i++] = c.x;
+            rawArray[i++] = c.y;
         }
+
         return rawArray;
     }
 
     /**
-     * Save game state so that the user does not lose anything
-     * if the game process is killed while we are in the 
-     * background.
+     * Save game state so that the user does not lose anything if the game process is killed while
+     * we are in the background.
      * 
      * @return a Bundle with this view's state
      */
@@ -213,8 +217,8 @@
     }
 
     /**
-     * Given a flattened array of ordinate pairs, we reconstitute them into a
-     * ArrayList of Coordinate objects
+     * Given a flattened array of ordinate pairs, we reconstitute them into a ArrayList of
+     * Coordinate objects
      * 
      * @param rawArray : [x1,y1,x2,y2,...]
      * @return a ArrayList of Coordinates
@@ -246,83 +250,79 @@
         mSnakeTrail = coordArrayToArrayList(icicle.getIntArray("mSnakeTrail"));
     }
 
-    /*
-     * handles key events in the game. Update the direction our snake is traveling
-     * based on the DPAD. Ignore events that would cause the snake to immediately
-     * turn back on itself.
-     * 
-     * (non-Javadoc)
-     * 
-     * @see android.view.View#onKeyDown(int, android.os.KeyEvent)
+    /**
+     * Handles snake movement triggers from Snake Activity and moves the snake accordingly. Ignore
+     * events that would cause the snake to immediately turn back on itself.
+     *
+     * @param direction The desired direction of movement
      */
-    @Override
-    public boolean onKeyDown(int keyCode, KeyEvent msg) {
+    public void moveSnake(int direction) {
 
-        if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
+        if (direction == Snake.MOVE_UP) {
             if (mMode == READY | mMode == LOSE) {
                 /*
                  * At the beginning of the game, or the end of a previous one,
-                 * we should start a new game.
+                 * we should start a new game if UP key is clicked.
                  */
                 initNewGame();
                 setMode(RUNNING);
                 update();
-                return (true);
+                return;
             }
 
             if (mMode == PAUSE) {
                 /*
-                 * If the game is merely paused, we should just continue where
-                 * we left off.
+                 * If the game is merely paused, we should just continue where we left off.
                  */
                 setMode(RUNNING);
                 update();
-                return (true);
+                return;
             }
 
             if (mDirection != SOUTH) {
                 mNextDirection = NORTH;
             }
-            return (true);
+            return;
         }
 
-        if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
+        if (direction == Snake.MOVE_DOWN) {
             if (mDirection != NORTH) {
                 mNextDirection = SOUTH;
             }
-            return (true);
+            return;
         }
 
-        if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) {
+        if (direction == Snake.MOVE_LEFT) {
             if (mDirection != EAST) {
                 mNextDirection = WEST;
             }
-            return (true);
+            return;
         }
 
-        if (keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
+        if (direction == Snake.MOVE_RIGHT) {
             if (mDirection != WEST) {
                 mNextDirection = EAST;
             }
-            return (true);
+            return;
         }
 
-        return super.onKeyDown(keyCode, msg);
     }
 
     /**
-     * Sets the TextView that will be used to give information (such as "Game
-     * Over" to the user.
+     * Sets the Dependent views that will be used to give information (such as "Game Over" to the
+     * user and also to handle touch events for making movements
      * 
      * @param newView
      */
-    public void setTextView(TextView newView) {
-        mStatusText = newView;
+    public void setDependentViews(TextView msgView, View arrowView, View backgroundView) {
+        mStatusText = msgView;
+        mArrowsView = arrowView;
+        mBackgroundView = backgroundView;
     }
 
     /**
-     * Updates the current mode of the application (RUNNING or PAUSED or the like)
-     * as well as sets the visibility of textview for notification
+     * Updates the current mode of the application (RUNNING or PAUSED or the like) as well as sets
+     * the visibility of textview for notification
      * 
      * @param newMode
      */
@@ -330,23 +330,33 @@
         int oldMode = mMode;
         mMode = newMode;
 
-        if (newMode == RUNNING & oldMode != RUNNING) {
+        if (newMode == RUNNING && oldMode != RUNNING) {
+            // hide the game instructions
             mStatusText.setVisibility(View.INVISIBLE);
             update();
+            // make the background and arrows visible as soon the snake starts moving
+            mArrowsView.setVisibility(View.VISIBLE);
+            mBackgroundView.setVisibility(View.VISIBLE);
             return;
         }
 
         Resources res = getContext().getResources();
         CharSequence str = "";
         if (newMode == PAUSE) {
+            mArrowsView.setVisibility(View.GONE);
+            mBackgroundView.setVisibility(View.GONE);
             str = res.getText(R.string.mode_pause);
         }
         if (newMode == READY) {
+            mArrowsView.setVisibility(View.GONE);
+            mBackgroundView.setVisibility(View.GONE);
+
             str = res.getText(R.string.mode_ready);
         }
         if (newMode == LOSE) {
-            str = res.getString(R.string.mode_lose_prefix) + mScore
-                  + res.getString(R.string.mode_lose_suffix);
+            mArrowsView.setVisibility(View.GONE);
+            mBackgroundView.setVisibility(View.GONE);
+            str = res.getString(R.string.mode_lose, mScore);
         }
 
         mStatusText.setText(str);
@@ -354,11 +364,16 @@
     }
 
     /**
-     * Selects a random location within the garden that is not currently covered
-     * by the snake. Currently _could_ go into an infinite loop if the snake
-     * currently fills the garden, but we'll leave discovery of this prize to a
-     * truly excellent snake-player.
-     * 
+     * @return the Game state as Running, Ready, Paused, Lose
+     */
+    public int getGameState() {
+        return mMode;
+    }
+
+    /**
+     * Selects a random location within the garden that is not currently covered by the snake.
+     * Currently _could_ go into an infinite loop if the snake currently fills the garden, but we'll
+     * leave discovery of this prize to a truly excellent snake-player.
      */
     private void addRandomApple() {
         Coordinate newCoord = null;
@@ -388,10 +403,9 @@
         mAppleList.add(newCoord);
     }
 
-
     /**
-     * Handles the basic update loop, checking to see if we are in the running
-     * state, determining if a move should be made, updating the snake's location.
+     * Handles the basic update loop, checking to see if we are in the running state, determining if
+     * a move should be made, updating the snake's location.
      */
     public void update() {
         if (mMode == RUNNING) {
@@ -411,7 +425,6 @@
 
     /**
      * Draws some walls.
-     * 
      */
     private void updateWalls() {
         for (int x = 0; x < mXTileCount; x++) {
@@ -426,7 +439,6 @@
 
     /**
      * Draws some apples.
-     * 
      */
     private void updateApples() {
         for (Coordinate c : mAppleList) {
@@ -435,38 +447,36 @@
     }
 
     /**
-     * Figure out which way the snake is going, see if he's run into anything (the
-     * walls, himself, or an apple). If he's not going to die, we then add to the
-     * front and subtract from the rear in order to simulate motion. If we want to
-     * grow him, we don't subtract from the rear.
-     * 
+     * Figure out which way the snake is going, see if he's run into anything (the walls, himself,
+     * or an apple). If he's not going to die, we then add to the front and subtract from the rear
+     * in order to simulate motion. If we want to grow him, we don't subtract from the rear.
      */
     private void updateSnake() {
         boolean growSnake = false;
 
-        // grab the snake by the head
+        // Grab the snake by the head
         Coordinate head = mSnakeTrail.get(0);
         Coordinate newHead = new Coordinate(1, 1);
 
         mDirection = mNextDirection;
 
         switch (mDirection) {
-        case EAST: {
-            newHead = new Coordinate(head.x + 1, head.y);
-            break;
-        }
-        case WEST: {
-            newHead = new Coordinate(head.x - 1, head.y);
-            break;
-        }
-        case NORTH: {
-            newHead = new Coordinate(head.x, head.y - 1);
-            break;
-        }
-        case SOUTH: {
-            newHead = new Coordinate(head.x, head.y + 1);
-            break;
-        }
+            case EAST: {
+                newHead = new Coordinate(head.x + 1, head.y);
+                break;
+            }
+            case WEST: {
+                newHead = new Coordinate(head.x - 1, head.y);
+                break;
+            }
+            case NORTH: {
+                newHead = new Coordinate(head.x, head.y - 1);
+                break;
+            }
+            case SOUTH: {
+                newHead = new Coordinate(head.x, head.y + 1);
+                break;
+            }
         }
 
         // Collision detection
@@ -495,7 +505,7 @@
             if (c.equals(newHead)) {
                 mAppleList.remove(c);
                 addRandomApple();
-                
+
                 mScore++;
                 mMoveDelay *= 0.9;
 
@@ -523,10 +533,8 @@
     }
 
     /**
-     * Simple class containing two integer values and a comparison function.
-     * There's probably something I should use instead, but this was quick and
-     * easy to build.
-     * 
+     * Simple class containing two integer values and a comparison function. There's probably
+     * something I should use instead, but this was quick and easy to build.
      */
     private class Coordinate {
         public int x;
@@ -549,5 +557,5 @@
             return "Coordinate: [" + x + "," + y + "]";
         }
     }
-    
+
 }
diff --git a/samples/Snake/src/com/example/android/snake/TileView.java b/samples/Snake/src/com/example/android/snake/TileView.java
old mode 100644
new mode 100755
index a912c53..a25e922
--- a/samples/Snake/src/com/example/android/snake/TileView.java
+++ b/samples/Snake/src/com/example/android/snake/TileView.java
@@ -25,18 +25,16 @@
 import android.util.AttributeSet;
 import android.view.View;
 
-
 /**
- * TileView: a View-variant designed for handling arrays of "icons" or other
- * drawables.
+ * TileView: a View-variant designed for handling arrays of "icons" or other drawables.
  * 
  */
 public class TileView extends View {
 
     /**
-     * Parameters controlling the size of the tiles and their range within view.
-     * Width/Height are in pixels, and Drawables will be scaled to fit to these
-     * dimensions. X/Y Tile Counts are the number of tiles that will be drawn.
+     * Parameters controlling the size of the tiles and their range within view. Width/Height are in
+     * pixels, and Drawables will be scaled to fit to these dimensions. X/Y Tile Counts are the
+     * number of tiles that will be drawn.
      */
 
     protected static int mTileSize;
@@ -47,81 +45,37 @@
     private static int mXOffset;
     private static int mYOffset;
 
-
-    /**
-     * A hash that maps integer handles specified by the subclasser to the
-     * drawable that will be used for that reference
-     */
-    private Bitmap[] mTileArray; 
-
-    /**
-     * A two-dimensional array of integers in which the number represents the
-     * index of the tile that should be drawn at that locations
-     */
-    private int[][] mTileGrid;
-
     private final Paint mPaint = new Paint();
 
-    public TileView(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
+    /**
+     * A hash that maps integer handles specified by the subclasser to the drawable that will be
+     * used for that reference
+     */
+    private Bitmap[] mTileArray;
 
-        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TileView);
-
-        mTileSize = a.getInt(R.styleable.TileView_tileSize, 12);
-        
-        a.recycle();
-    }
+    /**
+     * A two-dimensional array of integers in which the number represents the index of the tile that
+     * should be drawn at that locations
+     */
+    private int[][] mTileGrid;
 
     public TileView(Context context, AttributeSet attrs) {
         super(context, attrs);
 
         TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TileView);
+        mTileSize = a.getDimensionPixelSize(R.styleable.TileView_tileSize, 12);
 
-        mTileSize = a.getInt(R.styleable.TileView_tileSize, 12);
-        
         a.recycle();
     }
 
-    
-    
-    /**
-     * Rests the internal array of Bitmaps used for drawing tiles, and
-     * sets the maximum index of tiles to be inserted
-     * 
-     * @param tilecount
-     */
-    
-    public void resetTiles(int tilecount) {
-    	mTileArray = new Bitmap[tilecount];
-    }
+    public TileView(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
 
+        TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TileView);
+        mTileSize = a.getDimensionPixelSize(R.styleable.TileView_tileSize, 12);
 
-    @Override
-    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
-        mXTileCount = (int) Math.floor(w / mTileSize);
-        mYTileCount = (int) Math.floor(h / mTileSize);
+        a.recycle();
 
-        mXOffset = ((w - (mTileSize * mXTileCount)) / 2);
-        mYOffset = ((h - (mTileSize * mYTileCount)) / 2);
-
-        mTileGrid = new int[mXTileCount][mYTileCount];
-        clearTiles();
-    }
-
-    /**
-     * Function to set the specified Drawable as the tile for a particular
-     * integer key.
-     * 
-     * @param key
-     * @param tile
-     */
-    public void loadTile(int key, Drawable tile) {
-        Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);
-        Canvas canvas = new Canvas(bitmap);
-        tile.setBounds(0, 0, mTileSize, mTileSize);
-        tile.draw(canvas);
-        
-        mTileArray[key] = bitmap;
     }
 
     /**
@@ -137,9 +91,48 @@
     }
 
     /**
-     * Used to indicate that a particular tile (set with loadTile and referenced
-     * by an integer) should be drawn at the given x/y coordinates during the
-     * next invalidate/draw cycle.
+     * Function to set the specified Drawable as the tile for a particular integer key.
+     *
+     * @param key
+     * @param tile
+     */
+    public void loadTile(int key, Drawable tile) {
+        Bitmap bitmap = Bitmap.createBitmap(mTileSize, mTileSize, Bitmap.Config.ARGB_8888);
+        Canvas canvas = new Canvas(bitmap);
+        tile.setBounds(0, 0, mTileSize, mTileSize);
+        tile.draw(canvas);
+
+        mTileArray[key] = bitmap;
+    }
+
+    @Override
+    public void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        for (int x = 0; x < mXTileCount; x += 1) {
+            for (int y = 0; y < mYTileCount; y += 1) {
+                if (mTileGrid[x][y] > 0) {
+                    canvas.drawBitmap(mTileArray[mTileGrid[x][y]], mXOffset + x * mTileSize,
+                            mYOffset + y * mTileSize, mPaint);
+                }
+            }
+        }
+
+    }
+
+    /**
+     * Rests the internal array of Bitmaps used for drawing tiles, and sets the maximum index of
+     * tiles to be inserted
+     *
+     * @param tilecount
+     */
+
+    public void resetTiles(int tilecount) {
+        mTileArray = new Bitmap[tilecount];
+    }
+
+    /**
+     * Used to indicate that a particular tile (set with loadTile and referenced by an integer)
+     * should be drawn at the given x/y coordinates during the next invalidate/draw cycle.
      * 
      * @param tileindex
      * @param x
@@ -149,21 +142,16 @@
         mTileGrid[x][y] = tileindex;
     }
 
-
     @Override
-    public void onDraw(Canvas canvas) {
-        super.onDraw(canvas);
-        for (int x = 0; x < mXTileCount; x += 1) {
-            for (int y = 0; y < mYTileCount; y += 1) {
-                if (mTileGrid[x][y] > 0) {
-                    canvas.drawBitmap(mTileArray[mTileGrid[x][y]], 
-                    		mXOffset + x * mTileSize,
-                    		mYOffset + y * mTileSize,
-                    		mPaint);
-                }
-            }
-        }
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        mXTileCount = (int) Math.floor(w / mTileSize);
+        mYTileCount = (int) Math.floor(h / mTileSize);
 
+        mXOffset = ((w - (mTileSize * mXTileCount)) / 2);
+        mYOffset = ((h - (mTileSize * mYTileCount)) / 2);
+
+        mTileGrid = new int[mXTileCount][mYTileCount];
+        clearTiles();
     }
 
 }
diff --git a/samples/Support4Demos/res/layout/fragment_stack.xml b/samples/Support4Demos/res/layout/fragment_stack.xml
index 1d12496..0f0951f 100644
--- a/samples/Support4Demos/res/layout/fragment_stack.xml
+++ b/samples/Support4Demos/res/layout/fragment_stack.xml
@@ -28,11 +28,19 @@
             android:layout_weight="1">
     </FrameLayout>
 
-    <Button android:id="@+id/new_fragment"
+    <LinearLayout
         android:layout_width="wrap_content" android:layout_height="wrap_content"
-        android:layout_weight="0" 
-        android:text="@string/new_fragment">
-        <requestFocus />
-    </Button>
+        android:layout_weight="0" android:orientation="horizontal">
+        <Button android:id="@+id/home"
+            android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/home">
+            <requestFocus />
+        </Button>
+        <Button android:id="@+id/new_fragment"
+            android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/new_fragment">
+            <requestFocus />
+        </Button>
+    </LinearLayout>
 
 </LinearLayout>
diff --git a/samples/Support4Demos/res/values/strings.xml b/samples/Support4Demos/res/values/strings.xml
index 8f70fd3..f8f4a4f 100644
--- a/samples/Support4Demos/res/values/strings.xml
+++ b/samples/Support4Demos/res/values/strings.xml
@@ -77,6 +77,7 @@
     <string name="fragment_receive_result_support">Fragment/Receive Result</string>
 
     <string name="fragment_stack_support">Fragment/Stack</string>
+    <string name="home">Go home</string>
     <string name="new_fragment">New fragment</string>
 
     <string name="fragment_tabs">Fragment/Tabs</string>
diff --git a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java
index c4d05fa..337f2c1 100644
--- a/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java
+++ b/samples/Support4Demos/src/com/example/android/supportv4/app/FragmentStackSupport.java
@@ -20,6 +20,7 @@
 
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 
 import android.os.Bundle;
@@ -45,6 +46,17 @@
                 addFragmentToStack();
             }
         });
+        button = (Button)findViewById(R.id.home);
+        button.setOnClickListener(new OnClickListener() {
+            public void onClick(View v) {
+                // If there is a back stack, pop it all.
+                FragmentManager fm = getSupportFragmentManager();
+                if (fm.getBackStackEntryCount() > 0) {
+                    fm.popBackStack(fm.getBackStackEntryAt(0).getId(),
+                            FragmentManager.POP_BACK_STACK_INCLUSIVE);
+                }
+            }
+        });
 
         if (savedInstanceState == null) {
             // Do first time initialization -- add initial fragment.
diff --git a/samples/WeatherListWidget/_index.html b/samples/WeatherListWidget/_index.html
index 730f27c..93464a1 100644
--- a/samples/WeatherListWidget/_index.html
+++ b/samples/WeatherListWidget/_index.html
@@ -29,11 +29,11 @@
 
 <p>If you are writing collection-based widgets, remember that the feature is
 supported only on Android 3.0 (API level 11) and higher versions of the platform.
-Remember to add the following to the application's manifest publishing to Android Market:</p>
+Remember to add the following to the application's manifest publishing to Google Play:</p>
 
 <ul>
 <li><code>&lt;uses-sdk android:minSdkVersion="11" /&gt;</code>, which indicates
-to Android Market and the platform that your application requires Android 3.0 or
+to Google Play and the platform that your application requires Android 3.0 or
 higher. For more information, see the <a href="../../../guide/appendix/api-levels.html">API Levels</a>
 and the documentation for the
 <a href="../../../guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
diff --git a/samples/WiFiDirectDemo/AndroidManifest.xml b/samples/WiFiDirectDemo/AndroidManifest.xml
index 993716f..d25fdc0 100644
--- a/samples/WiFiDirectDemo/AndroidManifest.xml
+++ b/samples/WiFiDirectDemo/AndroidManifest.xml
@@ -11,7 +11,7 @@
     <uses-permission android:name="android.permission.READ_PHONE_STATE" />
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 
-    <!-- Market filtering --> 
+    <!-- Google Play filtering --> 
     <uses-feature android:name="android.hardware.wifi.direct" android:required="true"/>
 
     <application
diff --git a/samples/WiFiDirectDemo/_index.html b/samples/WiFiDirectDemo/_index.html
index 07fb190..45b831d 100644
--- a/samples/WiFiDirectDemo/_index.html
+++ b/samples/WiFiDirectDemo/_index.html
@@ -23,20 +23,20 @@
 feature is supported only on Android 4.0 (API level 14) and higher versions of
 the platform. To ensure that your application can only
 be installed on devices that are capable of supporting Wi-Fi Direct mode, remember to add the
-following to the application's manifest before publishing to Android Market:</p>
+following to the application's manifest before publishing to Google Play:</p>
 <ul> <li><code>&lt;uses-sdk android:minSdkVersion="14" /&gt;</code>, which
-  indicates to Android Market and the platform that your application requires
+  indicates to Google Play and the platform that your application requires
   Android 4.0 or higher. For more information, see <a
     href="../../../guide/appendix/api-levels.html">API Levels</a> and the
   documentation for the <a
     href="../../../guide/topics/manifest/uses-sdk-element.html"><code>&lt;uses-sdk&gt;</code></a>
-  element.</li> </ul> <p>To control how Android Market filters your application
+  element.</li> </ul> <p>To control how Google Play filters your application
 from devices that do not support Wi-Fi Direct mode, remember to add the following to the
 application's manifest <ul> <li><code>&lt;uses-feature
-    android:name="android.hardware.wifi.direct" /&gt;</code>, which tells Android
-  Market that your application uses the Wi-Fi Direct API. The declaration should include
+    android:name="android.hardware.wifi.direct" /&gt;</code>, which tells Google
+  Play that your application uses the Wi-Fi Direct API. The declaration should include
   an <code>android:required</code> attribute that indicates whether you want
-  Android Market to filter the application from devices that do not offer Wi-Fi Direct support. Other <code>&lt;uses-feature&gt;</code> declarations may also be
+  Google Play to filter the application from devices that do not offer Wi-Fi Direct support. Other <code>&lt;uses-feature&gt;</code> declarations may also be
   needed, depending on your implementation. For more information, see the
   documentation for the <a
     href="../../../guide/topics/manifest/uses-feature-element.html"><code>&lt;uses-feature&gt;</code></a>
diff --git a/samples/samples_source.prop_template b/samples/samples_source.prop_template
new file mode 100644
index 0000000..d3cdfd5
--- /dev/null
+++ b/samples/samples_source.prop_template
@@ -0,0 +1,4 @@
+Pkg.UserSrc=false
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
diff --git a/samples/source.properties b/samples/source.properties
deleted file mode 100644
index d0b390b..0000000
--- a/samples/source.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-Pkg.UserSrc=false
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
diff --git a/samples/training/multiscreen/newsreader/res/values-large-land/layouts.xml b/samples/training/multiscreen/newsreader/res/values-large-land/layouts.xml
new file mode 100644
index 0000000..9a4dc8c
--- /dev/null
+++ b/samples/training/multiscreen/newsreader/res/values-large-land/layouts.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- BEGIN_INCLUDE(all) -->
+<resources>
+    <item name="main_layout" type="layout">@layout/twopanes</item>
+    <bool name="has_two_panes">true</bool>
+</resources>
+<!-- END_INCLUDE(all) -->
diff --git a/samples/training/multiscreen/newsreader/res/values-large-port/layouts.xml b/samples/training/multiscreen/newsreader/res/values-large-port/layouts.xml
new file mode 100644
index 0000000..39c4645
--- /dev/null
+++ b/samples/training/multiscreen/newsreader/res/values-large-port/layouts.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2011 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.
+-->
+
+<!-- BEGIN_INCLUDE(all) -->
+<resources>
+    <item name="main_layout" type="layout">@layout/twopanes_narrow</item>
+    <bool name="has_two_panes">true</bool>
+</resources>
+<!-- END_INCLUDE(all) -->
diff --git a/scripts/app_engine_server/memcache_zipserve.py b/scripts/app_engine_server/memcache_zipserve.py
index c620596..75d1b97 100644
--- a/scripts/app_engine_server/memcache_zipserve.py
+++ b/scripts/app_engine_server/memcache_zipserve.py
@@ -31,7 +31,10 @@
 import email.Utils
 import logging
 import mimetypes
+import re
+import sys
 import time
+import yaml
 import zipfile
 
 from google.appengine.api import memcache
@@ -94,9 +97,21 @@
   PUBLIC = True                     # public cache setting
   CACHE_PREFIX = 'cache://'         # memcache key prefix for actual URLs
   NEG_CACHE_PREFIX = 'noncache://'  # memcache key prefix for non-existant URL
+  REDIRECT_PREFIX = 'redirect://'   # memcache key prefix for redirect data
+  REDIRECT_FILE = 'redirects.yaml'  # Name of file that contains redirect table
+  REDIRECT_SRC = 'src'              # Name of the 'source' attribute for a
+                                    #   redirect table entry
+  REDIRECT_DST = 'dst'              # Name of the 'destination' attribute for
+                                    #   a redirect table entry
+  REDIRECT_TYPE = 'type'            # Name of the 'type' attribute for a
+                                    #   redirect table entry
+  REDIRECT_TYPE_PERM = 'permanent'  # Redirect 'type' string indicating a 301
+                                    #   redirect should be served
+  REDIRECT_TYPE_TEMP = 'temporary'  # Redirect 'type'string indicate a 302
+                                    #   Redirect should be served
   intlString = 'intl/'
   validLangs = ['en', 'de', 'es', 'fr','it','ja','zh-CN','zh-TW']
-  
+
   def TrueGet(self, reqUri):
     """The top-level entry point to serving requests.
 
@@ -118,7 +133,7 @@
     isStripped = False
 
     # Try to retrieve the user's lang pref from the cookie. If there is no
-    # lang pref cookie in the request, add set-cookie to the response with the 
+    # lang pref cookie in the request, add set-cookie to the response with the
     # default value of 'en'.
     try:
       langName = self.request.cookies['android_developer_pref_lang']
@@ -127,64 +142,201 @@
       #logging.info('==========================EXCEPTION: NO LANG COOKIE FOUND, USING [%s]', langName)
     logging.info('==========================REQ INIT name [%s] langName [%s] resetLangCookie [%s]', reqUri, langName, resetLangCookie)
 
+    # Do some prep for handling intl requests. Parse the url and validate
+    # the intl/lang substring, extract the url lang code (urlLangName) and the
+    # the uri that follows the intl/lang substring(contentUri)
+    sections = reqUri.split("/", 2)
+    isIntl = len(sections) > 2 and (sections[0] == "intl")
+    if isIntl:
+      isValidIntl = sections[1] in self.validLangs
+      urlLangName = sections[1]
+      contentUri = sections[2]
+      logging.info('  Content URI is [%s]...', contentUri)
+      if isValidIntl:
+        if (langName != urlLangName) or (langName == 'en'):
+          # if the lang code in the request is different from that in
+          # the cookie, or if the target lang is en, strip the
+          # intl/nn substring. It will later be redirected to
+          # the user's preferred language url.
+          # logging.info('  Handling a MISMATCHED intl request')
+          reqUri = contentUri
+          isStripped = True
+          isValidIntl = False
+          isIntl = False
+          #logging.info('INTL PREP resetting langName to urlLangName [%s]', langName)
+        #else:
+        #  logging.info('INTL PREP no need to reset langName')
+    else:
+      contentUri = reqUri
+
+    # Apply manual redirects from redirects.yaml. This occurs before any
+    # other mutations are performed, to avoid odd redirect behavior
+    # (For example, a user may want to redirect a directory without having
+    # /index.html appended.)
+    did_redirect = self.ProcessManualRedirects(contentUri, langName, isIntl)
+    if did_redirect:
+      return
+
     # Preprocess the req url. If it references a directory or the domain itself,
     # append '/index.html' to the url and 302 redirect. Otherwise, continue
     # processing the request below.
-    name = self.PreprocessUrl(reqUri, langName)
-    if name:
-      # Do some prep for handling intl requests. Parse the url and validate
-      # the intl/lang substring, extract the url lang code (urlLangName) and the
-      # the uri that follows the intl/lang substring(contentUri)
-      sections = name.split("/", 2)
-      contentUri = 0
-      isIntl = len(sections) > 1 and (sections[0] == "intl")
-      if isIntl:
-        isValidIntl = sections[1] in self.validLangs
-        if isValidIntl:
-          urlLangName = sections[1]
-          contentUri = sections[2]
-          logging.info('  Content URI is [%s]...', contentUri)
-          if (urlLangName != langName) or (langName == 'en'):
-            # if the lang code in the request is different from that in 
-            # the cookie, or if the target lang is en, strip the 
-            # intl/nn substring. It will later be redirected to
-            # the user's preferred language url. 
-            # logging.info('  Handling a MISMATCHED intl request')
-            name = contentUri
-            isStripped = True
-            isValidIntl = False
-            isIntl = False
+    did_redirect = self.PreprocessUrl(reqUri, langName)
+    if did_redirect:
+      return
 
-      # Send for processing
-      if self.isCleanUrl(name, langName, isValidIntl, isStripped):
-        # handle a 'clean' request.
-        # Try to form a response using the actual request url.
-        # logging.info('  Request being handled as clean: [%s]', name)
-        if not self.CreateResponse(name, langName, isValidIntl, resetLangCookie):
-          # If CreateResponse returns False, there was no such document
-          # in the intl/lang tree. Before going to 404, see if there is an
-          # English-language version of the doc in the default
-          # default tree and return it, else go to 404.
-          self.CreateResponse(contentUri, langName, False, resetLangCookie)
+    # Send for processing
+    if self.isCleanUrl(reqUri, langName, isValidIntl, isStripped):
+      # handle a 'clean' request.
+      # Try to form a response using the actual request url.
+      # logging.info('  Request being handled as clean: [%s]', name)
+      if not self.CreateResponse(reqUri, langName, isValidIntl, resetLangCookie):
+        # If CreateResponse returns False, there was no such document
+        # in the intl/lang tree. Before going to 404, see if there is an
+        # English-language version of the doc in the default
+        # default tree and return it, else go to 404.
+        self.CreateResponse(contentUri, langName, False, resetLangCookie)
 
-      elif isIntl:
-        # handle the case where we need to pass through an invalid intl req 
-        # for processing (so as to get 404 as appropriate). This is needed
-        # because intl urls are passed through clean and retried in English,
-        # if necessary.
-        # logging.info('  Handling an invalid intl request...')
-        self.CreateResponse(name, langName, isValidIntl, resetLangCookie)
+    elif isIntl:
+      # handle the case where we need to pass through an invalid intl req
+      # for processing (so as to get 404 as appropriate). This is needed
+      # because intl urls are passed through clean and retried in English,
+      # if necessary.
+      # logging.info('  Handling an invalid intl request...')
+      self.CreateResponse(reqUri, langName, isValidIntl, resetLangCookie)
 
-      else:
-        # handle the case where we have a non-clean url (usually a non-intl
-        # url) that we need to interpret in the context of any lang pref
-        # that is set. Prepend an intl/lang string to the request url and
-        # send it as a 302 redirect. After the redirect, the subsequent
-        # request will be handled as a clean url.
-        self.RedirToIntl(name, self.intlString, langName)
+    else:
+      # handle the case where we have a non-clean url (usually a non-intl
+      # url) that we need to interpret in the context of any lang pref
+      # that is set. Prepend an intl/lang string to the request url and
+      # send it as a 302 redirect. After the redirect, the subsequent
+      # request will be handled as a clean url.
+      self.RedirToIntl(reqUri, self.intlString, langName)
+
+  def ProcessManualRedirects(self, contentUri, langName, isIntl):
+    """Compute any manual redirects for a request and execute them.
+
+    This allows content authors to manually define a set of regex rules which,
+    when matched, will cause an HTTP redirect to be performed.
+
+    Redirect rules are typically stored in a file named redirects.yaml. See the
+    comments in that file for more information about formatting.
+
+    Redirect computations are stored in memcache for performance.
+
+    Note that international URIs are handled automatically, and are assumed to
+    mirror redirects for non-intl requests.
+
+    Args:
+      contentUri: The relative URI (without leading slash) that was requested.
+        This should NOT contain an intl-prefix, if otherwise present.
+      langName: The requested language.
+      isIntl: True if contentUri originally contained an intl prefix.
+
+    Results:
+      boolean: True if a redirect has been set, False otherwise.
+    """
+    # Redirect data is stored in memcache for performance
+    memcache_key = self.REDIRECT_PREFIX + contentUri
+    redirect_data = memcache.get(memcache_key)
+    if redirect_data is None:
+      logging.info('Redirect cache miss. Computing new redirect data.\n'
+                   'Memcache Key: ' + memcache_key)
+      redirect_data = self.ComputeManualRedirectUrl(contentUri)
+      memcache.set(memcache_key, redirect_data)
+    contentUri = redirect_data[0]
+    redirectType = redirect_data[1]
+
+    # If this is an international URL, prepend intl path to minimize
+    # number of redirects
+    if isIntl:
+      contentUri = '/%s%s%s' % (self.intlString, langName, contentUri)
+
+    if redirectType is None:
+      # No redirect necessary
+      return False
+    elif redirectType == self.REDIRECT_TYPE_PERM:
+      logging.info('Sending permanent redirect: ' + contentUri);
+      self.redirect(contentUri, permanent=True)
+      return True
+    elif redirectType == self.REDIRECT_TYPE_TEMP:
+      logging.info('Sending temporary redirect: ' + contentUri);
+      self.redirect(contentUri, permanent=False)
+      return True
+    else:
+      # Invalid redirect type
+      logging.error('Invalid redirect type: %s', redirectType)
+      raise ('Invalid redirect type: %s', redirectType)
+
+  def ComputeManualRedirectUrl(self, uri):
+    """Read redirects file and evaluate redirect rules for a given URI.
+
+    Args:
+      uri: The relative URI (without leading slash) for which redirect data
+        should be computed. No special handling of intl URIs is pefromed
+        at this level.
+
+    Returns:
+      tuple: The computed redirect data. This tuple has two parts:
+        redirect_uri: The new URI that should be used. (If no redirect rule is
+          found, the original input to 'uri' will be returned.
+        redirect_type: Either 'permanent' for an HTTP 301 redirect, 'temporary'
+          for an HTTP 302 redirect, or None if no redirect should be performed.
+    """
+    # Redircts are defined in a file named redirects.yaml.
+    try:
+      f = open(self.REDIRECT_FILE)
+      data = yaml.load(f)
+      f.close()
+    except IOError, e:
+      logging.warning('Error opening redirect file (' + self.REDIRECT_FILE +
+                      '): ' + e.strerror)
+      return (uri, None)
+
+    # The incoming path is missing a leading slash. However, many parts of the
+    # redirect system require leading slashes to distinguish between relative
+    # and absolute redirects. So, to compensate for this, we'll add a leading
+    # slash here as well.
+    uri = '/' + uri
+
+    # Check to make sure we actually got an iterable list out of the YAML file
+    if data is None:
+      logging.warning('Redirect file (' + self.REDIRECT_FILE + ') not valid '
+                      'YAML.')
+    elif 'redirects' not in data:
+      logging.warning('Redirect file (' + self.REDIRECT_FILE + ') not '
+                      'properly formatted -- no \'redirects:\' header.')
+    elif hasattr(data['redirects'], '__iter__'):
+      # Iterate through redirect data, try to find a redirect that matches.
+      for redirect in data['redirects']:
+          # Note: re.search adds an implied '^' to the beginning of the regex
+          # This means that the regex must match from the beginning of the
+          # string.
+          try:
+            if re.match(redirect[self.REDIRECT_SRC], uri):
+              # Match found. Apply redirect rule.
+              redirect_uri = re.sub('^' + redirect[self.REDIRECT_SRC],
+                  redirect[self.REDIRECT_DST], uri)
+              logging.info('Redirect rule matched.\n'
+                             'Rule: %s\n'
+                             'Src: %s\n'
+                             'Dst: %s',
+                           redirect[self.REDIRECT_SRC], uri, redirect_uri)
+              if self.REDIRECT_TYPE in redirect:
+                redirect_type = redirect[self.REDIRECT_TYPE]
+              else:
+                # Default redirect type, if unspecified
+                redirect_type = self.REDIRECT_TYPE_PERM
+              return (redirect_uri, redirect_type)
+          except:
+            e = sys.exc_info()[1]
+            raise ('Error while processing redirect rule.\n'
+                     'Rule: %s\n'
+                     'Error: %s' % (redirect[self.REDIRECT_SRC], e))
+    # No redirect found, return URL unchanged
+    return (uri, None)
 
   def isCleanUrl(self, name, langName, isValidIntl, isStripped):
-    """Determine whether to pass an incoming url straight to processing. 
+    """Determine whether to pass an incoming url straight to processing.
 
        Args:
          name: The incoming URL
@@ -208,9 +360,10 @@
       name: The incoming URL
 
     Returns:
-      False if the request was redirected to '/index.html', or
-      The processed URL, otherwise
+      True if the request was redirected to '/index.html'.
+      Otherewise False.
     """
+
     # determine if this is a request for a directory
     final_path_segment = name
     final_slash_offset = name.rfind('/')
@@ -224,16 +377,16 @@
       uri = ''.join(['/', name, 'index.html'])
       # logging.info('--->PREPROCESSING REDIRECT [%s] to [%s] with langName [%s]', name, uri, langName)
       self.redirect(uri, False)
-      return False
+      return True
     else:
-      return name
+      return False
 
   def RedirToIntl(self, name, intlString, langName):
     """Redirect an incoming request to the appropriate intl uri.
 
        For non-en langName, builds the intl/lang string from a
-       base (en) string and redirects (302) the request to look for 
-       a version of the file in langName. For en langName, simply 
+       base (en) string and redirects (302) the request to look for
+       a version of the file in langName. For en langName, simply
        redirects a stripped uri string (intl/nn removed).
 
     Args:
@@ -247,25 +400,25 @@
     else:
       builtIntlLangUri = name
     uri = ''.join(['/', builtIntlLangUri])
-    logging.info('-->>REDIRECTING %s to  %s', name, uri)
+    logging.info('-->REDIRECTING %s to  %s', name, uri)
     self.redirect(uri, False)
     return uri
 
   def CreateResponse(self, name, langName, isValidIntl, resetLangCookie):
     """Process the url and form a response, if appropriate.
 
-       Attempts to retrieve the requested file (name) from cache, 
-       negative cache, or store (zip) and form the response. 
-       For intl requests that are not found (in the localized tree), 
+       Attempts to retrieve the requested file (name) from cache,
+       negative cache, or store (zip) and form the response.
+       For intl requests that are not found (in the localized tree),
        returns False rather than forming a response, so that
-       the request can be retried with the base url (this is the 
-       fallthrough to default language). 
+       the request can be retried with the base url (this is the
+       fallthrough to default language).
 
        For requests that are found, forms the headers and
        adds the content to the response entity. If the request was
-       for an intl (localized) url, also resets the language cookie 
-       to the language specified in the url if needed, to ensure that 
-       the client language and response data remain harmonious. 
+       for an intl (localized) url, also resets the language cookie
+       to the language specified in the url if needed, to ensure that
+       the client language and response data remain harmonious.
 
     Args:
       name: The incoming, preprocessed URL
@@ -281,7 +434,7 @@
       False: No response was created.
     """
     # see if we have the page in the memcache
-    logging.info('PROCESSING %s langName [%s] isValidIntl [%s] resetLang [%s]', 
+    logging.info('PROCESSING %s langName [%s] isValidIntl [%s] resetLang [%s]',
       name, langName, isValidIntl, resetLangCookie)
     resp_data = self.GetFromCache(name)
     if resp_data is None:
@@ -314,12 +467,12 @@
       logging.info('  Resetting android_developer_pref_lang cookie to [%s]',
       langName)
       expireDate = time.mktime(localtime()) + 60 * 60 * 24 * 365 * 10
-      self.response.headers.add_header('Set-Cookie', 
-      'android_developer_pref_lang=%s; path=/; expires=%s' % 
+      self.response.headers.add_header('Set-Cookie',
+      'android_developer_pref_lang=%s; path=/; expires=%s' %
       (langName, strftime("%a, %d %b %Y %H:%M:%S", localtime(expireDate))))
     mustRevalidate = False
     if ('.html' in name):
-      # revalidate html files -- workaround for cache inconsistencies for 
+      # revalidate html files -- workaround for cache inconsistencies for
       # negotiated responses
       mustRevalidate = True
       #logging.info('  Adding [Vary: Cookie] to response...')
@@ -337,6 +490,22 @@
       self.response.headers['Content-Type'] = 'application/octet-stream'
       self.SetCachingHeaders(mustRevalidate)
       self.response.out.write(resp_data)
+    elif name.endswith('.svg'):
+      self.response.headers['Content-Type'] = 'image/svg+xml'
+      self.SetCachingHeaders(mustRevalidate)
+      self.response.out.write(resp_data)
+    elif name.endswith('.mp4'):
+      self.response.headers['Content-Type'] = 'video/mp4'
+      self.SetCachingHeaders(mustRevalidate)
+      self.response.out.write(resp_data)
+    elif name.endswith('.webm'):
+      self.response.headers['Content-Type'] = 'video/webm'
+      self.SetCachingHeaders(mustRevalidate)
+      self.response.out.write(resp_data)
+    elif name.endswith('.ogv'):
+      self.response.headers['Content-Type'] = 'video/ogg'
+      self.SetCachingHeaders(mustRevalidate)
+      self.response.out.write(resp_data)
     return True
 
   def GetFromStore(self, file_path):
@@ -375,7 +544,7 @@
           x = False
         if resp_data is not None:
           logging.info('%s read from %s', file_path, archive_name)
-          
+
       try:
         archive_name = file_itr.next()[0]
       except (StopIteration), err:
@@ -443,7 +612,7 @@
 
     We say that file1 is lexigraphically before file2 if the last non-matching
     path segment of file1 is alphabetically before file2.
-    
+
     Args:
       file1: the first file path
       file2: the second file path
diff --git a/scripts/app_engine_server/redirects.yaml b/scripts/app_engine_server/redirects.yaml
new file mode 100644
index 0000000..4d70d3d
--- /dev/null
+++ b/scripts/app_engine_server/redirects.yaml
@@ -0,0 +1,55 @@
+# Redirect file.
+# This file contains the list of rewrite rules that are applied when serving
+# pages.
+#
+# Each redirect has four parts:
+#
+# - src: The path to redirect. This is a regex rule prefixed with an implied
+#   '^'. Unless you're doing something advanced, your path should start with
+#   '/' character.
+#
+# - dst: The path to redirect to. If the path begins with a slash,
+#   it is considered a relative redirect. Otherwise, it is an absolute
+#   redirct (and should probably begin with http: or http://). You may use
+#   capturing groups to preserve part of the source path. To referece a
+#   capturing group, use \N, where N is the (1-based) index of desired group.
+#
+# - type: Either 'permanent' or 'temporary', depending on whether you want an
+#   HTTP 301 or HTTP 302 redirect, respectiviely. See RFC 2616 for the
+#   difference between these:
+#
+#       http://tools.ietf.org/html/rfc2616
+#
+#   If you don't specify a type, 'permanent' will be used by default. Note that
+#   this is different from the Apache convention (which uses 'temporary' by
+#   default.)
+#
+# - comment: Currently ignored by the computer, but useful for humans.
+#
+# Example:
+#
+# redirects:
+# - src: /foo
+#   dst: /bar
+#   # Redirect /foo to /bar. This will also redirect foo/ and
+#   # foo/test.html. Note that the redirect type is optional. This will be
+#   # treated as a permanent redirect.
+#
+# - src: /(.+droid(/.*)?)$
+#   dst: /droids/\1
+#   type: permanent
+#   # Redirect /android to /droids/android and /bugdroid to
+#   # /droids/bugdroid. However, it will not redirect /droid or
+#   # /bugdroids.
+#
+# - src: /google
+#   dst: http://www.google.com
+#   type: temporary
+#   # This is an example of a redirect to an absolute URI.
+#
+
+redirects:
+- src: /%2B/?$
+  dst: https://plus.google.com/b/108967384991768947849/
+  type: permanent
+  comment: Redirect /+ and /+/ to Google+
diff --git a/scripts/divide_and_compress_constants.py b/scripts/divide_and_compress_constants.py
index 15162b7..89a607d 100644
--- a/scripts/divide_and_compress_constants.py
+++ b/scripts/divide_and_compress_constants.py
@@ -36,23 +36,24 @@
 # limitations under the License.
 #
 
-import wsgiref.handlers\n'
-from google.appengine.ext import zipserve\n'
-from google.appengine.ext import webapp\n'
-import memcache_zipserve\n\n\n'
+import wsgiref.handlers
+from google.appengine.ext import zipserve
+from google.appengine.ext import webapp
+import memcache_zipserve
+
 class MainHandler(webapp.RequestHandler):
 
   def get(self):
     self.response.out.write('Hello world!')
 
 def main():
-  application = webapp.WSGIApplication(['/(.*)',
-    memcache_zipserve.create_handler(["""
+  handler = memcache_zipserve.create_handler(["""
 
-file_endpiece = """])),
-],
-debug=False)
+file_endpiece = """
+    ])
+  application = webapp.WSGIApplication([('/(.*)', handler)], debug=False)
   wsgiref.handlers.CGIHandler().run(application)
 
-if __name__ == __main__:
-  main()"""
+if __name__ == '__main__':
+    main()
+"""
\ No newline at end of file
diff --git a/sdk/api-versions.xml b/sdk/api-versions.xml
new file mode 100644
index 0000000..e52fb1a
--- /dev/null
+++ b/sdk/api-versions.xml
@@ -0,0 +1,47118 @@
+<?xml version="1.0" encoding="utf-8"?>
+<api version="1">
+	<class name="android/Manifest" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/Manifest$permission" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACCESS_CHECKIN_PROPERTIES" />
+		<field name="ACCESS_COARSE_LOCATION" />
+		<field name="ACCESS_FINE_LOCATION" />
+		<field name="ACCESS_LOCATION_EXTRA_COMMANDS" />
+		<field name="ACCESS_MOCK_LOCATION" />
+		<field name="ACCESS_NETWORK_STATE" />
+		<field name="ACCESS_SURFACE_FLINGER" />
+		<field name="ACCESS_WIFI_STATE" />
+		<field name="ACCOUNT_MANAGER" since="5" />
+		<field name="ADD_SYSTEM_SERVICE" />
+		<field name="ADD_VOICEMAIL" since="14" />
+		<field name="AUTHENTICATE_ACCOUNTS" since="5" />
+		<field name="BATTERY_STATS" />
+		<field name="BIND_APPWIDGET" since="3" />
+		<field name="BIND_DEVICE_ADMIN" since="8" />
+		<field name="BIND_INPUT_METHOD" since="3" />
+		<field name="BIND_REMOTEVIEWS" since="11" />
+		<field name="BIND_TEXT_SERVICE" since="14" />
+		<field name="BIND_VPN_SERVICE" since="14" />
+		<field name="BIND_WALLPAPER" since="8" />
+		<field name="BLUETOOTH" />
+		<field name="BLUETOOTH_ADMIN" />
+		<field name="BRICK" />
+		<field name="BROADCAST_PACKAGE_REMOVED" />
+		<field name="BROADCAST_SMS" since="2" />
+		<field name="BROADCAST_STICKY" />
+		<field name="BROADCAST_WAP_PUSH" since="2" />
+		<field name="CALL_PHONE" />
+		<field name="CALL_PRIVILEGED" />
+		<field name="CAMERA" />
+		<field name="CHANGE_COMPONENT_ENABLED_STATE" />
+		<field name="CHANGE_CONFIGURATION" />
+		<field name="CHANGE_NETWORK_STATE" />
+		<field name="CHANGE_WIFI_MULTICAST_STATE" since="4" />
+		<field name="CHANGE_WIFI_STATE" />
+		<field name="CLEAR_APP_CACHE" />
+		<field name="CLEAR_APP_USER_DATA" />
+		<field name="CONTROL_LOCATION_UPDATES" />
+		<field name="DELETE_CACHE_FILES" />
+		<field name="DELETE_PACKAGES" />
+		<field name="DEVICE_POWER" />
+		<field name="DIAGNOSTIC" />
+		<field name="DISABLE_KEYGUARD" />
+		<field name="DUMP" />
+		<field name="EXPAND_STATUS_BAR" />
+		<field name="FACTORY_TEST" />
+		<field name="FLASHLIGHT" />
+		<field name="FORCE_BACK" />
+		<field name="FOTA_UPDATE" />
+		<field name="GET_ACCOUNTS" />
+		<field name="GET_PACKAGE_SIZE" />
+		<field name="GET_TASKS" />
+		<field name="GLOBAL_SEARCH" since="4" />
+		<field name="HARDWARE_TEST" />
+		<field name="INJECT_EVENTS" />
+		<field name="INSTALL_LOCATION_PROVIDER" since="4" />
+		<field name="INSTALL_PACKAGES" />
+		<field name="INTERNAL_SYSTEM_WINDOW" />
+		<field name="INTERNET" />
+		<field name="KILL_BACKGROUND_PROCESSES" since="8" />
+		<field name="MANAGE_ACCOUNTS" since="5" />
+		<field name="MANAGE_APP_TOKENS" />
+		<field name="MASTER_CLEAR" />
+		<field name="MODIFY_AUDIO_SETTINGS" />
+		<field name="MODIFY_PHONE_STATE" />
+		<field name="MOUNT_FORMAT_FILESYSTEMS" since="3" />
+		<field name="MOUNT_UNMOUNT_FILESYSTEMS" />
+		<field name="NFC" since="9" />
+		<field name="PERSISTENT_ACTIVITY" />
+		<field name="PROCESS_OUTGOING_CALLS" />
+		<field name="READ_CALENDAR" />
+		<field name="READ_CONTACTS" />
+		<field name="READ_FRAME_BUFFER" />
+		<field name="READ_HISTORY_BOOKMARKS" since="4" />
+		<field name="READ_INPUT_STATE" />
+		<field name="READ_LOGS" />
+		<field name="READ_OWNER_DATA" />
+		<field name="READ_PHONE_STATE" />
+		<field name="READ_PROFILE" since="14" />
+		<field name="READ_SMS" />
+		<field name="READ_SOCIAL_STREAM" since="15" />
+		<field name="READ_SYNC_SETTINGS" />
+		<field name="READ_SYNC_STATS" />
+		<field name="REBOOT" />
+		<field name="RECEIVE_BOOT_COMPLETED" />
+		<field name="RECEIVE_MMS" />
+		<field name="RECEIVE_SMS" />
+		<field name="RECEIVE_WAP_PUSH" />
+		<field name="RECORD_AUDIO" />
+		<field name="REORDER_TASKS" />
+		<field name="RESTART_PACKAGES" />
+		<field name="SEND_SMS" />
+		<field name="SET_ACTIVITY_WATCHER" />
+		<field name="SET_ALARM" since="9" />
+		<field name="SET_ALWAYS_FINISH" />
+		<field name="SET_ANIMATION_SCALE" />
+		<field name="SET_DEBUG_APP" />
+		<field name="SET_ORIENTATION" />
+		<field name="SET_POINTER_SPEED" since="13" />
+		<field name="SET_PREFERRED_APPLICATIONS" />
+		<field name="SET_PROCESS_FOREGROUND" />
+		<field name="SET_PROCESS_LIMIT" />
+		<field name="SET_TIME" since="8" />
+		<field name="SET_TIME_ZONE" />
+		<field name="SET_WALLPAPER" />
+		<field name="SET_WALLPAPER_HINTS" />
+		<field name="SIGNAL_PERSISTENT_PROCESSES" />
+		<field name="STATUS_BAR" />
+		<field name="SUBSCRIBED_FEEDS_READ" />
+		<field name="SUBSCRIBED_FEEDS_WRITE" />
+		<field name="SYSTEM_ALERT_WINDOW" />
+		<field name="UPDATE_DEVICE_STATS" since="3" />
+		<field name="USE_CREDENTIALS" since="5" />
+		<field name="USE_SIP" since="9" />
+		<field name="VIBRATE" />
+		<field name="WAKE_LOCK" />
+		<field name="WRITE_APN_SETTINGS" />
+		<field name="WRITE_CALENDAR" />
+		<field name="WRITE_CONTACTS" />
+		<field name="WRITE_EXTERNAL_STORAGE" since="4" />
+		<field name="WRITE_GSERVICES" />
+		<field name="WRITE_HISTORY_BOOKMARKS" since="4" />
+		<field name="WRITE_OWNER_DATA" />
+		<field name="WRITE_PROFILE" since="14" />
+		<field name="WRITE_SECURE_SETTINGS" since="3" />
+		<field name="WRITE_SETTINGS" />
+		<field name="WRITE_SMS" />
+		<field name="WRITE_SOCIAL_STREAM" since="15" />
+		<field name="WRITE_SYNC_SETTINGS" />
+	</class>
+	<class name="android/Manifest$permission_group" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACCOUNTS" />
+		<field name="COST_MONEY" />
+		<field name="DEVELOPMENT_TOOLS" />
+		<field name="HARDWARE_CONTROLS" />
+		<field name="LOCATION" />
+		<field name="MESSAGES" />
+		<field name="NETWORK" />
+		<field name="PERSONAL_INFO" />
+		<field name="PHONE_CALLS" />
+		<field name="STORAGE" since="4" />
+		<field name="SYSTEM_TOOLS" />
+	</class>
+	<class name="android/R" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/R$anim" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="accelerate_decelerate_interpolator" />
+		<field name="accelerate_interpolator" />
+		<field name="anticipate_interpolator" since="4" />
+		<field name="anticipate_overshoot_interpolator" since="4" />
+		<field name="bounce_interpolator" since="4" />
+		<field name="cycle_interpolator" since="8" />
+		<field name="decelerate_interpolator" />
+		<field name="fade_in" />
+		<field name="fade_out" />
+		<field name="linear_interpolator" since="4" />
+		<field name="overshoot_interpolator" since="4" />
+		<field name="slide_in_left" />
+		<field name="slide_out_right" />
+	</class>
+	<class name="android/R$animator" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="fade_in" />
+		<field name="fade_out" />
+	</class>
+	<class name="android/R$array" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="emailAddressTypes" />
+		<field name="imProtocols" />
+		<field name="organizationTypes" />
+		<field name="phoneTypes" />
+		<field name="postalAddressTypes" />
+	</class>
+	<class name="android/R$attr" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="absListViewStyle" />
+		<field name="accessibilityEventTypes" since="14" />
+		<field name="accessibilityFeedbackType" since="14" />
+		<field name="accessibilityFlags" since="14" />
+		<field name="accountPreferences" since="5" />
+		<field name="accountType" since="5" />
+		<field name="action" />
+		<field name="actionBarDivider" since="14" />
+		<field name="actionBarItemBackground" since="14" />
+		<field name="actionBarSize" since="11" />
+		<field name="actionBarSplitStyle" since="14" />
+		<field name="actionBarStyle" since="11" />
+		<field name="actionBarTabBarStyle" since="11" />
+		<field name="actionBarTabStyle" since="11" />
+		<field name="actionBarTabTextStyle" since="11" />
+		<field name="actionBarWidgetTheme" since="14" />
+		<field name="actionButtonStyle" since="11" />
+		<field name="actionDropDownStyle" since="11" />
+		<field name="actionLayout" since="11" />
+		<field name="actionMenuTextAppearance" since="11" />
+		<field name="actionMenuTextColor" since="11" />
+		<field name="actionModeBackground" since="11" />
+		<field name="actionModeCloseButtonStyle" since="11" />
+		<field name="actionModeCloseDrawable" since="11" />
+		<field name="actionModeCopyDrawable" since="11" />
+		<field name="actionModeCutDrawable" since="11" />
+		<field name="actionModePasteDrawable" since="11" />
+		<field name="actionModeSelectAllDrawable" since="14" />
+		<field name="actionModeSplitBackground" since="14" />
+		<field name="actionModeStyle" since="14" />
+		<field name="actionOverflowButtonStyle" since="11" />
+		<field name="actionProviderClass" since="14" />
+		<field name="actionViewClass" since="11" />
+		<field name="activatedBackgroundIndicator" since="11" />
+		<field name="activityCloseEnterAnimation" />
+		<field name="activityCloseExitAnimation" />
+		<field name="activityOpenEnterAnimation" />
+		<field name="activityOpenExitAnimation" />
+		<field name="addStatesFromChildren" />
+		<field name="adjustViewBounds" />
+		<field name="alertDialogIcon" since="11" />
+		<field name="alertDialogStyle" />
+		<field name="alertDialogTheme" since="11" />
+		<field name="alignmentMode" since="14" />
+		<field name="allContactsName" since="11" />
+		<field name="allowBackup" since="4" />
+		<field name="allowClearUserData" />
+		<field name="allowParallelSyncs" since="11" />
+		<field name="allowSingleTap" since="3" />
+		<field name="allowTaskReparenting" />
+		<field name="alpha" since="11" />
+		<field name="alphabeticShortcut" />
+		<field name="alwaysDrawnWithCache" />
+		<field name="alwaysRetainTaskState" />
+		<field name="angle" />
+		<field name="animateFirstView" since="11" />
+		<field name="animateLayoutChanges" since="11" />
+		<field name="animateOnClick" since="3" />
+		<field name="animation" />
+		<field name="animationCache" />
+		<field name="animationDuration" />
+		<field name="animationOrder" />
+		<field name="animationResolution" since="11" />
+		<field name="antialias" />
+		<field name="anyDensity" since="4" />
+		<field name="apiKey" />
+		<field name="author" since="7" />
+		<field name="authorities" />
+		<field name="autoAdvanceViewId" since="11" />
+		<field name="autoCompleteTextViewStyle" />
+		<field name="autoLink" />
+		<field name="autoStart" since="7" />
+		<field name="autoText" />
+		<field name="autoUrlDetect" since="4" />
+		<field name="background" />
+		<field name="backgroundDimAmount" />
+		<field name="backgroundDimEnabled" since="3" />
+		<field name="backgroundSplit" since="14" />
+		<field name="backgroundStacked" since="14" />
+		<field name="backupAgent" since="4" />
+		<field name="baseline" since="11" />
+		<field name="baselineAlignBottom" />
+		<field name="baselineAligned" />
+		<field name="baselineAlignedChildIndex" />
+		<field name="borderlessButtonStyle" since="11" />
+		<field name="bottom" />
+		<field name="bottomBright" />
+		<field name="bottomDark" />
+		<field name="bottomLeftRadius" />
+		<field name="bottomMedium" />
+		<field name="bottomOffset" since="3" />
+		<field name="bottomRightRadius" />
+		<field name="breadCrumbShortTitle" since="11" />
+		<field name="breadCrumbTitle" since="11" />
+		<field name="bufferType" />
+		<field name="button" />
+		<field name="buttonBarButtonStyle" since="11" />
+		<field name="buttonBarStyle" since="11" />
+		<field name="buttonStyle" />
+		<field name="buttonStyleInset" />
+		<field name="buttonStyleSmall" />
+		<field name="buttonStyleToggle" />
+		<field name="cacheColorHint" />
+		<field name="calendarViewShown" since="11" />
+		<field name="calendarViewStyle" since="11" />
+		<field name="canRetrieveWindowContent" since="14" />
+		<field name="candidatesTextStyleSpans" since="3" />
+		<field name="capitalize" />
+		<field name="centerBright" />
+		<field name="centerColor" />
+		<field name="centerDark" />
+		<field name="centerMedium" />
+		<field name="centerX" />
+		<field name="centerY" />
+		<field name="checkBoxPreferenceStyle" />
+		<field name="checkMark" />
+		<field name="checkable" />
+		<field name="checkableBehavior" />
+		<field name="checkboxStyle" />
+		<field name="checked" />
+		<field name="checkedButton" />
+		<field name="childDivider" />
+		<field name="childIndicator" />
+		<field name="childIndicatorLeft" />
+		<field name="childIndicatorRight" />
+		<field name="choiceMode" />
+		<field name="clearTaskOnLaunch" />
+		<field name="clickable" />
+		<field name="clipChildren" />
+		<field name="clipOrientation" />
+		<field name="clipToPadding" />
+		<field name="codes" since="3" />
+		<field name="collapseColumns" />
+		<field name="color" />
+		<field name="colorActivatedHighlight" since="14" />
+		<field name="colorBackground" />
+		<field name="colorBackgroundCacheHint" since="5" />
+		<field name="colorFocusedHighlight" since="14" />
+		<field name="colorForeground" />
+		<field name="colorForegroundInverse" />
+		<field name="colorLongPressedHighlight" since="14" />
+		<field name="colorMultiSelectHighlight" since="14" />
+		<field name="colorPressedHighlight" since="14" />
+		<field name="columnCount" since="14" />
+		<field name="columnDelay" />
+		<field name="columnOrderPreserved" since="14" />
+		<field name="columnWidth" />
+		<field name="compatibleWidthLimitDp" since="13" />
+		<field name="completionHint" />
+		<field name="completionHintView" />
+		<field name="completionThreshold" />
+		<field name="configChanges" />
+		<field name="configure" since="3" />
+		<field name="constantSize" />
+		<field name="content" since="3" />
+		<field name="contentAuthority" since="5" />
+		<field name="contentDescription" since="4" />
+		<field name="cropToPadding" />
+		<field name="cursorVisible" />
+		<field name="customNavigationLayout" since="11" />
+		<field name="customTokens" since="11" />
+		<field name="cycles" />
+		<field name="dashGap" />
+		<field name="dashWidth" />
+		<field name="data" />
+		<field name="datePickerStyle" since="11" />
+		<field name="dateTextAppearance" since="11" />
+		<field name="debuggable" />
+		<field name="defaultValue" />
+		<field name="delay" />
+		<field name="dependency" />
+		<field name="descendantFocusability" />
+		<field name="description" />
+		<field name="detachWallpaper" since="5" />
+		<field name="detailColumn" since="5" />
+		<field name="detailSocialSummary" since="5" />
+		<field name="detailsElementBackground" since="11" />
+		<field name="dial" />
+		<field name="dialogIcon" />
+		<field name="dialogLayout" />
+		<field name="dialogMessage" />
+		<field name="dialogPreferenceStyle" />
+		<field name="dialogTheme" since="11" />
+		<field name="dialogTitle" />
+		<field name="digits" />
+		<field name="direction" />
+		<field name="directionDescriptions" since="14" />
+		<field name="directionPriority" />
+		<field name="disableDependentsState" />
+		<field name="disabledAlpha" />
+		<field name="displayOptions" since="11" />
+		<field name="dither" />
+		<field name="divider" />
+		<field name="dividerHeight" />
+		<field name="dividerHorizontal" since="11" />
+		<field name="dividerPadding" since="11" />
+		<field name="dividerVertical" since="11" />
+		<field name="drawSelectorOnTop" />
+		<field name="drawable" />
+		<field name="drawableBottom" />
+		<field name="drawableEnd" since="14" />
+		<field name="drawableLeft" />
+		<field name="drawablePadding" />
+		<field name="drawableRight" />
+		<field name="drawableStart" since="14" />
+		<field name="drawableTop" />
+		<field name="drawingCacheQuality" />
+		<field name="dropDownAnchor" since="3" />
+		<field name="dropDownHeight" since="4" />
+		<field name="dropDownHintAppearance" />
+		<field name="dropDownHorizontalOffset" since="5" />
+		<field name="dropDownItemStyle" />
+		<field name="dropDownListViewStyle" />
+		<field name="dropDownSelector" />
+		<field name="dropDownSpinnerStyle" since="11" />
+		<field name="dropDownVerticalOffset" since="5" />
+		<field name="dropDownWidth" since="3" />
+		<field name="duplicateParentState" />
+		<field name="duration" />
+		<field name="editTextBackground" since="11" />
+		<field name="editTextColor" since="11" />
+		<field name="editTextPreferenceStyle" />
+		<field name="editTextStyle" />
+		<field name="editable" />
+		<field name="editorExtras" since="3" />
+		<field name="ellipsize" />
+		<field name="ems" />
+		<field name="enabled" />
+		<field name="endColor" />
+		<field name="endYear" />
+		<field name="enterFadeDuration" since="11" />
+		<field name="entries" />
+		<field name="entryValues" />
+		<field name="eventsInterceptionEnabled" since="4" />
+		<field name="excludeFromRecents" />
+		<field name="exitFadeDuration" since="11" />
+		<field name="expandableListPreferredChildIndicatorLeft" />
+		<field name="expandableListPreferredChildIndicatorRight" />
+		<field name="expandableListPreferredChildPaddingLeft" />
+		<field name="expandableListPreferredItemIndicatorLeft" />
+		<field name="expandableListPreferredItemIndicatorRight" />
+		<field name="expandableListPreferredItemPaddingLeft" />
+		<field name="expandableListViewStyle" />
+		<field name="expandableListViewWhiteStyle" since="8" />
+		<field name="exported" />
+		<field name="extraTension" since="4" />
+		<field name="factor" />
+		<field name="fadeDuration" since="4" />
+		<field name="fadeEnabled" since="4" />
+		<field name="fadeOffset" since="4" />
+		<field name="fadeScrollbars" since="5" />
+		<field name="fadingEdge" />
+		<field name="fadingEdgeLength" />
+		<field name="fastScrollAlwaysVisible" since="11" />
+		<field name="fastScrollEnabled" since="3" />
+		<field name="fastScrollOverlayPosition" since="11" />
+		<field name="fastScrollPreviewBackgroundLeft" since="11" />
+		<field name="fastScrollPreviewBackgroundRight" since="11" />
+		<field name="fastScrollTextColor" since="11" />
+		<field name="fastScrollThumbDrawable" since="11" />
+		<field name="fastScrollTrackDrawable" since="11" />
+		<field name="fillAfter" />
+		<field name="fillBefore" />
+		<field name="fillEnabled" since="3" />
+		<field name="fillViewport" />
+		<field name="filter" />
+		<field name="filterTouchesWhenObscured" since="9" />
+		<field name="finishOnCloseSystemDialogs" since="5" />
+		<field name="finishOnTaskLaunch" />
+		<field name="firstDayOfWeek" since="11" />
+		<field name="fitsSystemWindows" />
+		<field name="flipInterval" />
+		<field name="focusable" />
+		<field name="focusableInTouchMode" />
+		<field name="focusedMonthDateColor" since="11" />
+		<field name="footerDividersEnabled" since="3" />
+		<field name="foreground" />
+		<field name="foregroundGravity" />
+		<field name="format" />
+		<field name="fragment" since="11" />
+		<field name="fragmentCloseEnterAnimation" since="11" />
+		<field name="fragmentCloseExitAnimation" since="11" />
+		<field name="fragmentFadeEnterAnimation" since="11" />
+		<field name="fragmentFadeExitAnimation" since="11" />
+		<field name="fragmentOpenEnterAnimation" since="11" />
+		<field name="fragmentOpenExitAnimation" since="11" />
+		<field name="freezesText" />
+		<field name="fromAlpha" />
+		<field name="fromDegrees" />
+		<field name="fromXDelta" />
+		<field name="fromXScale" />
+		<field name="fromYDelta" />
+		<field name="fromYScale" />
+		<field name="fullBright" />
+		<field name="fullDark" />
+		<field name="functionalTest" />
+		<field name="galleryItemBackground" />
+		<field name="galleryStyle" />
+		<field name="gestureColor" since="4" />
+		<field name="gestureStrokeAngleThreshold" since="4" />
+		<field name="gestureStrokeLengthThreshold" since="4" />
+		<field name="gestureStrokeSquarenessThreshold" since="4" />
+		<field name="gestureStrokeType" since="4" />
+		<field name="gestureStrokeWidth" since="4" />
+		<field name="glEsVersion" since="4" />
+		<field name="gradientRadius" />
+		<field name="grantUriPermissions" />
+		<field name="gravity" />
+		<field name="gridViewStyle" />
+		<field name="groupIndicator" />
+		<field name="hand_hour" />
+		<field name="hand_minute" />
+		<field name="handle" since="3" />
+		<field name="handleProfiling" />
+		<field name="hapticFeedbackEnabled" since="3" />
+		<field name="hardwareAccelerated" since="11" />
+		<field name="hasCode" />
+		<field name="headerBackground" />
+		<field name="headerDividersEnabled" since="3" />
+		<field name="height" />
+		<field name="hint" />
+		<field name="homeAsUpIndicator" since="11" />
+		<field name="homeLayout" since="11" />
+		<field name="horizontalDivider" />
+		<field name="horizontalGap" since="3" />
+		<field name="horizontalScrollViewStyle" since="11" />
+		<field name="horizontalSpacing" />
+		<field name="host" />
+		<field name="icon" />
+		<field name="iconPreview" since="3" />
+		<field name="iconifiedByDefault" since="11" />
+		<field name="id" />
+		<field name="ignoreGravity" />
+		<field name="imageButtonStyle" />
+		<field name="imageWellStyle" />
+		<field name="imeActionId" since="3" />
+		<field name="imeActionLabel" since="3" />
+		<field name="imeExtractEnterAnimation" since="3" />
+		<field name="imeExtractExitAnimation" since="3" />
+		<field name="imeFullscreenBackground" since="3" />
+		<field name="imeOptions" since="3" />
+		<field name="imeSubtypeExtraValue" since="11" />
+		<field name="imeSubtypeLocale" since="11" />
+		<field name="imeSubtypeMode" since="11" />
+		<field name="immersive" since="11" />
+		<field name="inAnimation" />
+		<field name="includeFontPadding" />
+		<field name="includeInGlobalSearch" since="4" />
+		<field name="indeterminate" />
+		<field name="indeterminateBehavior" />
+		<field name="indeterminateDrawable" />
+		<field name="indeterminateDuration" />
+		<field name="indeterminateOnly" />
+		<field name="indeterminateProgressStyle" since="11" />
+		<field name="indicatorLeft" />
+		<field name="indicatorRight" />
+		<field name="inflatedId" />
+		<field name="initOrder" />
+		<field name="initialLayout" since="3" />
+		<field name="innerRadius" since="3" />
+		<field name="innerRadiusRatio" />
+		<field name="inputMethod" />
+		<field name="inputType" since="3" />
+		<field name="insetBottom" />
+		<field name="insetLeft" />
+		<field name="insetRight" />
+		<field name="insetTop" />
+		<field name="installLocation" since="8" />
+		<field name="interpolator" />
+		<field name="isAlwaysSyncable" since="11" />
+		<field name="isAuxiliary" since="14" />
+		<field name="isDefault" since="3" />
+		<field name="isIndicator" />
+		<field name="isModifier" since="3" />
+		<field name="isRepeatable" since="3" />
+		<field name="isScrollContainer" since="3" />
+		<field name="isSticky" since="3" />
+		<field name="itemBackground" />
+		<field name="itemIconDisabledAlpha" />
+		<field name="itemPadding" since="11" />
+		<field name="itemTextAppearance" />
+		<field name="keepScreenOn" />
+		<field name="key" />
+		<field name="keyBackground" since="3" />
+		<field name="keyEdgeFlags" since="3" />
+		<field name="keyHeight" since="3" />
+		<field name="keyIcon" since="3" />
+		<field name="keyLabel" since="3" />
+		<field name="keyOutputText" since="3" />
+		<field name="keyPreviewHeight" since="3" />
+		<field name="keyPreviewLayout" since="3" />
+		<field name="keyPreviewOffset" since="3" />
+		<field name="keyTextColor" since="3" />
+		<field name="keyTextSize" since="3" />
+		<field name="keyWidth" since="3" />
+		<field name="keyboardMode" since="3" />
+		<field name="keycode" />
+		<field name="killAfterRestore" since="5" />
+		<field name="label" />
+		<field name="labelTextSize" since="3" />
+		<field name="largeHeap" since="11" />
+		<field name="largeScreens" since="4" />
+		<field name="largestWidthLimitDp" since="13" />
+		<field name="launchMode" />
+		<field name="layerType" since="11" />
+		<field name="layout" />
+		<field name="layoutAnimation" />
+		<field name="layout_above" />
+		<field name="layout_alignBaseline" />
+		<field name="layout_alignBottom" />
+		<field name="layout_alignLeft" />
+		<field name="layout_alignParentBottom" />
+		<field name="layout_alignParentLeft" />
+		<field name="layout_alignParentRight" />
+		<field name="layout_alignParentTop" />
+		<field name="layout_alignRight" />
+		<field name="layout_alignTop" />
+		<field name="layout_alignWithParentIfMissing" />
+		<field name="layout_below" />
+		<field name="layout_centerHorizontal" />
+		<field name="layout_centerInParent" />
+		<field name="layout_centerVertical" />
+		<field name="layout_column" />
+		<field name="layout_columnSpan" since="14" />
+		<field name="layout_gravity" />
+		<field name="layout_height" />
+		<field name="layout_margin" />
+		<field name="layout_marginBottom" />
+		<field name="layout_marginLeft" />
+		<field name="layout_marginRight" />
+		<field name="layout_marginTop" />
+		<field name="layout_row" since="14" />
+		<field name="layout_rowSpan" since="14" />
+		<field name="layout_scale" />
+		<field name="layout_span" />
+		<field name="layout_toLeftOf" />
+		<field name="layout_toRightOf" />
+		<field name="layout_weight" />
+		<field name="layout_width" />
+		<field name="layout_x" />
+		<field name="layout_y" />
+		<field name="left" />
+		<field name="lineSpacingExtra" />
+		<field name="lineSpacingMultiplier" />
+		<field name="lines" />
+		<field name="linksClickable" />
+		<field name="listChoiceBackgroundIndicator" since="11" />
+		<field name="listChoiceIndicatorMultiple" />
+		<field name="listChoiceIndicatorSingle" />
+		<field name="listDivider" />
+		<field name="listDividerAlertDialog" since="11" />
+		<field name="listPopupWindowStyle" since="11" />
+		<field name="listPreferredItemHeight" />
+		<field name="listPreferredItemHeightLarge" since="14" />
+		<field name="listPreferredItemHeightSmall" since="14" />
+		<field name="listPreferredItemPaddingLeft" since="14" />
+		<field name="listPreferredItemPaddingRight" since="14" />
+		<field name="listSelector" />
+		<field name="listSeparatorTextViewStyle" />
+		<field name="listViewStyle" />
+		<field name="listViewWhiteStyle" />
+		<field name="logo" since="11" />
+		<field name="longClickable" />
+		<field name="loopViews" since="11" />
+		<field name="manageSpaceActivity" />
+		<field name="mapViewStyle" />
+		<field name="marqueeRepeatLimit" since="2" />
+		<field name="max" />
+		<field name="maxDate" since="11" />
+		<field name="maxEms" />
+		<field name="maxHeight" />
+		<field name="maxItemsPerRow" />
+		<field name="maxLength" />
+		<field name="maxLevel" />
+		<field name="maxLines" />
+		<field name="maxRows" />
+		<field name="maxSdkVersion" since="4" />
+		<field name="maxWidth" />
+		<field name="measureAllChildren" />
+		<field name="measureWithLargestChild" since="11" />
+		<field name="menuCategory" />
+		<field name="mimeType" />
+		<field name="minDate" since="11" />
+		<field name="minEms" />
+		<field name="minHeight" />
+		<field name="minLevel" />
+		<field name="minLines" />
+		<field name="minResizeHeight" since="14" />
+		<field name="minResizeWidth" since="14" />
+		<field name="minSdkVersion" />
+		<field name="minWidth" />
+		<field name="mode" />
+		<field name="moreIcon" />
+		<field name="multiprocess" />
+		<field name="name" />
+		<field name="navigationMode" since="11" />
+		<field name="negativeButtonText" />
+		<field name="nextFocusDown" />
+		<field name="nextFocusForward" since="11" />
+		<field name="nextFocusLeft" />
+		<field name="nextFocusRight" />
+		<field name="nextFocusUp" />
+		<field name="noHistory" since="3" />
+		<field name="normalScreens" since="4" />
+		<field name="notificationTimeout" since="14" />
+		<field name="numColumns" />
+		<field name="numStars" />
+		<field name="numeric" />
+		<field name="numericShortcut" />
+		<field name="onClick" since="4" />
+		<field name="oneshot" />
+		<field name="opacity" since="11" />
+		<field name="order" />
+		<field name="orderInCategory" />
+		<field name="ordering" since="11" />
+		<field name="orderingFromXml" />
+		<field name="orientation" />
+		<field name="outAnimation" />
+		<field name="overScrollFooter" since="9" />
+		<field name="overScrollHeader" since="9" />
+		<field name="overScrollMode" since="9" />
+		<field name="overridesImplicitlyEnabledSubtype" since="14" />
+		<field name="packageNames" since="14" />
+		<field name="padding" />
+		<field name="paddingBottom" />
+		<field name="paddingLeft" />
+		<field name="paddingRight" />
+		<field name="paddingTop" />
+		<field name="panelBackground" />
+		<field name="panelColorBackground" />
+		<field name="panelColorForeground" />
+		<field name="panelFullBackground" />
+		<field name="panelTextAppearance" />
+		<field name="password" />
+		<field name="path" />
+		<field name="pathPattern" />
+		<field name="pathPrefix" />
+		<field name="permission" />
+		<field name="permissionGroup" />
+		<field name="persistent" />
+		<field name="persistentDrawingCache" />
+		<field name="phoneNumber" />
+		<field name="pivotX" />
+		<field name="pivotY" />
+		<field name="popupAnimationStyle" since="9" />
+		<field name="popupBackground" />
+		<field name="popupCharacters" since="3" />
+		<field name="popupKeyboard" since="3" />
+		<field name="popupLayout" since="3" />
+		<field name="popupMenuStyle" since="11" />
+		<field name="popupWindowStyle" />
+		<field name="port" />
+		<field name="positiveButtonText" />
+		<field name="preferenceCategoryStyle" />
+		<field name="preferenceInformationStyle" />
+		<field name="preferenceLayoutChild" />
+		<field name="preferenceScreenStyle" />
+		<field name="preferenceStyle" />
+		<field name="previewImage" since="11" />
+		<field name="priority" />
+		<field name="privateImeOptions" since="3" />
+		<field name="process" />
+		<field name="progress" />
+		<field name="progressBarPadding" since="11" />
+		<field name="progressBarStyle" />
+		<field name="progressBarStyleHorizontal" />
+		<field name="progressBarStyleInverse" since="4" />
+		<field name="progressBarStyleLarge" />
+		<field name="progressBarStyleLargeInverse" since="4" />
+		<field name="progressBarStyleSmall" />
+		<field name="progressBarStyleSmallInverse" since="4" />
+		<field name="progressBarStyleSmallTitle" />
+		<field name="progressDrawable" />
+		<field name="prompt" />
+		<field name="propertyName" since="11" />
+		<field name="protectionLevel" />
+		<field name="publicKey" since="14" />
+		<field name="queryActionMsg" />
+		<field name="queryAfterZeroResults" since="4" />
+		<field name="queryHint" since="11" />
+		<field name="quickContactBadgeStyleSmallWindowLarge" since="6" />
+		<field name="quickContactBadgeStyleSmallWindowMedium" since="6" />
+		<field name="quickContactBadgeStyleSmallWindowSmall" since="6" />
+		<field name="quickContactBadgeStyleWindowLarge" since="6" />
+		<field name="quickContactBadgeStyleWindowMedium" since="6" />
+		<field name="quickContactBadgeStyleWindowSmall" since="6" />
+		<field name="radioButtonStyle" />
+		<field name="radius" />
+		<field name="rating" />
+		<field name="ratingBarStyle" />
+		<field name="ratingBarStyleIndicator" />
+		<field name="ratingBarStyleSmall" />
+		<field name="readPermission" />
+		<field name="repeatCount" />
+		<field name="repeatMode" />
+		<field name="reqFiveWayNav" since="3" />
+		<field name="reqHardKeyboard" since="3" />
+		<field name="reqKeyboardType" since="3" />
+		<field name="reqNavigation" since="3" />
+		<field name="reqTouchScreen" since="3" />
+		<field name="required" since="5" />
+		<field name="requiresFadingEdge" since="14" />
+		<field name="requiresSmallestWidthDp" since="13" />
+		<field name="resizeMode" since="12" />
+		<field name="resizeable" since="4" />
+		<field name="resource" />
+		<field name="restoreAnyVersion" since="8" />
+		<field name="restoreNeedsApplication" since="5" />
+		<field name="right" />
+		<field name="ringtonePreferenceStyle" />
+		<field name="ringtoneType" />
+		<field name="rotation" since="11" />
+		<field name="rotationX" since="11" />
+		<field name="rotationY" since="11" />
+		<field name="rowCount" since="14" />
+		<field name="rowDelay" />
+		<field name="rowEdgeFlags" since="3" />
+		<field name="rowHeight" />
+		<field name="rowOrderPreserved" since="14" />
+		<field name="saveEnabled" />
+		<field name="scaleGravity" />
+		<field name="scaleHeight" />
+		<field name="scaleType" />
+		<field name="scaleWidth" />
+		<field name="scaleX" since="11" />
+		<field name="scaleY" since="11" />
+		<field name="scheme" />
+		<field name="screenDensity" since="9" />
+		<field name="screenOrientation" />
+		<field name="screenSize" since="9" />
+		<field name="scrollHorizontally" />
+		<field name="scrollViewStyle" />
+		<field name="scrollX" />
+		<field name="scrollY" />
+		<field name="scrollbarAlwaysDrawHorizontalTrack" />
+		<field name="scrollbarAlwaysDrawVerticalTrack" />
+		<field name="scrollbarDefaultDelayBeforeFade" since="5" />
+		<field name="scrollbarFadeDuration" since="5" />
+		<field name="scrollbarSize" />
+		<field name="scrollbarStyle" />
+		<field name="scrollbarThumbHorizontal" />
+		<field name="scrollbarThumbVertical" />
+		<field name="scrollbarTrackHorizontal" />
+		<field name="scrollbarTrackVertical" />
+		<field name="scrollbars" />
+		<field name="scrollingCache" />
+		<field name="searchButtonText" />
+		<field name="searchMode" />
+		<field name="searchSettingsDescription" since="4" />
+		<field name="searchSuggestAuthority" />
+		<field name="searchSuggestIntentAction" />
+		<field name="searchSuggestIntentData" />
+		<field name="searchSuggestPath" />
+		<field name="searchSuggestSelection" />
+		<field name="searchSuggestThreshold" since="4" />
+		<field name="secondaryProgress" />
+		<field name="seekBarStyle" />
+		<field name="segmentedButtonStyle" since="11" />
+		<field name="selectAllOnFocus" />
+		<field name="selectable" />
+		<field name="selectableItemBackground" since="11" />
+		<field name="selectedDateVerticalBar" since="11" />
+		<field name="selectedWeekBackgroundColor" since="11" />
+		<field name="settingsActivity" since="3" />
+		<field name="shadowColor" />
+		<field name="shadowDx" />
+		<field name="shadowDy" />
+		<field name="shadowRadius" />
+		<field name="shape" />
+		<field name="shareInterpolator" />
+		<field name="sharedUserId" />
+		<field name="sharedUserLabel" since="3" />
+		<field name="shouldDisableView" />
+		<field name="showAsAction" since="11" />
+		<field name="showDefault" />
+		<field name="showDividers" since="11" />
+		<field name="showSilent" />
+		<field name="showWeekNumber" since="11" />
+		<field name="shownWeekCount" since="11" />
+		<field name="shrinkColumns" />
+		<field name="singleLine" />
+		<field name="smallIcon" since="5" />
+		<field name="smallScreens" since="4" />
+		<field name="smoothScrollbar" since="3" />
+		<field name="soundEffectsEnabled" />
+		<field name="spacing" />
+		<field name="spinnerDropDownItemStyle" />
+		<field name="spinnerItemStyle" />
+		<field name="spinnerMode" since="11" />
+		<field name="spinnerStyle" />
+		<field name="spinnersShown" since="11" />
+		<field name="splitMotionEvents" since="11" />
+		<field name="src" />
+		<field name="stackFromBottom" />
+		<field name="starStyle" />
+		<field name="startColor" />
+		<field name="startOffset" />
+		<field name="startYear" />
+		<field name="stateNotNeeded" />
+		<field name="state_above_anchor" />
+		<field name="state_accelerated" since="11" />
+		<field name="state_activated" since="11" />
+		<field name="state_active" />
+		<field name="state_checkable" />
+		<field name="state_checked" />
+		<field name="state_drag_can_accept" since="14" />
+		<field name="state_drag_hovered" since="14" />
+		<field name="state_empty" />
+		<field name="state_enabled" />
+		<field name="state_expanded" />
+		<field name="state_first" />
+		<field name="state_focused" />
+		<field name="state_hovered" since="14" />
+		<field name="state_last" />
+		<field name="state_long_pressable" since="3" />
+		<field name="state_middle" />
+		<field name="state_multiline" since="11" />
+		<field name="state_pressed" />
+		<field name="state_selected" />
+		<field name="state_single" />
+		<field name="state_window_focused" />
+		<field name="staticWallpaperPreview" since="11" />
+		<field name="stepSize" />
+		<field name="stopWithTask" since="14" />
+		<field name="streamType" />
+		<field name="stretchColumns" />
+		<field name="stretchMode" />
+		<field name="subtitle" since="11" />
+		<field name="subtitleTextStyle" since="11" />
+		<field name="subtypeExtraValue" since="14" />
+		<field name="subtypeLocale" since="14" />
+		<field name="suggestActionMsg" />
+		<field name="suggestActionMsgColumn" />
+		<field name="summary" />
+		<field name="summaryColumn" since="5" />
+		<field name="summaryOff" />
+		<field name="summaryOn" />
+		<field name="supportsUploading" since="5" />
+		<field name="switchMinWidth" since="14" />
+		<field name="switchPadding" since="14" />
+		<field name="switchPreferenceStyle" since="14" />
+		<field name="switchTextAppearance" since="14" />
+		<field name="switchTextOff" since="14" />
+		<field name="switchTextOn" since="14" />
+		<field name="syncable" />
+		<field name="tabStripEnabled" since="8" />
+		<field name="tabStripLeft" since="8" />
+		<field name="tabStripRight" since="8" />
+		<field name="tabWidgetStyle" />
+		<field name="tag" />
+		<field name="targetActivity" />
+		<field name="targetClass" />
+		<field name="targetDescriptions" since="14" />
+		<field name="targetPackage" />
+		<field name="targetSdkVersion" since="4" />
+		<field name="taskAffinity" />
+		<field name="taskCloseEnterAnimation" />
+		<field name="taskCloseExitAnimation" />
+		<field name="taskOpenEnterAnimation" />
+		<field name="taskOpenExitAnimation" />
+		<field name="taskToBackEnterAnimation" />
+		<field name="taskToBackExitAnimation" />
+		<field name="taskToFrontEnterAnimation" />
+		<field name="taskToFrontExitAnimation" />
+		<field name="tension" since="4" />
+		<field name="testOnly" since="4" />
+		<field name="text" />
+		<field name="textAllCaps" since="14" />
+		<field name="textAppearance" />
+		<field name="textAppearanceButton" />
+		<field name="textAppearanceInverse" />
+		<field name="textAppearanceLarge" />
+		<field name="textAppearanceLargeInverse" />
+		<field name="textAppearanceLargePopupMenu" since="11" />
+		<field name="textAppearanceListItem" since="14" />
+		<field name="textAppearanceListItemSmall" since="14" />
+		<field name="textAppearanceMedium" />
+		<field name="textAppearanceMediumInverse" />
+		<field name="textAppearanceSearchResultSubtitle" since="5" />
+		<field name="textAppearanceSearchResultTitle" since="5" />
+		<field name="textAppearanceSmall" />
+		<field name="textAppearanceSmallInverse" />
+		<field name="textAppearanceSmallPopupMenu" since="11" />
+		<field name="textCheckMark" />
+		<field name="textCheckMarkInverse" />
+		<field name="textColor" />
+		<field name="textColorAlertDialogListItem" since="11" />
+		<field name="textColorHighlight" />
+		<field name="textColorHighlightInverse" since="11" />
+		<field name="textColorHint" />
+		<field name="textColorHintInverse" />
+		<field name="textColorLink" />
+		<field name="textColorLinkInverse" since="11" />
+		<field name="textColorPrimary" />
+		<field name="textColorPrimaryDisableOnly" />
+		<field name="textColorPrimaryInverse" />
+		<field name="textColorPrimaryInverseDisableOnly" since="4" />
+		<field name="textColorPrimaryInverseNoDisable" />
+		<field name="textColorPrimaryNoDisable" />
+		<field name="textColorSecondary" />
+		<field name="textColorSecondaryInverse" />
+		<field name="textColorSecondaryInverseNoDisable" />
+		<field name="textColorSecondaryNoDisable" />
+		<field name="textColorTertiary" />
+		<field name="textColorTertiaryInverse" />
+		<field name="textCursorDrawable" since="12" />
+		<field name="textEditNoPasteWindowLayout" since="11" />
+		<field name="textEditPasteWindowLayout" since="11" />
+		<field name="textEditSideNoPasteWindowLayout" since="11" />
+		<field name="textEditSidePasteWindowLayout" since="11" />
+		<field name="textEditSuggestionItemLayout" since="14" />
+		<field name="textFilterEnabled" />
+		<field name="textIsSelectable" since="11" />
+		<field name="textOff" />
+		<field name="textOn" />
+		<field name="textScaleX" />
+		<field name="textSelectHandle" since="9" />
+		<field name="textSelectHandleLeft" since="9" />
+		<field name="textSelectHandleRight" since="9" />
+		<field name="textSelectHandleWindowStyle" since="9" />
+		<field name="textSize" />
+		<field name="textStyle" />
+		<field name="textSuggestionsWindowStyle" since="14" />
+		<field name="textViewStyle" />
+		<field name="theme" />
+		<field name="thickness" since="3" />
+		<field name="thicknessRatio" />
+		<field name="thumb" />
+		<field name="thumbOffset" />
+		<field name="thumbTextPadding" since="14" />
+		<field name="thumbnail" since="5" />
+		<field name="tileMode" />
+		<field name="tint" />
+		<field name="title" />
+		<field name="titleCondensed" />
+		<field name="titleTextStyle" since="11" />
+		<field name="toAlpha" />
+		<field name="toDegrees" />
+		<field name="toXDelta" />
+		<field name="toXScale" />
+		<field name="toYDelta" />
+		<field name="toYScale" />
+		<field name="top" />
+		<field name="topBright" />
+		<field name="topDark" />
+		<field name="topLeftRadius" />
+		<field name="topOffset" since="3" />
+		<field name="topRightRadius" />
+		<field name="track" since="14" />
+		<field name="transcriptMode" />
+		<field name="transformPivotX" since="11" />
+		<field name="transformPivotY" since="11" />
+		<field name="translationX" since="11" />
+		<field name="translationY" since="11" />
+		<field name="type" />
+		<field name="typeface" />
+		<field name="uiOptions" since="14" />
+		<field name="uncertainGestureColor" since="4" />
+		<field name="unfocusedMonthDateColor" since="11" />
+		<field name="unselectedAlpha" />
+		<field name="updatePeriodMillis" since="3" />
+		<field name="useDefaultMargins" since="14" />
+		<field name="useIntrinsicSizeAsMinimum" since="11" />
+		<field name="useLevel" />
+		<field name="userVisible" since="5" />
+		<field name="value" />
+		<field name="valueFrom" since="11" />
+		<field name="valueTo" since="11" />
+		<field name="valueType" since="11" />
+		<field name="variablePadding" />
+		<field name="versionCode" />
+		<field name="versionName" />
+		<field name="verticalCorrection" since="3" />
+		<field name="verticalDivider" />
+		<field name="verticalGap" since="3" />
+		<field name="verticalScrollbarPosition" since="11" />
+		<field name="verticalSpacing" />
+		<field name="visibility" />
+		<field name="visible" />
+		<field name="vmSafeMode" since="8" />
+		<field name="voiceLanguage" since="3" />
+		<field name="voiceLanguageModel" since="3" />
+		<field name="voiceMaxResults" since="3" />
+		<field name="voicePromptText" since="3" />
+		<field name="voiceSearchMode" since="3" />
+		<field name="wallpaperCloseEnterAnimation" since="5" />
+		<field name="wallpaperCloseExitAnimation" since="5" />
+		<field name="wallpaperIntraCloseEnterAnimation" since="5" />
+		<field name="wallpaperIntraCloseExitAnimation" since="5" />
+		<field name="wallpaperIntraOpenEnterAnimation" since="5" />
+		<field name="wallpaperIntraOpenExitAnimation" since="5" />
+		<field name="wallpaperOpenEnterAnimation" since="5" />
+		<field name="wallpaperOpenExitAnimation" since="5" />
+		<field name="webTextViewStyle" since="8" />
+		<field name="webViewStyle" />
+		<field name="weekDayTextAppearance" since="11" />
+		<field name="weekNumberColor" since="11" />
+		<field name="weekSeparatorLineColor" since="11" />
+		<field name="weightSum" />
+		<field name="widgetLayout" />
+		<field name="width" />
+		<field name="windowActionBar" since="11" />
+		<field name="windowActionBarOverlay" since="11" />
+		<field name="windowActionModeOverlay" since="11" />
+		<field name="windowAnimationStyle" />
+		<field name="windowBackground" />
+		<field name="windowCloseOnTouchOutside" since="11" />
+		<field name="windowContentOverlay" />
+		<field name="windowDisablePreview" since="3" />
+		<field name="windowEnableSplitTouch" since="11" />
+		<field name="windowEnterAnimation" />
+		<field name="windowExitAnimation" />
+		<field name="windowFrame" />
+		<field name="windowFullscreen" />
+		<field name="windowHideAnimation" />
+		<field name="windowIsFloating" />
+		<field name="windowIsTranslucent" />
+		<field name="windowMinWidthMajor" since="11" />
+		<field name="windowMinWidthMinor" since="11" />
+		<field name="windowNoDisplay" since="3" />
+		<field name="windowNoTitle" />
+		<field name="windowShowAnimation" />
+		<field name="windowShowWallpaper" since="5" />
+		<field name="windowSoftInputMode" since="3" />
+		<field name="windowTitleBackgroundStyle" />
+		<field name="windowTitleSize" />
+		<field name="windowTitleStyle" />
+		<field name="writePermission" />
+		<field name="x" />
+		<field name="xlargeScreens" since="9" />
+		<field name="y" />
+		<field name="yesNoPreferenceStyle" />
+		<field name="zAdjustment" />
+	</class>
+	<class name="android/R$bool" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/R$color" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="background_dark" />
+		<field name="background_light" />
+		<field name="black" />
+		<field name="darker_gray" />
+		<field name="holo_blue_bright" since="14" />
+		<field name="holo_blue_dark" since="14" />
+		<field name="holo_blue_light" since="14" />
+		<field name="holo_green_dark" since="14" />
+		<field name="holo_green_light" since="14" />
+		<field name="holo_orange_dark" since="14" />
+		<field name="holo_orange_light" since="14" />
+		<field name="holo_purple" since="14" />
+		<field name="holo_red_dark" since="14" />
+		<field name="holo_red_light" since="14" />
+		<field name="primary_text_dark" />
+		<field name="primary_text_dark_nodisable" />
+		<field name="primary_text_light" />
+		<field name="primary_text_light_nodisable" />
+		<field name="secondary_text_dark" />
+		<field name="secondary_text_dark_nodisable" />
+		<field name="secondary_text_light" />
+		<field name="secondary_text_light_nodisable" />
+		<field name="tab_indicator_text" />
+		<field name="tertiary_text_dark" />
+		<field name="tertiary_text_light" />
+		<field name="transparent" />
+		<field name="white" />
+		<field name="widget_edittext_dark" />
+	</class>
+	<class name="android/R$dimen" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="app_icon_size" />
+		<field name="dialog_min_width_major" since="11" />
+		<field name="dialog_min_width_minor" since="11" />
+		<field name="notification_large_icon_height" since="11" />
+		<field name="notification_large_icon_width" since="11" />
+		<field name="thumbnail_height" />
+		<field name="thumbnail_width" />
+	</class>
+	<class name="android/R$drawable" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="alert_dark_frame" />
+		<field name="alert_light_frame" />
+		<field name="arrow_down_float" />
+		<field name="arrow_up_float" />
+		<field name="bottom_bar" />
+		<field name="btn_default" />
+		<field name="btn_default_small" />
+		<field name="btn_dialog" />
+		<field name="btn_dropdown" />
+		<field name="btn_minus" />
+		<field name="btn_plus" />
+		<field name="btn_radio" />
+		<field name="btn_star" />
+		<field name="btn_star_big_off" />
+		<field name="btn_star_big_on" />
+		<field name="button_onoff_indicator_off" />
+		<field name="button_onoff_indicator_on" />
+		<field name="checkbox_off_background" />
+		<field name="checkbox_on_background" />
+		<field name="dark_header" since="3" />
+		<field name="dialog_frame" />
+		<field name="dialog_holo_dark_frame" since="11" />
+		<field name="dialog_holo_light_frame" since="11" />
+		<field name="divider_horizontal_bright" />
+		<field name="divider_horizontal_dark" />
+		<field name="divider_horizontal_dim_dark" />
+		<field name="divider_horizontal_textfield" />
+		<field name="edit_text" />
+		<field name="editbox_background" />
+		<field name="editbox_background_normal" />
+		<field name="editbox_dropdown_dark_frame" />
+		<field name="editbox_dropdown_light_frame" />
+		<field name="gallery_thumb" />
+		<field name="ic_btn_speak_now" since="3" />
+		<field name="ic_delete" />
+		<field name="ic_dialog_alert" />
+		<field name="ic_dialog_dialer" />
+		<field name="ic_dialog_email" />
+		<field name="ic_dialog_info" />
+		<field name="ic_dialog_map" />
+		<field name="ic_input_add" />
+		<field name="ic_input_delete" />
+		<field name="ic_input_get" />
+		<field name="ic_lock_idle_alarm" />
+		<field name="ic_lock_idle_charging" />
+		<field name="ic_lock_idle_lock" />
+		<field name="ic_lock_idle_low_battery" />
+		<field name="ic_lock_lock" />
+		<field name="ic_lock_power_off" />
+		<field name="ic_lock_silent_mode" />
+		<field name="ic_lock_silent_mode_off" />
+		<field name="ic_media_ff" />
+		<field name="ic_media_next" />
+		<field name="ic_media_pause" />
+		<field name="ic_media_play" />
+		<field name="ic_media_previous" />
+		<field name="ic_media_rew" />
+		<field name="ic_menu_add" />
+		<field name="ic_menu_agenda" />
+		<field name="ic_menu_always_landscape_portrait" />
+		<field name="ic_menu_call" />
+		<field name="ic_menu_camera" />
+		<field name="ic_menu_close_clear_cancel" />
+		<field name="ic_menu_compass" />
+		<field name="ic_menu_crop" />
+		<field name="ic_menu_day" />
+		<field name="ic_menu_delete" />
+		<field name="ic_menu_directions" />
+		<field name="ic_menu_edit" />
+		<field name="ic_menu_gallery" />
+		<field name="ic_menu_help" />
+		<field name="ic_menu_info_details" />
+		<field name="ic_menu_manage" />
+		<field name="ic_menu_mapmode" />
+		<field name="ic_menu_month" />
+		<field name="ic_menu_more" />
+		<field name="ic_menu_my_calendar" />
+		<field name="ic_menu_mylocation" />
+		<field name="ic_menu_myplaces" />
+		<field name="ic_menu_preferences" />
+		<field name="ic_menu_recent_history" />
+		<field name="ic_menu_report_image" />
+		<field name="ic_menu_revert" />
+		<field name="ic_menu_rotate" />
+		<field name="ic_menu_save" />
+		<field name="ic_menu_search" />
+		<field name="ic_menu_send" />
+		<field name="ic_menu_set_as" />
+		<field name="ic_menu_share" />
+		<field name="ic_menu_slideshow" />
+		<field name="ic_menu_sort_alphabetically" />
+		<field name="ic_menu_sort_by_size" />
+		<field name="ic_menu_today" />
+		<field name="ic_menu_upload" />
+		<field name="ic_menu_upload_you_tube" />
+		<field name="ic_menu_view" />
+		<field name="ic_menu_week" />
+		<field name="ic_menu_zoom" />
+		<field name="ic_notification_clear_all" />
+		<field name="ic_notification_overlay" />
+		<field name="ic_partial_secure" />
+		<field name="ic_popup_disk_full" />
+		<field name="ic_popup_reminder" />
+		<field name="ic_popup_sync" />
+		<field name="ic_search_category_default" />
+		<field name="ic_secure" />
+		<field name="list_selector_background" />
+		<field name="menu_frame" />
+		<field name="menu_full_frame" />
+		<field name="menuitem_background" />
+		<field name="picture_frame" />
+		<field name="presence_audio_away" since="9" />
+		<field name="presence_audio_busy" since="9" />
+		<field name="presence_audio_online" since="9" />
+		<field name="presence_away" />
+		<field name="presence_busy" />
+		<field name="presence_invisible" />
+		<field name="presence_offline" />
+		<field name="presence_online" />
+		<field name="presence_video_away" since="9" />
+		<field name="presence_video_busy" since="9" />
+		<field name="presence_video_online" since="9" />
+		<field name="progress_horizontal" />
+		<field name="progress_indeterminate_horizontal" />
+		<field name="radiobutton_off_background" />
+		<field name="radiobutton_on_background" />
+		<field name="screen_background_dark" />
+		<field name="screen_background_dark_transparent" since="5" />
+		<field name="screen_background_light" />
+		<field name="screen_background_light_transparent" since="5" />
+		<field name="spinner_background" />
+		<field name="spinner_dropdown_background" />
+		<field name="star_big_off" />
+		<field name="star_big_on" />
+		<field name="star_off" />
+		<field name="star_on" />
+		<field name="stat_notify_call_mute" />
+		<field name="stat_notify_chat" />
+		<field name="stat_notify_error" />
+		<field name="stat_notify_missed_call" />
+		<field name="stat_notify_more" />
+		<field name="stat_notify_sdcard" />
+		<field name="stat_notify_sdcard_prepare" since="5" />
+		<field name="stat_notify_sdcard_usb" />
+		<field name="stat_notify_sync" />
+		<field name="stat_notify_sync_noanim" />
+		<field name="stat_notify_voicemail" />
+		<field name="stat_sys_data_bluetooth" />
+		<field name="stat_sys_download" />
+		<field name="stat_sys_download_done" />
+		<field name="stat_sys_headset" />
+		<field name="stat_sys_phone_call" />
+		<field name="stat_sys_phone_call_forward" />
+		<field name="stat_sys_phone_call_on_hold" />
+		<field name="stat_sys_speakerphone" />
+		<field name="stat_sys_upload" />
+		<field name="stat_sys_upload_done" />
+		<field name="stat_sys_vp_phone_call" since="4" />
+		<field name="stat_sys_vp_phone_call_on_hold" since="4" />
+		<field name="stat_sys_warning" />
+		<field name="status_bar_item_app_background" />
+		<field name="status_bar_item_background" />
+		<field name="sym_action_call" />
+		<field name="sym_action_chat" />
+		<field name="sym_action_email" />
+		<field name="sym_call_incoming" />
+		<field name="sym_call_missed" />
+		<field name="sym_call_outgoing" />
+		<field name="sym_contact_card" />
+		<field name="sym_def_app_icon" />
+		<field name="title_bar" />
+		<field name="title_bar_tall" since="3" />
+		<field name="toast_frame" />
+		<field name="zoom_plate" />
+	</class>
+	<class name="android/R$fraction" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/R$id" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="addToDictionary" since="3" />
+		<field name="background" />
+		<field name="button1" />
+		<field name="button2" />
+		<field name="button3" />
+		<field name="candidatesArea" since="3" />
+		<field name="checkbox" />
+		<field name="closeButton" since="3" />
+		<field name="content" />
+		<field name="copy" since="3" />
+		<field name="copyUrl" since="3" />
+		<field name="custom" since="8" />
+		<field name="cut" since="3" />
+		<field name="edit" />
+		<field name="empty" />
+		<field name="extractArea" since="3" />
+		<field name="hint" />
+		<field name="home" since="11" />
+		<field name="icon" />
+		<field name="icon1" />
+		<field name="icon2" />
+		<field name="input" />
+		<field name="inputArea" since="3" />
+		<field name="inputExtractEditText" since="3" />
+		<field name="keyboardView" since="3" />
+		<field name="list" />
+		<field name="message" />
+		<field name="paste" since="3" />
+		<field name="primary" />
+		<field name="progress" />
+		<field name="secondaryProgress" />
+		<field name="selectAll" since="3" />
+		<field name="selectTextMode" since="11" />
+		<field name="selectedIcon" />
+		<field name="startSelectingText" since="3" />
+		<field name="stopSelectingText" since="3" />
+		<field name="summary" />
+		<field name="switchInputMethod" since="3" />
+		<field name="tabcontent" />
+		<field name="tabhost" />
+		<field name="tabs" />
+		<field name="text1" />
+		<field name="text2" />
+		<field name="title" />
+		<field name="toggle" />
+		<field name="widget_frame" />
+	</class>
+	<class name="android/R$integer" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="config_longAnimTime" />
+		<field name="config_mediumAnimTime" />
+		<field name="config_shortAnimTime" />
+		<field name="status_bar_notification_info_maxnum" since="14" />
+	</class>
+	<class name="android/R$interpolator" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="accelerate_cubic" />
+		<field name="accelerate_decelerate" />
+		<field name="accelerate_quad" />
+		<field name="accelerate_quint" />
+		<field name="anticipate" />
+		<field name="anticipate_overshoot" />
+		<field name="bounce" />
+		<field name="cycle" />
+		<field name="decelerate_cubic" />
+		<field name="decelerate_quad" />
+		<field name="decelerate_quint" />
+		<field name="linear" />
+		<field name="overshoot" />
+	</class>
+	<class name="android/R$layout" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="activity_list_item" />
+		<field name="browser_link_context_header" />
+		<field name="expandable_list_content" />
+		<field name="list_content" since="11" />
+		<field name="preference_category" />
+		<field name="select_dialog_item" />
+		<field name="select_dialog_multichoice" />
+		<field name="select_dialog_singlechoice" />
+		<field name="simple_dropdown_item_1line" />
+		<field name="simple_expandable_list_item_1" />
+		<field name="simple_expandable_list_item_2" />
+		<field name="simple_gallery_item" />
+		<field name="simple_list_item_1" />
+		<field name="simple_list_item_2" />
+		<field name="simple_list_item_activated_1" since="11" />
+		<field name="simple_list_item_activated_2" since="11" />
+		<field name="simple_list_item_checked" />
+		<field name="simple_list_item_multiple_choice" />
+		<field name="simple_list_item_single_choice" />
+		<field name="simple_selectable_list_item" since="11" />
+		<field name="simple_spinner_dropdown_item" />
+		<field name="simple_spinner_item" />
+		<field name="test_list_item" />
+		<field name="two_line_list_item" />
+	</class>
+	<class name="android/R$menu" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/R$mipmap" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="sym_def_app_icon" />
+	</class>
+	<class name="android/R$plurals" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/R$raw" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/R$string" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="VideoView_error_button" />
+		<field name="VideoView_error_text_invalid_progressive_playback" since="3" />
+		<field name="VideoView_error_text_unknown" />
+		<field name="VideoView_error_title" />
+		<field name="cancel" />
+		<field name="copy" />
+		<field name="copyUrl" />
+		<field name="cut" />
+		<field name="defaultMsisdnAlphaTag" />
+		<field name="defaultVoiceMailAlphaTag" />
+		<field name="dialog_alert_title" since="3" />
+		<field name="emptyPhoneNumber" />
+		<field name="httpErrorBadUrl" />
+		<field name="httpErrorUnsupportedScheme" />
+		<field name="no" />
+		<field name="ok" />
+		<field name="paste" />
+		<field name="search_go" />
+		<field name="selectAll" />
+		<field name="selectTextMode" since="11" />
+		<field name="status_bar_notification_info_overflow" since="14" />
+		<field name="unknownName" />
+		<field name="untitled" />
+		<field name="yes" />
+	</class>
+	<class name="android/R$style" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="Animation" />
+		<field name="Animation_Activity" />
+		<field name="Animation_Dialog" />
+		<field name="Animation_InputMethod" since="5" />
+		<field name="Animation_Toast" />
+		<field name="Animation_Translucent" />
+		<field name="DeviceDefault_ButtonBar" since="14" />
+		<field name="DeviceDefault_ButtonBar_AlertDialog" since="14" />
+		<field name="DeviceDefault_Light_ButtonBar" since="14" />
+		<field name="DeviceDefault_Light_ButtonBar_AlertDialog" since="14" />
+		<field name="DeviceDefault_Light_SegmentedButton" since="14" />
+		<field name="DeviceDefault_SegmentedButton" since="14" />
+		<field name="Holo_ButtonBar" since="11" />
+		<field name="Holo_ButtonBar_AlertDialog" since="11" />
+		<field name="Holo_Light_ButtonBar" since="11" />
+		<field name="Holo_Light_ButtonBar_AlertDialog" since="11" />
+		<field name="Holo_Light_SegmentedButton" since="11" />
+		<field name="Holo_SegmentedButton" since="11" />
+		<field name="MediaButton" />
+		<field name="MediaButton_Ffwd" />
+		<field name="MediaButton_Next" />
+		<field name="MediaButton_Pause" />
+		<field name="MediaButton_Play" />
+		<field name="MediaButton_Previous" />
+		<field name="MediaButton_Rew" />
+		<field name="TextAppearance" />
+		<field name="TextAppearance_DeviceDefault" since="14" />
+		<field name="TextAppearance_DeviceDefault_DialogWindowTitle" since="14" />
+		<field name="TextAppearance_DeviceDefault_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Large" since="14" />
+		<field name="TextAppearance_DeviceDefault_Large_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Medium" since="14" />
+		<field name="TextAppearance_DeviceDefault_Medium_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_SearchResult_Subtitle" since="14" />
+		<field name="TextAppearance_DeviceDefault_SearchResult_Title" since="14" />
+		<field name="TextAppearance_DeviceDefault_Small" since="14" />
+		<field name="TextAppearance_DeviceDefault_Small_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Menu" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Subtitle_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Title" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionBar_Title_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Subtitle_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Title" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_ActionMode_Title_Inverse" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_Button" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_DropDownHint" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_DropDownItem" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_EditText" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_IconMenu_Item" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu_Large" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_PopupMenu_Small" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_TabWidget" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_TextView" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_TextView_PopupMenu" since="14" />
+		<field name="TextAppearance_DeviceDefault_Widget_TextView_SpinnerItem" since="14" />
+		<field name="TextAppearance_DeviceDefault_WindowTitle" since="14" />
+		<field name="TextAppearance_DialogWindowTitle" />
+		<field name="TextAppearance_Holo" since="13" />
+		<field name="TextAppearance_Holo_DialogWindowTitle" since="13" />
+		<field name="TextAppearance_Holo_Inverse" since="13" />
+		<field name="TextAppearance_Holo_Large" since="13" />
+		<field name="TextAppearance_Holo_Large_Inverse" since="13" />
+		<field name="TextAppearance_Holo_Medium" since="13" />
+		<field name="TextAppearance_Holo_Medium_Inverse" since="13" />
+		<field name="TextAppearance_Holo_SearchResult_Subtitle" since="13" />
+		<field name="TextAppearance_Holo_SearchResult_Title" since="13" />
+		<field name="TextAppearance_Holo_Small" since="13" />
+		<field name="TextAppearance_Holo_Small_Inverse" since="13" />
+		<field name="TextAppearance_Holo_Widget" since="13" />
+		<field name="TextAppearance_Holo_Widget_ActionBar_Menu" since="14" />
+		<field name="TextAppearance_Holo_Widget_ActionBar_Subtitle" since="13" />
+		<field name="TextAppearance_Holo_Widget_ActionBar_Subtitle_Inverse" since="14" />
+		<field name="TextAppearance_Holo_Widget_ActionBar_Title" since="13" />
+		<field name="TextAppearance_Holo_Widget_ActionBar_Title_Inverse" since="14" />
+		<field name="TextAppearance_Holo_Widget_ActionMode_Subtitle" since="13" />
+		<field name="TextAppearance_Holo_Widget_ActionMode_Subtitle_Inverse" since="14" />
+		<field name="TextAppearance_Holo_Widget_ActionMode_Title" since="13" />
+		<field name="TextAppearance_Holo_Widget_ActionMode_Title_Inverse" since="14" />
+		<field name="TextAppearance_Holo_Widget_Button" since="13" />
+		<field name="TextAppearance_Holo_Widget_DropDownHint" since="13" />
+		<field name="TextAppearance_Holo_Widget_DropDownItem" since="13" />
+		<field name="TextAppearance_Holo_Widget_EditText" since="13" />
+		<field name="TextAppearance_Holo_Widget_IconMenu_Item" since="13" />
+		<field name="TextAppearance_Holo_Widget_PopupMenu" since="13" />
+		<field name="TextAppearance_Holo_Widget_PopupMenu_Large" since="13" />
+		<field name="TextAppearance_Holo_Widget_PopupMenu_Small" since="13" />
+		<field name="TextAppearance_Holo_Widget_TabWidget" since="13" />
+		<field name="TextAppearance_Holo_Widget_TextView" since="13" />
+		<field name="TextAppearance_Holo_Widget_TextView_PopupMenu" since="13" />
+		<field name="TextAppearance_Holo_Widget_TextView_SpinnerItem" since="13" />
+		<field name="TextAppearance_Holo_WindowTitle" since="13" />
+		<field name="TextAppearance_Inverse" />
+		<field name="TextAppearance_Large" />
+		<field name="TextAppearance_Large_Inverse" />
+		<field name="TextAppearance_Medium" />
+		<field name="TextAppearance_Medium_Inverse" />
+		<field name="TextAppearance_Small" />
+		<field name="TextAppearance_Small_Inverse" />
+		<field name="TextAppearance_StatusBar_EventContent" since="9" />
+		<field name="TextAppearance_StatusBar_EventContent_Title" since="9" />
+		<field name="TextAppearance_StatusBar_Icon" since="9" />
+		<field name="TextAppearance_StatusBar_Title" since="9" />
+		<field name="TextAppearance_SuggestionHighlight" since="14" />
+		<field name="TextAppearance_Theme" />
+		<field name="TextAppearance_Theme_Dialog" />
+		<field name="TextAppearance_Widget" />
+		<field name="TextAppearance_Widget_Button" />
+		<field name="TextAppearance_Widget_DropDownHint" />
+		<field name="TextAppearance_Widget_DropDownItem" />
+		<field name="TextAppearance_Widget_EditText" />
+		<field name="TextAppearance_Widget_IconMenu_Item" />
+		<field name="TextAppearance_Widget_PopupMenu_Large" since="11" />
+		<field name="TextAppearance_Widget_PopupMenu_Small" since="11" />
+		<field name="TextAppearance_Widget_TabWidget" />
+		<field name="TextAppearance_Widget_TextView" />
+		<field name="TextAppearance_Widget_TextView_PopupMenu" />
+		<field name="TextAppearance_Widget_TextView_SpinnerItem" />
+		<field name="TextAppearance_WindowTitle" />
+		<field name="Theme" />
+		<field name="Theme_Black" />
+		<field name="Theme_Black_NoTitleBar" />
+		<field name="Theme_Black_NoTitleBar_Fullscreen" />
+		<field name="Theme_DeviceDefault" since="14" />
+		<field name="Theme_DeviceDefault_Dialog" since="14" />
+		<field name="Theme_DeviceDefault_DialogWhenLarge" since="14" />
+		<field name="Theme_DeviceDefault_DialogWhenLarge_NoActionBar" since="14" />
+		<field name="Theme_DeviceDefault_Dialog_MinWidth" since="14" />
+		<field name="Theme_DeviceDefault_Dialog_NoActionBar" since="14" />
+		<field name="Theme_DeviceDefault_Dialog_NoActionBar_MinWidth" since="14" />
+		<field name="Theme_DeviceDefault_InputMethod" since="14" />
+		<field name="Theme_DeviceDefault_Light" since="14" />
+		<field name="Theme_DeviceDefault_Light_DarkActionBar" since="14" />
+		<field name="Theme_DeviceDefault_Light_Dialog" since="14" />
+		<field name="Theme_DeviceDefault_Light_DialogWhenLarge" since="14" />
+		<field name="Theme_DeviceDefault_Light_DialogWhenLarge_NoActionBar" since="14" />
+		<field name="Theme_DeviceDefault_Light_Dialog_MinWidth" since="14" />
+		<field name="Theme_DeviceDefault_Light_Dialog_NoActionBar" since="14" />
+		<field name="Theme_DeviceDefault_Light_Dialog_NoActionBar_MinWidth" since="14" />
+		<field name="Theme_DeviceDefault_Light_NoActionBar" since="14" />
+		<field name="Theme_DeviceDefault_Light_NoActionBar_Fullscreen" since="14" />
+		<field name="Theme_DeviceDefault_Light_Panel" since="14" />
+		<field name="Theme_DeviceDefault_NoActionBar" since="14" />
+		<field name="Theme_DeviceDefault_NoActionBar_Fullscreen" since="14" />
+		<field name="Theme_DeviceDefault_Panel" since="14" />
+		<field name="Theme_DeviceDefault_Wallpaper" since="14" />
+		<field name="Theme_DeviceDefault_Wallpaper_NoTitleBar" since="14" />
+		<field name="Theme_Dialog" />
+		<field name="Theme_Holo" since="11" />
+		<field name="Theme_Holo_Dialog" since="11" />
+		<field name="Theme_Holo_DialogWhenLarge" since="11" />
+		<field name="Theme_Holo_DialogWhenLarge_NoActionBar" since="11" />
+		<field name="Theme_Holo_Dialog_MinWidth" since="11" />
+		<field name="Theme_Holo_Dialog_NoActionBar" since="11" />
+		<field name="Theme_Holo_Dialog_NoActionBar_MinWidth" since="11" />
+		<field name="Theme_Holo_InputMethod" since="11" />
+		<field name="Theme_Holo_Light" since="11" />
+		<field name="Theme_Holo_Light_DarkActionBar" since="14" />
+		<field name="Theme_Holo_Light_Dialog" since="11" />
+		<field name="Theme_Holo_Light_DialogWhenLarge" since="11" />
+		<field name="Theme_Holo_Light_DialogWhenLarge_NoActionBar" since="11" />
+		<field name="Theme_Holo_Light_Dialog_MinWidth" since="11" />
+		<field name="Theme_Holo_Light_Dialog_NoActionBar" since="11" />
+		<field name="Theme_Holo_Light_Dialog_NoActionBar_MinWidth" since="11" />
+		<field name="Theme_Holo_Light_NoActionBar" since="13" />
+		<field name="Theme_Holo_Light_NoActionBar_Fullscreen" since="13" />
+		<field name="Theme_Holo_Light_Panel" since="11" />
+		<field name="Theme_Holo_NoActionBar" since="11" />
+		<field name="Theme_Holo_NoActionBar_Fullscreen" since="11" />
+		<field name="Theme_Holo_Panel" since="11" />
+		<field name="Theme_Holo_Wallpaper" since="11" />
+		<field name="Theme_Holo_Wallpaper_NoTitleBar" since="11" />
+		<field name="Theme_InputMethod" since="3" />
+		<field name="Theme_Light" />
+		<field name="Theme_Light_NoTitleBar" />
+		<field name="Theme_Light_NoTitleBar_Fullscreen" />
+		<field name="Theme_Light_Panel" since="3" />
+		<field name="Theme_Light_WallpaperSettings" since="5" />
+		<field name="Theme_NoDisplay" since="3" />
+		<field name="Theme_NoTitleBar" />
+		<field name="Theme_NoTitleBar_Fullscreen" />
+		<field name="Theme_NoTitleBar_OverlayActionModes" since="11" />
+		<field name="Theme_Panel" since="3" />
+		<field name="Theme_Translucent" />
+		<field name="Theme_Translucent_NoTitleBar" />
+		<field name="Theme_Translucent_NoTitleBar_Fullscreen" />
+		<field name="Theme_Wallpaper" since="5" />
+		<field name="Theme_WallpaperSettings" since="5" />
+		<field name="Theme_Wallpaper_NoTitleBar" since="5" />
+		<field name="Theme_Wallpaper_NoTitleBar_Fullscreen" since="5" />
+		<field name="Theme_WithActionBar" since="11" />
+		<field name="Widget" />
+		<field name="Widget_AbsListView" />
+		<field name="Widget_ActionBar" since="11" />
+		<field name="Widget_ActionBar_TabBar" since="13" />
+		<field name="Widget_ActionBar_TabText" since="13" />
+		<field name="Widget_ActionBar_TabView" since="13" />
+		<field name="Widget_ActionButton" since="11" />
+		<field name="Widget_ActionButton_CloseMode" since="11" />
+		<field name="Widget_ActionButton_Overflow" since="11" />
+		<field name="Widget_AutoCompleteTextView" />
+		<field name="Widget_Button" />
+		<field name="Widget_Button_Inset" />
+		<field name="Widget_Button_Small" />
+		<field name="Widget_Button_Toggle" />
+		<field name="Widget_CalendarView" since="11" />
+		<field name="Widget_CompoundButton" />
+		<field name="Widget_CompoundButton_CheckBox" />
+		<field name="Widget_CompoundButton_RadioButton" />
+		<field name="Widget_CompoundButton_Star" />
+		<field name="Widget_DatePicker" since="11" />
+		<field name="Widget_DeviceDefault" since="14" />
+		<field name="Widget_DeviceDefault_ActionBar" since="14" />
+		<field name="Widget_DeviceDefault_ActionBar_Solid" since="14" />
+		<field name="Widget_DeviceDefault_ActionBar_TabBar" since="14" />
+		<field name="Widget_DeviceDefault_ActionBar_TabText" since="14" />
+		<field name="Widget_DeviceDefault_ActionBar_TabView" since="14" />
+		<field name="Widget_DeviceDefault_ActionButton" since="14" />
+		<field name="Widget_DeviceDefault_ActionButton_CloseMode" since="14" />
+		<field name="Widget_DeviceDefault_ActionButton_Overflow" since="14" />
+		<field name="Widget_DeviceDefault_ActionButton_TextButton" since="14" />
+		<field name="Widget_DeviceDefault_ActionMode" since="14" />
+		<field name="Widget_DeviceDefault_AutoCompleteTextView" since="14" />
+		<field name="Widget_DeviceDefault_Button" since="14" />
+		<field name="Widget_DeviceDefault_Button_Borderless" since="14" />
+		<field name="Widget_DeviceDefault_Button_Borderless_Small" since="14" />
+		<field name="Widget_DeviceDefault_Button_Inset" since="14" />
+		<field name="Widget_DeviceDefault_Button_Small" since="14" />
+		<field name="Widget_DeviceDefault_Button_Toggle" since="14" />
+		<field name="Widget_DeviceDefault_CalendarView" since="14" />
+		<field name="Widget_DeviceDefault_CompoundButton_CheckBox" since="14" />
+		<field name="Widget_DeviceDefault_CompoundButton_RadioButton" since="14" />
+		<field name="Widget_DeviceDefault_CompoundButton_Star" since="14" />
+		<field name="Widget_DeviceDefault_DatePicker" since="14" />
+		<field name="Widget_DeviceDefault_DropDownItem" since="14" />
+		<field name="Widget_DeviceDefault_DropDownItem_Spinner" since="14" />
+		<field name="Widget_DeviceDefault_EditText" since="14" />
+		<field name="Widget_DeviceDefault_ExpandableListView" since="14" />
+		<field name="Widget_DeviceDefault_GridView" since="14" />
+		<field name="Widget_DeviceDefault_HorizontalScrollView" since="14" />
+		<field name="Widget_DeviceDefault_ImageButton" since="14" />
+		<field name="Widget_DeviceDefault_Light" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_Solid" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_Solid_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_TabBar" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_TabBar_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_TabText" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_TabText_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_TabView" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionBar_TabView_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionButton" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionButton_CloseMode" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionButton_Overflow" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionMode" since="14" />
+		<field name="Widget_DeviceDefault_Light_ActionMode_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_AutoCompleteTextView" since="14" />
+		<field name="Widget_DeviceDefault_Light_Button" since="14" />
+		<field name="Widget_DeviceDefault_Light_Button_Borderless_Small" since="14" />
+		<field name="Widget_DeviceDefault_Light_Button_Inset" since="14" />
+		<field name="Widget_DeviceDefault_Light_Button_Small" since="14" />
+		<field name="Widget_DeviceDefault_Light_Button_Toggle" since="14" />
+		<field name="Widget_DeviceDefault_Light_CalendarView" since="14" />
+		<field name="Widget_DeviceDefault_Light_CompoundButton_CheckBox" since="14" />
+		<field name="Widget_DeviceDefault_Light_CompoundButton_RadioButton" since="14" />
+		<field name="Widget_DeviceDefault_Light_CompoundButton_Star" since="14" />
+		<field name="Widget_DeviceDefault_Light_DropDownItem" since="14" />
+		<field name="Widget_DeviceDefault_Light_DropDownItem_Spinner" since="14" />
+		<field name="Widget_DeviceDefault_Light_EditText" since="14" />
+		<field name="Widget_DeviceDefault_Light_ExpandableListView" since="14" />
+		<field name="Widget_DeviceDefault_Light_GridView" since="14" />
+		<field name="Widget_DeviceDefault_Light_HorizontalScrollView" since="14" />
+		<field name="Widget_DeviceDefault_Light_ImageButton" since="14" />
+		<field name="Widget_DeviceDefault_Light_ListPopupWindow" since="14" />
+		<field name="Widget_DeviceDefault_Light_ListView" since="14" />
+		<field name="Widget_DeviceDefault_Light_ListView_DropDown" since="14" />
+		<field name="Widget_DeviceDefault_Light_PopupMenu" since="14" />
+		<field name="Widget_DeviceDefault_Light_PopupWindow" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Horizontal" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Large" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Large_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Small" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Small_Inverse" since="14" />
+		<field name="Widget_DeviceDefault_Light_ProgressBar_Small_Title" since="14" />
+		<field name="Widget_DeviceDefault_Light_RatingBar" since="14" />
+		<field name="Widget_DeviceDefault_Light_RatingBar_Indicator" since="14" />
+		<field name="Widget_DeviceDefault_Light_RatingBar_Small" since="14" />
+		<field name="Widget_DeviceDefault_Light_ScrollView" since="14" />
+		<field name="Widget_DeviceDefault_Light_SeekBar" since="14" />
+		<field name="Widget_DeviceDefault_Light_Spinner" since="14" />
+		<field name="Widget_DeviceDefault_Light_Tab" since="14" />
+		<field name="Widget_DeviceDefault_Light_TabWidget" since="14" />
+		<field name="Widget_DeviceDefault_Light_TextView" since="14" />
+		<field name="Widget_DeviceDefault_Light_TextView_SpinnerItem" since="14" />
+		<field name="Widget_DeviceDefault_Light_WebTextView" since="14" />
+		<field name="Widget_DeviceDefault_Light_WebView" since="14" />
+		<field name="Widget_DeviceDefault_ListPopupWindow" since="14" />
+		<field name="Widget_DeviceDefault_ListView" since="14" />
+		<field name="Widget_DeviceDefault_ListView_DropDown" since="14" />
+		<field name="Widget_DeviceDefault_PopupMenu" since="14" />
+		<field name="Widget_DeviceDefault_PopupWindow" since="14" />
+		<field name="Widget_DeviceDefault_ProgressBar" since="14" />
+		<field name="Widget_DeviceDefault_ProgressBar_Horizontal" since="14" />
+		<field name="Widget_DeviceDefault_ProgressBar_Large" since="14" />
+		<field name="Widget_DeviceDefault_ProgressBar_Small" since="14" />
+		<field name="Widget_DeviceDefault_ProgressBar_Small_Title" since="14" />
+		<field name="Widget_DeviceDefault_RatingBar" since="14" />
+		<field name="Widget_DeviceDefault_RatingBar_Indicator" since="14" />
+		<field name="Widget_DeviceDefault_RatingBar_Small" since="14" />
+		<field name="Widget_DeviceDefault_ScrollView" since="14" />
+		<field name="Widget_DeviceDefault_SeekBar" since="14" />
+		<field name="Widget_DeviceDefault_Spinner" since="14" />
+		<field name="Widget_DeviceDefault_Tab" since="14" />
+		<field name="Widget_DeviceDefault_TabWidget" since="14" />
+		<field name="Widget_DeviceDefault_TextView" since="14" />
+		<field name="Widget_DeviceDefault_TextView_SpinnerItem" since="14" />
+		<field name="Widget_DeviceDefault_WebTextView" since="14" />
+		<field name="Widget_DeviceDefault_WebView" since="14" />
+		<field name="Widget_DropDownItem" />
+		<field name="Widget_DropDownItem_Spinner" />
+		<field name="Widget_EditText" />
+		<field name="Widget_ExpandableListView" />
+		<field name="Widget_FragmentBreadCrumbs" since="11" />
+		<field name="Widget_Gallery" />
+		<field name="Widget_GridView" />
+		<field name="Widget_Holo" since="11" />
+		<field name="Widget_Holo_ActionBar" since="11" />
+		<field name="Widget_Holo_ActionBar_Solid" since="14" />
+		<field name="Widget_Holo_ActionBar_TabBar" since="13" />
+		<field name="Widget_Holo_ActionBar_TabText" since="13" />
+		<field name="Widget_Holo_ActionBar_TabView" since="13" />
+		<field name="Widget_Holo_ActionButton" since="11" />
+		<field name="Widget_Holo_ActionButton_CloseMode" since="11" />
+		<field name="Widget_Holo_ActionButton_Overflow" since="11" />
+		<field name="Widget_Holo_ActionButton_TextButton" since="11" />
+		<field name="Widget_Holo_ActionMode" since="11" />
+		<field name="Widget_Holo_AutoCompleteTextView" since="11" />
+		<field name="Widget_Holo_Button" since="11" />
+		<field name="Widget_Holo_Button_Borderless" since="11" />
+		<field name="Widget_Holo_Button_Borderless_Small" since="14" />
+		<field name="Widget_Holo_Button_Inset" since="11" />
+		<field name="Widget_Holo_Button_Small" since="11" />
+		<field name="Widget_Holo_Button_Toggle" since="11" />
+		<field name="Widget_Holo_CalendarView" since="11" />
+		<field name="Widget_Holo_CompoundButton_CheckBox" since="11" />
+		<field name="Widget_Holo_CompoundButton_RadioButton" since="11" />
+		<field name="Widget_Holo_CompoundButton_Star" since="11" />
+		<field name="Widget_Holo_DatePicker" since="11" />
+		<field name="Widget_Holo_DropDownItem" since="11" />
+		<field name="Widget_Holo_DropDownItem_Spinner" since="11" />
+		<field name="Widget_Holo_EditText" since="11" />
+		<field name="Widget_Holo_ExpandableListView" since="11" />
+		<field name="Widget_Holo_GridView" since="11" />
+		<field name="Widget_Holo_HorizontalScrollView" since="11" />
+		<field name="Widget_Holo_ImageButton" since="11" />
+		<field name="Widget_Holo_Light" since="11" />
+		<field name="Widget_Holo_Light_ActionBar" since="11" />
+		<field name="Widget_Holo_Light_ActionBar_Solid" since="14" />
+		<field name="Widget_Holo_Light_ActionBar_Solid_Inverse" since="14" />
+		<field name="Widget_Holo_Light_ActionBar_TabBar" since="13" />
+		<field name="Widget_Holo_Light_ActionBar_TabBar_Inverse" since="14" />
+		<field name="Widget_Holo_Light_ActionBar_TabText" since="13" />
+		<field name="Widget_Holo_Light_ActionBar_TabText_Inverse" since="14" />
+		<field name="Widget_Holo_Light_ActionBar_TabView" since="13" />
+		<field name="Widget_Holo_Light_ActionBar_TabView_Inverse" since="14" />
+		<field name="Widget_Holo_Light_ActionButton" since="11" />
+		<field name="Widget_Holo_Light_ActionButton_CloseMode" since="11" />
+		<field name="Widget_Holo_Light_ActionButton_Overflow" since="11" />
+		<field name="Widget_Holo_Light_ActionMode" since="11" />
+		<field name="Widget_Holo_Light_ActionMode_Inverse" since="14" />
+		<field name="Widget_Holo_Light_AutoCompleteTextView" since="11" />
+		<field name="Widget_Holo_Light_Button" since="11" />
+		<field name="Widget_Holo_Light_Button_Borderless_Small" since="14" />
+		<field name="Widget_Holo_Light_Button_Inset" since="11" />
+		<field name="Widget_Holo_Light_Button_Small" since="11" />
+		<field name="Widget_Holo_Light_Button_Toggle" since="11" />
+		<field name="Widget_Holo_Light_CalendarView" since="11" />
+		<field name="Widget_Holo_Light_CompoundButton_CheckBox" since="11" />
+		<field name="Widget_Holo_Light_CompoundButton_RadioButton" since="11" />
+		<field name="Widget_Holo_Light_CompoundButton_Star" since="11" />
+		<field name="Widget_Holo_Light_DropDownItem" since="11" />
+		<field name="Widget_Holo_Light_DropDownItem_Spinner" since="11" />
+		<field name="Widget_Holo_Light_EditText" since="11" />
+		<field name="Widget_Holo_Light_ExpandableListView" since="11" />
+		<field name="Widget_Holo_Light_GridView" since="11" />
+		<field name="Widget_Holo_Light_HorizontalScrollView" since="11" />
+		<field name="Widget_Holo_Light_ImageButton" since="11" />
+		<field name="Widget_Holo_Light_ListPopupWindow" since="11" />
+		<field name="Widget_Holo_Light_ListView" since="11" />
+		<field name="Widget_Holo_Light_ListView_DropDown" since="11" />
+		<field name="Widget_Holo_Light_PopupMenu" since="11" />
+		<field name="Widget_Holo_Light_PopupWindow" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Horizontal" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Inverse" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Large" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Large_Inverse" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Small" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Small_Inverse" since="11" />
+		<field name="Widget_Holo_Light_ProgressBar_Small_Title" since="11" />
+		<field name="Widget_Holo_Light_RatingBar" since="11" />
+		<field name="Widget_Holo_Light_RatingBar_Indicator" since="11" />
+		<field name="Widget_Holo_Light_RatingBar_Small" since="11" />
+		<field name="Widget_Holo_Light_ScrollView" since="11" />
+		<field name="Widget_Holo_Light_SeekBar" since="11" />
+		<field name="Widget_Holo_Light_Spinner" since="11" />
+		<field name="Widget_Holo_Light_Tab" since="11" />
+		<field name="Widget_Holo_Light_TabWidget" since="11" />
+		<field name="Widget_Holo_Light_TextView" since="11" />
+		<field name="Widget_Holo_Light_TextView_SpinnerItem" since="11" />
+		<field name="Widget_Holo_Light_WebTextView" since="11" />
+		<field name="Widget_Holo_Light_WebView" since="11" />
+		<field name="Widget_Holo_ListPopupWindow" since="11" />
+		<field name="Widget_Holo_ListView" since="11" />
+		<field name="Widget_Holo_ListView_DropDown" since="11" />
+		<field name="Widget_Holo_PopupMenu" since="11" />
+		<field name="Widget_Holo_PopupWindow" since="11" />
+		<field name="Widget_Holo_ProgressBar" since="11" />
+		<field name="Widget_Holo_ProgressBar_Horizontal" since="11" />
+		<field name="Widget_Holo_ProgressBar_Large" since="11" />
+		<field name="Widget_Holo_ProgressBar_Small" since="11" />
+		<field name="Widget_Holo_ProgressBar_Small_Title" since="11" />
+		<field name="Widget_Holo_RatingBar" since="11" />
+		<field name="Widget_Holo_RatingBar_Indicator" since="11" />
+		<field name="Widget_Holo_RatingBar_Small" since="11" />
+		<field name="Widget_Holo_ScrollView" since="11" />
+		<field name="Widget_Holo_SeekBar" since="11" />
+		<field name="Widget_Holo_Spinner" since="11" />
+		<field name="Widget_Holo_Tab" since="11" />
+		<field name="Widget_Holo_TabWidget" since="11" />
+		<field name="Widget_Holo_TextView" since="11" />
+		<field name="Widget_Holo_TextView_SpinnerItem" since="11" />
+		<field name="Widget_Holo_WebTextView" since="11" />
+		<field name="Widget_Holo_WebView" since="11" />
+		<field name="Widget_ImageButton" />
+		<field name="Widget_ImageWell" />
+		<field name="Widget_KeyboardView" since="3" />
+		<field name="Widget_ListPopupWindow" since="11" />
+		<field name="Widget_ListView" />
+		<field name="Widget_ListView_DropDown" />
+		<field name="Widget_ListView_Menu" />
+		<field name="Widget_ListView_White" />
+		<field name="Widget_PopupMenu" since="11" />
+		<field name="Widget_PopupWindow" />
+		<field name="Widget_ProgressBar" />
+		<field name="Widget_ProgressBar_Horizontal" />
+		<field name="Widget_ProgressBar_Inverse" since="4" />
+		<field name="Widget_ProgressBar_Large" />
+		<field name="Widget_ProgressBar_Large_Inverse" since="4" />
+		<field name="Widget_ProgressBar_Small" />
+		<field name="Widget_ProgressBar_Small_Inverse" since="4" />
+		<field name="Widget_RatingBar" />
+		<field name="Widget_ScrollView" />
+		<field name="Widget_SeekBar" />
+		<field name="Widget_Spinner" />
+		<field name="Widget_Spinner_DropDown" since="11" />
+		<field name="Widget_TabWidget" />
+		<field name="Widget_TextView" />
+		<field name="Widget_TextView_PopupMenu" />
+		<field name="Widget_TextView_SpinnerItem" />
+		<field name="Widget_WebView" />
+	</class>
+	<class name="android/R$xml" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/accessibilityservice/AccessibilityService" since="4">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="onAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onInterrupt()V" />
+		<method name="onServiceConnected()V" />
+		<method name="setServiceInfo(Landroid/accessibilityservice/AccessibilityServiceInfo;)V" />
+		<field name="SERVICE_INTERFACE" />
+		<field name="SERVICE_META_DATA" since="14" />
+	</class>
+	<class name="android/accessibilityservice/AccessibilityServiceInfo" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="feedbackTypeToString(I)Ljava/lang/String;" since="14" />
+		<method name="flagToString(I)Ljava/lang/String;" since="14" />
+		<method name="getCanRetrieveWindowContent()Z" since="14" />
+		<method name="getDescription()Ljava/lang/String;" since="14" />
+		<method name="getId()Ljava/lang/String;" since="14" />
+		<method name="getResolveInfo()Landroid/content/pm/ResolveInfo;" since="14" />
+		<method name="getSettingsActivityName()Ljava/lang/String;" since="14" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="DEFAULT" />
+		<field name="FEEDBACK_ALL_MASK" since="14" />
+		<field name="FEEDBACK_AUDIBLE" />
+		<field name="FEEDBACK_GENERIC" />
+		<field name="FEEDBACK_HAPTIC" />
+		<field name="FEEDBACK_SPOKEN" />
+		<field name="FEEDBACK_VISUAL" />
+		<field name="eventTypes" />
+		<field name="feedbackType" />
+		<field name="flags" />
+		<field name="notificationTimeout" />
+		<field name="packageNames" />
+	</class>
+	<class name="android/accounts/AbstractAccountAuthenticator" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="addAccount(Landroid/accounts/AccountAuthenticatorResponse;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="confirmCredentials(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="editProperties(Landroid/accounts/AccountAuthenticatorResponse;Ljava/lang/String;)Landroid/os/Bundle;" />
+		<method name="getAccountRemovalAllowed(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;)Landroid/os/Bundle;" />
+		<method name="getAuthToken(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="getAuthTokenLabel(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getIBinder()Landroid/os/IBinder;" />
+		<method name="hasFeatures(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;[Ljava/lang/String;)Landroid/os/Bundle;" />
+		<method name="updateCredentials(Landroid/accounts/AccountAuthenticatorResponse;Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" />
+	</class>
+	<class name="android/accounts/Account" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="name" />
+		<field name="type" />
+	</class>
+	<class name="android/accounts/AccountAuthenticatorActivity" since="5">
+		<extends name="android/app/Activity" />
+		<method name="&lt;init>()V" />
+		<method name="setAccountAuthenticatorResult(Landroid/os/Bundle;)V" />
+	</class>
+	<class name="android/accounts/AccountAuthenticatorResponse" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="describeContents()I" />
+		<method name="onError(ILjava/lang/String;)V" />
+		<method name="onRequestContinued()V" />
+		<method name="onResult(Landroid/os/Bundle;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/accounts/AccountManager" since="5">
+		<extends name="java/lang/Object" />
+		<method name="addAccount(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="addAccountExplicitly(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="addOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;Landroid/os/Handler;Z)V" />
+		<method name="blockingGetAuthToken(Landroid/accounts/Account;Ljava/lang/String;Z)Ljava/lang/String;" />
+		<method name="clearPassword(Landroid/accounts/Account;)V" />
+		<method name="confirmCredentials(Landroid/accounts/Account;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="editProperties(Ljava/lang/String;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="get(Landroid/content/Context;)Landroid/accounts/AccountManager;" />
+		<method name="getAccounts()[Landroid/accounts/Account;" />
+		<method name="getAccountsByType(Ljava/lang/String;)[Landroid/accounts/Account;" />
+		<method name="getAccountsByTypeAndFeatures(Ljava/lang/String;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" since="14" />
+		<method name="getAuthToken(Landroid/accounts/Account;Ljava/lang/String;ZLandroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="getAuthTokenByFeatures(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/app/Activity;Landroid/os/Bundle;Landroid/os/Bundle;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="getAuthenticatorTypes()[Landroid/accounts/AuthenticatorDescription;" />
+		<method name="getPassword(Landroid/accounts/Account;)Ljava/lang/String;" />
+		<method name="getUserData(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="hasFeatures(Landroid/accounts/Account;[Ljava/lang/String;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" since="8" />
+		<method name="invalidateAuthToken(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="newChooseAccountIntent(Landroid/accounts/Account;Ljava/util/ArrayList;[Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent;" since="14" />
+		<method name="peekAuthToken(Landroid/accounts/Account;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="removeAccount(Landroid/accounts/Account;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<method name="removeOnAccountsUpdatedListener(Landroid/accounts/OnAccountsUpdateListener;)V" />
+		<method name="setAuthToken(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setPassword(Landroid/accounts/Account;Ljava/lang/String;)V" />
+		<method name="setUserData(Landroid/accounts/Account;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="updateCredentials(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Activity;Landroid/accounts/AccountManagerCallback;Landroid/os/Handler;)Landroid/accounts/AccountManagerFuture;" />
+		<field name="ACTION_AUTHENTICATOR_INTENT" />
+		<field name="AUTHENTICATOR_ATTRIBUTES_NAME" />
+		<field name="AUTHENTICATOR_META_DATA_NAME" />
+		<field name="ERROR_CODE_BAD_ARGUMENTS" />
+		<field name="ERROR_CODE_BAD_REQUEST" />
+		<field name="ERROR_CODE_CANCELED" />
+		<field name="ERROR_CODE_INVALID_RESPONSE" />
+		<field name="ERROR_CODE_NETWORK_ERROR" />
+		<field name="ERROR_CODE_REMOTE_EXCEPTION" />
+		<field name="ERROR_CODE_UNSUPPORTED_OPERATION" />
+		<field name="KEY_ACCOUNTS" />
+		<field name="KEY_ACCOUNT_AUTHENTICATOR_RESPONSE" />
+		<field name="KEY_ACCOUNT_MANAGER_RESPONSE" />
+		<field name="KEY_ACCOUNT_NAME" />
+		<field name="KEY_ACCOUNT_TYPE" />
+		<field name="KEY_ANDROID_PACKAGE_NAME" since="14" />
+		<field name="KEY_AUTHENTICATOR_TYPES" />
+		<field name="KEY_AUTHTOKEN" />
+		<field name="KEY_AUTH_FAILED_MESSAGE" />
+		<field name="KEY_AUTH_TOKEN_LABEL" />
+		<field name="KEY_BOOLEAN_RESULT" />
+		<field name="KEY_CALLER_PID" since="11" />
+		<field name="KEY_CALLER_UID" since="11" />
+		<field name="KEY_ERROR_CODE" />
+		<field name="KEY_ERROR_MESSAGE" />
+		<field name="KEY_INTENT" />
+		<field name="KEY_PASSWORD" />
+		<field name="KEY_USERDATA" />
+		<field name="LOGIN_ACCOUNTS_CHANGED_ACTION" />
+	</class>
+	<class name="android/accounts/AccountManagerCallback" since="5">
+		<method name="run(Landroid/accounts/AccountManagerFuture;)V" />
+	</class>
+	<class name="android/accounts/AccountManagerFuture" since="5">
+		<method name="cancel(Z)Z" />
+		<method name="getResult()LV;" />
+		<method name="getResult(JLjava/util/concurrent/TimeUnit;)LV;" />
+		<method name="isCancelled()Z" />
+		<method name="isDone()Z" />
+	</class>
+	<class name="android/accounts/AccountsException" since="5">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/accounts/AuthenticatorDescription" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;IIII)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;IIIIZ)V" since="11" />
+		<method name="describeContents()I" />
+		<method name="newKey(Ljava/lang/String;)Landroid/accounts/AuthenticatorDescription;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="accountPreferencesId" />
+		<field name="customTokens" since="11" />
+		<field name="iconId" />
+		<field name="labelId" />
+		<field name="packageName" />
+		<field name="smallIconId" />
+		<field name="type" />
+	</class>
+	<class name="android/accounts/AuthenticatorException" since="5">
+		<extends name="android/accounts/AccountsException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/accounts/NetworkErrorException" since="5">
+		<extends name="android/accounts/AccountsException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/accounts/OnAccountsUpdateListener" since="5">
+		<method name="onAccountsUpdated([Landroid/accounts/Account;)V" />
+	</class>
+	<class name="android/accounts/OperationCanceledException" since="5">
+		<extends name="android/accounts/AccountsException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/animation/Animator" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="addListener(Landroid/animation/Animator$AnimatorListener;)V" />
+		<method name="cancel()V" />
+		<method name="clone()Landroid/animation/Animator;" />
+		<method name="end()V" />
+		<method name="getDuration()J" />
+		<method name="getListeners()Ljava/util/ArrayList;" />
+		<method name="getStartDelay()J" />
+		<method name="isRunning()Z" />
+		<method name="isStarted()Z" since="14" />
+		<method name="removeAllListeners()V" />
+		<method name="removeListener(Landroid/animation/Animator$AnimatorListener;)V" />
+		<method name="setDuration(J)Landroid/animation/Animator;" />
+		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)V" />
+		<method name="setStartDelay(J)V" />
+		<method name="setTarget(Ljava/lang/Object;)V" />
+		<method name="setupEndValues()V" />
+		<method name="setupStartValues()V" />
+		<method name="start()V" />
+	</class>
+	<class name="android/animation/Animator$AnimatorListener" since="11">
+		<method name="onAnimationCancel(Landroid/animation/Animator;)V" />
+		<method name="onAnimationEnd(Landroid/animation/Animator;)V" />
+		<method name="onAnimationRepeat(Landroid/animation/Animator;)V" />
+		<method name="onAnimationStart(Landroid/animation/Animator;)V" />
+	</class>
+	<class name="android/animation/AnimatorInflater" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="loadAnimator(Landroid/content/Context;I)Landroid/animation/Animator;" />
+	</class>
+	<class name="android/animation/AnimatorListenerAdapter" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/animation/Animator$AnimatorListener" />
+		<method name="&lt;init>()V" />
+		<method name="onAnimationCancel(Landroid/animation/Animator;)V" />
+		<method name="onAnimationEnd(Landroid/animation/Animator;)V" />
+		<method name="onAnimationRepeat(Landroid/animation/Animator;)V" />
+		<method name="onAnimationStart(Landroid/animation/Animator;)V" />
+	</class>
+	<class name="android/animation/AnimatorSet" since="11">
+		<extends name="android/animation/Animator" />
+		<method name="&lt;init>()V" />
+		<method name="getChildAnimations()Ljava/util/ArrayList;" />
+		<method name="getDuration()J" />
+		<method name="getStartDelay()J" />
+		<method name="isRunning()Z" />
+		<method name="play(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
+		<method name="playSequentially(Ljava/util/List;)V" />
+		<method name="playSequentially([Landroid/animation/Animator;)V" />
+		<method name="playTogether(Ljava/util/Collection;)V" />
+		<method name="playTogether([Landroid/animation/Animator;)V" />
+		<method name="setDuration(J)Landroid/animation/AnimatorSet;" />
+		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)V" />
+		<method name="setStartDelay(J)V" />
+	</class>
+	<class name="android/animation/AnimatorSet$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="after(J)Landroid/animation/AnimatorSet$Builder;" />
+		<method name="after(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
+		<method name="before(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
+		<method name="with(Landroid/animation/Animator;)Landroid/animation/AnimatorSet$Builder;" />
+	</class>
+	<class name="android/animation/ArgbEvaluator" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/animation/TypeEvaluator" />
+		<method name="&lt;init>()V" />
+		<method name="evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
+	</class>
+	<class name="android/animation/FloatEvaluator" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/animation/TypeEvaluator" />
+		<method name="&lt;init>()V" />
+		<method name="evaluate(FLjava/lang/Number;Ljava/lang/Number;)Ljava/lang/Float;" since="14" />
+		<method name="evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
+	</class>
+	<class name="android/animation/IntEvaluator" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/animation/TypeEvaluator" />
+		<method name="&lt;init>()V" />
+		<method name="evaluate(FLjava/lang/Integer;Ljava/lang/Integer;)Ljava/lang/Integer;" since="14" />
+		<method name="evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
+	</class>
+	<class name="android/animation/Keyframe" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Landroid/animation/Keyframe;" />
+		<method name="getFraction()F" />
+		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" />
+		<method name="getType()Ljava/lang/Class;" />
+		<method name="getValue()Ljava/lang/Object;" />
+		<method name="hasValue()Z" />
+		<method name="ofFloat(F)Landroid/animation/Keyframe;" />
+		<method name="ofFloat(FF)Landroid/animation/Keyframe;" />
+		<method name="ofInt(F)Landroid/animation/Keyframe;" />
+		<method name="ofInt(FI)Landroid/animation/Keyframe;" />
+		<method name="ofObject(F)Landroid/animation/Keyframe;" />
+		<method name="ofObject(FLjava/lang/Object;)Landroid/animation/Keyframe;" />
+		<method name="setFraction(F)V" />
+		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)V" />
+		<method name="setValue(Ljava/lang/Object;)V" />
+	</class>
+	<class name="android/animation/LayoutTransition" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
+		<method name="addTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V" />
+		<method name="getAnimator(I)Landroid/animation/Animator;" />
+		<method name="getDuration(I)J" />
+		<method name="getInterpolator(I)Landroid/animation/TimeInterpolator;" />
+		<method name="getStagger(I)J" />
+		<method name="getStartDelay(I)J" />
+		<method name="getTransitionListeners()Ljava/util/List;" />
+		<method name="hideChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
+		<method name="isChangingLayout()Z" />
+		<method name="isRunning()Z" />
+		<method name="removeChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
+		<method name="removeTransitionListener(Landroid/animation/LayoutTransition$TransitionListener;)V" />
+		<method name="setAnimateParentHierarchy(Z)V" since="14" />
+		<method name="setAnimator(ILandroid/animation/Animator;)V" />
+		<method name="setDuration(IJ)V" />
+		<method name="setDuration(J)V" />
+		<method name="setInterpolator(ILandroid/animation/TimeInterpolator;)V" />
+		<method name="setStagger(IJ)V" />
+		<method name="setStartDelay(IJ)V" />
+		<method name="showChild(Landroid/view/ViewGroup;Landroid/view/View;)V" />
+		<field name="APPEARING" />
+		<field name="CHANGE_APPEARING" />
+		<field name="CHANGE_DISAPPEARING" />
+		<field name="DISAPPEARING" />
+	</class>
+	<class name="android/animation/LayoutTransition$TransitionListener" since="11">
+		<method name="endTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V" />
+		<method name="startTransition(Landroid/animation/LayoutTransition;Landroid/view/ViewGroup;Landroid/view/View;I)V" />
+	</class>
+	<class name="android/animation/ObjectAnimator" since="11">
+		<extends name="android/animation/ValueAnimator" />
+		<method name="&lt;init>()V" />
+		<method name="getPropertyName()Ljava/lang/String;" />
+		<method name="getTarget()Ljava/lang/Object;" />
+		<method name="ofFloat(LT;Landroid/util/Property;[F)Landroid/animation/ObjectAnimator;" since="14" />
+		<method name="ofFloat(Ljava/lang/Object;Ljava/lang/String;[F)Landroid/animation/ObjectAnimator;" />
+		<method name="ofInt(LT;Landroid/util/Property;[I)Landroid/animation/ObjectAnimator;" since="14" />
+		<method name="ofInt(Ljava/lang/Object;Ljava/lang/String;[I)Landroid/animation/ObjectAnimator;" />
+		<method name="ofObject(LT;Landroid/util/Property;Landroid/animation/TypeEvaluator;[LV;)Landroid/animation/ObjectAnimator;" since="14" />
+		<method name="ofObject(Ljava/lang/Object;Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ObjectAnimator;" />
+		<method name="ofPropertyValuesHolder(Ljava/lang/Object;[Landroid/animation/PropertyValuesHolder;)Landroid/animation/ObjectAnimator;" />
+		<method name="setProperty(Landroid/util/Property;)V" since="14" />
+		<method name="setPropertyName(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/animation/PropertyValuesHolder" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Landroid/animation/PropertyValuesHolder;" />
+		<method name="getPropertyName()Ljava/lang/String;" />
+		<method name="ofFloat(Landroid/util/Property;[F)Landroid/animation/PropertyValuesHolder;" since="14" />
+		<method name="ofFloat(Ljava/lang/String;[F)Landroid/animation/PropertyValuesHolder;" />
+		<method name="ofInt(Landroid/util/Property;[I)Landroid/animation/PropertyValuesHolder;" since="14" />
+		<method name="ofInt(Ljava/lang/String;[I)Landroid/animation/PropertyValuesHolder;" />
+		<method name="ofKeyframe(Landroid/util/Property;[Landroid/animation/Keyframe;)Landroid/animation/PropertyValuesHolder;" since="14" />
+		<method name="ofKeyframe(Ljava/lang/String;[Landroid/animation/Keyframe;)Landroid/animation/PropertyValuesHolder;" />
+		<method name="ofObject(Landroid/util/Property;Landroid/animation/TypeEvaluator;[LV;)Landroid/animation/PropertyValuesHolder;" since="14" />
+		<method name="ofObject(Ljava/lang/String;Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/PropertyValuesHolder;" />
+		<method name="setEvaluator(Landroid/animation/TypeEvaluator;)V" />
+		<method name="setFloatValues([F)V" />
+		<method name="setIntValues([I)V" />
+		<method name="setKeyframes([Landroid/animation/Keyframe;)V" />
+		<method name="setObjectValues([Ljava/lang/Object;)V" />
+		<method name="setProperty(Landroid/util/Property;)V" since="14" />
+		<method name="setPropertyName(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/animation/TimeInterpolator" since="11">
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/animation/TypeEvaluator" since="11">
+		<method name="evaluate(FLT;LT;)LT;" since="14" />
+		<method name="evaluate(FLjava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
+	</class>
+	<class name="android/animation/ValueAnimator" since="11">
+		<extends name="android/animation/Animator" />
+		<method name="&lt;init>()V" />
+		<method name="addUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V" />
+		<method name="getAnimatedFraction()F" since="12" />
+		<method name="getAnimatedValue()Ljava/lang/Object;" />
+		<method name="getAnimatedValue(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getCurrentPlayTime()J" />
+		<method name="getDuration()J" />
+		<method name="getFrameDelay()J" />
+		<method name="getInterpolator()Landroid/animation/TimeInterpolator;" />
+		<method name="getRepeatCount()I" />
+		<method name="getRepeatMode()I" />
+		<method name="getStartDelay()J" />
+		<method name="getValues()[Landroid/animation/PropertyValuesHolder;" />
+		<method name="isRunning()Z" />
+		<method name="ofFloat([F)Landroid/animation/ValueAnimator;" />
+		<method name="ofInt([I)Landroid/animation/ValueAnimator;" />
+		<method name="ofObject(Landroid/animation/TypeEvaluator;[Ljava/lang/Object;)Landroid/animation/ValueAnimator;" />
+		<method name="ofPropertyValuesHolder([Landroid/animation/PropertyValuesHolder;)Landroid/animation/ValueAnimator;" />
+		<method name="removeAllUpdateListeners()V" />
+		<method name="removeUpdateListener(Landroid/animation/ValueAnimator$AnimatorUpdateListener;)V" />
+		<method name="reverse()V" />
+		<method name="setCurrentPlayTime(J)V" />
+		<method name="setDuration(J)Landroid/animation/ValueAnimator;" />
+		<method name="setEvaluator(Landroid/animation/TypeEvaluator;)V" />
+		<method name="setFloatValues([F)V" />
+		<method name="setFrameDelay(J)V" />
+		<method name="setIntValues([I)V" />
+		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)V" />
+		<method name="setObjectValues([Ljava/lang/Object;)V" />
+		<method name="setRepeatCount(I)V" />
+		<method name="setRepeatMode(I)V" />
+		<method name="setStartDelay(J)V" />
+		<method name="setValues([Landroid/animation/PropertyValuesHolder;)V" />
+		<field name="INFINITE" />
+		<field name="RESTART" />
+		<field name="REVERSE" />
+	</class>
+	<class name="android/animation/ValueAnimator$AnimatorUpdateListener" since="11">
+		<method name="onAnimationUpdate(Landroid/animation/ValueAnimator;)V" />
+	</class>
+	<class name="android/app/ActionBar" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addOnMenuVisibilityListener(Landroid/app/ActionBar$OnMenuVisibilityListener;)V" />
+		<method name="addTab(Landroid/app/ActionBar$Tab;)V" />
+		<method name="addTab(Landroid/app/ActionBar$Tab;I)V" />
+		<method name="addTab(Landroid/app/ActionBar$Tab;IZ)V" />
+		<method name="addTab(Landroid/app/ActionBar$Tab;Z)V" />
+		<method name="getCustomView()Landroid/view/View;" />
+		<method name="getDisplayOptions()I" />
+		<method name="getHeight()I" />
+		<method name="getNavigationItemCount()I" />
+		<method name="getNavigationMode()I" />
+		<method name="getSelectedNavigationIndex()I" />
+		<method name="getSelectedTab()Landroid/app/ActionBar$Tab;" />
+		<method name="getSubtitle()Ljava/lang/CharSequence;" />
+		<method name="getTabAt(I)Landroid/app/ActionBar$Tab;" />
+		<method name="getTabCount()I" />
+		<method name="getThemedContext()Landroid/content/Context;" since="14" />
+		<method name="getTitle()Ljava/lang/CharSequence;" />
+		<method name="hide()V" />
+		<method name="isShowing()Z" />
+		<method name="newTab()Landroid/app/ActionBar$Tab;" />
+		<method name="removeAllTabs()V" />
+		<method name="removeOnMenuVisibilityListener(Landroid/app/ActionBar$OnMenuVisibilityListener;)V" />
+		<method name="removeTab(Landroid/app/ActionBar$Tab;)V" />
+		<method name="removeTabAt(I)V" />
+		<method name="selectTab(Landroid/app/ActionBar$Tab;)V" />
+		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setCustomView(I)V" />
+		<method name="setCustomView(Landroid/view/View;)V" />
+		<method name="setCustomView(Landroid/view/View;Landroid/app/ActionBar$LayoutParams;)V" />
+		<method name="setDisplayHomeAsUpEnabled(Z)V" />
+		<method name="setDisplayOptions(I)V" />
+		<method name="setDisplayOptions(II)V" />
+		<method name="setDisplayShowCustomEnabled(Z)V" />
+		<method name="setDisplayShowHomeEnabled(Z)V" />
+		<method name="setDisplayShowTitleEnabled(Z)V" />
+		<method name="setDisplayUseLogoEnabled(Z)V" />
+		<method name="setHomeButtonEnabled(Z)V" since="14" />
+		<method name="setIcon(I)V" since="14" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)V" since="14" />
+		<method name="setListNavigationCallbacks(Landroid/widget/SpinnerAdapter;Landroid/app/ActionBar$OnNavigationListener;)V" />
+		<method name="setLogo(I)V" since="14" />
+		<method name="setLogo(Landroid/graphics/drawable/Drawable;)V" since="14" />
+		<method name="setNavigationMode(I)V" />
+		<method name="setSelectedNavigationItem(I)V" />
+		<method name="setSplitBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="14" />
+		<method name="setStackedBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="14" />
+		<method name="setSubtitle(I)V" />
+		<method name="setSubtitle(Ljava/lang/CharSequence;)V" />
+		<method name="setTitle(I)V" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+		<method name="show()V" />
+		<field name="DISPLAY_HOME_AS_UP" />
+		<field name="DISPLAY_SHOW_CUSTOM" />
+		<field name="DISPLAY_SHOW_HOME" />
+		<field name="DISPLAY_SHOW_TITLE" />
+		<field name="DISPLAY_USE_LOGO" />
+		<field name="NAVIGATION_MODE_LIST" />
+		<field name="NAVIGATION_MODE_STANDARD" />
+		<field name="NAVIGATION_MODE_TABS" />
+	</class>
+	<class name="android/app/ActionBar$LayoutParams" since="11">
+		<extends name="android/view/ViewGroup$MarginLayoutParams" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(Landroid/app/ActionBar$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<field name="gravity" />
+	</class>
+	<class name="android/app/ActionBar$OnMenuVisibilityListener" since="11">
+		<method name="onMenuVisibilityChanged(Z)V" />
+	</class>
+	<class name="android/app/ActionBar$OnNavigationListener" since="11">
+		<method name="onNavigationItemSelected(IJ)Z" />
+	</class>
+	<class name="android/app/ActionBar$Tab" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getContentDescription()Ljava/lang/CharSequence;" since="14" />
+		<method name="getCustomView()Landroid/view/View;" />
+		<method name="getIcon()Landroid/graphics/drawable/Drawable;" />
+		<method name="getPosition()I" />
+		<method name="getTag()Ljava/lang/Object;" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="select()V" />
+		<method name="setContentDescription(I)Landroid/app/ActionBar$Tab;" since="14" />
+		<method name="setContentDescription(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" since="14" />
+		<method name="setCustomView(I)Landroid/app/ActionBar$Tab;" />
+		<method name="setCustomView(Landroid/view/View;)Landroid/app/ActionBar$Tab;" />
+		<method name="setIcon(I)Landroid/app/ActionBar$Tab;" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/app/ActionBar$Tab;" />
+		<method name="setTabListener(Landroid/app/ActionBar$TabListener;)Landroid/app/ActionBar$Tab;" />
+		<method name="setTag(Ljava/lang/Object;)Landroid/app/ActionBar$Tab;" />
+		<method name="setText(I)Landroid/app/ActionBar$Tab;" />
+		<method name="setText(Ljava/lang/CharSequence;)Landroid/app/ActionBar$Tab;" />
+		<field name="INVALID_POSITION" />
+	</class>
+	<class name="android/app/ActionBar$TabListener" since="11">
+		<method name="onTabReselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" />
+		<method name="onTabSelected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" />
+		<method name="onTabUnselected(Landroid/app/ActionBar$Tab;Landroid/app/FragmentTransaction;)V" />
+	</class>
+	<class name="android/app/Activity" since="1">
+		<extends name="android/view/ContextThemeWrapper" />
+		<implements name="android/content/ComponentCallbacks" />
+		<implements name="android/view/KeyEvent$Callback" />
+		<implements name="android/view/LayoutInflater$Factory" />
+		<implements name="android/view/View$OnCreateContextMenuListener" />
+		<implements name="android/view/Window$Callback" />
+		<implements name="android/view/LayoutInflater$Factory2" since="11" />
+		<implements name="android/content/ComponentCallbacks2" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="closeContextMenu()V" since="3" />
+		<method name="closeOptionsMenu()V" />
+		<method name="createPendingResult(ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
+		<method name="dismissDialog(I)V" />
+		<method name="dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="dispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" since="11" />
+		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z" since="4" />
+		<method name="dispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="dispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="11" />
+		<method name="findViewById(I)Landroid/view/View;" />
+		<method name="finish()V" />
+		<method name="finishActivity(I)V" />
+		<method name="finishActivityFromChild(Landroid/app/Activity;I)V" />
+		<method name="finishFromChild(Landroid/app/Activity;)V" />
+		<method name="getActionBar()Landroid/app/ActionBar;" since="11" />
+		<method name="getApplication()Landroid/app/Application;" />
+		<method name="getCallingActivity()Landroid/content/ComponentName;" />
+		<method name="getCallingPackage()Ljava/lang/String;" />
+		<method name="getChangingConfigurations()I" />
+		<method name="getComponentName()Landroid/content/ComponentName;" />
+		<method name="getCurrentFocus()Landroid/view/View;" />
+		<method name="getFragmentManager()Landroid/app/FragmentManager;" since="11" />
+		<method name="getInstanceCount()J" />
+		<method name="getIntent()Landroid/content/Intent;" />
+		<method name="getLastNonConfigurationInstance()Ljava/lang/Object;" />
+		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
+		<method name="getLoaderManager()Landroid/app/LoaderManager;" since="11" />
+		<method name="getLocalClassName()Ljava/lang/String;" />
+		<method name="getMenuInflater()Landroid/view/MenuInflater;" />
+		<method name="getParent()Landroid/app/Activity;" />
+		<method name="getPreferences(I)Landroid/content/SharedPreferences;" />
+		<method name="getRequestedOrientation()I" />
+		<method name="getTaskId()I" />
+		<method name="getTitle()Ljava/lang/CharSequence;" />
+		<method name="getTitleColor()I" />
+		<method name="getVolumeControlStream()I" />
+		<method name="getWindow()Landroid/view/Window;" />
+		<method name="getWindowManager()Landroid/view/WindowManager;" />
+		<method name="hasWindowFocus()Z" since="3" />
+		<method name="invalidateOptionsMenu()V" since="11" />
+		<method name="isChangingConfigurations()Z" since="11" />
+		<method name="isChild()Z" />
+		<method name="isFinishing()Z" />
+		<method name="isTaskRoot()Z" />
+		<method name="managedQuery(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="moveTaskToBack(Z)Z" />
+		<method name="onActionModeFinished(Landroid/view/ActionMode;)V" since="11" />
+		<method name="onActionModeStarted(Landroid/view/ActionMode;)V" since="11" />
+		<method name="onActivityResult(IILandroid/content/Intent;)V" />
+		<method name="onAttachFragment(Landroid/app/Fragment;)V" since="11" />
+		<method name="onAttachedToWindow()V" since="5" />
+		<method name="onBackPressed()V" since="5" />
+		<method name="onChildTitleChanged(Landroid/app/Activity;Ljava/lang/CharSequence;)V" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="onContentChanged()V" />
+		<method name="onContextItemSelected(Landroid/view/MenuItem;)Z" />
+		<method name="onContextMenuClosed(Landroid/view/Menu;)V" />
+		<method name="onCreate(Landroid/os/Bundle;)V" />
+		<method name="onCreateContextMenu(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V" />
+		<method name="onCreateDescription()Ljava/lang/CharSequence;" />
+		<method name="onCreateDialog(I)Landroid/app/Dialog;" />
+		<method name="onCreateDialog(ILandroid/os/Bundle;)Landroid/app/Dialog;" since="8" />
+		<method name="onCreateOptionsMenu(Landroid/view/Menu;)Z" />
+		<method name="onCreatePanelMenu(ILandroid/view/Menu;)Z" />
+		<method name="onCreatePanelView(I)Landroid/view/View;" />
+		<method name="onCreateThumbnail(Landroid/graphics/Bitmap;Landroid/graphics/Canvas;)Z" />
+		<method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" since="11" />
+		<method name="onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" />
+		<method name="onDestroy()V" />
+		<method name="onDetachedFromWindow()V" since="5" />
+		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyLongPress(ILandroid/view/KeyEvent;)Z" since="5" />
+		<method name="onKeyMultiple(IILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" since="11" />
+		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
+		<method name="onLowMemory()V" />
+		<method name="onMenuItemSelected(ILandroid/view/MenuItem;)Z" />
+		<method name="onMenuOpened(ILandroid/view/Menu;)Z" />
+		<method name="onNewIntent(Landroid/content/Intent;)V" />
+		<method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" />
+		<method name="onOptionsMenuClosed(Landroid/view/Menu;)V" />
+		<method name="onPanelClosed(ILandroid/view/Menu;)V" />
+		<method name="onPause()V" />
+		<method name="onPostCreate(Landroid/os/Bundle;)V" />
+		<method name="onPostResume()V" />
+		<method name="onPrepareDialog(ILandroid/app/Dialog;)V" />
+		<method name="onPrepareDialog(ILandroid/app/Dialog;Landroid/os/Bundle;)V" since="8" />
+		<method name="onPrepareOptionsMenu(Landroid/view/Menu;)Z" />
+		<method name="onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z" />
+		<method name="onRestart()V" />
+		<method name="onRestoreInstanceState(Landroid/os/Bundle;)V" />
+		<method name="onResume()V" />
+		<method name="onRetainNonConfigurationInstance()Ljava/lang/Object;" />
+		<method name="onSaveInstanceState(Landroid/os/Bundle;)V" />
+		<method name="onSearchRequested()Z" />
+		<method name="onStart()V" />
+		<method name="onStop()V" />
+		<method name="onTitleChanged(Ljava/lang/CharSequence;I)V" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onTrimMemory(I)V" since="14" />
+		<method name="onUserInteraction()V" since="3" />
+		<method name="onUserLeaveHint()V" since="3" />
+		<method name="onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V" />
+		<method name="onWindowFocusChanged(Z)V" />
+		<method name="onWindowStartingActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+		<method name="openContextMenu(Landroid/view/View;)V" />
+		<method name="openOptionsMenu()V" />
+		<method name="overridePendingTransition(II)V" since="5" />
+		<method name="recreate()V" since="11" />
+		<method name="registerForContextMenu(Landroid/view/View;)V" />
+		<method name="removeDialog(I)V" />
+		<method name="requestWindowFeature(I)Z" />
+		<method name="runOnUiThread(Ljava/lang/Runnable;)V" />
+		<method name="setContentView(I)V" />
+		<method name="setContentView(Landroid/view/View;)V" />
+		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="setDefaultKeyMode(I)V" />
+		<method name="setFeatureDrawable(ILandroid/graphics/drawable/Drawable;)V" />
+		<method name="setFeatureDrawableAlpha(II)V" />
+		<method name="setFeatureDrawableResource(II)V" />
+		<method name="setFeatureDrawableUri(ILandroid/net/Uri;)V" />
+		<method name="setFinishOnTouchOutside(Z)V" since="11" />
+		<method name="setIntent(Landroid/content/Intent;)V" />
+		<method name="setPersistent(Z)V" />
+		<method name="setProgress(I)V" />
+		<method name="setProgressBarIndeterminate(Z)V" />
+		<method name="setProgressBarIndeterminateVisibility(Z)V" />
+		<method name="setProgressBarVisibility(Z)V" />
+		<method name="setRequestedOrientation(I)V" />
+		<method name="setResult(I)V" />
+		<method name="setResult(ILandroid/content/Intent;)V" />
+		<method name="setSecondaryProgress(I)V" />
+		<method name="setTitle(I)V" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+		<method name="setTitleColor(I)V" />
+		<method name="setVisible(Z)V" since="3" />
+		<method name="setVolumeControlStream(I)V" />
+		<method name="showDialog(I)V" />
+		<method name="showDialog(ILandroid/os/Bundle;)Z" since="8" />
+		<method name="startActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+		<method name="startActivityForResult(Landroid/content/Intent;I)V" />
+		<method name="startActivityFromChild(Landroid/app/Activity;Landroid/content/Intent;I)V" />
+		<method name="startActivityFromFragment(Landroid/app/Fragment;Landroid/content/Intent;I)V" since="11" />
+		<method name="startActivityIfNeeded(Landroid/content/Intent;I)Z" />
+		<method name="startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;III)V" since="5" />
+		<method name="startIntentSenderFromChild(Landroid/app/Activity;Landroid/content/IntentSender;ILandroid/content/Intent;III)V" since="5" />
+		<method name="startManagingCursor(Landroid/database/Cursor;)V" />
+		<method name="startNextMatchingActivity(Landroid/content/Intent;)Z" />
+		<method name="startSearch(Ljava/lang/String;ZLandroid/os/Bundle;Z)V" />
+		<method name="stopManagingCursor(Landroid/database/Cursor;)V" />
+		<method name="takeKeyEvents(Z)V" />
+		<method name="triggerSearch(Ljava/lang/String;Landroid/os/Bundle;)V" since="5" />
+		<method name="unregisterForContextMenu(Landroid/view/View;)V" />
+		<field name="DEFAULT_KEYS_DIALER" />
+		<field name="DEFAULT_KEYS_DISABLE" />
+		<field name="DEFAULT_KEYS_SEARCH_GLOBAL" />
+		<field name="DEFAULT_KEYS_SEARCH_LOCAL" />
+		<field name="DEFAULT_KEYS_SHORTCUT" />
+		<field name="FOCUSED_STATE_SET" />
+		<field name="RESULT_CANCELED" />
+		<field name="RESULT_FIRST_USER" />
+		<field name="RESULT_OK" />
+	</class>
+	<class name="android/app/ActivityGroup" since="1">
+		<extends name="android/app/Activity" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="getCurrentActivity()Landroid/app/Activity;" />
+		<method name="getLocalActivityManager()Landroid/app/LocalActivityManager;" />
+	</class>
+	<class name="android/app/ActivityManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getDeviceConfigurationInfo()Landroid/content/pm/ConfigurationInfo;" since="3" />
+		<method name="getLargeMemoryClass()I" since="11" />
+		<method name="getLauncherLargeIconDensity()I" since="11" />
+		<method name="getLauncherLargeIconSize()I" since="11" />
+		<method name="getMemoryClass()I" since="5" />
+		<method name="getMemoryInfo(Landroid/app/ActivityManager$MemoryInfo;)V" />
+		<method name="getProcessMemoryInfo([I)[Landroid/os/Debug$MemoryInfo;" since="5" />
+		<method name="getProcessesInErrorState()Ljava/util/List;" />
+		<method name="getRecentTasks(II)Ljava/util/List;" />
+		<method name="getRunningAppProcesses()Ljava/util/List;" since="3" />
+		<method name="getRunningServiceControlPanel(Landroid/content/ComponentName;)Landroid/app/PendingIntent;" since="5" />
+		<method name="getRunningServices(I)Ljava/util/List;" />
+		<method name="getRunningTasks(I)Ljava/util/List;" />
+		<method name="isRunningInTestHarness()Z" since="11" />
+		<method name="isUserAMonkey()Z" since="8" />
+		<method name="killBackgroundProcesses(Ljava/lang/String;)V" since="8" />
+		<method name="moveTaskToFront(II)V" since="11" />
+		<method name="restartPackage(Ljava/lang/String;)V" since="3" />
+		<field name="MOVE_TASK_NO_USER_ACTION" since="12" />
+		<field name="MOVE_TASK_WITH_HOME" since="11" />
+		<field name="RECENT_IGNORE_UNAVAILABLE" since="11" />
+		<field name="RECENT_WITH_EXCLUDED" />
+	</class>
+	<class name="android/app/ActivityManager$MemoryInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="availMem" />
+		<field name="lowMemory" />
+		<field name="threshold" />
+	</class>
+	<class name="android/app/ActivityManager$ProcessErrorStateInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CRASHED" />
+		<field name="CREATOR" />
+		<field name="NOT_RESPONDING" />
+		<field name="NO_ERROR" />
+		<field name="condition" />
+		<field name="crashData" />
+		<field name="longMsg" />
+		<field name="pid" />
+		<field name="processName" />
+		<field name="shortMsg" />
+		<field name="stackTrace" since="8" />
+		<field name="tag" />
+		<field name="uid" />
+	</class>
+	<class name="android/app/ActivityManager$RecentTaskInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="baseIntent" />
+		<field name="description" since="11" />
+		<field name="id" />
+		<field name="origActivity" />
+		<field name="persistentId" since="12" />
+	</class>
+	<class name="android/app/ActivityManager$RunningAppProcessInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;I[Ljava/lang/String;)V" />
+		<method name="describeContents()I" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="IMPORTANCE_BACKGROUND" />
+		<field name="IMPORTANCE_EMPTY" />
+		<field name="IMPORTANCE_FOREGROUND" />
+		<field name="IMPORTANCE_PERCEPTIBLE" since="9" />
+		<field name="IMPORTANCE_SERVICE" />
+		<field name="IMPORTANCE_VISIBLE" />
+		<field name="REASON_PROVIDER_IN_USE" since="5" />
+		<field name="REASON_SERVICE_IN_USE" since="5" />
+		<field name="REASON_UNKNOWN" since="5" />
+		<field name="importance" />
+		<field name="importanceReasonCode" since="5" />
+		<field name="importanceReasonComponent" since="5" />
+		<field name="importanceReasonPid" since="5" />
+		<field name="lru" />
+		<field name="pid" />
+		<field name="pkgList" />
+		<field name="processName" />
+		<field name="uid" since="5" />
+	</class>
+	<class name="android/app/ActivityManager$RunningServiceInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="FLAG_FOREGROUND" since="5" />
+		<field name="FLAG_PERSISTENT_PROCESS" since="5" />
+		<field name="FLAG_STARTED" since="5" />
+		<field name="FLAG_SYSTEM_PROCESS" since="5" />
+		<field name="activeSince" />
+		<field name="clientCount" />
+		<field name="clientLabel" since="5" />
+		<field name="clientPackage" since="5" />
+		<field name="crashCount" />
+		<field name="flags" since="5" />
+		<field name="foreground" />
+		<field name="lastActivityTime" />
+		<field name="pid" />
+		<field name="process" />
+		<field name="restarting" />
+		<field name="service" />
+		<field name="started" />
+		<field name="uid" since="5" />
+	</class>
+	<class name="android/app/ActivityManager$RunningTaskInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="baseActivity" />
+		<field name="description" />
+		<field name="id" />
+		<field name="numActivities" />
+		<field name="numRunning" />
+		<field name="thumbnail" />
+		<field name="topActivity" />
+	</class>
+	<class name="android/app/AlarmManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="cancel(Landroid/app/PendingIntent;)V" />
+		<method name="set(IJLandroid/app/PendingIntent;)V" />
+		<method name="setInexactRepeating(IJJLandroid/app/PendingIntent;)V" since="3" />
+		<method name="setRepeating(IJJLandroid/app/PendingIntent;)V" />
+		<method name="setTime(J)V" since="8" />
+		<method name="setTimeZone(Ljava/lang/String;)V" />
+		<field name="ELAPSED_REALTIME" />
+		<field name="ELAPSED_REALTIME_WAKEUP" />
+		<field name="INTERVAL_DAY" since="3" />
+		<field name="INTERVAL_FIFTEEN_MINUTES" since="3" />
+		<field name="INTERVAL_HALF_DAY" since="3" />
+		<field name="INTERVAL_HALF_HOUR" since="3" />
+		<field name="INTERVAL_HOUR" since="3" />
+		<field name="RTC" />
+		<field name="RTC_WAKEUP" />
+	</class>
+	<class name="android/app/AlertDialog" since="1">
+		<extends name="android/app/Dialog" />
+		<implements name="android/content/DialogInterface" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;ZLandroid/content/DialogInterface$OnCancelListener;)V" />
+		<method name="getButton(I)Landroid/widget/Button;" since="3" />
+		<method name="getListView()Landroid/widget/ListView;" since="3" />
+		<method name="setButton(ILjava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" since="3" />
+		<method name="setButton(ILjava/lang/CharSequence;Landroid/os/Message;)V" since="3" />
+		<method name="setButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" />
+		<method name="setButton(Ljava/lang/CharSequence;Landroid/os/Message;)V" />
+		<method name="setButton2(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" />
+		<method name="setButton2(Ljava/lang/CharSequence;Landroid/os/Message;)V" />
+		<method name="setButton3(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)V" />
+		<method name="setButton3(Ljava/lang/CharSequence;Landroid/os/Message;)V" />
+		<method name="setCustomTitle(Landroid/view/View;)V" />
+		<method name="setIcon(I)V" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setIconAttribute(I)V" since="11" />
+		<method name="setInverseBackgroundForced(Z)V" />
+		<method name="setMessage(Ljava/lang/CharSequence;)V" />
+		<method name="setView(Landroid/view/View;)V" />
+		<method name="setView(Landroid/view/View;IIII)V" since="3" />
+		<field name="THEME_DEVICE_DEFAULT_DARK" since="14" />
+		<field name="THEME_DEVICE_DEFAULT_LIGHT" since="14" />
+		<field name="THEME_HOLO_DARK" since="11" />
+		<field name="THEME_HOLO_LIGHT" since="11" />
+		<field name="THEME_TRADITIONAL" since="11" />
+	</class>
+	<class name="android/app/AlertDialog$Builder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" since="11" />
+		<method name="create()Landroid/app/AlertDialog;" />
+		<method name="getContext()Landroid/content/Context;" since="11" />
+		<method name="setAdapter(Landroid/widget/ListAdapter;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setCancelable(Z)Landroid/app/AlertDialog$Builder;" />
+		<method name="setCursor(Landroid/database/Cursor;Landroid/content/DialogInterface$OnClickListener;Ljava/lang/String;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setCustomTitle(Landroid/view/View;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setIcon(I)Landroid/app/AlertDialog$Builder;" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setIconAttribute(I)Landroid/app/AlertDialog$Builder;" since="11" />
+		<method name="setInverseBackgroundForced(Z)Landroid/app/AlertDialog$Builder;" />
+		<method name="setItems(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setItems([Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setMessage(I)Landroid/app/AlertDialog$Builder;" />
+		<method name="setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setMultiChoiceItems(I[ZLandroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setMultiChoiceItems(Landroid/database/Cursor;Ljava/lang/String;Ljava/lang/String;Landroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setMultiChoiceItems([Ljava/lang/CharSequence;[ZLandroid/content/DialogInterface$OnMultiChoiceClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setNegativeButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setNegativeButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setNeutralButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setNeutralButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setOnKeyListener(Landroid/content/DialogInterface$OnKeyListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setPositiveButton(ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setSingleChoiceItems(IILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setSingleChoiceItems(Landroid/database/Cursor;ILjava/lang/String;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setSingleChoiceItems(Landroid/widget/ListAdapter;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setSingleChoiceItems([Ljava/lang/CharSequence;ILandroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setTitle(I)Landroid/app/AlertDialog$Builder;" />
+		<method name="setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;" />
+		<method name="setView(Landroid/view/View;)Landroid/app/AlertDialog$Builder;" />
+		<method name="show()Landroid/app/AlertDialog;" />
+	</class>
+	<class name="android/app/AliasActivity" since="1">
+		<extends name="android/app/Activity" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/app/Application" since="1">
+		<extends name="android/content/ContextWrapper" />
+		<implements name="android/content/ComponentCallbacks" />
+		<implements name="android/content/ComponentCallbacks2" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="onCreate()V" />
+		<method name="onLowMemory()V" />
+		<method name="onTerminate()V" />
+		<method name="onTrimMemory(I)V" since="14" />
+		<method name="registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V" since="14" />
+		<method name="unregisterActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V" since="14" />
+	</class>
+	<class name="android/app/Application$ActivityLifecycleCallbacks" since="14">
+		<method name="onActivityCreated(Landroid/app/Activity;Landroid/os/Bundle;)V" />
+		<method name="onActivityDestroyed(Landroid/app/Activity;)V" />
+		<method name="onActivityPaused(Landroid/app/Activity;)V" />
+		<method name="onActivityResumed(Landroid/app/Activity;)V" />
+		<method name="onActivitySaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" />
+		<method name="onActivityStarted(Landroid/app/Activity;)V" />
+		<method name="onActivityStopped(Landroid/app/Activity;)V" />
+	</class>
+	<class name="android/app/ApplicationErrorReport" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getErrorReportReceiver(Landroid/content/Context;Ljava/lang/String;I)Landroid/content/ComponentName;" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="TYPE_ANR" />
+		<field name="TYPE_BATTERY" />
+		<field name="TYPE_CRASH" />
+		<field name="TYPE_NONE" />
+		<field name="TYPE_RUNNING_SERVICE" />
+		<field name="anrInfo" />
+		<field name="batteryInfo" />
+		<field name="crashInfo" />
+		<field name="installerPackageName" />
+		<field name="packageName" />
+		<field name="processName" />
+		<field name="runningServiceInfo" />
+		<field name="systemApp" />
+		<field name="time" />
+		<field name="type" />
+	</class>
+	<class name="android/app/ApplicationErrorReport$AnrInfo" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="activity" />
+		<field name="cause" />
+		<field name="info" />
+	</class>
+	<class name="android/app/ApplicationErrorReport$BatteryInfo" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="checkinDetails" />
+		<field name="durationMicros" />
+		<field name="usageDetails" />
+		<field name="usagePercent" />
+	</class>
+	<class name="android/app/ApplicationErrorReport$CrashInfo" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="exceptionClassName" />
+		<field name="exceptionMessage" />
+		<field name="stackTrace" />
+		<field name="throwClassName" />
+		<field name="throwFileName" />
+		<field name="throwLineNumber" />
+		<field name="throwMethodName" />
+	</class>
+	<class name="android/app/ApplicationErrorReport$RunningServiceInfo" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="durationMillis" />
+		<field name="serviceDetails" />
+	</class>
+	<class name="android/app/DatePickerDialog" since="1">
+		<extends name="android/app/AlertDialog" />
+		<implements name="android/widget/DatePicker$OnDateChangedListener" />
+		<implements name="android/content/DialogInterface$OnClickListener" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/app/DatePickerDialog$OnDateSetListener;III)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/app/DatePickerDialog$OnDateSetListener;III)V" />
+		<method name="getDatePicker()Landroid/widget/DatePicker;" since="11" />
+		<method name="onClick(Landroid/content/DialogInterface;I)V" />
+		<method name="onDateChanged(Landroid/widget/DatePicker;III)V" />
+		<method name="updateDate(III)V" />
+	</class>
+	<class name="android/app/DatePickerDialog$OnDateSetListener" since="1">
+		<method name="onDateSet(Landroid/widget/DatePicker;III)V" />
+	</class>
+	<class name="android/app/Dialog" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/content/DialogInterface" />
+		<implements name="android/view/KeyEvent$Callback" />
+		<implements name="android/view/View$OnCreateContextMenuListener" />
+		<implements name="android/view/Window$Callback" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;ZLandroid/content/DialogInterface$OnCancelListener;)V" />
+		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="cancel()V" />
+		<method name="closeOptionsMenu()V" />
+		<method name="dismiss()V" />
+		<method name="dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="dispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" since="11" />
+		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z" since="4" />
+		<method name="dispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="dispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="findViewById(I)Landroid/view/View;" />
+		<method name="getActionBar()Landroid/app/ActionBar;" since="11" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getCurrentFocus()Landroid/view/View;" />
+		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
+		<method name="getOwnerActivity()Landroid/app/Activity;" />
+		<method name="getVolumeControlStream()I" />
+		<method name="getWindow()Landroid/view/Window;" />
+		<method name="hide()V" />
+		<method name="invalidateOptionsMenu()V" since="11" />
+		<method name="isShowing()Z" />
+		<method name="onActionModeFinished(Landroid/view/ActionMode;)V" since="11" />
+		<method name="onActionModeStarted(Landroid/view/ActionMode;)V" since="11" />
+		<method name="onAttachedToWindow()V" since="5" />
+		<method name="onBackPressed()V" since="5" />
+		<method name="onContentChanged()V" />
+		<method name="onContextItemSelected(Landroid/view/MenuItem;)Z" />
+		<method name="onContextMenuClosed(Landroid/view/Menu;)V" />
+		<method name="onCreate(Landroid/os/Bundle;)V" />
+		<method name="onCreateContextMenu(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V" />
+		<method name="onCreateOptionsMenu(Landroid/view/Menu;)Z" />
+		<method name="onCreatePanelMenu(ILandroid/view/Menu;)Z" />
+		<method name="onCreatePanelView(I)Landroid/view/View;" />
+		<method name="onDetachedFromWindow()V" since="5" />
+		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyLongPress(ILandroid/view/KeyEvent;)Z" since="5" />
+		<method name="onKeyMultiple(IILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" since="11" />
+		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
+		<method name="onMenuItemSelected(ILandroid/view/MenuItem;)Z" />
+		<method name="onMenuOpened(ILandroid/view/Menu;)Z" />
+		<method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" />
+		<method name="onOptionsMenuClosed(Landroid/view/Menu;)V" />
+		<method name="onPanelClosed(ILandroid/view/Menu;)V" />
+		<method name="onPrepareOptionsMenu(Landroid/view/Menu;)Z" />
+		<method name="onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z" />
+		<method name="onRestoreInstanceState(Landroid/os/Bundle;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Bundle;" />
+		<method name="onSearchRequested()Z" />
+		<method name="onStart()V" />
+		<method name="onStop()V" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V" />
+		<method name="onWindowFocusChanged(Z)V" />
+		<method name="onWindowStartingActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+		<method name="openContextMenu(Landroid/view/View;)V" />
+		<method name="openOptionsMenu()V" />
+		<method name="registerForContextMenu(Landroid/view/View;)V" />
+		<method name="requestWindowFeature(I)Z" />
+		<method name="setCancelMessage(Landroid/os/Message;)V" />
+		<method name="setCancelable(Z)V" />
+		<method name="setCanceledOnTouchOutside(Z)V" />
+		<method name="setContentView(I)V" />
+		<method name="setContentView(Landroid/view/View;)V" />
+		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="setDismissMessage(Landroid/os/Message;)V" />
+		<method name="setFeatureDrawable(ILandroid/graphics/drawable/Drawable;)V" />
+		<method name="setFeatureDrawableAlpha(II)V" />
+		<method name="setFeatureDrawableResource(II)V" />
+		<method name="setFeatureDrawableUri(ILandroid/net/Uri;)V" />
+		<method name="setOnCancelListener(Landroid/content/DialogInterface$OnCancelListener;)V" />
+		<method name="setOnDismissListener(Landroid/content/DialogInterface$OnDismissListener;)V" />
+		<method name="setOnKeyListener(Landroid/content/DialogInterface$OnKeyListener;)V" />
+		<method name="setOnShowListener(Landroid/content/DialogInterface$OnShowListener;)V" since="8" />
+		<method name="setOwnerActivity(Landroid/app/Activity;)V" />
+		<method name="setTitle(I)V" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+		<method name="setVolumeControlStream(I)V" />
+		<method name="show()V" />
+		<method name="takeKeyEvents(Z)V" />
+		<method name="unregisterForContextMenu(Landroid/view/View;)V" />
+	</class>
+	<class name="android/app/DialogFragment" since="11">
+		<extends name="android/app/Fragment" />
+		<implements name="android/content/DialogInterface$OnCancelListener" />
+		<implements name="android/content/DialogInterface$OnDismissListener" />
+		<method name="&lt;init>()V" />
+		<method name="dismiss()V" />
+		<method name="dismissAllowingStateLoss()V" since="12" />
+		<method name="getDialog()Landroid/app/Dialog;" />
+		<method name="getShowsDialog()Z" />
+		<method name="getTheme()I" />
+		<method name="isCancelable()Z" />
+		<method name="onCancel(Landroid/content/DialogInterface;)V" />
+		<method name="onCreateDialog(Landroid/os/Bundle;)Landroid/app/Dialog;" />
+		<method name="onDismiss(Landroid/content/DialogInterface;)V" />
+		<method name="setCancelable(Z)V" />
+		<method name="setShowsDialog(Z)V" />
+		<method name="setStyle(II)V" />
+		<method name="show(Landroid/app/FragmentManager;Ljava/lang/String;)V" />
+		<method name="show(Landroid/app/FragmentTransaction;Ljava/lang/String;)I" />
+		<field name="STYLE_NORMAL" />
+		<field name="STYLE_NO_FRAME" />
+		<field name="STYLE_NO_INPUT" />
+		<field name="STYLE_NO_TITLE" />
+	</class>
+	<class name="android/app/DownloadManager" since="9">
+		<extends name="java/lang/Object" />
+		<method name="addCompletedDownload(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;Ljava/lang/String;JZ)J" since="12" />
+		<method name="enqueue(Landroid/app/DownloadManager$Request;)J" />
+		<method name="getMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;" since="11" />
+		<method name="getMimeTypeForDownloadedFile(J)Ljava/lang/String;" since="11" />
+		<method name="getRecommendedMaxBytesOverMobile(Landroid/content/Context;)Ljava/lang/Long;" since="11" />
+		<method name="getUriForDownloadedFile(J)Landroid/net/Uri;" since="11" />
+		<method name="openDownloadedFile(J)Landroid/os/ParcelFileDescriptor;" />
+		<method name="query(Landroid/app/DownloadManager$Query;)Landroid/database/Cursor;" />
+		<method name="remove([J)I" />
+		<field name="ACTION_DOWNLOAD_COMPLETE" />
+		<field name="ACTION_NOTIFICATION_CLICKED" />
+		<field name="ACTION_VIEW_DOWNLOADS" />
+		<field name="COLUMN_BYTES_DOWNLOADED_SO_FAR" />
+		<field name="COLUMN_DESCRIPTION" />
+		<field name="COLUMN_ID" />
+		<field name="COLUMN_LAST_MODIFIED_TIMESTAMP" />
+		<field name="COLUMN_LOCAL_FILENAME" since="11" />
+		<field name="COLUMN_LOCAL_URI" />
+		<field name="COLUMN_MEDIAPROVIDER_URI" />
+		<field name="COLUMN_MEDIA_TYPE" />
+		<field name="COLUMN_REASON" />
+		<field name="COLUMN_STATUS" />
+		<field name="COLUMN_TITLE" />
+		<field name="COLUMN_TOTAL_SIZE_BYTES" />
+		<field name="COLUMN_URI" />
+		<field name="ERROR_CANNOT_RESUME" />
+		<field name="ERROR_DEVICE_NOT_FOUND" />
+		<field name="ERROR_FILE_ALREADY_EXISTS" />
+		<field name="ERROR_FILE_ERROR" />
+		<field name="ERROR_HTTP_DATA_ERROR" />
+		<field name="ERROR_INSUFFICIENT_SPACE" />
+		<field name="ERROR_TOO_MANY_REDIRECTS" />
+		<field name="ERROR_UNHANDLED_HTTP_CODE" />
+		<field name="ERROR_UNKNOWN" />
+		<field name="EXTRA_DOWNLOAD_ID" />
+		<field name="EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS" since="11" />
+		<field name="INTENT_EXTRAS_SORT_BY_SIZE" since="12" />
+		<field name="PAUSED_QUEUED_FOR_WIFI" />
+		<field name="PAUSED_UNKNOWN" />
+		<field name="PAUSED_WAITING_FOR_NETWORK" />
+		<field name="PAUSED_WAITING_TO_RETRY" />
+		<field name="STATUS_FAILED" />
+		<field name="STATUS_PAUSED" />
+		<field name="STATUS_PENDING" />
+		<field name="STATUS_RUNNING" />
+		<field name="STATUS_SUCCESSFUL" />
+	</class>
+	<class name="android/app/DownloadManager$Query" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="setFilterById([J)Landroid/app/DownloadManager$Query;" />
+		<method name="setFilterByStatus(I)Landroid/app/DownloadManager$Query;" />
+	</class>
+	<class name="android/app/DownloadManager$Request" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/net/Uri;)V" />
+		<method name="addRequestHeader(Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
+		<method name="allowScanningByMediaScanner()V" since="11" />
+		<method name="setAllowedNetworkTypes(I)Landroid/app/DownloadManager$Request;" />
+		<method name="setAllowedOverRoaming(Z)Landroid/app/DownloadManager$Request;" />
+		<method name="setDescription(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request;" />
+		<method name="setDestinationInExternalFilesDir(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
+		<method name="setDestinationInExternalPublicDir(Ljava/lang/String;Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
+		<method name="setDestinationUri(Landroid/net/Uri;)Landroid/app/DownloadManager$Request;" />
+		<method name="setMimeType(Ljava/lang/String;)Landroid/app/DownloadManager$Request;" />
+		<method name="setNotificationVisibility(I)Landroid/app/DownloadManager$Request;" since="11" />
+		<method name="setShowRunningNotification(Z)Landroid/app/DownloadManager$Request;" />
+		<method name="setTitle(Ljava/lang/CharSequence;)Landroid/app/DownloadManager$Request;" />
+		<method name="setVisibleInDownloadsUi(Z)Landroid/app/DownloadManager$Request;" />
+		<field name="NETWORK_MOBILE" />
+		<field name="NETWORK_WIFI" />
+		<field name="VISIBILITY_HIDDEN" since="11" />
+		<field name="VISIBILITY_VISIBLE" since="11" />
+		<field name="VISIBILITY_VISIBLE_NOTIFY_COMPLETED" since="11" />
+		<field name="VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION" since="12" />
+	</class>
+	<class name="android/app/ExpandableListActivity" since="1">
+		<extends name="android/app/Activity" />
+		<implements name="android/widget/ExpandableListView$OnChildClickListener" />
+		<implements name="android/widget/ExpandableListView$OnGroupCollapseListener" />
+		<implements name="android/widget/ExpandableListView$OnGroupExpandListener" />
+		<implements name="android/view/View$OnCreateContextMenuListener" />
+		<method name="&lt;init>()V" />
+		<method name="getExpandableListAdapter()Landroid/widget/ExpandableListAdapter;" />
+		<method name="getExpandableListView()Landroid/widget/ExpandableListView;" />
+		<method name="getSelectedId()J" />
+		<method name="getSelectedPosition()J" />
+		<method name="onChildClick(Landroid/widget/ExpandableListView;Landroid/view/View;IIJ)Z" />
+		<method name="onGroupCollapse(I)V" />
+		<method name="onGroupExpand(I)V" />
+		<method name="setListAdapter(Landroid/widget/ExpandableListAdapter;)V" />
+		<method name="setSelectedChild(IIZ)Z" />
+		<method name="setSelectedGroup(I)V" />
+	</class>
+	<class name="android/app/Fragment" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/content/ComponentCallbacks" />
+		<implements name="android/view/View$OnCreateContextMenuListener" />
+		<implements name="android/content/ComponentCallbacks2" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActivity()Landroid/app/Activity;" />
+		<method name="getArguments()Landroid/os/Bundle;" />
+		<method name="getFragmentManager()Landroid/app/FragmentManager;" />
+		<method name="getId()I" />
+		<method name="getLoaderManager()Landroid/app/LoaderManager;" />
+		<method name="getResources()Landroid/content/res/Resources;" />
+		<method name="getRetainInstance()Z" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="getTag()Ljava/lang/String;" />
+		<method name="getTargetFragment()Landroid/app/Fragment;" />
+		<method name="getTargetRequestCode()I" />
+		<method name="getText(I)Ljava/lang/CharSequence;" />
+		<method name="getUserVisibleHint()Z" since="15" />
+		<method name="getView()Landroid/view/View;" />
+		<method name="hashCode()I" />
+		<method name="instantiate(Landroid/content/Context;Ljava/lang/String;)Landroid/app/Fragment;" />
+		<method name="instantiate(Landroid/content/Context;Ljava/lang/String;Landroid/os/Bundle;)Landroid/app/Fragment;" />
+		<method name="isAdded()Z" />
+		<method name="isDetached()Z" since="13" />
+		<method name="isHidden()Z" />
+		<method name="isInLayout()Z" />
+		<method name="isRemoving()Z" />
+		<method name="isResumed()Z" />
+		<method name="isVisible()Z" />
+		<method name="onActivityCreated(Landroid/os/Bundle;)V" />
+		<method name="onActivityResult(IILandroid/content/Intent;)V" />
+		<method name="onAttach(Landroid/app/Activity;)V" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="onContextItemSelected(Landroid/view/MenuItem;)Z" />
+		<method name="onCreate(Landroid/os/Bundle;)V" />
+		<method name="onCreateAnimator(IZI)Landroid/animation/Animator;" />
+		<method name="onCreateContextMenu(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V" />
+		<method name="onCreateOptionsMenu(Landroid/view/Menu;Landroid/view/MenuInflater;)V" />
+		<method name="onCreateView(Landroid/view/LayoutInflater;Landroid/view/ViewGroup;Landroid/os/Bundle;)Landroid/view/View;" />
+		<method name="onDestroy()V" />
+		<method name="onDestroyOptionsMenu()V" />
+		<method name="onDestroyView()V" />
+		<method name="onDetach()V" />
+		<method name="onHiddenChanged(Z)V" />
+		<method name="onInflate(Landroid/app/Activity;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="12" />
+		<method name="onInflate(Landroid/util/AttributeSet;Landroid/os/Bundle;)V" />
+		<method name="onLowMemory()V" />
+		<method name="onOptionsItemSelected(Landroid/view/MenuItem;)Z" />
+		<method name="onOptionsMenuClosed(Landroid/view/Menu;)V" />
+		<method name="onPause()V" />
+		<method name="onPrepareOptionsMenu(Landroid/view/Menu;)V" />
+		<method name="onResume()V" />
+		<method name="onSaveInstanceState(Landroid/os/Bundle;)V" />
+		<method name="onStart()V" />
+		<method name="onStop()V" />
+		<method name="onTrimMemory(I)V" since="14" />
+		<method name="onViewCreated(Landroid/view/View;Landroid/os/Bundle;)V" since="13" />
+		<method name="registerForContextMenu(Landroid/view/View;)V" />
+		<method name="setArguments(Landroid/os/Bundle;)V" />
+		<method name="setHasOptionsMenu(Z)V" />
+		<method name="setInitialSavedState(Landroid/app/Fragment$SavedState;)V" since="13" />
+		<method name="setMenuVisibility(Z)V" since="14" />
+		<method name="setRetainInstance(Z)V" />
+		<method name="setTargetFragment(Landroid/app/Fragment;I)V" />
+		<method name="setUserVisibleHint(Z)V" since="15" />
+		<method name="startActivity(Landroid/content/Intent;)V" />
+		<method name="startActivityForResult(Landroid/content/Intent;I)V" />
+		<method name="unregisterForContextMenu(Landroid/view/View;)V" />
+	</class>
+	<class name="android/app/Fragment$InstantiationException" since="11">
+		<extends name="android/util/AndroidRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Exception;)V" />
+	</class>
+	<class name="android/app/Fragment$SavedState" since="13">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/app/FragmentBreadCrumbs" since="11">
+		<extends name="android/view/ViewGroup" />
+		<implements name="android/app/FragmentManager$OnBackStackChangedListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="onBackStackChanged()V" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="setActivity(Landroid/app/Activity;)V" />
+		<method name="setMaxVisible(I)V" />
+		<method name="setOnBreadCrumbClickListener(Landroid/app/FragmentBreadCrumbs$OnBreadCrumbClickListener;)V" since="12" />
+		<method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" />
+		<method name="setTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/app/FragmentBreadCrumbs$OnBreadCrumbClickListener" since="12">
+		<method name="onBreadCrumbClick(Landroid/app/FragmentManager$BackStackEntry;I)Z" />
+	</class>
+	<class name="android/app/FragmentManager" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V" />
+		<method name="beginTransaction()Landroid/app/FragmentTransaction;" />
+		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
+		<method name="enableDebugLogging(Z)V" />
+		<method name="executePendingTransactions()Z" />
+		<method name="findFragmentById(I)Landroid/app/Fragment;" />
+		<method name="findFragmentByTag(Ljava/lang/String;)Landroid/app/Fragment;" />
+		<method name="getBackStackEntryAt(I)Landroid/app/FragmentManager$BackStackEntry;" />
+		<method name="getBackStackEntryCount()I" />
+		<method name="getFragment(Landroid/os/Bundle;Ljava/lang/String;)Landroid/app/Fragment;" />
+		<method name="invalidateOptionsMenu()V" since="14" />
+		<method name="popBackStack()V" />
+		<method name="popBackStack(II)V" />
+		<method name="popBackStack(Ljava/lang/String;I)V" />
+		<method name="popBackStackImmediate()Z" />
+		<method name="popBackStackImmediate(II)Z" />
+		<method name="popBackStackImmediate(Ljava/lang/String;I)Z" />
+		<method name="putFragment(Landroid/os/Bundle;Ljava/lang/String;Landroid/app/Fragment;)V" />
+		<method name="removeOnBackStackChangedListener(Landroid/app/FragmentManager$OnBackStackChangedListener;)V" />
+		<method name="saveFragmentInstanceState(Landroid/app/Fragment;)Landroid/app/Fragment$SavedState;" since="13" />
+		<field name="POP_BACK_STACK_INCLUSIVE" />
+	</class>
+	<class name="android/app/FragmentManager$BackStackEntry" since="11">
+		<method name="getBreadCrumbShortTitle()Ljava/lang/CharSequence;" />
+		<method name="getBreadCrumbShortTitleRes()I" />
+		<method name="getBreadCrumbTitle()Ljava/lang/CharSequence;" />
+		<method name="getBreadCrumbTitleRes()I" />
+		<method name="getId()I" />
+		<method name="getName()Ljava/lang/String;" since="14" />
+	</class>
+	<class name="android/app/FragmentManager$OnBackStackChangedListener" since="11">
+		<method name="onBackStackChanged()V" />
+	</class>
+	<class name="android/app/FragmentTransaction" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="add(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
+		<method name="add(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
+		<method name="add(Landroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
+		<method name="addToBackStack(Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
+		<method name="attach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13" />
+		<method name="commit()I" />
+		<method name="commitAllowingStateLoss()I" />
+		<method name="detach(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" since="13" />
+		<method name="disallowAddToBackStack()Landroid/app/FragmentTransaction;" />
+		<method name="hide(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
+		<method name="isAddToBackStackAllowed()Z" />
+		<method name="isEmpty()Z" />
+		<method name="remove(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
+		<method name="replace(ILandroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
+		<method name="replace(ILandroid/app/Fragment;Ljava/lang/String;)Landroid/app/FragmentTransaction;" />
+		<method name="setBreadCrumbShortTitle(I)Landroid/app/FragmentTransaction;" />
+		<method name="setBreadCrumbShortTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;" />
+		<method name="setBreadCrumbTitle(I)Landroid/app/FragmentTransaction;" />
+		<method name="setBreadCrumbTitle(Ljava/lang/CharSequence;)Landroid/app/FragmentTransaction;" />
+		<method name="setCustomAnimations(II)Landroid/app/FragmentTransaction;" />
+		<method name="setCustomAnimations(IIII)Landroid/app/FragmentTransaction;" since="13" />
+		<method name="setTransition(I)Landroid/app/FragmentTransaction;" />
+		<method name="setTransitionStyle(I)Landroid/app/FragmentTransaction;" />
+		<method name="show(Landroid/app/Fragment;)Landroid/app/FragmentTransaction;" />
+		<field name="TRANSIT_ENTER_MASK" />
+		<field name="TRANSIT_EXIT_MASK" />
+		<field name="TRANSIT_FRAGMENT_CLOSE" />
+		<field name="TRANSIT_FRAGMENT_FADE" />
+		<field name="TRANSIT_FRAGMENT_OPEN" />
+		<field name="TRANSIT_NONE" />
+		<field name="TRANSIT_UNSET" />
+	</class>
+	<class name="android/app/Instrumentation" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addMonitor(Landroid/app/Instrumentation$ActivityMonitor;)V" />
+		<method name="addMonitor(Landroid/content/IntentFilter;Landroid/app/Instrumentation$ActivityResult;Z)Landroid/app/Instrumentation$ActivityMonitor;" />
+		<method name="addMonitor(Ljava/lang/String;Landroid/app/Instrumentation$ActivityResult;Z)Landroid/app/Instrumentation$ActivityMonitor;" />
+		<method name="callActivityOnCreate(Landroid/app/Activity;Landroid/os/Bundle;)V" />
+		<method name="callActivityOnDestroy(Landroid/app/Activity;)V" />
+		<method name="callActivityOnNewIntent(Landroid/app/Activity;Landroid/content/Intent;)V" />
+		<method name="callActivityOnPause(Landroid/app/Activity;)V" />
+		<method name="callActivityOnPostCreate(Landroid/app/Activity;Landroid/os/Bundle;)V" />
+		<method name="callActivityOnRestart(Landroid/app/Activity;)V" />
+		<method name="callActivityOnRestoreInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" />
+		<method name="callActivityOnResume(Landroid/app/Activity;)V" />
+		<method name="callActivityOnSaveInstanceState(Landroid/app/Activity;Landroid/os/Bundle;)V" />
+		<method name="callActivityOnStart(Landroid/app/Activity;)V" />
+		<method name="callActivityOnStop(Landroid/app/Activity;)V" />
+		<method name="callActivityOnUserLeaving(Landroid/app/Activity;)V" since="3" />
+		<method name="callApplicationOnCreate(Landroid/app/Application;)V" />
+		<method name="checkMonitorHit(Landroid/app/Instrumentation$ActivityMonitor;I)Z" />
+		<method name="endPerformanceSnapshot()V" />
+		<method name="finish(ILandroid/os/Bundle;)V" />
+		<method name="getAllocCounts()Landroid/os/Bundle;" />
+		<method name="getBinderCounts()Landroid/os/Bundle;" />
+		<method name="getComponentName()Landroid/content/ComponentName;" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getTargetContext()Landroid/content/Context;" />
+		<method name="invokeContextMenuAction(Landroid/app/Activity;II)Z" />
+		<method name="invokeMenuActionSync(Landroid/app/Activity;II)Z" />
+		<method name="isProfiling()Z" />
+		<method name="newActivity(Ljava/lang/Class;Landroid/content/Context;Landroid/os/IBinder;Landroid/app/Application;Landroid/content/Intent;Landroid/content/pm/ActivityInfo;Ljava/lang/CharSequence;Landroid/app/Activity;Ljava/lang/String;Ljava/lang/Object;)Landroid/app/Activity;" />
+		<method name="newActivity(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Intent;)Landroid/app/Activity;" />
+		<method name="newApplication(Ljava/lang/Class;Landroid/content/Context;)Landroid/app/Application;" />
+		<method name="newApplication(Ljava/lang/ClassLoader;Ljava/lang/String;Landroid/content/Context;)Landroid/app/Application;" />
+		<method name="onCreate(Landroid/os/Bundle;)V" />
+		<method name="onDestroy()V" />
+		<method name="onException(Ljava/lang/Object;Ljava/lang/Throwable;)Z" />
+		<method name="onStart()V" />
+		<method name="removeMonitor(Landroid/app/Instrumentation$ActivityMonitor;)V" />
+		<method name="runOnMainSync(Ljava/lang/Runnable;)V" />
+		<method name="sendCharacterSync(I)V" />
+		<method name="sendKeyDownUpSync(I)V" />
+		<method name="sendKeySync(Landroid/view/KeyEvent;)V" />
+		<method name="sendPointerSync(Landroid/view/MotionEvent;)V" />
+		<method name="sendStatus(ILandroid/os/Bundle;)V" />
+		<method name="sendStringSync(Ljava/lang/String;)V" />
+		<method name="sendTrackballEventSync(Landroid/view/MotionEvent;)V" />
+		<method name="setAutomaticPerformanceSnapshots()V" />
+		<method name="setInTouchMode(Z)V" />
+		<method name="start()V" />
+		<method name="startActivitySync(Landroid/content/Intent;)Landroid/app/Activity;" />
+		<method name="startAllocCounting()V" />
+		<method name="startPerformanceSnapshot()V" />
+		<method name="startProfiling()V" />
+		<method name="stopAllocCounting()V" />
+		<method name="stopProfiling()V" />
+		<method name="waitForIdle(Ljava/lang/Runnable;)V" />
+		<method name="waitForIdleSync()V" />
+		<method name="waitForMonitor(Landroid/app/Instrumentation$ActivityMonitor;)Landroid/app/Activity;" />
+		<method name="waitForMonitorWithTimeout(Landroid/app/Instrumentation$ActivityMonitor;J)Landroid/app/Activity;" />
+		<field name="REPORT_KEY_IDENTIFIER" />
+		<field name="REPORT_KEY_STREAMRESULT" />
+	</class>
+	<class name="android/app/Instrumentation$ActivityMonitor" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/IntentFilter;Landroid/app/Instrumentation$ActivityResult;Z)V" />
+		<method name="&lt;init>(Ljava/lang/String;Landroid/app/Instrumentation$ActivityResult;Z)V" />
+		<method name="getFilter()Landroid/content/IntentFilter;" />
+		<method name="getHits()I" />
+		<method name="getLastActivity()Landroid/app/Activity;" />
+		<method name="getResult()Landroid/app/Instrumentation$ActivityResult;" />
+		<method name="isBlocking()Z" />
+		<method name="waitForActivity()Landroid/app/Activity;" />
+		<method name="waitForActivityWithTimeout(J)Landroid/app/Activity;" />
+	</class>
+	<class name="android/app/Instrumentation$ActivityResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(ILandroid/content/Intent;)V" />
+		<method name="getResultCode()I" />
+		<method name="getResultData()Landroid/content/Intent;" />
+	</class>
+	<class name="android/app/IntentService" since="3">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onHandleIntent(Landroid/content/Intent;)V" />
+		<method name="setIntentRedelivery(Z)V" since="5" />
+	</class>
+	<class name="android/app/KeyguardManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="exitKeyguardSecurely(Landroid/app/KeyguardManager$OnKeyguardExitResult;)V" />
+		<method name="inKeyguardRestrictedInputMode()Z" />
+		<method name="newKeyguardLock(Ljava/lang/String;)Landroid/app/KeyguardManager$KeyguardLock;" />
+	</class>
+	<class name="android/app/KeyguardManager$KeyguardLock" since="1">
+		<extends name="java/lang/Object" />
+		<method name="disableKeyguard()V" />
+		<method name="reenableKeyguard()V" />
+	</class>
+	<class name="android/app/KeyguardManager$OnKeyguardExitResult" since="1">
+		<method name="onKeyguardExitResult(Z)V" />
+	</class>
+	<class name="android/app/LauncherActivity" since="1">
+		<extends name="android/app/ListActivity" />
+		<method name="&lt;init>()V" />
+		<method name="getTargetIntent()Landroid/content/Intent;" />
+		<method name="intentForPosition(I)Landroid/content/Intent;" since="3" />
+		<method name="itemForPosition(I)Landroid/app/LauncherActivity$ListItem;" since="4" />
+		<method name="makeListItems()Ljava/util/List;" since="3" />
+		<method name="onQueryPackageManager(Landroid/content/Intent;)Ljava/util/List;" since="5" />
+		<method name="onSetContentView()V" since="5" />
+	</class>
+	<class name="android/app/LauncherActivity$IconResizer" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="createIconThumbnail(Landroid/graphics/drawable/Drawable;)Landroid/graphics/drawable/Drawable;" />
+	</class>
+	<class name="android/app/LauncherActivity$ListItem" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="className" />
+		<field name="extras" />
+		<field name="icon" />
+		<field name="label" />
+		<field name="packageName" />
+		<field name="resolveInfo" since="4" />
+	</class>
+	<class name="android/app/ListActivity" since="1">
+		<extends name="android/app/Activity" />
+		<method name="&lt;init>()V" />
+		<method name="getListAdapter()Landroid/widget/ListAdapter;" />
+		<method name="getListView()Landroid/widget/ListView;" />
+		<method name="getSelectedItemId()J" />
+		<method name="getSelectedItemPosition()I" />
+		<method name="onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V" />
+		<method name="setListAdapter(Landroid/widget/ListAdapter;)V" />
+		<method name="setSelection(I)V" />
+	</class>
+	<class name="android/app/ListFragment" since="11">
+		<extends name="android/app/Fragment" />
+		<method name="&lt;init>()V" />
+		<method name="getListAdapter()Landroid/widget/ListAdapter;" />
+		<method name="getListView()Landroid/widget/ListView;" />
+		<method name="getSelectedItemId()J" />
+		<method name="getSelectedItemPosition()I" />
+		<method name="onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V" />
+		<method name="setEmptyText(Ljava/lang/CharSequence;)V" />
+		<method name="setListAdapter(Landroid/widget/ListAdapter;)V" />
+		<method name="setListShown(Z)V" />
+		<method name="setListShownNoAnimation(Z)V" />
+		<method name="setSelection(I)V" />
+	</class>
+	<class name="android/app/LoaderManager" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="destroyLoader(I)V" />
+		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
+		<method name="enableDebugLogging(Z)V" />
+		<method name="getLoader(I)Landroid/content/Loader;" />
+		<method name="initLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;" />
+		<method name="restartLoader(ILandroid/os/Bundle;Landroid/app/LoaderManager$LoaderCallbacks;)Landroid/content/Loader;" />
+	</class>
+	<class name="android/app/LoaderManager$LoaderCallbacks" since="11">
+		<method name="onCreateLoader(ILandroid/os/Bundle;)Landroid/content/Loader;" />
+		<method name="onLoadFinished(Landroid/content/Loader;LD;)V" />
+		<method name="onLoaderReset(Landroid/content/Loader;)V" />
+	</class>
+	<class name="android/app/LocalActivityManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/app/Activity;Z)V" />
+		<method name="destroyActivity(Ljava/lang/String;Z)Landroid/view/Window;" />
+		<method name="dispatchCreate(Landroid/os/Bundle;)V" />
+		<method name="dispatchDestroy(Z)V" />
+		<method name="dispatchPause(Z)V" />
+		<method name="dispatchResume()V" />
+		<method name="dispatchStop()V" />
+		<method name="getActivity(Ljava/lang/String;)Landroid/app/Activity;" />
+		<method name="getCurrentActivity()Landroid/app/Activity;" />
+		<method name="getCurrentId()Ljava/lang/String;" />
+		<method name="removeAllActivities()V" />
+		<method name="saveInstanceState()Landroid/os/Bundle;" />
+		<method name="startActivity(Ljava/lang/String;Landroid/content/Intent;)Landroid/view/Window;" />
+	</class>
+	<class name="android/app/NativeActivity" since="9">
+		<extends name="android/app/Activity" />
+		<implements name="android/view/InputQueue$Callback" />
+		<implements name="android/view/SurfaceHolder$Callback2" />
+		<implements name="android/view/ViewTreeObserver$OnGlobalLayoutListener" />
+		<method name="&lt;init>()V" />
+		<method name="onGlobalLayout()V" />
+		<method name="onInputQueueCreated(Landroid/view/InputQueue;)V" />
+		<method name="onInputQueueDestroyed(Landroid/view/InputQueue;)V" />
+		<method name="surfaceChanged(Landroid/view/SurfaceHolder;III)V" />
+		<method name="surfaceCreated(Landroid/view/SurfaceHolder;)V" />
+		<method name="surfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
+		<method name="surfaceRedrawNeeded(Landroid/view/SurfaceHolder;)V" />
+		<field name="META_DATA_FUNC_NAME" />
+		<field name="META_DATA_LIB_NAME" />
+	</class>
+	<class name="android/app/Notification" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(ILjava/lang/CharSequence;J)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="clone()Landroid/app/Notification;" since="9" />
+		<method name="describeContents()I" />
+		<method name="setLatestEventInfo(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/app/PendingIntent;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="DEFAULT_ALL" />
+		<field name="DEFAULT_LIGHTS" />
+		<field name="DEFAULT_SOUND" />
+		<field name="DEFAULT_VIBRATE" />
+		<field name="FLAG_AUTO_CANCEL" />
+		<field name="FLAG_FOREGROUND_SERVICE" since="5" />
+		<field name="FLAG_HIGH_PRIORITY" since="11" />
+		<field name="FLAG_INSISTENT" />
+		<field name="FLAG_NO_CLEAR" />
+		<field name="FLAG_ONGOING_EVENT" />
+		<field name="FLAG_ONLY_ALERT_ONCE" />
+		<field name="FLAG_SHOW_LIGHTS" />
+		<field name="STREAM_DEFAULT" />
+		<field name="audioStreamType" />
+		<field name="contentIntent" />
+		<field name="contentView" />
+		<field name="defaults" />
+		<field name="deleteIntent" />
+		<field name="flags" />
+		<field name="fullScreenIntent" since="9" />
+		<field name="icon" />
+		<field name="iconLevel" />
+		<field name="largeIcon" since="11" />
+		<field name="ledARGB" />
+		<field name="ledOffMS" />
+		<field name="ledOnMS" />
+		<field name="number" />
+		<field name="sound" />
+		<field name="tickerText" />
+		<field name="tickerView" since="11" />
+		<field name="vibrate" />
+		<field name="when" />
+	</class>
+	<class name="android/app/Notification$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="getNotification()Landroid/app/Notification;" />
+		<method name="setAutoCancel(Z)Landroid/app/Notification$Builder;" />
+		<method name="setContent(Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;" />
+		<method name="setContentInfo(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
+		<method name="setContentIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;" />
+		<method name="setContentText(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
+		<method name="setContentTitle(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
+		<method name="setDefaults(I)Landroid/app/Notification$Builder;" />
+		<method name="setDeleteIntent(Landroid/app/PendingIntent;)Landroid/app/Notification$Builder;" />
+		<method name="setFullScreenIntent(Landroid/app/PendingIntent;Z)Landroid/app/Notification$Builder;" />
+		<method name="setLargeIcon(Landroid/graphics/Bitmap;)Landroid/app/Notification$Builder;" />
+		<method name="setLights(III)Landroid/app/Notification$Builder;" />
+		<method name="setNumber(I)Landroid/app/Notification$Builder;" />
+		<method name="setOngoing(Z)Landroid/app/Notification$Builder;" />
+		<method name="setOnlyAlertOnce(Z)Landroid/app/Notification$Builder;" />
+		<method name="setProgress(IIZ)Landroid/app/Notification$Builder;" since="14" />
+		<method name="setSmallIcon(I)Landroid/app/Notification$Builder;" />
+		<method name="setSmallIcon(II)Landroid/app/Notification$Builder;" />
+		<method name="setSound(Landroid/net/Uri;)Landroid/app/Notification$Builder;" />
+		<method name="setSound(Landroid/net/Uri;I)Landroid/app/Notification$Builder;" />
+		<method name="setTicker(Ljava/lang/CharSequence;)Landroid/app/Notification$Builder;" />
+		<method name="setTicker(Ljava/lang/CharSequence;Landroid/widget/RemoteViews;)Landroid/app/Notification$Builder;" />
+		<method name="setVibrate([J)Landroid/app/Notification$Builder;" />
+		<method name="setWhen(J)Landroid/app/Notification$Builder;" />
+	</class>
+	<class name="android/app/NotificationManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="cancel(I)V" />
+		<method name="cancel(Ljava/lang/String;I)V" since="5" />
+		<method name="cancelAll()V" />
+		<method name="notify(ILandroid/app/Notification;)V" />
+		<method name="notify(Ljava/lang/String;ILandroid/app/Notification;)V" since="5" />
+	</class>
+	<class name="android/app/PendingIntent" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="cancel()V" />
+		<method name="describeContents()I" />
+		<method name="getActivities(Landroid/content/Context;I[Landroid/content/Intent;I)Landroid/app/PendingIntent;" since="11" />
+		<method name="getActivity(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
+		<method name="getBroadcast(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
+		<method name="getIntentSender()Landroid/content/IntentSender;" since="4" />
+		<method name="getService(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;" />
+		<method name="getTargetPackage()Ljava/lang/String;" />
+		<method name="readPendingIntentOrNullFromParcel(Landroid/os/Parcel;)Landroid/app/PendingIntent;" />
+		<method name="send()V" />
+		<method name="send(I)V" />
+		<method name="send(ILandroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V" />
+		<method name="send(Landroid/content/Context;ILandroid/content/Intent;)V" />
+		<method name="send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;)V" />
+		<method name="send(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/PendingIntent$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V" since="14" />
+		<method name="writePendingIntentOrNullToParcel(Landroid/app/PendingIntent;Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="FLAG_CANCEL_CURRENT" />
+		<field name="FLAG_NO_CREATE" />
+		<field name="FLAG_ONE_SHOT" />
+		<field name="FLAG_UPDATE_CURRENT" since="3" />
+	</class>
+	<class name="android/app/PendingIntent$CanceledException" since="1">
+		<extends name="android/util/AndroidException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/app/PendingIntent$OnFinished" since="1">
+		<method name="onSendFinished(Landroid/app/PendingIntent;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V" />
+	</class>
+	<class name="android/app/ProgressDialog" since="1">
+		<extends name="android/app/AlertDialog" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="getMax()I" />
+		<method name="getProgress()I" />
+		<method name="getSecondaryProgress()I" />
+		<method name="incrementProgressBy(I)V" />
+		<method name="incrementSecondaryProgressBy(I)V" />
+		<method name="isIndeterminate()Z" />
+		<method name="onStart()V" />
+		<method name="setIndeterminate(Z)V" />
+		<method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setMax(I)V" />
+		<method name="setProgress(I)V" />
+		<method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setProgressNumberFormat(Ljava/lang/String;)V" since="11" />
+		<method name="setProgressPercentFormat(Ljava/text/NumberFormat;)V" since="11" />
+		<method name="setProgressStyle(I)V" />
+		<method name="setSecondaryProgress(I)V" />
+		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/app/ProgressDialog;" />
+		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Z)Landroid/app/ProgressDialog;" />
+		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZ)Landroid/app/ProgressDialog;" />
+		<method name="show(Landroid/content/Context;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ZZLandroid/content/DialogInterface$OnCancelListener;)Landroid/app/ProgressDialog;" />
+		<field name="STYLE_HORIZONTAL" />
+		<field name="STYLE_SPINNER" />
+	</class>
+	<class name="android/app/SearchManager" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/content/DialogInterface$OnCancelListener" />
+		<implements name="android/content/DialogInterface$OnDismissListener" />
+		<method name="getSearchableInfo(Landroid/content/ComponentName;)Landroid/app/SearchableInfo;" since="8" />
+		<method name="getSearchablesInGlobalSearch()Ljava/util/List;" since="8" />
+		<method name="onCancel(Landroid/content/DialogInterface;)V" />
+		<method name="onDismiss(Landroid/content/DialogInterface;)V" />
+		<method name="setOnCancelListener(Landroid/app/SearchManager$OnCancelListener;)V" />
+		<method name="setOnDismissListener(Landroid/app/SearchManager$OnDismissListener;)V" />
+		<method name="startSearch(Ljava/lang/String;ZLandroid/content/ComponentName;Landroid/os/Bundle;Z)V" />
+		<method name="stopSearch()V" />
+		<method name="triggerSearch(Ljava/lang/String;Landroid/content/ComponentName;Landroid/os/Bundle;)V" since="5" />
+		<field name="ACTION_KEY" />
+		<field name="ACTION_MSG" />
+		<field name="APP_DATA" />
+		<field name="CURSOR_EXTRA_KEY_IN_PROGRESS" since="8" />
+		<field name="EXTRA_DATA_KEY" since="4" />
+		<field name="EXTRA_NEW_SEARCH" since="12" />
+		<field name="EXTRA_SELECT_QUERY" since="8" />
+		<field name="EXTRA_WEB_SEARCH_PENDINGINTENT" since="14" />
+		<field name="FLAG_QUERY_REFINEMENT" since="11" />
+		<field name="INTENT_ACTION_GLOBAL_SEARCH" since="8" />
+		<field name="INTENT_ACTION_SEARCHABLES_CHANGED" since="4" />
+		<field name="INTENT_ACTION_SEARCH_SETTINGS" since="8" />
+		<field name="INTENT_ACTION_SEARCH_SETTINGS_CHANGED" since="4" />
+		<field name="INTENT_ACTION_WEB_SEARCH_SETTINGS" since="4" />
+		<field name="MENU_KEY" />
+		<field name="MENU_KEYCODE" />
+		<field name="QUERY" />
+		<field name="SHORTCUT_MIME_TYPE" since="4" />
+		<field name="SUGGEST_COLUMN_FLAGS" since="11" />
+		<field name="SUGGEST_COLUMN_FORMAT" />
+		<field name="SUGGEST_COLUMN_ICON_1" />
+		<field name="SUGGEST_COLUMN_ICON_2" />
+		<field name="SUGGEST_COLUMN_INTENT_ACTION" />
+		<field name="SUGGEST_COLUMN_INTENT_DATA" />
+		<field name="SUGGEST_COLUMN_INTENT_DATA_ID" />
+		<field name="SUGGEST_COLUMN_INTENT_EXTRA_DATA" since="4" />
+		<field name="SUGGEST_COLUMN_LAST_ACCESS_HINT" since="14" />
+		<field name="SUGGEST_COLUMN_QUERY" />
+		<field name="SUGGEST_COLUMN_SHORTCUT_ID" since="4" />
+		<field name="SUGGEST_COLUMN_SPINNER_WHILE_REFRESHING" since="4" />
+		<field name="SUGGEST_COLUMN_TEXT_1" />
+		<field name="SUGGEST_COLUMN_TEXT_2" />
+		<field name="SUGGEST_COLUMN_TEXT_2_URL" since="8" />
+		<field name="SUGGEST_MIME_TYPE" />
+		<field name="SUGGEST_NEVER_MAKE_SHORTCUT" since="4" />
+		<field name="SUGGEST_PARAMETER_LIMIT" since="5" />
+		<field name="SUGGEST_URI_PATH_QUERY" />
+		<field name="SUGGEST_URI_PATH_SHORTCUT" since="4" />
+		<field name="USER_QUERY" since="4" />
+	</class>
+	<class name="android/app/SearchManager$OnCancelListener" since="1">
+		<method name="onCancel()V" />
+	</class>
+	<class name="android/app/SearchManager$OnDismissListener" since="1">
+		<method name="onDismiss()V" />
+	</class>
+	<class name="android/app/SearchableInfo" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="autoUrlDetect()Z" />
+		<method name="describeContents()I" />
+		<method name="getHintId()I" />
+		<method name="getImeOptions()I" />
+		<method name="getInputType()I" />
+		<method name="getSearchActivity()Landroid/content/ComponentName;" />
+		<method name="getSettingsDescriptionId()I" />
+		<method name="getSuggestAuthority()Ljava/lang/String;" />
+		<method name="getSuggestIntentAction()Ljava/lang/String;" />
+		<method name="getSuggestIntentData()Ljava/lang/String;" />
+		<method name="getSuggestPackage()Ljava/lang/String;" />
+		<method name="getSuggestPath()Ljava/lang/String;" />
+		<method name="getSuggestSelection()Ljava/lang/String;" />
+		<method name="getSuggestThreshold()I" />
+		<method name="getVoiceLanguageId()I" />
+		<method name="getVoiceLanguageModeId()I" />
+		<method name="getVoiceMaxResults()I" />
+		<method name="getVoicePromptTextId()I" />
+		<method name="getVoiceSearchEnabled()Z" />
+		<method name="getVoiceSearchLaunchRecognizer()Z" />
+		<method name="getVoiceSearchLaunchWebSearch()Z" />
+		<method name="queryAfterZeroResults()Z" />
+		<method name="shouldIncludeInGlobalSearch()Z" />
+		<method name="shouldRewriteQueryFromData()Z" />
+		<method name="shouldRewriteQueryFromText()Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/app/Service" since="1">
+		<extends name="android/content/ContextWrapper" />
+		<implements name="android/content/ComponentCallbacks" />
+		<implements name="android/content/ComponentCallbacks2" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
+		<method name="getApplication()Landroid/app/Application;" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="onCreate()V" />
+		<method name="onDestroy()V" />
+		<method name="onLowMemory()V" />
+		<method name="onRebind(Landroid/content/Intent;)V" />
+		<method name="onStart(Landroid/content/Intent;I)V" />
+		<method name="onStartCommand(Landroid/content/Intent;II)I" since="5" />
+		<method name="onTaskRemoved(Landroid/content/Intent;)V" since="14" />
+		<method name="onTrimMemory(I)V" since="14" />
+		<method name="onUnbind(Landroid/content/Intent;)Z" />
+		<method name="setForeground(Z)V" />
+		<method name="startForeground(ILandroid/app/Notification;)V" since="5" />
+		<method name="stopForeground(Z)V" since="5" />
+		<method name="stopSelf()V" />
+		<method name="stopSelf(I)V" />
+		<method name="stopSelfResult(I)Z" />
+		<field name="START_CONTINUATION_MASK" since="5" />
+		<field name="START_FLAG_REDELIVERY" since="5" />
+		<field name="START_FLAG_RETRY" since="5" />
+		<field name="START_NOT_STICKY" since="5" />
+		<field name="START_REDELIVER_INTENT" since="5" />
+		<field name="START_STICKY" since="5" />
+		<field name="START_STICKY_COMPATIBILITY" since="5" />
+	</class>
+	<class name="android/app/TabActivity" since="1">
+		<extends name="android/app/ActivityGroup" />
+		<method name="&lt;init>()V" />
+		<method name="getTabHost()Landroid/widget/TabHost;" />
+		<method name="getTabWidget()Landroid/widget/TabWidget;" />
+		<method name="setDefaultTab(I)V" />
+		<method name="setDefaultTab(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/app/TimePickerDialog" since="1">
+		<extends name="android/app/AlertDialog" />
+		<implements name="android/content/DialogInterface$OnClickListener" />
+		<implements name="android/widget/TimePicker$OnTimeChangedListener" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/app/TimePickerDialog$OnTimeSetListener;IIZ)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/app/TimePickerDialog$OnTimeSetListener;IIZ)V" />
+		<method name="onClick(Landroid/content/DialogInterface;I)V" />
+		<method name="onTimeChanged(Landroid/widget/TimePicker;II)V" />
+		<method name="updateTime(II)V" />
+	</class>
+	<class name="android/app/TimePickerDialog$OnTimeSetListener" since="1">
+		<method name="onTimeSet(Landroid/widget/TimePicker;II)V" />
+	</class>
+	<class name="android/app/UiModeManager" since="8">
+		<extends name="java/lang/Object" />
+		<method name="disableCarMode(I)V" />
+		<method name="enableCarMode(I)V" />
+		<method name="getCurrentModeType()I" />
+		<method name="getNightMode()I" />
+		<method name="setNightMode(I)V" />
+		<field name="ACTION_ENTER_CAR_MODE" />
+		<field name="ACTION_ENTER_DESK_MODE" />
+		<field name="ACTION_EXIT_CAR_MODE" />
+		<field name="ACTION_EXIT_DESK_MODE" />
+		<field name="DISABLE_CAR_MODE_GO_HOME" />
+		<field name="ENABLE_CAR_MODE_GO_CAR_HOME" />
+		<field name="MODE_NIGHT_AUTO" />
+		<field name="MODE_NIGHT_NO" />
+		<field name="MODE_NIGHT_YES" />
+	</class>
+	<class name="android/app/WallpaperInfo" since="7">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getComponent()Landroid/content/ComponentName;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
+		<method name="getServiceName()Ljava/lang/String;" />
+		<method name="getSettingsActivity()Ljava/lang/String;" />
+		<method name="loadAuthor(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="loadThumbnail(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/app/WallpaperManager" since="5">
+		<extends name="java/lang/Object" />
+		<method name="clear()V" />
+		<method name="clearWallpaperOffsets(Landroid/os/IBinder;)V" />
+		<method name="forgetLoadedWallpaper()V" since="14" />
+		<method name="getDesiredMinimumHeight()I" />
+		<method name="getDesiredMinimumWidth()I" />
+		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getFastDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getInstance(Landroid/content/Context;)Landroid/app/WallpaperManager;" />
+		<method name="getWallpaperInfo()Landroid/app/WallpaperInfo;" since="7" />
+		<method name="peekDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="peekFastDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="sendWallpaperCommand(Landroid/os/IBinder;Ljava/lang/String;IIILandroid/os/Bundle;)V" since="7" />
+		<method name="setBitmap(Landroid/graphics/Bitmap;)V" />
+		<method name="setResource(I)V" />
+		<method name="setStream(Ljava/io/InputStream;)V" />
+		<method name="setWallpaperOffsetSteps(FF)V" since="7" />
+		<method name="setWallpaperOffsets(Landroid/os/IBinder;FF)V" />
+		<method name="suggestDesiredDimensions(II)V" />
+		<field name="ACTION_LIVE_WALLPAPER_CHOOSER" since="7" />
+		<field name="COMMAND_DROP" since="7" />
+		<field name="COMMAND_SECONDARY_TAP" since="11" />
+		<field name="COMMAND_TAP" since="7" />
+		<field name="WALLPAPER_PREVIEW_META_DATA" since="11" />
+	</class>
+	<class name="android/app/admin/DeviceAdminInfo" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getActivityInfo()Landroid/content/pm/ActivityInfo;" />
+		<method name="getComponent()Landroid/content/ComponentName;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getReceiverName()Ljava/lang/String;" />
+		<method name="getTagForPolicy(I)Ljava/lang/String;" />
+		<method name="isVisible()Z" />
+		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="usesPolicy(I)Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="USES_ENCRYPTED_STORAGE" since="11" />
+		<field name="USES_POLICY_DISABLE_CAMERA" since="14" />
+		<field name="USES_POLICY_EXPIRE_PASSWORD" since="11" />
+		<field name="USES_POLICY_FORCE_LOCK" />
+		<field name="USES_POLICY_LIMIT_PASSWORD" />
+		<field name="USES_POLICY_RESET_PASSWORD" />
+		<field name="USES_POLICY_WATCH_LOGIN" />
+		<field name="USES_POLICY_WIPE_DATA" />
+	</class>
+	<class name="android/app/admin/DeviceAdminReceiver" since="8">
+		<extends name="android/content/BroadcastReceiver" />
+		<method name="&lt;init>()V" />
+		<method name="getManager(Landroid/content/Context;)Landroid/app/admin/DevicePolicyManager;" />
+		<method name="getWho(Landroid/content/Context;)Landroid/content/ComponentName;" />
+		<method name="onDisableRequested(Landroid/content/Context;Landroid/content/Intent;)Ljava/lang/CharSequence;" />
+		<method name="onDisabled(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="onEnabled(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="onPasswordChanged(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="onPasswordExpiring(Landroid/content/Context;Landroid/content/Intent;)V" since="11" />
+		<method name="onPasswordFailed(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="onPasswordSucceeded(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="onReceive(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<field name="ACTION_DEVICE_ADMIN_DISABLED" />
+		<field name="ACTION_DEVICE_ADMIN_DISABLE_REQUESTED" />
+		<field name="ACTION_DEVICE_ADMIN_ENABLED" />
+		<field name="ACTION_PASSWORD_CHANGED" />
+		<field name="ACTION_PASSWORD_EXPIRING" since="11" />
+		<field name="ACTION_PASSWORD_FAILED" />
+		<field name="ACTION_PASSWORD_SUCCEEDED" />
+		<field name="DEVICE_ADMIN_META_DATA" />
+		<field name="EXTRA_DISABLE_WARNING" />
+	</class>
+	<class name="android/app/admin/DevicePolicyManager" since="8">
+		<extends name="java/lang/Object" />
+		<method name="getActiveAdmins()Ljava/util/List;" />
+		<method name="getCameraDisabled(Landroid/content/ComponentName;)Z" since="14" />
+		<method name="getCurrentFailedPasswordAttempts()I" />
+		<method name="getMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;)I" />
+		<method name="getMaximumTimeToLock(Landroid/content/ComponentName;)J" />
+		<method name="getPasswordExpiration(Landroid/content/ComponentName;)J" since="11" />
+		<method name="getPasswordExpirationTimeout(Landroid/content/ComponentName;)J" since="11" />
+		<method name="getPasswordHistoryLength(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordMaximumLength(I)I" />
+		<method name="getPasswordMinimumLength(Landroid/content/ComponentName;)I" />
+		<method name="getPasswordMinimumLetters(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordMinimumLowerCase(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordMinimumNonLetter(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordMinimumNumeric(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordMinimumSymbols(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordMinimumUpperCase(Landroid/content/ComponentName;)I" since="11" />
+		<method name="getPasswordQuality(Landroid/content/ComponentName;)I" />
+		<method name="getStorageEncryption(Landroid/content/ComponentName;)Z" since="11" />
+		<method name="getStorageEncryptionStatus()I" since="11" />
+		<method name="hasGrantedPolicy(Landroid/content/ComponentName;I)Z" since="11" />
+		<method name="isActivePasswordSufficient()Z" />
+		<method name="isAdminActive(Landroid/content/ComponentName;)Z" />
+		<method name="lockNow()V" />
+		<method name="removeActiveAdmin(Landroid/content/ComponentName;)V" />
+		<method name="resetPassword(Ljava/lang/String;I)Z" />
+		<method name="setCameraDisabled(Landroid/content/ComponentName;Z)V" since="14" />
+		<method name="setMaximumFailedPasswordsForWipe(Landroid/content/ComponentName;I)V" />
+		<method name="setMaximumTimeToLock(Landroid/content/ComponentName;J)V" />
+		<method name="setPasswordExpirationTimeout(Landroid/content/ComponentName;J)V" since="11" />
+		<method name="setPasswordHistoryLength(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordMinimumLength(Landroid/content/ComponentName;I)V" />
+		<method name="setPasswordMinimumLetters(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordMinimumLowerCase(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordMinimumNonLetter(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordMinimumNumeric(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordMinimumSymbols(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordMinimumUpperCase(Landroid/content/ComponentName;I)V" since="11" />
+		<method name="setPasswordQuality(Landroid/content/ComponentName;I)V" />
+		<method name="setStorageEncryption(Landroid/content/ComponentName;Z)I" since="11" />
+		<method name="wipeData(I)V" />
+		<field name="ACTION_ADD_DEVICE_ADMIN" />
+		<field name="ACTION_SET_NEW_PASSWORD" />
+		<field name="ACTION_START_ENCRYPTION" since="11" />
+		<field name="ENCRYPTION_STATUS_ACTIVATING" since="11" />
+		<field name="ENCRYPTION_STATUS_ACTIVE" since="11" />
+		<field name="ENCRYPTION_STATUS_INACTIVE" since="11" />
+		<field name="ENCRYPTION_STATUS_UNSUPPORTED" since="11" />
+		<field name="EXTRA_ADD_EXPLANATION" />
+		<field name="EXTRA_DEVICE_ADMIN" />
+		<field name="PASSWORD_QUALITY_ALPHABETIC" />
+		<field name="PASSWORD_QUALITY_ALPHANUMERIC" />
+		<field name="PASSWORD_QUALITY_BIOMETRIC_WEAK" since="14" />
+		<field name="PASSWORD_QUALITY_COMPLEX" since="11" />
+		<field name="PASSWORD_QUALITY_NUMERIC" />
+		<field name="PASSWORD_QUALITY_SOMETHING" />
+		<field name="PASSWORD_QUALITY_UNSPECIFIED" />
+		<field name="RESET_PASSWORD_REQUIRE_ENTRY" />
+		<field name="WIPE_EXTERNAL_STORAGE" since="9" />
+	</class>
+	<class name="android/app/backup/BackupAgent" since="8">
+		<extends name="android/content/ContextWrapper" />
+		<method name="&lt;init>()V" />
+		<method name="fullBackupFile(Ljava/io/File;Landroid/app/backup/FullBackupDataOutput;)V" since="14" />
+		<method name="onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
+		<method name="onCreate()V" />
+		<method name="onDestroy()V" />
+		<method name="onFullBackup(Landroid/app/backup/FullBackupDataOutput;)V" since="14" />
+		<method name="onRestore(Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V" />
+		<method name="onRestoreFile(Landroid/os/ParcelFileDescriptor;JLjava/io/File;IJJ)V" since="14" />
+		<field name="TYPE_DIRECTORY" since="14" />
+		<field name="TYPE_FILE" since="14" />
+	</class>
+	<class name="android/app/backup/BackupAgentHelper" since="8">
+		<extends name="android/app/backup/BackupAgent" />
+		<method name="&lt;init>()V" />
+		<method name="addHelper(Ljava/lang/String;Landroid/app/backup/BackupHelper;)V" />
+		<method name="onBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
+		<method name="onRestore(Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V" />
+	</class>
+	<class name="android/app/backup/BackupDataInput" since="8">
+		<extends name="java/lang/Object" />
+		<method name="getDataSize()I" />
+		<method name="getKey()Ljava/lang/String;" />
+		<method name="readEntityData([BII)I" />
+		<method name="readNextHeader()Z" />
+		<method name="skipEntityData()V" />
+	</class>
+	<class name="android/app/backup/BackupDataInputStream" since="8">
+		<extends name="java/io/InputStream" />
+		<method name="getKey()Ljava/lang/String;" />
+		<method name="read()I" />
+		<method name="size()I" />
+	</class>
+	<class name="android/app/backup/BackupDataOutput" since="8">
+		<extends name="java/lang/Object" />
+		<method name="writeEntityData([BI)I" />
+		<method name="writeEntityHeader(Ljava/lang/String;I)I" />
+	</class>
+	<class name="android/app/backup/BackupHelper" since="8">
+		<method name="performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
+		<method name="restoreEntity(Landroid/app/backup/BackupDataInputStream;)V" />
+		<method name="writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V" />
+	</class>
+	<class name="android/app/backup/BackupManager" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="dataChanged()V" />
+		<method name="dataChanged(Ljava/lang/String;)V" />
+		<method name="requestRestore(Landroid/app/backup/RestoreObserver;)I" />
+	</class>
+	<class name="android/app/backup/FileBackupHelper" since="8">
+		<extends name="android/app/backup/FileBackupHelperBase" />
+		<implements name="android/app/backup/BackupHelper" />
+		<method name="&lt;init>(Landroid/content/Context;[Ljava/lang/String;)V" />
+		<method name="performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
+		<method name="restoreEntity(Landroid/app/backup/BackupDataInputStream;)V" />
+	</class>
+	<class name="android/app/backup/FileBackupHelperBase" since="8">
+		<extends name="java/lang/Object" />
+		<method name="writeNewStateDescription(Landroid/os/ParcelFileDescriptor;)V" />
+	</class>
+	<class name="android/app/backup/FullBackupDataOutput" since="14">
+	</class>
+	<class name="android/app/backup/RestoreObserver" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="onUpdate(ILjava/lang/String;)V" />
+		<method name="restoreFinished(I)V" />
+		<method name="restoreStarting(I)V" />
+	</class>
+	<class name="android/app/backup/SharedPreferencesBackupHelper" since="8">
+		<extends name="android/app/backup/FileBackupHelperBase" />
+		<implements name="android/app/backup/BackupHelper" />
+		<method name="&lt;init>(Landroid/content/Context;[Ljava/lang/String;)V" />
+		<method name="performBackup(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V" />
+		<method name="restoreEntity(Landroid/app/backup/BackupDataInputStream;)V" />
+	</class>
+	<class name="android/appwidget/AppWidgetHost" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="allocateAppWidgetId()I" />
+		<method name="clearViews()V" since="11" />
+		<method name="createView(Landroid/content/Context;ILandroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/AppWidgetHostView;" />
+		<method name="deleteAllHosts()V" />
+		<method name="deleteAppWidgetId(I)V" />
+		<method name="deleteHost()V" />
+		<method name="onCreateView(Landroid/content/Context;ILandroid/appwidget/AppWidgetProviderInfo;)Landroid/appwidget/AppWidgetHostView;" />
+		<method name="onProviderChanged(ILandroid/appwidget/AppWidgetProviderInfo;)V" />
+		<method name="startListening()V" />
+		<method name="stopListening()V" />
+	</class>
+	<class name="android/appwidget/AppWidgetHostView" since="3">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;II)V" />
+		<method name="getAppWidgetId()I" />
+		<method name="getAppWidgetInfo()Landroid/appwidget/AppWidgetProviderInfo;" />
+		<method name="getDefaultPaddingForWidget(Landroid/content/Context;Landroid/content/ComponentName;Landroid/graphics/Rect;)Landroid/graphics/Rect;" since="15" />
+		<method name="getDefaultView()Landroid/view/View;" />
+		<method name="getErrorView()Landroid/view/View;" />
+		<method name="prepareView(Landroid/view/View;)V" />
+		<method name="setAppWidget(ILandroid/appwidget/AppWidgetProviderInfo;)V" />
+		<method name="updateAppWidget(Landroid/widget/RemoteViews;)V" />
+	</class>
+	<class name="android/appwidget/AppWidgetManager" since="3">
+		<extends name="java/lang/Object" />
+		<method name="bindAppWidgetId(ILandroid/content/ComponentName;)V" />
+		<method name="getAppWidgetIds(Landroid/content/ComponentName;)[I" />
+		<method name="getAppWidgetInfo(I)Landroid/appwidget/AppWidgetProviderInfo;" />
+		<method name="getInstalledProviders()Ljava/util/List;" />
+		<method name="getInstance(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;" />
+		<method name="notifyAppWidgetViewDataChanged(II)V" since="11" />
+		<method name="notifyAppWidgetViewDataChanged([II)V" since="11" />
+		<method name="partiallyUpdateAppWidget(ILandroid/widget/RemoteViews;)V" since="11" />
+		<method name="partiallyUpdateAppWidget([ILandroid/widget/RemoteViews;)V" since="11" />
+		<method name="updateAppWidget(ILandroid/widget/RemoteViews;)V" />
+		<method name="updateAppWidget(Landroid/content/ComponentName;Landroid/widget/RemoteViews;)V" />
+		<method name="updateAppWidget([ILandroid/widget/RemoteViews;)V" />
+		<field name="ACTION_APPWIDGET_CONFIGURE" />
+		<field name="ACTION_APPWIDGET_DELETED" />
+		<field name="ACTION_APPWIDGET_DISABLED" />
+		<field name="ACTION_APPWIDGET_ENABLED" />
+		<field name="ACTION_APPWIDGET_PICK" />
+		<field name="ACTION_APPWIDGET_UPDATE" />
+		<field name="EXTRA_APPWIDGET_ID" />
+		<field name="EXTRA_APPWIDGET_IDS" />
+		<field name="EXTRA_CUSTOM_EXTRAS" />
+		<field name="EXTRA_CUSTOM_INFO" />
+		<field name="INVALID_APPWIDGET_ID" />
+		<field name="META_DATA_APPWIDGET_PROVIDER" />
+	</class>
+	<class name="android/appwidget/AppWidgetProvider" since="3">
+		<extends name="android/content/BroadcastReceiver" />
+		<method name="&lt;init>()V" />
+		<method name="onDeleted(Landroid/content/Context;[I)V" />
+		<method name="onDisabled(Landroid/content/Context;)V" />
+		<method name="onEnabled(Landroid/content/Context;)V" />
+		<method name="onReceive(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="onUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[I)V" />
+	</class>
+	<class name="android/appwidget/AppWidgetProviderInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="RESIZE_BOTH" since="12" />
+		<field name="RESIZE_HORIZONTAL" since="12" />
+		<field name="RESIZE_NONE" since="12" />
+		<field name="RESIZE_VERTICAL" since="12" />
+		<field name="autoAdvanceViewId" since="11" />
+		<field name="configure" />
+		<field name="icon" />
+		<field name="initialLayout" />
+		<field name="label" />
+		<field name="minHeight" />
+		<field name="minResizeHeight" since="14" />
+		<field name="minResizeWidth" since="14" />
+		<field name="minWidth" />
+		<field name="previewImage" since="11" />
+		<field name="provider" />
+		<field name="resizeMode" since="12" />
+		<field name="updatePeriodMillis" />
+	</class>
+	<class name="android/bluetooth/BluetoothA2dp" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/bluetooth/BluetoothProfile" />
+		<method name="getConnectedDevices()Ljava/util/List;" />
+		<method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;)I" />
+		<method name="getDevicesMatchingConnectionStates([I)Ljava/util/List;" />
+		<method name="isA2dpPlaying(Landroid/bluetooth/BluetoothDevice;)Z" />
+		<field name="ACTION_CONNECTION_STATE_CHANGED" />
+		<field name="ACTION_PLAYING_STATE_CHANGED" />
+		<field name="STATE_NOT_PLAYING" />
+		<field name="STATE_PLAYING" />
+	</class>
+	<class name="android/bluetooth/BluetoothAdapter" since="5">
+		<extends name="java/lang/Object" />
+		<method name="cancelDiscovery()Z" />
+		<method name="checkBluetoothAddress(Ljava/lang/String;)Z" />
+		<method name="closeProfileProxy(ILandroid/bluetooth/BluetoothProfile;)V" since="11" />
+		<method name="disable()Z" />
+		<method name="enable()Z" />
+		<method name="getAddress()Ljava/lang/String;" />
+		<method name="getBondedDevices()Ljava/util/Set;" />
+		<method name="getDefaultAdapter()Landroid/bluetooth/BluetoothAdapter;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getProfileConnectionState(I)I" since="14" />
+		<method name="getProfileProxy(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;I)Z" since="11" />
+		<method name="getRemoteDevice(Ljava/lang/String;)Landroid/bluetooth/BluetoothDevice;" />
+		<method name="getScanMode()I" />
+		<method name="getState()I" />
+		<method name="isDiscovering()Z" />
+		<method name="isEnabled()Z" />
+		<method name="listenUsingInsecureRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;" since="10" />
+		<method name="listenUsingRfcommWithServiceRecord(Ljava/lang/String;Ljava/util/UUID;)Landroid/bluetooth/BluetoothServerSocket;" />
+		<method name="setName(Ljava/lang/String;)Z" />
+		<method name="startDiscovery()Z" />
+		<field name="ACTION_CONNECTION_STATE_CHANGED" since="11" />
+		<field name="ACTION_DISCOVERY_FINISHED" />
+		<field name="ACTION_DISCOVERY_STARTED" />
+		<field name="ACTION_LOCAL_NAME_CHANGED" />
+		<field name="ACTION_REQUEST_DISCOVERABLE" />
+		<field name="ACTION_REQUEST_ENABLE" />
+		<field name="ACTION_SCAN_MODE_CHANGED" />
+		<field name="ACTION_STATE_CHANGED" />
+		<field name="ERROR" />
+		<field name="EXTRA_CONNECTION_STATE" since="11" />
+		<field name="EXTRA_DISCOVERABLE_DURATION" />
+		<field name="EXTRA_LOCAL_NAME" />
+		<field name="EXTRA_PREVIOUS_CONNECTION_STATE" since="11" />
+		<field name="EXTRA_PREVIOUS_SCAN_MODE" />
+		<field name="EXTRA_PREVIOUS_STATE" />
+		<field name="EXTRA_SCAN_MODE" />
+		<field name="EXTRA_STATE" />
+		<field name="SCAN_MODE_CONNECTABLE" />
+		<field name="SCAN_MODE_CONNECTABLE_DISCOVERABLE" />
+		<field name="SCAN_MODE_NONE" />
+		<field name="STATE_CONNECTED" since="11" />
+		<field name="STATE_CONNECTING" since="11" />
+		<field name="STATE_DISCONNECTED" since="11" />
+		<field name="STATE_DISCONNECTING" since="11" />
+		<field name="STATE_OFF" />
+		<field name="STATE_ON" />
+		<field name="STATE_TURNING_OFF" />
+		<field name="STATE_TURNING_ON" />
+	</class>
+	<class name="android/bluetooth/BluetoothAssignedNumbers" since="11">
+		<extends name="java/lang/Object" />
+		<field name="ACCEL_SEMICONDUCTOR" />
+		<field name="ALCATEL" />
+		<field name="APPLE" />
+		<field name="APT_LICENSING" />
+		<field name="ATHEROS_COMMUNICATIONS" />
+		<field name="ATMEL" />
+		<field name="AVAGO" />
+		<field name="AVM_BERLIN" />
+		<field name="BANDSPEED" />
+		<field name="BELKIN_INTERNATIONAL" />
+		<field name="BLUEGIGA" />
+		<field name="BLUETOOTH_SIG" />
+		<field name="BROADCOM" />
+		<field name="CAMBRIDGE_SILICON_RADIO" />
+		<field name="CATC" />
+		<field name="COMMIL" />
+		<field name="CONEXANT_SYSTEMS" />
+		<field name="CONTINENTAL_AUTOMOTIVE" />
+		<field name="CONWISE_TECHNOLOGY" />
+		<field name="C_TECHNOLOGIES" />
+		<field name="DIGIANSWER" />
+		<field name="ECLIPSE" />
+		<field name="EM_MICROELECTRONIC_MARIN" />
+		<field name="ERICSSON_TECHNOLOGY" />
+		<field name="FREE2MOVE" />
+		<field name="GCT_SEMICONDUCTOR" />
+		<field name="GENNUM" />
+		<field name="HARMAN_INTERNATIONAL" />
+		<field name="HITACHI" />
+		<field name="IBM" />
+		<field name="INFINEON_TECHNOLOGIES" />
+		<field name="INTEGRATED_SILICON_SOLUTION" />
+		<field name="INTEGRATED_SYSTEM_SOLUTION" />
+		<field name="INTEL" />
+		<field name="INVENTEL" />
+		<field name="IPEXTREME" />
+		<field name="J_AND_M" />
+		<field name="KC_TECHNOLOGY" />
+		<field name="LUCENT" />
+		<field name="MACRONIX" />
+		<field name="MANSELLA" />
+		<field name="MARVELL" />
+		<field name="MATSUSHITA_ELECTRIC" />
+		<field name="MEDIATEK" />
+		<field name="MEWTEL_TECHNOLOGY" />
+		<field name="MICROSOFT" />
+		<field name="MITEL_SEMICONDUCTOR" />
+		<field name="MITSUBISHI_ELECTRIC" />
+		<field name="MOBILIAN_CORPORATION" />
+		<field name="MOTOROLA" />
+		<field name="NEC" />
+		<field name="NEWLOGIC" />
+		<field name="NOKIA_MOBILE_PHONES" />
+		<field name="NORDIC_SEMICONDUCTOR" />
+		<field name="NORWOOD_SYSTEMS" />
+		<field name="OPEN_INTERFACE" />
+		<field name="PARROT" />
+		<field name="PARTHUS_TECHNOLOGIES" />
+		<field name="PHILIPS_SEMICONDUCTORS" />
+		<field name="PLANTRONICS" />
+		<field name="QUALCOMM" />
+		<field name="RALINK_TECHNOLOGY" />
+		<field name="REALTEK_SEMICONDUCTOR" />
+		<field name="RED_M" />
+		<field name="RENESAS_TECHNOLOGY" />
+		<field name="RESEARCH_IN_MOTION" />
+		<field name="RF_MICRO_DEVICES" />
+		<field name="RIVIERAWAVES" />
+		<field name="ROHDE_AND_SCHWARZ" />
+		<field name="RTX_TELECOM" />
+		<field name="SEIKO_EPSON" />
+		<field name="SIGNIA_TECHNOLOGIES" />
+		<field name="SILICON_WAVE" />
+		<field name="SIRF_TECHNOLOGY" />
+		<field name="SOCKET_MOBILE" />
+		<field name="SONY_ERICSSON" />
+		<field name="STACCATO_COMMUNICATIONS" />
+		<field name="STONESTREET_ONE" />
+		<field name="ST_MICROELECTRONICS" />
+		<field name="SYMBOL_TECHNOLOGIES" />
+		<field name="SYNOPSYS" />
+		<field name="SYSTEMS_AND_CHIPS" />
+		<field name="TENOVIS" />
+		<field name="TERAX" />
+		<field name="TEXAS_INSTRUMENTS" />
+		<field name="THREECOM" />
+		<field name="THREE_DIJOY" />
+		<field name="THREE_DSP" />
+		<field name="TOSHIBA" />
+		<field name="TRANSILICA" />
+		<field name="TTPCOM" />
+		<field name="TZERO_TECHNOLOGIES" />
+		<field name="VIZIO" />
+		<field name="WAVEPLUS_TECHNOLOGY" />
+		<field name="WICENTRIC" />
+		<field name="WIDCOMM" />
+		<field name="ZEEVO" />
+	</class>
+	<class name="android/bluetooth/BluetoothClass" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getDeviceClass()I" />
+		<method name="getMajorDeviceClass()I" />
+		<method name="hasService(I)Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/bluetooth/BluetoothClass$Device" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="AUDIO_VIDEO_CAMCORDER" />
+		<field name="AUDIO_VIDEO_CAR_AUDIO" />
+		<field name="AUDIO_VIDEO_HANDSFREE" />
+		<field name="AUDIO_VIDEO_HEADPHONES" />
+		<field name="AUDIO_VIDEO_HIFI_AUDIO" />
+		<field name="AUDIO_VIDEO_LOUDSPEAKER" />
+		<field name="AUDIO_VIDEO_MICROPHONE" />
+		<field name="AUDIO_VIDEO_PORTABLE_AUDIO" />
+		<field name="AUDIO_VIDEO_SET_TOP_BOX" />
+		<field name="AUDIO_VIDEO_UNCATEGORIZED" />
+		<field name="AUDIO_VIDEO_VCR" />
+		<field name="AUDIO_VIDEO_VIDEO_CAMERA" />
+		<field name="AUDIO_VIDEO_VIDEO_CONFERENCING" />
+		<field name="AUDIO_VIDEO_VIDEO_DISPLAY_AND_LOUDSPEAKER" />
+		<field name="AUDIO_VIDEO_VIDEO_GAMING_TOY" />
+		<field name="AUDIO_VIDEO_VIDEO_MONITOR" />
+		<field name="AUDIO_VIDEO_WEARABLE_HEADSET" />
+		<field name="COMPUTER_DESKTOP" />
+		<field name="COMPUTER_HANDHELD_PC_PDA" />
+		<field name="COMPUTER_LAPTOP" />
+		<field name="COMPUTER_PALM_SIZE_PC_PDA" />
+		<field name="COMPUTER_SERVER" />
+		<field name="COMPUTER_UNCATEGORIZED" />
+		<field name="COMPUTER_WEARABLE" />
+		<field name="HEALTH_BLOOD_PRESSURE" />
+		<field name="HEALTH_DATA_DISPLAY" />
+		<field name="HEALTH_GLUCOSE" />
+		<field name="HEALTH_PULSE_OXIMETER" />
+		<field name="HEALTH_PULSE_RATE" />
+		<field name="HEALTH_THERMOMETER" />
+		<field name="HEALTH_UNCATEGORIZED" />
+		<field name="HEALTH_WEIGHING" />
+		<field name="PHONE_CELLULAR" />
+		<field name="PHONE_CORDLESS" />
+		<field name="PHONE_ISDN" />
+		<field name="PHONE_MODEM_OR_GATEWAY" />
+		<field name="PHONE_SMART" />
+		<field name="PHONE_UNCATEGORIZED" />
+		<field name="TOY_CONTROLLER" />
+		<field name="TOY_DOLL_ACTION_FIGURE" />
+		<field name="TOY_GAME" />
+		<field name="TOY_ROBOT" />
+		<field name="TOY_UNCATEGORIZED" />
+		<field name="TOY_VEHICLE" />
+		<field name="WEARABLE_GLASSES" />
+		<field name="WEARABLE_HELMET" />
+		<field name="WEARABLE_JACKET" />
+		<field name="WEARABLE_PAGER" />
+		<field name="WEARABLE_UNCATEGORIZED" />
+		<field name="WEARABLE_WRIST_WATCH" />
+	</class>
+	<class name="android/bluetooth/BluetoothClass$Device$Major" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="AUDIO_VIDEO" />
+		<field name="COMPUTER" />
+		<field name="HEALTH" />
+		<field name="IMAGING" />
+		<field name="MISC" />
+		<field name="NETWORKING" />
+		<field name="PERIPHERAL" />
+		<field name="PHONE" />
+		<field name="TOY" />
+		<field name="UNCATEGORIZED" />
+		<field name="WEARABLE" />
+	</class>
+	<class name="android/bluetooth/BluetoothClass$Service" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="AUDIO" />
+		<field name="CAPTURE" />
+		<field name="INFORMATION" />
+		<field name="LIMITED_DISCOVERABILITY" />
+		<field name="NETWORKING" />
+		<field name="OBJECT_TRANSFER" />
+		<field name="POSITIONING" />
+		<field name="RENDER" />
+		<field name="TELEPHONY" />
+	</class>
+	<class name="android/bluetooth/BluetoothDevice" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="createInsecureRfcommSocketToServiceRecord(Ljava/util/UUID;)Landroid/bluetooth/BluetoothSocket;" since="10" />
+		<method name="createRfcommSocketToServiceRecord(Ljava/util/UUID;)Landroid/bluetooth/BluetoothSocket;" />
+		<method name="describeContents()I" />
+		<method name="fetchUuidsWithSdp()Z" since="15" />
+		<method name="getAddress()Ljava/lang/String;" />
+		<method name="getBluetoothClass()Landroid/bluetooth/BluetoothClass;" />
+		<method name="getBondState()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getUuids()[Landroid/os/ParcelUuid;" since="15" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_ACL_CONNECTED" />
+		<field name="ACTION_ACL_DISCONNECTED" />
+		<field name="ACTION_ACL_DISCONNECT_REQUESTED" />
+		<field name="ACTION_BOND_STATE_CHANGED" />
+		<field name="ACTION_CLASS_CHANGED" />
+		<field name="ACTION_FOUND" />
+		<field name="ACTION_NAME_CHANGED" />
+		<field name="ACTION_UUID" since="15" />
+		<field name="BOND_BONDED" />
+		<field name="BOND_BONDING" />
+		<field name="BOND_NONE" />
+		<field name="CREATOR" />
+		<field name="ERROR" />
+		<field name="EXTRA_BOND_STATE" />
+		<field name="EXTRA_CLASS" />
+		<field name="EXTRA_DEVICE" />
+		<field name="EXTRA_NAME" />
+		<field name="EXTRA_PREVIOUS_BOND_STATE" />
+		<field name="EXTRA_RSSI" />
+		<field name="EXTRA_UUID" since="15" />
+	</class>
+	<class name="android/bluetooth/BluetoothHeadset" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/bluetooth/BluetoothProfile" />
+		<method name="getConnectedDevices()Ljava/util/List;" />
+		<method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;)I" />
+		<method name="getDevicesMatchingConnectionStates([I)Ljava/util/List;" />
+		<method name="isAudioConnected(Landroid/bluetooth/BluetoothDevice;)Z" />
+		<method name="startVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z" />
+		<method name="stopVoiceRecognition(Landroid/bluetooth/BluetoothDevice;)Z" />
+		<field name="ACTION_AUDIO_STATE_CHANGED" />
+		<field name="ACTION_CONNECTION_STATE_CHANGED" />
+		<field name="ACTION_VENDOR_SPECIFIC_HEADSET_EVENT" />
+		<field name="AT_CMD_TYPE_ACTION" />
+		<field name="AT_CMD_TYPE_BASIC" />
+		<field name="AT_CMD_TYPE_READ" />
+		<field name="AT_CMD_TYPE_SET" />
+		<field name="AT_CMD_TYPE_TEST" />
+		<field name="EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_ARGS" />
+		<field name="EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD" />
+		<field name="EXTRA_VENDOR_SPECIFIC_HEADSET_EVENT_CMD_TYPE" />
+		<field name="STATE_AUDIO_CONNECTED" />
+		<field name="STATE_AUDIO_CONNECTING" />
+		<field name="STATE_AUDIO_DISCONNECTED" />
+		<field name="VENDOR_SPECIFIC_HEADSET_EVENT_COMPANY_ID_CATEGORY" />
+	</class>
+	<class name="android/bluetooth/BluetoothHealth" since="14">
+		<implements name="android/bluetooth/BluetoothProfile" />
+		<method name="connectChannelToSource(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z" />
+		<method name="disconnectChannel(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;I)Z" />
+		<method name="getConnectedDevices()Ljava/util/List;" />
+		<method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;)I" />
+		<method name="getDevicesMatchingConnectionStates([I)Ljava/util/List;" />
+		<method name="getMainChannelFd(Landroid/bluetooth/BluetoothDevice;Landroid/bluetooth/BluetoothHealthAppConfiguration;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="registerSinkAppConfiguration(Ljava/lang/String;ILandroid/bluetooth/BluetoothHealthCallback;)Z" />
+		<method name="unregisterAppConfiguration(Landroid/bluetooth/BluetoothHealthAppConfiguration;)Z" />
+		<field name="APP_CONFIG_REGISTRATION_FAILURE" />
+		<field name="APP_CONFIG_REGISTRATION_SUCCESS" />
+		<field name="APP_CONFIG_UNREGISTRATION_FAILURE" />
+		<field name="APP_CONFIG_UNREGISTRATION_SUCCESS" />
+		<field name="CHANNEL_TYPE_RELIABLE" />
+		<field name="CHANNEL_TYPE_STREAMING" />
+		<field name="SINK_ROLE" />
+		<field name="SOURCE_ROLE" />
+		<field name="STATE_CHANNEL_CONNECTED" />
+		<field name="STATE_CHANNEL_CONNECTING" />
+		<field name="STATE_CHANNEL_DISCONNECTED" />
+		<field name="STATE_CHANNEL_DISCONNECTING" />
+	</class>
+	<class name="android/bluetooth/BluetoothHealthAppConfiguration" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getDataType()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getRole()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/bluetooth/BluetoothHealthCallback" since="14">
+		<method name="&lt;init>()V" />
+		<method name="onHealthAppConfigurationStatusChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;I)V" />
+		<method name="onHealthChannelStateChange(Landroid/bluetooth/BluetoothHealthAppConfiguration;Landroid/bluetooth/BluetoothDevice;IILandroid/os/ParcelFileDescriptor;I)V" />
+	</class>
+	<class name="android/bluetooth/BluetoothProfile" since="11">
+		<method name="getConnectedDevices()Ljava/util/List;" />
+		<method name="getConnectionState(Landroid/bluetooth/BluetoothDevice;)I" />
+		<method name="getDevicesMatchingConnectionStates([I)Ljava/util/List;" />
+		<field name="A2DP" />
+		<field name="EXTRA_PREVIOUS_STATE" />
+		<field name="EXTRA_STATE" />
+		<field name="HEADSET" />
+		<field name="HEALTH" since="14" />
+		<field name="STATE_CONNECTED" />
+		<field name="STATE_CONNECTING" />
+		<field name="STATE_DISCONNECTED" />
+		<field name="STATE_DISCONNECTING" />
+	</class>
+	<class name="android/bluetooth/BluetoothProfile$ServiceListener" since="11">
+		<method name="onServiceConnected(ILandroid/bluetooth/BluetoothProfile;)V" />
+		<method name="onServiceDisconnected(I)V" />
+	</class>
+	<class name="android/bluetooth/BluetoothServerSocket" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<method name="accept()Landroid/bluetooth/BluetoothSocket;" />
+		<method name="accept(I)Landroid/bluetooth/BluetoothSocket;" />
+		<method name="close()V" />
+	</class>
+	<class name="android/bluetooth/BluetoothSocket" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<method name="close()V" />
+		<method name="connect()V" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="getRemoteDevice()Landroid/bluetooth/BluetoothDevice;" />
+		<method name="isConnected()Z" since="14" />
+	</class>
+	<class name="android/content/AbstractThreadedSyncAdapter" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Z)V" />
+		<method name="&lt;init>(Landroid/content/Context;ZZ)V" since="11" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getSyncAdapterBinder()Landroid/os/IBinder;" />
+		<method name="onPerformSync(Landroid/accounts/Account;Landroid/os/Bundle;Ljava/lang/String;Landroid/content/ContentProviderClient;Landroid/content/SyncResult;)V" />
+		<method name="onSyncCanceled()V" since="8" />
+		<method name="onSyncCanceled(Ljava/lang/Thread;)V" since="11" />
+		<field name="LOG_SYNC_DETAILS" />
+	</class>
+	<class name="android/content/ActivityNotFoundException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/AsyncQueryHandler" since="1">
+		<extends name="android/os/Handler" />
+		<method name="&lt;init>(Landroid/content/ContentResolver;)V" />
+		<method name="cancelOperation(I)V" />
+		<method name="createHandler(Landroid/os/Looper;)Landroid/os/Handler;" />
+		<method name="onDeleteComplete(ILjava/lang/Object;I)V" />
+		<method name="onInsertComplete(ILjava/lang/Object;Landroid/net/Uri;)V" />
+		<method name="onQueryComplete(ILjava/lang/Object;Landroid/database/Cursor;)V" />
+		<method name="onUpdateComplete(ILjava/lang/Object;I)V" />
+		<method name="startDelete(ILjava/lang/Object;Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)V" />
+		<method name="startInsert(ILjava/lang/Object;Landroid/net/Uri;Landroid/content/ContentValues;)V" />
+		<method name="startQuery(ILjava/lang/Object;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="startUpdate(ILjava/lang/Object;Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/AsyncQueryHandler$WorkerArgs" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="cookie" />
+		<field name="handler" />
+		<field name="orderBy" />
+		<field name="projection" />
+		<field name="result" />
+		<field name="selection" />
+		<field name="selectionArgs" />
+		<field name="uri" />
+		<field name="values" />
+	</class>
+	<class name="android/content/AsyncQueryHandler$WorkerHandler" since="1">
+		<extends name="android/os/Handler" />
+		<method name="&lt;init>(Landroid/os/Looper;)V" />
+	</class>
+	<class name="android/content/AsyncTaskLoader" since="11">
+		<extends name="android/content/Loader" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="cancelLoad()Z" />
+		<method name="loadInBackground()LD;" />
+		<method name="onCanceled(LD;)V" />
+		<method name="onLoadInBackground()LD;" />
+		<method name="setUpdateThrottle(J)V" />
+	</class>
+	<class name="android/content/BroadcastReceiver" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="abortBroadcast()V" />
+		<method name="clearAbortBroadcast()V" />
+		<method name="getAbortBroadcast()Z" />
+		<method name="getDebugUnregister()Z" />
+		<method name="getResultCode()I" />
+		<method name="getResultData()Ljava/lang/String;" />
+		<method name="getResultExtras(Z)Landroid/os/Bundle;" />
+		<method name="goAsync()Landroid/content/BroadcastReceiver$PendingResult;" since="11" />
+		<method name="isInitialStickyBroadcast()Z" since="5" />
+		<method name="isOrderedBroadcast()Z" since="5" />
+		<method name="onReceive(Landroid/content/Context;Landroid/content/Intent;)V" />
+		<method name="peekService(Landroid/content/Context;Landroid/content/Intent;)Landroid/os/IBinder;" since="3" />
+		<method name="setDebugUnregister(Z)V" />
+		<method name="setOrderedHint(Z)V" />
+		<method name="setResult(ILjava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="setResultCode(I)V" />
+		<method name="setResultData(Ljava/lang/String;)V" />
+		<method name="setResultExtras(Landroid/os/Bundle;)V" />
+	</class>
+	<class name="android/content/BroadcastReceiver$PendingResult" since="11">
+		<extends name="java/lang/Object" />
+		<method name="abortBroadcast()V" />
+		<method name="clearAbortBroadcast()V" />
+		<method name="finish()V" />
+		<method name="getAbortBroadcast()Z" />
+		<method name="getResultCode()I" />
+		<method name="getResultData()Ljava/lang/String;" />
+		<method name="getResultExtras(Z)Landroid/os/Bundle;" />
+		<method name="setResult(ILjava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="setResultCode(I)V" />
+		<method name="setResultData(Ljava/lang/String;)V" />
+		<method name="setResultExtras(Landroid/os/Bundle;)V" />
+	</class>
+	<class name="android/content/ClipData" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/content/ClipDescription;Landroid/content/ClipData$Item;)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;[Ljava/lang/String;Landroid/content/ClipData$Item;)V" />
+		<method name="addItem(Landroid/content/ClipData$Item;)V" />
+		<method name="describeContents()I" />
+		<method name="getDescription()Landroid/content/ClipDescription;" />
+		<method name="getItemAt(I)Landroid/content/ClipData$Item;" />
+		<method name="getItemCount()I" />
+		<method name="newIntent(Ljava/lang/CharSequence;Landroid/content/Intent;)Landroid/content/ClipData;" />
+		<method name="newPlainText(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Landroid/content/ClipData;" />
+		<method name="newRawUri(Ljava/lang/CharSequence;Landroid/net/Uri;)Landroid/content/ClipData;" />
+		<method name="newUri(Landroid/content/ContentResolver;Ljava/lang/CharSequence;Landroid/net/Uri;)Landroid/content/ClipData;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/ClipData$Item" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Intent;)V" />
+		<method name="&lt;init>(Landroid/net/Uri;)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/content/Intent;Landroid/net/Uri;)V" />
+		<method name="coerceToText(Landroid/content/Context;)Ljava/lang/CharSequence;" />
+		<method name="getIntent()Landroid/content/Intent;" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="getUri()Landroid/net/Uri;" />
+	</class>
+	<class name="android/content/ClipDescription" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/content/ClipDescription;)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;[Ljava/lang/String;)V" />
+		<method name="compareMimeTypes(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="describeContents()I" />
+		<method name="filterMimeTypes(Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="getLabel()Ljava/lang/CharSequence;" />
+		<method name="getMimeType(I)Ljava/lang/String;" />
+		<method name="getMimeTypeCount()I" />
+		<method name="hasMimeType(Ljava/lang/String;)Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="MIMETYPE_TEXT_INTENT" />
+		<field name="MIMETYPE_TEXT_PLAIN" />
+		<field name="MIMETYPE_TEXT_URILIST" />
+	</class>
+	<class name="android/content/ClipboardManager" since="11">
+		<extends name="android/text/ClipboardManager" />
+		<method name="addPrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V" />
+		<method name="getPrimaryClip()Landroid/content/ClipData;" />
+		<method name="getPrimaryClipDescription()Landroid/content/ClipDescription;" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="hasPrimaryClip()Z" />
+		<method name="hasText()Z" />
+		<method name="removePrimaryClipChangedListener(Landroid/content/ClipboardManager$OnPrimaryClipChangedListener;)V" />
+		<method name="setPrimaryClip(Landroid/content/ClipData;)V" />
+		<method name="setText(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/content/ClipboardManager$OnPrimaryClipChangedListener" since="11">
+		<method name="onPrimaryClipChanged()V" />
+	</class>
+	<class name="android/content/ComponentCallbacks" since="1">
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="onLowMemory()V" />
+	</class>
+	<class name="android/content/ComponentCallbacks2" since="14">
+		<implements name="android/content/ComponentCallbacks" />
+		<method name="onTrimMemory(I)V" />
+		<field name="TRIM_MEMORY_BACKGROUND" />
+		<field name="TRIM_MEMORY_COMPLETE" />
+		<field name="TRIM_MEMORY_MODERATE" />
+		<field name="TRIM_MEMORY_UI_HIDDEN" />
+	</class>
+	<class name="android/content/ComponentName" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<implements name="java/lang/Comparable" since="4" />
+		<implements name="java/lang/Cloneable" since="8" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Landroid/content/ComponentName;" since="8" />
+		<method name="compareTo(Landroid/content/ComponentName;)I" since="4" />
+		<method name="describeContents()I" />
+		<method name="flattenToShortString()Ljava/lang/String;" />
+		<method name="flattenToString()Ljava/lang/String;" />
+		<method name="getClassName()Ljava/lang/String;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getShortClassName()Ljava/lang/String;" />
+		<method name="readFromParcel(Landroid/os/Parcel;)Landroid/content/ComponentName;" />
+		<method name="toShortString()Ljava/lang/String;" />
+		<method name="unflattenFromString(Ljava/lang/String;)Landroid/content/ComponentName;" />
+		<method name="writeToParcel(Landroid/content/ComponentName;Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/ContentProvider" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/content/ComponentCallbacks" />
+		<implements name="android/content/ComponentCallbacks2" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="5" />
+		<method name="attachInfo(Landroid/content/Context;Landroid/content/pm/ProviderInfo;)V" />
+		<method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I" />
+		<method name="call(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="11" />
+		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getPathPermissions()[Landroid/content/pm/PathPermission;" since="4" />
+		<method name="getReadPermission()Ljava/lang/String;" />
+		<method name="getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;" since="11" />
+		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
+		<method name="getWritePermission()Ljava/lang/String;" />
+		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
+		<method name="isTemporary()Z" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="onCreate()Z" />
+		<method name="onLowMemory()V" />
+		<method name="onTrimMemory(I)V" since="14" />
+		<method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" since="3" />
+		<method name="openFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="openFileHelper(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="openPipeHelper(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;LT;Landroid/content/ContentProvider$PipeDataWriter;)Landroid/os/ParcelFileDescriptor;" since="11" />
+		<method name="openTypedAssetFile(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11" />
+		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="setPathPermissions([Landroid/content/pm/PathPermission;)V" since="4" />
+		<method name="setReadPermission(Ljava/lang/String;)V" />
+		<method name="setWritePermission(Ljava/lang/String;)V" />
+		<method name="shutdown()V" since="11" />
+		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
+	</class>
+	<class name="android/content/ContentProvider$PipeDataWriter" since="11">
+		<method name="writeDataToPipe(Landroid/os/ParcelFileDescriptor;Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;LT;)V" />
+	</class>
+	<class name="android/content/ContentProviderClient" since="5">
+		<extends name="java/lang/Object" />
+		<method name="applyBatch(Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" />
+		<method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I" />
+		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="getLocalContentProvider()Landroid/content/ContentProvider;" />
+		<method name="getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;" since="11" />
+		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
+		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
+		<method name="openAssetFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
+		<method name="openFile(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11" />
+		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="release()Z" />
+		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
+	</class>
+	<class name="android/content/ContentProviderOperation" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="apply(Landroid/content/ContentProvider;[Landroid/content/ContentProviderResult;I)Landroid/content/ContentProviderResult;" />
+		<method name="describeContents()I" />
+		<method name="getUri()Landroid/net/Uri;" />
+		<method name="isReadOperation()Z" />
+		<method name="isWriteOperation()Z" />
+		<method name="isYieldAllowed()Z" />
+		<method name="newAssertQuery(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="newDelete(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="newInsert(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="newUpdate(Landroid/net/Uri;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="resolveSelectionArgsBackReferences([Landroid/content/ContentProviderResult;I)[Ljava/lang/String;" />
+		<method name="resolveValueBackReferences([Landroid/content/ContentProviderResult;I)Landroid/content/ContentValues;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/ContentProviderOperation$Builder" since="5">
+		<extends name="java/lang/Object" />
+		<method name="build()Landroid/content/ContentProviderOperation;" />
+		<method name="withExpectedCount(I)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withSelection(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withSelectionBackReference(II)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withValue(Ljava/lang/String;Ljava/lang/Object;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withValueBackReference(Ljava/lang/String;I)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withValueBackReferences(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withValues(Landroid/content/ContentValues;)Landroid/content/ContentProviderOperation$Builder;" />
+		<method name="withYieldAllowed(Z)Landroid/content/ContentProviderOperation$Builder;" />
+	</class>
+	<class name="android/content/ContentProviderResult" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/net/Uri;)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="count" />
+		<field name="uri" />
+	</class>
+	<class name="android/content/ContentQueryMap" since="1">
+		<extends name="java/util/Observable" />
+		<method name="&lt;init>(Landroid/database/Cursor;Ljava/lang/String;ZLandroid/os/Handler;)V" />
+		<method name="close()V" />
+		<method name="getRows()Ljava/util/Map;" />
+		<method name="getValues(Ljava/lang/String;)Landroid/content/ContentValues;" />
+		<method name="requery()V" />
+		<method name="setKeepUpdated(Z)V" />
+	</class>
+	<class name="android/content/ContentResolver" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="acquireContentProviderClient(Landroid/net/Uri;)Landroid/content/ContentProviderClient;" since="5" />
+		<method name="acquireContentProviderClient(Ljava/lang/String;)Landroid/content/ContentProviderClient;" since="5" />
+		<method name="addPeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V" since="8" />
+		<method name="addStatusChangeListener(ILandroid/content/SyncStatusObserver;)Ljava/lang/Object;" since="5" />
+		<method name="applyBatch(Ljava/lang/String;Ljava/util/ArrayList;)[Landroid/content/ContentProviderResult;" since="5" />
+		<method name="bulkInsert(Landroid/net/Uri;[Landroid/content/ContentValues;)I" />
+		<method name="call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;" since="11" />
+		<method name="cancelSync(Landroid/accounts/Account;Ljava/lang/String;)V" since="5" />
+		<method name="cancelSync(Landroid/net/Uri;)V" />
+		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="getCurrentSync()Landroid/content/SyncInfo;" since="8" />
+		<method name="getCurrentSyncs()Ljava/util/List;" since="11" />
+		<method name="getIsSyncable(Landroid/accounts/Account;Ljava/lang/String;)I" since="5" />
+		<method name="getMasterSyncAutomatically()Z" since="5" />
+		<method name="getPeriodicSyncs(Landroid/accounts/Account;Ljava/lang/String;)Ljava/util/List;" since="8" />
+		<method name="getStreamTypes(Landroid/net/Uri;Ljava/lang/String;)[Ljava/lang/String;" since="11" />
+		<method name="getSyncAdapterTypes()[Landroid/content/SyncAdapterType;" since="5" />
+		<method name="getSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5" />
+		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
+		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
+		<method name="isSyncActive(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5" />
+		<method name="isSyncPending(Landroid/accounts/Account;Ljava/lang/String;)Z" since="5" />
+		<method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;)V" />
+		<method name="notifyChange(Landroid/net/Uri;Landroid/database/ContentObserver;Z)V" />
+		<method name="openAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" since="3" />
+		<method name="openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;" />
+		<method name="openOutputStream(Landroid/net/Uri;)Ljava/io/OutputStream;" />
+		<method name="openOutputStream(Landroid/net/Uri;Ljava/lang/String;)Ljava/io/OutputStream;" since="3" />
+		<method name="openTypedAssetFileDescriptor(Landroid/net/Uri;Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/res/AssetFileDescriptor;" since="11" />
+		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="registerContentObserver(Landroid/net/Uri;ZLandroid/database/ContentObserver;)V" />
+		<method name="removePeriodicSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V" since="8" />
+		<method name="removeStatusChangeListener(Ljava/lang/Object;)V" since="5" />
+		<method name="requestSync(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;)V" since="5" />
+		<method name="setIsSyncable(Landroid/accounts/Account;Ljava/lang/String;I)V" since="5" />
+		<method name="setMasterSyncAutomatically(Z)V" since="5" />
+		<method name="setSyncAutomatically(Landroid/accounts/Account;Ljava/lang/String;Z)V" since="5" />
+		<method name="startSync(Landroid/net/Uri;Landroid/os/Bundle;)V" />
+		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="validateSyncExtrasBundle(Landroid/os/Bundle;)V" />
+		<field name="CURSOR_DIR_BASE_TYPE" />
+		<field name="CURSOR_ITEM_BASE_TYPE" />
+		<field name="SCHEME_ANDROID_RESOURCE" />
+		<field name="SCHEME_CONTENT" />
+		<field name="SCHEME_FILE" />
+		<field name="SYNC_EXTRAS_ACCOUNT" />
+		<field name="SYNC_EXTRAS_DISCARD_LOCAL_DELETIONS" />
+		<field name="SYNC_EXTRAS_DO_NOT_RETRY" since="8" />
+		<field name="SYNC_EXTRAS_EXPEDITED" />
+		<field name="SYNC_EXTRAS_FORCE" />
+		<field name="SYNC_EXTRAS_IGNORE_BACKOFF" since="8" />
+		<field name="SYNC_EXTRAS_IGNORE_SETTINGS" since="8" />
+		<field name="SYNC_EXTRAS_INITIALIZE" since="5" />
+		<field name="SYNC_EXTRAS_MANUAL" since="5" />
+		<field name="SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS" />
+		<field name="SYNC_EXTRAS_UPLOAD" />
+		<field name="SYNC_OBSERVER_TYPE_ACTIVE" since="8" />
+		<field name="SYNC_OBSERVER_TYPE_PENDING" since="8" />
+		<field name="SYNC_OBSERVER_TYPE_SETTINGS" since="8" />
+	</class>
+	<class name="android/content/ContentUris" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="appendId(Landroid/net/Uri$Builder;J)Landroid/net/Uri$Builder;" />
+		<method name="parseId(Landroid/net/Uri;)J" />
+		<method name="withAppendedId(Landroid/net/Uri;J)Landroid/net/Uri;" />
+	</class>
+	<class name="android/content/ContentValues" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/content/ContentValues;)V" />
+		<method name="clear()V" />
+		<method name="containsKey(Ljava/lang/String;)Z" />
+		<method name="describeContents()I" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getAsBoolean(Ljava/lang/String;)Ljava/lang/Boolean;" />
+		<method name="getAsByte(Ljava/lang/String;)Ljava/lang/Byte;" />
+		<method name="getAsByteArray(Ljava/lang/String;)[B" />
+		<method name="getAsDouble(Ljava/lang/String;)Ljava/lang/Double;" />
+		<method name="getAsFloat(Ljava/lang/String;)Ljava/lang/Float;" />
+		<method name="getAsInteger(Ljava/lang/String;)Ljava/lang/Integer;" />
+		<method name="getAsLong(Ljava/lang/String;)Ljava/lang/Long;" />
+		<method name="getAsShort(Ljava/lang/String;)Ljava/lang/Short;" />
+		<method name="getAsString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="keySet()Ljava/util/Set;" since="11" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Boolean;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Byte;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Double;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Float;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Integer;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Long;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Short;)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="put(Ljava/lang/String;[B)V" />
+		<method name="putAll(Landroid/content/ContentValues;)V" />
+		<method name="putNull(Ljava/lang/String;)V" />
+		<method name="remove(Ljava/lang/String;)V" />
+		<method name="size()I" />
+		<method name="valueSet()Ljava/util/Set;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="TAG" />
+	</class>
+	<class name="android/content/Context" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z" />
+		<method name="checkCallingOrSelfPermission(Ljava/lang/String;)I" />
+		<method name="checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I" />
+		<method name="checkCallingPermission(Ljava/lang/String;)I" />
+		<method name="checkCallingUriPermission(Landroid/net/Uri;I)I" />
+		<method name="checkPermission(Ljava/lang/String;II)I" />
+		<method name="checkUriPermission(Landroid/net/Uri;III)I" />
+		<method name="checkUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;III)I" />
+		<method name="clearWallpaper()V" />
+		<method name="createPackageContext(Ljava/lang/String;I)Landroid/content/Context;" />
+		<method name="databaseList()[Ljava/lang/String;" />
+		<method name="deleteDatabase(Ljava/lang/String;)Z" />
+		<method name="deleteFile(Ljava/lang/String;)Z" />
+		<method name="enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="enforceCallingOrSelfUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
+		<method name="enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="enforceCallingUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
+		<method name="enforcePermission(Ljava/lang/String;IILjava/lang/String;)V" />
+		<method name="enforceUriPermission(Landroid/net/Uri;IIILjava/lang/String;)V" />
+		<method name="enforceUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V" />
+		<method name="fileList()[Ljava/lang/String;" />
+		<method name="getApplicationContext()Landroid/content/Context;" />
+		<method name="getApplicationInfo()Landroid/content/pm/ApplicationInfo;" since="4" />
+		<method name="getAssets()Landroid/content/res/AssetManager;" />
+		<method name="getCacheDir()Ljava/io/File;" />
+		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getContentResolver()Landroid/content/ContentResolver;" />
+		<method name="getDatabasePath(Ljava/lang/String;)Ljava/io/File;" />
+		<method name="getDir(Ljava/lang/String;I)Ljava/io/File;" />
+		<method name="getExternalCacheDir()Ljava/io/File;" since="8" />
+		<method name="getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;" since="8" />
+		<method name="getFileStreamPath(Ljava/lang/String;)Ljava/io/File;" />
+		<method name="getFilesDir()Ljava/io/File;" />
+		<method name="getMainLooper()Landroid/os/Looper;" />
+		<method name="getObbDir()Ljava/io/File;" since="11" />
+		<method name="getPackageCodePath()Ljava/lang/String;" since="8" />
+		<method name="getPackageManager()Landroid/content/pm/PackageManager;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getPackageResourcePath()Ljava/lang/String;" since="8" />
+		<method name="getResources()Landroid/content/res/Resources;" />
+		<method name="getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="getSystemService(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getText(I)Ljava/lang/CharSequence;" />
+		<method name="getTheme()Landroid/content/res/Resources$Theme;" />
+		<method name="getWallpaper()Landroid/graphics/drawable/Drawable;" />
+		<method name="getWallpaperDesiredMinimumHeight()I" />
+		<method name="getWallpaperDesiredMinimumWidth()I" />
+		<method name="grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V" />
+		<method name="isRestricted()Z" since="4" />
+		<method name="obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;" />
+		<method name="obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;" />
+		<method name="obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;" />
+		<method name="obtainStyledAttributes([I)Landroid/content/res/TypedArray;" />
+		<method name="openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;" />
+		<method name="openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
+		<method name="peekWallpaper()Landroid/graphics/drawable/Drawable;" />
+		<method name="registerComponentCallbacks(Landroid/content/ComponentCallbacks;)V" since="14" />
+		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;" />
+		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;" />
+		<method name="removeStickyBroadcast(Landroid/content/Intent;)V" />
+		<method name="revokeUriPermission(Landroid/net/Uri;I)V" />
+		<method name="sendBroadcast(Landroid/content/Intent;)V" />
+		<method name="sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
+		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
+		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="sendStickyBroadcast(Landroid/content/Intent;)V" />
+		<method name="sendStickyOrderedBroadcast(Landroid/content/Intent;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="5" />
+		<method name="setTheme(I)V" />
+		<method name="setWallpaper(Landroid/graphics/Bitmap;)V" />
+		<method name="setWallpaper(Ljava/io/InputStream;)V" />
+		<method name="startActivities([Landroid/content/Intent;)V" since="11" />
+		<method name="startActivity(Landroid/content/Intent;)V" />
+		<method name="startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;III)V" since="5" />
+		<method name="startService(Landroid/content/Intent;)Landroid/content/ComponentName;" />
+		<method name="stopService(Landroid/content/Intent;)Z" />
+		<method name="unbindService(Landroid/content/ServiceConnection;)V" />
+		<method name="unregisterComponentCallbacks(Landroid/content/ComponentCallbacks;)V" since="14" />
+		<method name="unregisterReceiver(Landroid/content/BroadcastReceiver;)V" />
+		<field name="ACCESSIBILITY_SERVICE" since="4" />
+		<field name="ACCOUNT_SERVICE" since="5" />
+		<field name="ACTIVITY_SERVICE" />
+		<field name="ALARM_SERVICE" />
+		<field name="AUDIO_SERVICE" />
+		<field name="BIND_ABOVE_CLIENT" since="14" />
+		<field name="BIND_ADJUST_WITH_ACTIVITY" since="14" />
+		<field name="BIND_ALLOW_OOM_MANAGEMENT" since="14" />
+		<field name="BIND_AUTO_CREATE" />
+		<field name="BIND_DEBUG_UNBIND" />
+		<field name="BIND_IMPORTANT" since="14" />
+		<field name="BIND_NOT_FOREGROUND" since="8" />
+		<field name="BIND_WAIVE_PRIORITY" since="14" />
+		<field name="CLIPBOARD_SERVICE" />
+		<field name="CONNECTIVITY_SERVICE" />
+		<field name="CONTEXT_IGNORE_SECURITY" />
+		<field name="CONTEXT_INCLUDE_CODE" />
+		<field name="CONTEXT_RESTRICTED" since="4" />
+		<field name="DEVICE_POLICY_SERVICE" since="8" />
+		<field name="DOWNLOAD_SERVICE" since="9" />
+		<field name="DROPBOX_SERVICE" since="8" />
+		<field name="INPUT_METHOD_SERVICE" since="3" />
+		<field name="KEYGUARD_SERVICE" />
+		<field name="LAYOUT_INFLATER_SERVICE" />
+		<field name="LOCATION_SERVICE" />
+		<field name="MODE_APPEND" />
+		<field name="MODE_MULTI_PROCESS" since="11" />
+		<field name="MODE_PRIVATE" />
+		<field name="MODE_WORLD_READABLE" />
+		<field name="MODE_WORLD_WRITEABLE" />
+		<field name="NFC_SERVICE" since="10" />
+		<field name="NOTIFICATION_SERVICE" />
+		<field name="POWER_SERVICE" />
+		<field name="SEARCH_SERVICE" />
+		<field name="SENSOR_SERVICE" />
+		<field name="STORAGE_SERVICE" since="9" />
+		<field name="TELEPHONY_SERVICE" />
+		<field name="TEXT_SERVICES_MANAGER_SERVICE" since="14" />
+		<field name="UI_MODE_SERVICE" since="8" />
+		<field name="USB_SERVICE" since="12" />
+		<field name="VIBRATOR_SERVICE" />
+		<field name="WALLPAPER_SERVICE" />
+		<field name="WIFI_P2P_SERVICE" since="14" />
+		<field name="WIFI_SERVICE" />
+		<field name="WINDOW_SERVICE" />
+	</class>
+	<class name="android/content/ContextWrapper" since="1">
+		<extends name="android/content/Context" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="attachBaseContext(Landroid/content/Context;)V" />
+		<method name="bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z" />
+		<method name="checkCallingOrSelfPermission(Ljava/lang/String;)I" />
+		<method name="checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I" />
+		<method name="checkCallingPermission(Ljava/lang/String;)I" />
+		<method name="checkCallingUriPermission(Landroid/net/Uri;I)I" />
+		<method name="checkPermission(Ljava/lang/String;II)I" />
+		<method name="checkUriPermission(Landroid/net/Uri;III)I" />
+		<method name="checkUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;III)I" />
+		<method name="clearWallpaper()V" />
+		<method name="createPackageContext(Ljava/lang/String;I)Landroid/content/Context;" />
+		<method name="databaseList()[Ljava/lang/String;" />
+		<method name="deleteDatabase(Ljava/lang/String;)Z" />
+		<method name="deleteFile(Ljava/lang/String;)Z" />
+		<method name="enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="enforceCallingOrSelfUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
+		<method name="enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="enforceCallingUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
+		<method name="enforcePermission(Ljava/lang/String;IILjava/lang/String;)V" />
+		<method name="enforceUriPermission(Landroid/net/Uri;IIILjava/lang/String;)V" />
+		<method name="enforceUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V" />
+		<method name="fileList()[Ljava/lang/String;" />
+		<method name="getApplicationContext()Landroid/content/Context;" />
+		<method name="getApplicationInfo()Landroid/content/pm/ApplicationInfo;" since="4" />
+		<method name="getAssets()Landroid/content/res/AssetManager;" />
+		<method name="getBaseContext()Landroid/content/Context;" />
+		<method name="getCacheDir()Ljava/io/File;" />
+		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getContentResolver()Landroid/content/ContentResolver;" />
+		<method name="getDatabasePath(Ljava/lang/String;)Ljava/io/File;" />
+		<method name="getDir(Ljava/lang/String;I)Ljava/io/File;" />
+		<method name="getExternalCacheDir()Ljava/io/File;" since="8" />
+		<method name="getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;" since="8" />
+		<method name="getFileStreamPath(Ljava/lang/String;)Ljava/io/File;" />
+		<method name="getFilesDir()Ljava/io/File;" />
+		<method name="getMainLooper()Landroid/os/Looper;" />
+		<method name="getObbDir()Ljava/io/File;" since="11" />
+		<method name="getPackageCodePath()Ljava/lang/String;" />
+		<method name="getPackageManager()Landroid/content/pm/PackageManager;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getPackageResourcePath()Ljava/lang/String;" />
+		<method name="getResources()Landroid/content/res/Resources;" />
+		<method name="getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;" />
+		<method name="getSystemService(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getTheme()Landroid/content/res/Resources$Theme;" />
+		<method name="getWallpaper()Landroid/graphics/drawable/Drawable;" />
+		<method name="getWallpaperDesiredMinimumHeight()I" />
+		<method name="getWallpaperDesiredMinimumWidth()I" />
+		<method name="grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V" />
+		<method name="openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;" />
+		<method name="openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
+		<method name="peekWallpaper()Landroid/graphics/drawable/Drawable;" />
+		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;" />
+		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;" />
+		<method name="removeStickyBroadcast(Landroid/content/Intent;)V" />
+		<method name="revokeUriPermission(Landroid/net/Uri;I)V" />
+		<method name="sendBroadcast(Landroid/content/Intent;)V" />
+		<method name="sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
+		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
+		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="sendStickyBroadcast(Landroid/content/Intent;)V" />
+		<method name="sendStickyOrderedBroadcast(Landroid/content/Intent;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="5" />
+		<method name="setTheme(I)V" />
+		<method name="setWallpaper(Landroid/graphics/Bitmap;)V" />
+		<method name="setWallpaper(Ljava/io/InputStream;)V" />
+		<method name="startActivities([Landroid/content/Intent;)V" since="11" />
+		<method name="startActivity(Landroid/content/Intent;)V" />
+		<method name="startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;III)V" since="5" />
+		<method name="startService(Landroid/content/Intent;)Landroid/content/ComponentName;" />
+		<method name="stopService(Landroid/content/Intent;)Z" />
+		<method name="unbindService(Landroid/content/ServiceConnection;)V" />
+		<method name="unregisterReceiver(Landroid/content/BroadcastReceiver;)V" />
+	</class>
+	<class name="android/content/CursorLoader" since="11">
+		<extends name="android/content/AsyncTaskLoader" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="deliverResult(Landroid/database/Cursor;)V" />
+		<method name="getProjection()[Ljava/lang/String;" />
+		<method name="getSelection()Ljava/lang/String;" />
+		<method name="getSelectionArgs()[Ljava/lang/String;" />
+		<method name="getSortOrder()Ljava/lang/String;" />
+		<method name="getUri()Landroid/net/Uri;" />
+		<method name="loadInBackground()Landroid/database/Cursor;" />
+		<method name="onCanceled(Landroid/database/Cursor;)V" />
+		<method name="setProjection([Ljava/lang/String;)V" />
+		<method name="setSelection(Ljava/lang/String;)V" />
+		<method name="setSelectionArgs([Ljava/lang/String;)V" />
+		<method name="setSortOrder(Ljava/lang/String;)V" />
+		<method name="setUri(Landroid/net/Uri;)V" />
+	</class>
+	<class name="android/content/DialogInterface" since="1">
+		<method name="cancel()V" />
+		<method name="dismiss()V" />
+		<field name="BUTTON1" />
+		<field name="BUTTON2" />
+		<field name="BUTTON3" />
+		<field name="BUTTON_NEGATIVE" since="3" />
+		<field name="BUTTON_NEUTRAL" since="3" />
+		<field name="BUTTON_POSITIVE" since="3" />
+	</class>
+	<class name="android/content/DialogInterface$OnCancelListener" since="1">
+		<method name="onCancel(Landroid/content/DialogInterface;)V" />
+	</class>
+	<class name="android/content/DialogInterface$OnClickListener" since="1">
+		<method name="onClick(Landroid/content/DialogInterface;I)V" />
+	</class>
+	<class name="android/content/DialogInterface$OnDismissListener" since="1">
+		<method name="onDismiss(Landroid/content/DialogInterface;)V" />
+	</class>
+	<class name="android/content/DialogInterface$OnKeyListener" since="1">
+		<method name="onKey(Landroid/content/DialogInterface;ILandroid/view/KeyEvent;)Z" />
+	</class>
+	<class name="android/content/DialogInterface$OnMultiChoiceClickListener" since="1">
+		<method name="onClick(Landroid/content/DialogInterface;IZ)V" />
+	</class>
+	<class name="android/content/DialogInterface$OnShowListener" since="8">
+		<method name="onShow(Landroid/content/DialogInterface;)V" />
+	</class>
+	<class name="android/content/Entity" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/ContentValues;)V" />
+		<method name="addSubValue(Landroid/net/Uri;Landroid/content/ContentValues;)V" />
+		<method name="getEntityValues()Landroid/content/ContentValues;" />
+		<method name="getSubValues()Ljava/util/ArrayList;" />
+	</class>
+	<class name="android/content/Entity$NamedContentValues" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/net/Uri;Landroid/content/ContentValues;)V" />
+		<field name="uri" />
+		<field name="values" />
+	</class>
+	<class name="android/content/EntityIterator" since="8">
+		<implements name="java/util/Iterator" />
+		<method name="close()V" />
+		<method name="reset()V" />
+	</class>
+	<class name="android/content/Intent" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<implements name="java/lang/Cloneable" since="8" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Landroid/content/Intent;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Landroid/net/Uri;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Landroid/net/Uri;Landroid/content/Context;Ljava/lang/Class;)V" />
+		<method name="addCategory(Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="addFlags(I)Landroid/content/Intent;" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="cloneFilter()Landroid/content/Intent;" />
+		<method name="createChooser(Landroid/content/Intent;Ljava/lang/CharSequence;)Landroid/content/Intent;" />
+		<method name="describeContents()I" />
+		<method name="fillIn(Landroid/content/Intent;I)I" />
+		<method name="filterEquals(Landroid/content/Intent;)Z" />
+		<method name="filterHashCode()I" />
+		<method name="getAction()Ljava/lang/String;" />
+		<method name="getBooleanArrayExtra(Ljava/lang/String;)[Z" />
+		<method name="getBooleanExtra(Ljava/lang/String;Z)Z" />
+		<method name="getBundleExtra(Ljava/lang/String;)Landroid/os/Bundle;" />
+		<method name="getByteArrayExtra(Ljava/lang/String;)[B" />
+		<method name="getByteExtra(Ljava/lang/String;B)B" />
+		<method name="getCategories()Ljava/util/Set;" />
+		<method name="getCharArrayExtra(Ljava/lang/String;)[C" />
+		<method name="getCharExtra(Ljava/lang/String;C)C" />
+		<method name="getCharSequenceArrayExtra(Ljava/lang/String;)[Ljava/lang/CharSequence;" since="8" />
+		<method name="getCharSequenceArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" since="8" />
+		<method name="getCharSequenceExtra(Ljava/lang/String;)Ljava/lang/CharSequence;" />
+		<method name="getComponent()Landroid/content/ComponentName;" />
+		<method name="getData()Landroid/net/Uri;" />
+		<method name="getDataString()Ljava/lang/String;" />
+		<method name="getDoubleArrayExtra(Ljava/lang/String;)[D" />
+		<method name="getDoubleExtra(Ljava/lang/String;D)D" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getFlags()I" />
+		<method name="getFloatArrayExtra(Ljava/lang/String;)[F" />
+		<method name="getFloatExtra(Ljava/lang/String;F)F" />
+		<method name="getIntArrayExtra(Ljava/lang/String;)[I" />
+		<method name="getIntExtra(Ljava/lang/String;I)I" />
+		<method name="getIntegerArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getIntent(Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="getIntentOld(Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="getLongArrayExtra(Ljava/lang/String;)[J" />
+		<method name="getLongExtra(Ljava/lang/String;J)J" />
+		<method name="getPackage()Ljava/lang/String;" since="4" />
+		<method name="getParcelableArrayExtra(Ljava/lang/String;)[Landroid/os/Parcelable;" />
+		<method name="getParcelableArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getParcelableExtra(Ljava/lang/String;)LT;" />
+		<method name="getScheme()Ljava/lang/String;" />
+		<method name="getSelector()Landroid/content/Intent;" since="15" />
+		<method name="getSerializableExtra(Ljava/lang/String;)Ljava/io/Serializable;" />
+		<method name="getShortArrayExtra(Ljava/lang/String;)[S" />
+		<method name="getShortExtra(Ljava/lang/String;S)S" />
+		<method name="getSourceBounds()Landroid/graphics/Rect;" since="7" />
+		<method name="getStringArrayExtra(Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="getStringArrayListExtra(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getStringExtra(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="hasCategory(Ljava/lang/String;)Z" />
+		<method name="hasExtra(Ljava/lang/String;)Z" />
+		<method name="hasFileDescriptors()Z" />
+		<method name="makeMainActivity(Landroid/content/ComponentName;)Landroid/content/Intent;" since="11" />
+		<method name="makeMainSelectorActivity(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;" since="15" />
+		<method name="makeRestartActivityTask(Landroid/content/ComponentName;)Landroid/content/Intent;" since="11" />
+		<method name="parseIntent(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/content/Intent;" />
+		<method name="parseUri(Ljava/lang/String;I)Landroid/content/Intent;" since="4" />
+		<method name="putCharSequenceArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" since="8" />
+		<method name="putExtra(Ljava/lang/String;B)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;C)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;D)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;F)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;I)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;J)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;Landroid/os/Bundle;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;Landroid/os/Parcelable;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;Ljava/io/Serializable;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;Ljava/lang/CharSequence;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;S)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;Z)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[B)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[C)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[D)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[F)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[I)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[J)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[Landroid/os/Parcelable;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[Ljava/lang/CharSequence;)Landroid/content/Intent;" since="8" />
+		<method name="putExtra(Ljava/lang/String;[Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[S)Landroid/content/Intent;" />
+		<method name="putExtra(Ljava/lang/String;[Z)Landroid/content/Intent;" />
+		<method name="putExtras(Landroid/content/Intent;)Landroid/content/Intent;" />
+		<method name="putExtras(Landroid/os/Bundle;)Landroid/content/Intent;" />
+		<method name="putIntegerArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" />
+		<method name="putParcelableArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" />
+		<method name="putStringArrayListExtra(Ljava/lang/String;Ljava/util/ArrayList;)Landroid/content/Intent;" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="removeCategory(Ljava/lang/String;)V" />
+		<method name="removeExtra(Ljava/lang/String;)V" />
+		<method name="replaceExtras(Landroid/content/Intent;)Landroid/content/Intent;" since="3" />
+		<method name="replaceExtras(Landroid/os/Bundle;)Landroid/content/Intent;" since="3" />
+		<method name="resolveActivity(Landroid/content/pm/PackageManager;)Landroid/content/ComponentName;" />
+		<method name="resolveActivityInfo(Landroid/content/pm/PackageManager;I)Landroid/content/pm/ActivityInfo;" />
+		<method name="resolveType(Landroid/content/ContentResolver;)Ljava/lang/String;" />
+		<method name="resolveType(Landroid/content/Context;)Ljava/lang/String;" />
+		<method name="resolveTypeIfNeeded(Landroid/content/ContentResolver;)Ljava/lang/String;" />
+		<method name="setAction(Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="setClass(Landroid/content/Context;Ljava/lang/Class;)Landroid/content/Intent;" />
+		<method name="setClassName(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="setClassName(Ljava/lang/String;Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="setComponent(Landroid/content/ComponentName;)Landroid/content/Intent;" />
+		<method name="setData(Landroid/net/Uri;)Landroid/content/Intent;" />
+		<method name="setDataAndType(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="setExtrasClassLoader(Ljava/lang/ClassLoader;)V" />
+		<method name="setFlags(I)Landroid/content/Intent;" />
+		<method name="setPackage(Ljava/lang/String;)Landroid/content/Intent;" since="4" />
+		<method name="setSelector(Landroid/content/Intent;)V" since="15" />
+		<method name="setSourceBounds(Landroid/graphics/Rect;)V" since="7" />
+		<method name="setType(Ljava/lang/String;)Landroid/content/Intent;" />
+		<method name="toURI()Ljava/lang/String;" />
+		<method name="toUri(I)Ljava/lang/String;" since="4" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_AIRPLANE_MODE_CHANGED" />
+		<field name="ACTION_ALL_APPS" />
+		<field name="ACTION_ANSWER" />
+		<field name="ACTION_APP_ERROR" since="14" />
+		<field name="ACTION_ATTACH_DATA" />
+		<field name="ACTION_BATTERY_CHANGED" />
+		<field name="ACTION_BATTERY_LOW" />
+		<field name="ACTION_BATTERY_OKAY" since="4" />
+		<field name="ACTION_BOOT_COMPLETED" />
+		<field name="ACTION_BUG_REPORT" />
+		<field name="ACTION_CALL" />
+		<field name="ACTION_CALL_BUTTON" />
+		<field name="ACTION_CAMERA_BUTTON" />
+		<field name="ACTION_CHOOSER" />
+		<field name="ACTION_CLOSE_SYSTEM_DIALOGS" />
+		<field name="ACTION_CONFIGURATION_CHANGED" />
+		<field name="ACTION_CREATE_SHORTCUT" />
+		<field name="ACTION_DATE_CHANGED" />
+		<field name="ACTION_DEFAULT" />
+		<field name="ACTION_DELETE" />
+		<field name="ACTION_DEVICE_STORAGE_LOW" />
+		<field name="ACTION_DEVICE_STORAGE_OK" />
+		<field name="ACTION_DIAL" />
+		<field name="ACTION_DOCK_EVENT" since="5" />
+		<field name="ACTION_EDIT" />
+		<field name="ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" since="8" />
+		<field name="ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE" since="8" />
+		<field name="ACTION_FACTORY_TEST" />
+		<field name="ACTION_GET_CONTENT" />
+		<field name="ACTION_GTALK_SERVICE_CONNECTED" />
+		<field name="ACTION_GTALK_SERVICE_DISCONNECTED" />
+		<field name="ACTION_HEADSET_PLUG" />
+		<field name="ACTION_INPUT_METHOD_CHANGED" since="3" />
+		<field name="ACTION_INSERT" />
+		<field name="ACTION_INSERT_OR_EDIT" />
+		<field name="ACTION_INSTALL_PACKAGE" since="14" />
+		<field name="ACTION_LOCALE_CHANGED" since="7" />
+		<field name="ACTION_MAIN" />
+		<field name="ACTION_MANAGE_NETWORK_USAGE" since="14" />
+		<field name="ACTION_MANAGE_PACKAGE_STORAGE" />
+		<field name="ACTION_MEDIA_BAD_REMOVAL" />
+		<field name="ACTION_MEDIA_BUTTON" />
+		<field name="ACTION_MEDIA_CHECKING" since="3" />
+		<field name="ACTION_MEDIA_EJECT" />
+		<field name="ACTION_MEDIA_MOUNTED" />
+		<field name="ACTION_MEDIA_NOFS" since="3" />
+		<field name="ACTION_MEDIA_REMOVED" />
+		<field name="ACTION_MEDIA_SCANNER_FINISHED" />
+		<field name="ACTION_MEDIA_SCANNER_SCAN_FILE" />
+		<field name="ACTION_MEDIA_SCANNER_STARTED" />
+		<field name="ACTION_MEDIA_SHARED" />
+		<field name="ACTION_MEDIA_UNMOUNTABLE" />
+		<field name="ACTION_MEDIA_UNMOUNTED" />
+		<field name="ACTION_MY_PACKAGE_REPLACED" since="12" />
+		<field name="ACTION_NEW_OUTGOING_CALL" />
+		<field name="ACTION_PACKAGE_ADDED" />
+		<field name="ACTION_PACKAGE_CHANGED" />
+		<field name="ACTION_PACKAGE_DATA_CLEARED" since="3" />
+		<field name="ACTION_PACKAGE_FIRST_LAUNCH" since="12" />
+		<field name="ACTION_PACKAGE_FULLY_REMOVED" since="14" />
+		<field name="ACTION_PACKAGE_INSTALL" />
+		<field name="ACTION_PACKAGE_NEEDS_VERIFICATION" since="14" />
+		<field name="ACTION_PACKAGE_REMOVED" />
+		<field name="ACTION_PACKAGE_REPLACED" since="3" />
+		<field name="ACTION_PACKAGE_RESTARTED" />
+		<field name="ACTION_PASTE" since="11" />
+		<field name="ACTION_PICK" />
+		<field name="ACTION_PICK_ACTIVITY" />
+		<field name="ACTION_POWER_CONNECTED" since="4" />
+		<field name="ACTION_POWER_DISCONNECTED" since="4" />
+		<field name="ACTION_POWER_USAGE_SUMMARY" since="4" />
+		<field name="ACTION_PROVIDER_CHANGED" />
+		<field name="ACTION_REBOOT" />
+		<field name="ACTION_RUN" />
+		<field name="ACTION_SCREEN_OFF" />
+		<field name="ACTION_SCREEN_ON" />
+		<field name="ACTION_SEARCH" />
+		<field name="ACTION_SEARCH_LONG_PRESS" since="3" />
+		<field name="ACTION_SEND" />
+		<field name="ACTION_SENDTO" />
+		<field name="ACTION_SEND_MULTIPLE" since="4" />
+		<field name="ACTION_SET_WALLPAPER" />
+		<field name="ACTION_SHUTDOWN" since="4" />
+		<field name="ACTION_SYNC" />
+		<field name="ACTION_SYSTEM_TUTORIAL" since="3" />
+		<field name="ACTION_TIMEZONE_CHANGED" />
+		<field name="ACTION_TIME_CHANGED" />
+		<field name="ACTION_TIME_TICK" />
+		<field name="ACTION_UID_REMOVED" />
+		<field name="ACTION_UMS_CONNECTED" />
+		<field name="ACTION_UMS_DISCONNECTED" />
+		<field name="ACTION_UNINSTALL_PACKAGE" since="14" />
+		<field name="ACTION_USER_PRESENT" since="3" />
+		<field name="ACTION_VIEW" />
+		<field name="ACTION_VOICE_COMMAND" />
+		<field name="ACTION_WALLPAPER_CHANGED" />
+		<field name="ACTION_WEB_SEARCH" />
+		<field name="CATEGORY_ALTERNATIVE" />
+		<field name="CATEGORY_APP_BROWSER" since="15" />
+		<field name="CATEGORY_APP_CALCULATOR" since="15" />
+		<field name="CATEGORY_APP_CALENDAR" since="15" />
+		<field name="CATEGORY_APP_CONTACTS" since="15" />
+		<field name="CATEGORY_APP_EMAIL" since="15" />
+		<field name="CATEGORY_APP_GALLERY" since="15" />
+		<field name="CATEGORY_APP_MAPS" since="15" />
+		<field name="CATEGORY_APP_MARKET" since="11" />
+		<field name="CATEGORY_APP_MESSAGING" since="15" />
+		<field name="CATEGORY_APP_MUSIC" since="15" />
+		<field name="CATEGORY_BROWSABLE" />
+		<field name="CATEGORY_CAR_DOCK" since="5" />
+		<field name="CATEGORY_CAR_MODE" since="8" />
+		<field name="CATEGORY_DEFAULT" />
+		<field name="CATEGORY_DESK_DOCK" since="5" />
+		<field name="CATEGORY_DEVELOPMENT_PREFERENCE" />
+		<field name="CATEGORY_EMBED" />
+		<field name="CATEGORY_FRAMEWORK_INSTRUMENTATION_TEST" />
+		<field name="CATEGORY_GADGET" />
+		<field name="CATEGORY_HE_DESK_DOCK" since="11" />
+		<field name="CATEGORY_HOME" />
+		<field name="CATEGORY_INFO" since="3" />
+		<field name="CATEGORY_LAUNCHER" />
+		<field name="CATEGORY_LE_DESK_DOCK" since="11" />
+		<field name="CATEGORY_MONKEY" />
+		<field name="CATEGORY_OPENABLE" />
+		<field name="CATEGORY_PREFERENCE" />
+		<field name="CATEGORY_SAMPLE_CODE" />
+		<field name="CATEGORY_SELECTED_ALTERNATIVE" />
+		<field name="CATEGORY_TAB" />
+		<field name="CATEGORY_TEST" />
+		<field name="CATEGORY_UNIT_TEST" />
+		<field name="CREATOR" />
+		<field name="EXTRA_ALARM_COUNT" />
+		<field name="EXTRA_ALLOW_REPLACE" since="14" />
+		<field name="EXTRA_BCC" />
+		<field name="EXTRA_BUG_REPORT" since="14" />
+		<field name="EXTRA_CC" />
+		<field name="EXTRA_CHANGED_COMPONENT_NAME" since="5" />
+		<field name="EXTRA_CHANGED_COMPONENT_NAME_LIST" since="7" />
+		<field name="EXTRA_CHANGED_PACKAGE_LIST" since="8" />
+		<field name="EXTRA_CHANGED_UID_LIST" since="8" />
+		<field name="EXTRA_DATA_REMOVED" since="3" />
+		<field name="EXTRA_DOCK_STATE" since="5" />
+		<field name="EXTRA_DOCK_STATE_CAR" since="5" />
+		<field name="EXTRA_DOCK_STATE_DESK" since="5" />
+		<field name="EXTRA_DOCK_STATE_HE_DESK" since="11" />
+		<field name="EXTRA_DOCK_STATE_LE_DESK" since="11" />
+		<field name="EXTRA_DOCK_STATE_UNDOCKED" since="5" />
+		<field name="EXTRA_DONT_KILL_APP" />
+		<field name="EXTRA_EMAIL" />
+		<field name="EXTRA_INITIAL_INTENTS" since="5" />
+		<field name="EXTRA_INSTALLER_PACKAGE_NAME" since="14" />
+		<field name="EXTRA_INTENT" />
+		<field name="EXTRA_KEY_EVENT" />
+		<field name="EXTRA_LOCAL_ONLY" since="11" />
+		<field name="EXTRA_NOT_UNKNOWN_SOURCE" since="14" />
+		<field name="EXTRA_PHONE_NUMBER" />
+		<field name="EXTRA_REMOTE_INTENT_TOKEN" since="5" />
+		<field name="EXTRA_REPLACING" since="3" />
+		<field name="EXTRA_RETURN_RESULT" since="14" />
+		<field name="EXTRA_SHORTCUT_ICON" />
+		<field name="EXTRA_SHORTCUT_ICON_RESOURCE" />
+		<field name="EXTRA_SHORTCUT_INTENT" />
+		<field name="EXTRA_SHORTCUT_NAME" />
+		<field name="EXTRA_STREAM" />
+		<field name="EXTRA_SUBJECT" />
+		<field name="EXTRA_TEMPLATE" />
+		<field name="EXTRA_TEXT" />
+		<field name="EXTRA_TITLE" />
+		<field name="EXTRA_UID" />
+		<field name="FILL_IN_ACTION" />
+		<field name="FILL_IN_CATEGORIES" />
+		<field name="FILL_IN_COMPONENT" />
+		<field name="FILL_IN_DATA" />
+		<field name="FILL_IN_PACKAGE" since="4" />
+		<field name="FILL_IN_SELECTOR" since="15" />
+		<field name="FILL_IN_SOURCE_BOUNDS" since="7" />
+		<field name="FLAG_ACTIVITY_BROUGHT_TO_FRONT" />
+		<field name="FLAG_ACTIVITY_CLEAR_TASK" since="11" />
+		<field name="FLAG_ACTIVITY_CLEAR_TOP" />
+		<field name="FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET" since="3" />
+		<field name="FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS" />
+		<field name="FLAG_ACTIVITY_FORWARD_RESULT" />
+		<field name="FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY" />
+		<field name="FLAG_ACTIVITY_MULTIPLE_TASK" />
+		<field name="FLAG_ACTIVITY_NEW_TASK" />
+		<field name="FLAG_ACTIVITY_NO_ANIMATION" since="5" />
+		<field name="FLAG_ACTIVITY_NO_HISTORY" />
+		<field name="FLAG_ACTIVITY_NO_USER_ACTION" since="3" />
+		<field name="FLAG_ACTIVITY_PREVIOUS_IS_TOP" />
+		<field name="FLAG_ACTIVITY_REORDER_TO_FRONT" since="3" />
+		<field name="FLAG_ACTIVITY_RESET_TASK_IF_NEEDED" />
+		<field name="FLAG_ACTIVITY_SINGLE_TOP" />
+		<field name="FLAG_ACTIVITY_TASK_ON_HOME" since="11" />
+		<field name="FLAG_DEBUG_LOG_RESOLUTION" />
+		<field name="FLAG_EXCLUDE_STOPPED_PACKAGES" since="12" />
+		<field name="FLAG_FROM_BACKGROUND" />
+		<field name="FLAG_GRANT_READ_URI_PERMISSION" />
+		<field name="FLAG_GRANT_WRITE_URI_PERMISSION" />
+		<field name="FLAG_INCLUDE_STOPPED_PACKAGES" since="12" />
+		<field name="FLAG_RECEIVER_REGISTERED_ONLY" />
+		<field name="FLAG_RECEIVER_REPLACE_PENDING" since="8" />
+		<field name="METADATA_DOCK_HOME" since="5" />
+		<field name="URI_INTENT_SCHEME" since="4" />
+	</class>
+	<class name="android/content/Intent$FilterComparison" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Intent;)V" />
+		<method name="getIntent()Landroid/content/Intent;" />
+	</class>
+	<class name="android/content/Intent$ShortcutIconResource" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="fromContext(Landroid/content/Context;I)Landroid/content/Intent$ShortcutIconResource;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="packageName" />
+		<field name="resourceName" />
+	</class>
+	<class name="android/content/IntentFilter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/IntentFilter;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="actionsIterator()Ljava/util/Iterator;" />
+		<method name="addAction(Ljava/lang/String;)V" />
+		<method name="addCategory(Ljava/lang/String;)V" />
+		<method name="addDataAuthority(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="addDataPath(Ljava/lang/String;I)V" />
+		<method name="addDataScheme(Ljava/lang/String;)V" />
+		<method name="addDataType(Ljava/lang/String;)V" />
+		<method name="authoritiesIterator()Ljava/util/Iterator;" />
+		<method name="categoriesIterator()Ljava/util/Iterator;" />
+		<method name="countActions()I" />
+		<method name="countCategories()I" />
+		<method name="countDataAuthorities()I" />
+		<method name="countDataPaths()I" />
+		<method name="countDataSchemes()I" />
+		<method name="countDataTypes()I" />
+		<method name="create(Ljava/lang/String;Ljava/lang/String;)Landroid/content/IntentFilter;" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getAction(I)Ljava/lang/String;" />
+		<method name="getCategory(I)Ljava/lang/String;" />
+		<method name="getDataAuthority(I)Landroid/content/IntentFilter$AuthorityEntry;" />
+		<method name="getDataPath(I)Landroid/os/PatternMatcher;" />
+		<method name="getDataScheme(I)Ljava/lang/String;" />
+		<method name="getDataType(I)Ljava/lang/String;" />
+		<method name="getPriority()I" />
+		<method name="hasAction(Ljava/lang/String;)Z" />
+		<method name="hasCategory(Ljava/lang/String;)Z" />
+		<method name="hasDataAuthority(Landroid/net/Uri;)Z" />
+		<method name="hasDataPath(Ljava/lang/String;)Z" />
+		<method name="hasDataScheme(Ljava/lang/String;)Z" />
+		<method name="hasDataType(Ljava/lang/String;)Z" />
+		<method name="match(Landroid/content/ContentResolver;Landroid/content/Intent;ZLjava/lang/String;)I" />
+		<method name="match(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;Ljava/util/Set;Ljava/lang/String;)I" />
+		<method name="matchAction(Ljava/lang/String;)Z" />
+		<method name="matchCategories(Ljava/util/Set;)Ljava/lang/String;" />
+		<method name="matchData(Ljava/lang/String;Ljava/lang/String;Landroid/net/Uri;)I" />
+		<method name="matchDataAuthority(Landroid/net/Uri;)I" />
+		<method name="pathsIterator()Ljava/util/Iterator;" />
+		<method name="readFromXml(Lorg/xmlpull/v1/XmlPullParser;)V" />
+		<method name="schemesIterator()Ljava/util/Iterator;" />
+		<method name="setPriority(I)V" />
+		<method name="typesIterator()Ljava/util/Iterator;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<method name="writeToXml(Lorg/xmlpull/v1/XmlSerializer;)V" />
+		<field name="CREATOR" />
+		<field name="MATCH_ADJUSTMENT_MASK" />
+		<field name="MATCH_ADJUSTMENT_NORMAL" />
+		<field name="MATCH_CATEGORY_EMPTY" />
+		<field name="MATCH_CATEGORY_HOST" />
+		<field name="MATCH_CATEGORY_MASK" />
+		<field name="MATCH_CATEGORY_PATH" />
+		<field name="MATCH_CATEGORY_PORT" />
+		<field name="MATCH_CATEGORY_SCHEME" />
+		<field name="MATCH_CATEGORY_TYPE" />
+		<field name="NO_MATCH_ACTION" />
+		<field name="NO_MATCH_CATEGORY" />
+		<field name="NO_MATCH_DATA" />
+		<field name="NO_MATCH_TYPE" />
+		<field name="SYSTEM_HIGH_PRIORITY" />
+		<field name="SYSTEM_LOW_PRIORITY" />
+	</class>
+	<class name="android/content/IntentFilter$AuthorityEntry" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getHost()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="match(Landroid/net/Uri;)I" />
+	</class>
+	<class name="android/content/IntentFilter$MalformedMimeTypeException" since="1">
+		<extends name="android/util/AndroidException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/IntentSender" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getTargetPackage()Ljava/lang/String;" since="9" />
+		<method name="readIntentSenderOrNullFromParcel(Landroid/os/Parcel;)Landroid/content/IntentSender;" />
+		<method name="sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;)V" />
+		<method name="sendIntent(Landroid/content/Context;ILandroid/content/Intent;Landroid/content/IntentSender$OnFinished;Landroid/os/Handler;Ljava/lang/String;)V" since="14" />
+		<method name="writeIntentSenderOrNullToParcel(Landroid/content/IntentSender;Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/IntentSender$OnFinished" since="4">
+		<method name="onSendFinished(Landroid/content/IntentSender;Landroid/content/Intent;ILjava/lang/String;Landroid/os/Bundle;)V" />
+	</class>
+	<class name="android/content/IntentSender$SendIntentException" since="4">
+		<extends name="android/util/AndroidException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/Loader" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="abandon()V" />
+		<method name="dataToString(LD;)Ljava/lang/String;" />
+		<method name="deliverResult(LD;)V" />
+		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
+		<method name="forceLoad()V" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getId()I" />
+		<method name="isAbandoned()Z" />
+		<method name="isReset()Z" />
+		<method name="isStarted()Z" />
+		<method name="onAbandon()V" />
+		<method name="onContentChanged()V" />
+		<method name="onForceLoad()V" />
+		<method name="onReset()V" />
+		<method name="onStartLoading()V" />
+		<method name="onStopLoading()V" />
+		<method name="registerListener(ILandroid/content/Loader$OnLoadCompleteListener;)V" />
+		<method name="reset()V" />
+		<method name="startLoading()V" />
+		<method name="stopLoading()V" />
+		<method name="takeContentChanged()Z" />
+		<method name="unregisterListener(Landroid/content/Loader$OnLoadCompleteListener;)V" />
+	</class>
+	<class name="android/content/Loader$ForceLoadContentObserver" since="11">
+		<extends name="android/database/ContentObserver" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/content/Loader$OnLoadCompleteListener" since="11">
+		<method name="onLoadComplete(Landroid/content/Loader;LD;)V" />
+	</class>
+	<class name="android/content/MutableContextWrapper" since="1">
+		<extends name="android/content/ContextWrapper" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="setBaseContext(Landroid/content/Context;)V" />
+	</class>
+	<class name="android/content/OperationApplicationException" since="5">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="getNumSuccessfulYieldPoints()I" />
+	</class>
+	<class name="android/content/PeriodicSync" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/accounts/Account;Ljava/lang/String;Landroid/os/Bundle;J)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="account" />
+		<field name="authority" />
+		<field name="extras" />
+		<field name="period" />
+	</class>
+	<class name="android/content/ReceiverCallNotAllowedException" since="1">
+		<extends name="android/util/AndroidRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/SearchRecentSuggestionsProvider" since="1">
+		<extends name="android/content/ContentProvider" />
+		<method name="&lt;init>()V" />
+		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
+		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
+		<method name="onCreate()Z" />
+		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="setupSuggestions(Ljava/lang/String;I)V" />
+		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<field name="DATABASE_MODE_2LINES" />
+		<field name="DATABASE_MODE_QUERIES" />
+	</class>
+	<class name="android/content/ServiceConnection" since="1">
+		<method name="onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V" />
+		<method name="onServiceDisconnected(Landroid/content/ComponentName;)V" />
+	</class>
+	<class name="android/content/SharedPreferences" since="1">
+		<method name="contains(Ljava/lang/String;)Z" />
+		<method name="edit()Landroid/content/SharedPreferences$Editor;" />
+		<method name="getAll()Ljava/util/Map;" />
+		<method name="getBoolean(Ljava/lang/String;Z)Z" />
+		<method name="getFloat(Ljava/lang/String;F)F" />
+		<method name="getInt(Ljava/lang/String;I)I" />
+		<method name="getLong(Ljava/lang/String;J)J" />
+		<method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;" since="11" />
+		<method name="registerOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V" />
+		<method name="unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V" />
+	</class>
+	<class name="android/content/SharedPreferences$Editor" since="1">
+		<method name="apply()V" since="9" />
+		<method name="clear()Landroid/content/SharedPreferences$Editor;" />
+		<method name="commit()Z" />
+		<method name="putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;" />
+		<method name="putFloat(Ljava/lang/String;F)Landroid/content/SharedPreferences$Editor;" />
+		<method name="putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;" />
+		<method name="putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;" />
+		<method name="putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;" />
+		<method name="putStringSet(Ljava/lang/String;Ljava/util/Set;)Landroid/content/SharedPreferences$Editor;" since="11" />
+		<method name="remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;" />
+	</class>
+	<class name="android/content/SharedPreferences$OnSharedPreferenceChangeListener" since="1">
+		<method name="onSharedPreferenceChanged(Landroid/content/SharedPreferences;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/SyncAdapterType" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ZZ)V" />
+		<method name="allowParallelSyncs()Z" since="11" />
+		<method name="describeContents()I" />
+		<method name="getSettingsActivity()Ljava/lang/String;" since="14" />
+		<method name="isAlwaysSyncable()Z" since="11" />
+		<method name="isUserVisible()Z" />
+		<method name="newKey(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SyncAdapterType;" />
+		<method name="supportsUploading()Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="accountType" />
+		<field name="authority" />
+		<field name="isKey" />
+	</class>
+	<class name="android/content/SyncContext" since="5">
+		<extends name="java/lang/Object" />
+		<method name="getSyncContextBinder()Landroid/os/IBinder;" />
+		<method name="onFinished(Landroid/content/SyncResult;)V" />
+	</class>
+	<class name="android/content/SyncInfo" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" since="11" />
+		<method name="describeContents()I" since="11" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="11" />
+		<field name="account" />
+		<field name="authority" />
+		<field name="startTime" />
+	</class>
+	<class name="android/content/SyncResult" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="clear()V" />
+		<method name="describeContents()I" />
+		<method name="hasError()Z" />
+		<method name="hasHardError()Z" />
+		<method name="hasSoftError()Z" />
+		<method name="madeSomeProgress()Z" />
+		<method name="toDebugString()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ALREADY_IN_PROGRESS" />
+		<field name="CREATOR" />
+		<field name="databaseError" />
+		<field name="delayUntil" since="8" />
+		<field name="fullSyncRequested" />
+		<field name="moreRecordsToGet" />
+		<field name="partialSyncUnavailable" />
+		<field name="stats" />
+		<field name="syncAlreadyInProgress" />
+		<field name="tooManyDeletions" />
+		<field name="tooManyRetries" />
+	</class>
+	<class name="android/content/SyncStats" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="clear()V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="numAuthExceptions" />
+		<field name="numConflictDetectedExceptions" />
+		<field name="numDeletes" />
+		<field name="numEntries" />
+		<field name="numInserts" />
+		<field name="numIoExceptions" />
+		<field name="numParseExceptions" />
+		<field name="numSkippedEntries" />
+		<field name="numUpdates" />
+	</class>
+	<class name="android/content/SyncStatusObserver" since="5">
+		<method name="onStatusChanged(I)V" />
+	</class>
+	<class name="android/content/UriMatcher" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="addURI(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="match(Landroid/net/Uri;)I" />
+		<field name="NO_MATCH" />
+	</class>
+	<class name="android/content/pm/ActivityInfo" since="1">
+		<extends name="android/content/pm/ComponentInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/ActivityInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getThemeResource()I" />
+		<field name="CONFIG_FONT_SCALE" />
+		<field name="CONFIG_KEYBOARD" />
+		<field name="CONFIG_KEYBOARD_HIDDEN" />
+		<field name="CONFIG_LOCALE" />
+		<field name="CONFIG_MCC" />
+		<field name="CONFIG_MNC" />
+		<field name="CONFIG_NAVIGATION" />
+		<field name="CONFIG_ORIENTATION" />
+		<field name="CONFIG_SCREEN_LAYOUT" since="4" />
+		<field name="CONFIG_SCREEN_SIZE" since="13" />
+		<field name="CONFIG_SMALLEST_SCREEN_SIZE" since="13" />
+		<field name="CONFIG_TOUCHSCREEN" />
+		<field name="CONFIG_UI_MODE" since="8" />
+		<field name="CREATOR" />
+		<field name="FLAG_ALLOW_TASK_REPARENTING" />
+		<field name="FLAG_ALWAYS_RETAIN_TASK_STATE" />
+		<field name="FLAG_CLEAR_TASK_ON_LAUNCH" />
+		<field name="FLAG_EXCLUDE_FROM_RECENTS" />
+		<field name="FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS" since="5" />
+		<field name="FLAG_FINISH_ON_TASK_LAUNCH" />
+		<field name="FLAG_HARDWARE_ACCELERATED" since="11" />
+		<field name="FLAG_MULTIPROCESS" />
+		<field name="FLAG_NO_HISTORY" since="3" />
+		<field name="FLAG_STATE_NOT_NEEDED" />
+		<field name="LAUNCH_MULTIPLE" />
+		<field name="LAUNCH_SINGLE_INSTANCE" />
+		<field name="LAUNCH_SINGLE_TASK" />
+		<field name="LAUNCH_SINGLE_TOP" />
+		<field name="SCREEN_ORIENTATION_BEHIND" />
+		<field name="SCREEN_ORIENTATION_FULL_SENSOR" since="9" />
+		<field name="SCREEN_ORIENTATION_LANDSCAPE" />
+		<field name="SCREEN_ORIENTATION_NOSENSOR" />
+		<field name="SCREEN_ORIENTATION_PORTRAIT" />
+		<field name="SCREEN_ORIENTATION_REVERSE_LANDSCAPE" since="9" />
+		<field name="SCREEN_ORIENTATION_REVERSE_PORTRAIT" since="9" />
+		<field name="SCREEN_ORIENTATION_SENSOR" />
+		<field name="SCREEN_ORIENTATION_SENSOR_LANDSCAPE" since="9" />
+		<field name="SCREEN_ORIENTATION_SENSOR_PORTRAIT" since="9" />
+		<field name="SCREEN_ORIENTATION_UNSPECIFIED" />
+		<field name="SCREEN_ORIENTATION_USER" />
+		<field name="UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW" since="14" />
+		<field name="configChanges" />
+		<field name="flags" />
+		<field name="launchMode" />
+		<field name="permission" />
+		<field name="screenOrientation" />
+		<field name="softInputMode" since="3" />
+		<field name="targetActivity" />
+		<field name="taskAffinity" />
+		<field name="theme" />
+		<field name="uiOptions" since="14" />
+	</class>
+	<class name="android/content/pm/ApplicationInfo" since="1">
+		<extends name="android/content/pm/PackageItemInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/ApplicationInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<field name="CREATOR" />
+		<field name="FLAG_ALLOW_BACKUP" since="8" />
+		<field name="FLAG_ALLOW_CLEAR_USER_DATA" />
+		<field name="FLAG_ALLOW_TASK_REPARENTING" />
+		<field name="FLAG_DEBUGGABLE" />
+		<field name="FLAG_EXTERNAL_STORAGE" since="8" />
+		<field name="FLAG_FACTORY_TEST" />
+		<field name="FLAG_HAS_CODE" />
+		<field name="FLAG_KILL_AFTER_RESTORE" since="8" />
+		<field name="FLAG_LARGE_HEAP" since="11" />
+		<field name="FLAG_PERSISTENT" />
+		<field name="FLAG_RESIZEABLE_FOR_SCREENS" since="4" />
+		<field name="FLAG_RESTORE_ANY_VERSION" since="8" />
+		<field name="FLAG_STOPPED" since="12" />
+		<field name="FLAG_SUPPORTS_LARGE_SCREENS" since="4" />
+		<field name="FLAG_SUPPORTS_NORMAL_SCREENS" since="4" />
+		<field name="FLAG_SUPPORTS_SCREEN_DENSITIES" since="4" />
+		<field name="FLAG_SUPPORTS_SMALL_SCREENS" since="4" />
+		<field name="FLAG_SUPPORTS_XLARGE_SCREENS" since="11" />
+		<field name="FLAG_SYSTEM" />
+		<field name="FLAG_TEST_ONLY" since="4" />
+		<field name="FLAG_UPDATED_SYSTEM_APP" since="4" />
+		<field name="FLAG_VM_SAFE_MODE" since="8" />
+		<field name="backupAgentName" since="8" />
+		<field name="className" />
+		<field name="compatibleWidthLimitDp" since="13" />
+		<field name="dataDir" />
+		<field name="descriptionRes" />
+		<field name="enabled" />
+		<field name="flags" />
+		<field name="largestWidthLimitDp" since="13" />
+		<field name="manageSpaceActivityName" />
+		<field name="nativeLibraryDir" since="9" />
+		<field name="permission" />
+		<field name="processName" />
+		<field name="publicSourceDir" />
+		<field name="requiresSmallestWidthDp" since="13" />
+		<field name="sharedLibraryFiles" />
+		<field name="sourceDir" />
+		<field name="targetSdkVersion" since="4" />
+		<field name="taskAffinity" />
+		<field name="theme" />
+		<field name="uiOptions" since="14" />
+		<field name="uid" />
+	</class>
+	<class name="android/content/pm/ApplicationInfo$DisplayNameComparator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Comparator" />
+		<method name="&lt;init>(Landroid/content/pm/PackageManager;)V" />
+		<method name="compare(Landroid/content/pm/ApplicationInfo;Landroid/content/pm/ApplicationInfo;)I" />
+	</class>
+	<class name="android/content/pm/ComponentInfo" since="1">
+		<extends name="android/content/pm/PackageItemInfo" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/ComponentInfo;)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="getIconResource()I" />
+		<method name="isEnabled()Z" since="11" />
+		<field name="applicationInfo" />
+		<field name="descriptionRes" since="8" />
+		<field name="enabled" />
+		<field name="exported" />
+		<field name="processName" />
+	</class>
+	<class name="android/content/pm/ConfigurationInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/ConfigurationInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="getGlEsVersion()Ljava/lang/String;" since="4" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="GL_ES_VERSION_UNDEFINED" since="4" />
+		<field name="INPUT_FEATURE_FIVE_WAY_NAV" />
+		<field name="INPUT_FEATURE_HARD_KEYBOARD" />
+		<field name="reqGlEsVersion" since="4" />
+		<field name="reqInputFeatures" />
+		<field name="reqKeyboardType" />
+		<field name="reqNavigation" />
+		<field name="reqTouchScreen" />
+	</class>
+	<class name="android/content/pm/FeatureInfo" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/FeatureInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="getGlEsVersion()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="FLAG_REQUIRED" />
+		<field name="GL_ES_VERSION_UNDEFINED" />
+		<field name="flags" />
+		<field name="name" />
+		<field name="reqGlEsVersion" />
+	</class>
+	<class name="android/content/pm/IPackageInstallObserver" since="1">
+		<implements name="android/os/IInterface" />
+		<method name="packageInstalled(Ljava/lang/String;I)V" />
+	</class>
+	<class name="android/content/pm/IPackageInstallObserver$Stub" since="1">
+		<extends name="android/os/Binder" />
+		<implements name="android/content/pm/IPackageInstallObserver" />
+		<method name="&lt;init>()V" />
+		<method name="asBinder()Landroid/os/IBinder;" />
+		<method name="asInterface(Landroid/os/IBinder;)Landroid/content/pm/IPackageInstallObserver;" />
+		<method name="onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z" />
+	</class>
+	<class name="android/content/pm/InstrumentationInfo" since="1">
+		<extends name="android/content/pm/PackageItemInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/InstrumentationInfo;)V" />
+		<method name="describeContents()I" />
+		<field name="CREATOR" />
+		<field name="dataDir" />
+		<field name="functionalTest" />
+		<field name="handleProfiling" />
+		<field name="publicSourceDir" />
+		<field name="sourceDir" />
+		<field name="targetPackage" />
+	</class>
+	<class name="android/content/pm/LabeledIntent" since="5">
+		<extends name="android/content/Intent" />
+		<method name="&lt;init>(Landroid/content/Intent;Ljava/lang/String;II)V" />
+		<method name="&lt;init>(Landroid/content/Intent;Ljava/lang/String;Ljava/lang/CharSequence;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;II)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/CharSequence;I)V" />
+		<method name="getIconResource()I" />
+		<method name="getLabelResource()I" />
+		<method name="getNonLocalizedLabel()Ljava/lang/CharSequence;" />
+		<method name="getSourcePackage()Ljava/lang/String;" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/pm/PackageInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="activities" />
+		<field name="applicationInfo" />
+		<field name="configPreferences" since="3" />
+		<field name="firstInstallTime" since="9" />
+		<field name="gids" />
+		<field name="instrumentation" />
+		<field name="lastUpdateTime" since="9" />
+		<field name="packageName" />
+		<field name="permissions" />
+		<field name="providers" />
+		<field name="receivers" />
+		<field name="reqFeatures" since="5" />
+		<field name="requestedPermissions" />
+		<field name="services" />
+		<field name="sharedUserId" since="3" />
+		<field name="sharedUserLabel" since="3" />
+		<field name="signatures" />
+		<field name="versionCode" />
+		<field name="versionName" />
+	</class>
+	<class name="android/content/pm/PackageItemInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/PackageItemInfo;)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="dumpBack(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="dumpFront(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="loadLogo(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="loadXmlMetaData(Landroid/content/pm/PackageManager;Ljava/lang/String;)Landroid/content/res/XmlResourceParser;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="icon" />
+		<field name="labelRes" />
+		<field name="logo" since="9" />
+		<field name="metaData" />
+		<field name="name" />
+		<field name="nonLocalizedLabel" />
+		<field name="packageName" />
+	</class>
+	<class name="android/content/pm/PackageItemInfo$DisplayNameComparator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Comparator" />
+		<method name="&lt;init>(Landroid/content/pm/PackageManager;)V" />
+		<method name="compare(Landroid/content/pm/PackageItemInfo;Landroid/content/pm/PackageItemInfo;)I" />
+	</class>
+	<class name="android/content/pm/PackageManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addPackageToPreferred(Ljava/lang/String;)V" />
+		<method name="addPermission(Landroid/content/pm/PermissionInfo;)Z" />
+		<method name="addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z" since="8" />
+		<method name="addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V" />
+		<method name="canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8" />
+		<method name="checkPermission(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="checkSignatures(II)I" since="5" />
+		<method name="checkSignatures(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="clearPackagePreferredActivities(Ljava/lang/String;)V" />
+		<method name="currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8" />
+		<method name="getActivityIcon(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getActivityIcon(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;" />
+		<method name="getActivityLogo(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getActivityLogo(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getAllPermissionGroups(I)Ljava/util/List;" />
+		<method name="getApplicationEnabledSetting(Ljava/lang/String;)I" />
+		<method name="getApplicationIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getApplicationIcon(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;" />
+		<method name="getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
+		<method name="getApplicationLogo(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getApplicationLogo(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getComponentEnabledSetting(Landroid/content/ComponentName;)I" />
+		<method name="getDefaultActivityIcon()Landroid/graphics/drawable/Drawable;" />
+		<method name="getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getInstalledApplications(I)Ljava/util/List;" />
+		<method name="getInstalledPackages(I)Ljava/util/List;" />
+		<method name="getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;" since="5" />
+		<method name="getInstrumentationInfo(Landroid/content/ComponentName;I)Landroid/content/pm/InstrumentationInfo;" />
+		<method name="getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;" since="3" />
+		<method name="getNameForUid(I)Ljava/lang/String;" />
+		<method name="getPackageArchiveInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;" />
+		<method name="getPackageGids(Ljava/lang/String;)[I" />
+		<method name="getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;" />
+		<method name="getPackagesForUid(I)[Ljava/lang/String;" />
+		<method name="getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;" />
+		<method name="getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;" />
+		<method name="getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I" />
+		<method name="getPreferredPackages(I)Ljava/util/List;" />
+		<method name="getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo;" since="9" />
+		<method name="getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;" />
+		<method name="getResourcesForActivity(Landroid/content/ComponentName;)Landroid/content/res/Resources;" />
+		<method name="getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources;" />
+		<method name="getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources;" />
+		<method name="getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;" />
+		<method name="getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;" since="5" />
+		<method name="getSystemSharedLibraryNames()[Ljava/lang/String;" since="3" />
+		<method name="getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
+		<method name="getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser;" />
+		<method name="hasSystemFeature(Ljava/lang/String;)Z" since="5" />
+		<method name="installPackage(Landroid/net/Uri;)V" />
+		<method name="installPackage(Landroid/net/Uri;Landroid/content/pm/IPackageInstallObserver;I)V" />
+		<method name="isSafeMode()Z" since="3" />
+		<method name="queryBroadcastReceivers(Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryContentProviders(Ljava/lang/String;II)Ljava/util/List;" />
+		<method name="queryInstrumentation(Ljava/lang/String;I)Ljava/util/List;" />
+		<method name="queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryIntentActivityOptions(Landroid/content/ComponentName;[Landroid/content/Intent;Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryPermissionsByGroup(Ljava/lang/String;I)Ljava/util/List;" />
+		<method name="removePackageFromPreferred(Ljava/lang/String;)V" />
+		<method name="removePermission(Ljava/lang/String;)V" />
+		<method name="resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;" />
+		<method name="resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;" />
+		<method name="resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;" />
+		<method name="setApplicationEnabledSetting(Ljava/lang/String;II)V" />
+		<method name="setComponentEnabledSetting(Landroid/content/ComponentName;II)V" />
+		<method name="setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V" since="11" />
+		<method name="verifyPendingInstall(II)V" since="14" />
+		<field name="COMPONENT_ENABLED_STATE_DEFAULT" />
+		<field name="COMPONENT_ENABLED_STATE_DISABLED" />
+		<field name="COMPONENT_ENABLED_STATE_DISABLED_USER" since="14" />
+		<field name="COMPONENT_ENABLED_STATE_ENABLED" />
+		<field name="DONT_KILL_APP" />
+		<field name="EXTRA_VERIFICATION_ID" since="14" />
+		<field name="FEATURE_AUDIO_LOW_LATENCY" since="9" />
+		<field name="FEATURE_BLUETOOTH" since="8" />
+		<field name="FEATURE_CAMERA" since="7" />
+		<field name="FEATURE_CAMERA_AUTOFOCUS" since="7" />
+		<field name="FEATURE_CAMERA_FLASH" since="7" />
+		<field name="FEATURE_CAMERA_FRONT" since="9" />
+		<field name="FEATURE_FAKETOUCH" since="11" />
+		<field name="FEATURE_FAKETOUCH_MULTITOUCH_DISTINCT" since="13" />
+		<field name="FEATURE_FAKETOUCH_MULTITOUCH_JAZZHAND" since="13" />
+		<field name="FEATURE_LIVE_WALLPAPER" since="7" />
+		<field name="FEATURE_LOCATION" since="8" />
+		<field name="FEATURE_LOCATION_GPS" since="8" />
+		<field name="FEATURE_LOCATION_NETWORK" since="8" />
+		<field name="FEATURE_MICROPHONE" since="8" />
+		<field name="FEATURE_NFC" since="9" />
+		<field name="FEATURE_SCREEN_LANDSCAPE" since="13" />
+		<field name="FEATURE_SCREEN_PORTRAIT" since="13" />
+		<field name="FEATURE_SENSOR_ACCELEROMETER" since="8" />
+		<field name="FEATURE_SENSOR_BAROMETER" since="9" />
+		<field name="FEATURE_SENSOR_COMPASS" since="8" />
+		<field name="FEATURE_SENSOR_GYROSCOPE" since="9" />
+		<field name="FEATURE_SENSOR_LIGHT" since="7" />
+		<field name="FEATURE_SENSOR_PROXIMITY" since="7" />
+		<field name="FEATURE_SIP" since="9" />
+		<field name="FEATURE_SIP_VOIP" since="9" />
+		<field name="FEATURE_TELEPHONY" since="7" />
+		<field name="FEATURE_TELEPHONY_CDMA" since="7" />
+		<field name="FEATURE_TELEPHONY_GSM" since="7" />
+		<field name="FEATURE_TOUCHSCREEN" since="8" />
+		<field name="FEATURE_TOUCHSCREEN_MULTITOUCH" since="7" />
+		<field name="FEATURE_TOUCHSCREEN_MULTITOUCH_DISTINCT" since="8" />
+		<field name="FEATURE_TOUCHSCREEN_MULTITOUCH_JAZZHAND" since="9" />
+		<field name="FEATURE_USB_ACCESSORY" since="12" />
+		<field name="FEATURE_USB_HOST" since="12" />
+		<field name="FEATURE_WIFI" since="8" />
+		<field name="FEATURE_WIFI_DIRECT" since="14" />
+		<field name="FORWARD_LOCK_PACKAGE" />
+		<field name="GET_ACTIVITIES" />
+		<field name="GET_CONFIGURATIONS" since="3" />
+		<field name="GET_DISABLED_COMPONENTS" />
+		<field name="GET_GIDS" />
+		<field name="GET_INSTRUMENTATION" />
+		<field name="GET_INTENT_FILTERS" />
+		<field name="GET_META_DATA" />
+		<field name="GET_PERMISSIONS" />
+		<field name="GET_PROVIDERS" />
+		<field name="GET_RECEIVERS" />
+		<field name="GET_RESOLVED_FILTER" />
+		<field name="GET_SERVICES" />
+		<field name="GET_SHARED_LIBRARY_FILES" />
+		<field name="GET_SIGNATURES" />
+		<field name="GET_UNINSTALLED_PACKAGES" since="3" />
+		<field name="GET_URI_PERMISSION_PATTERNS" />
+		<field name="INSTALL_FAILED_ALREADY_EXISTS" />
+		<field name="INSTALL_FAILED_CONFLICTING_PROVIDER" since="3" />
+		<field name="INSTALL_FAILED_DEXOPT" />
+		<field name="INSTALL_FAILED_DUPLICATE_PACKAGE" />
+		<field name="INSTALL_FAILED_INSUFFICIENT_STORAGE" />
+		<field name="INSTALL_FAILED_INVALID_APK" />
+		<field name="INSTALL_FAILED_INVALID_URI" />
+		<field name="INSTALL_FAILED_MISSING_SHARED_LIBRARY" />
+		<field name="INSTALL_FAILED_NO_SHARED_USER" />
+		<field name="INSTALL_FAILED_OLDER_SDK" />
+		<field name="INSTALL_FAILED_REPLACE_COULDNT_DELETE" />
+		<field name="INSTALL_FAILED_SHARED_USER_INCOMPATIBLE" />
+		<field name="INSTALL_FAILED_UPDATE_INCOMPATIBLE" />
+		<field name="INSTALL_PARSE_FAILED_BAD_MANIFEST" />
+		<field name="INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME" />
+		<field name="INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID" />
+		<field name="INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING" />
+		<field name="INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES" />
+		<field name="INSTALL_PARSE_FAILED_MANIFEST_EMPTY" />
+		<field name="INSTALL_PARSE_FAILED_MANIFEST_MALFORMED" />
+		<field name="INSTALL_PARSE_FAILED_NOT_APK" />
+		<field name="INSTALL_PARSE_FAILED_NO_CERTIFICATES" />
+		<field name="INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION" />
+		<field name="INSTALL_SUCCEEDED" />
+		<field name="MATCH_DEFAULT_ONLY" />
+		<field name="PERMISSION_DENIED" />
+		<field name="PERMISSION_GRANTED" />
+		<field name="PKG_INSTALL_COMPLETE" />
+		<field name="PKG_INSTALL_INCOMPLETE" />
+		<field name="REPLACE_EXISTING_PACKAGE" />
+		<field name="SIGNATURE_FIRST_NOT_SIGNED" />
+		<field name="SIGNATURE_MATCH" />
+		<field name="SIGNATURE_NEITHER_SIGNED" />
+		<field name="SIGNATURE_NO_MATCH" />
+		<field name="SIGNATURE_SECOND_NOT_SIGNED" />
+		<field name="SIGNATURE_UNKNOWN_PACKAGE" />
+		<field name="VERIFICATION_ALLOW" since="14" />
+		<field name="VERIFICATION_REJECT" since="14" />
+	</class>
+	<class name="android/content/pm/PackageManager$NameNotFoundException" since="1">
+		<extends name="android/util/AndroidException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/pm/PackageStats" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/content/pm/PackageStats;)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="cacheSize" />
+		<field name="codeSize" />
+		<field name="dataSize" />
+		<field name="externalCacheSize" since="11" />
+		<field name="externalCodeSize" since="14" />
+		<field name="externalDataSize" since="11" />
+		<field name="externalMediaSize" since="11" />
+		<field name="externalObbSize" since="11" />
+		<field name="packageName" />
+	</class>
+	<class name="android/content/pm/PathPermission" since="4">
+		<extends name="android/os/PatternMatcher" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="getReadPermission()Ljava/lang/String;" />
+		<method name="getWritePermission()Ljava/lang/String;" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/pm/PermissionGroupInfo" since="1">
+		<extends name="android/content/pm/PackageItemInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/PermissionGroupInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<field name="CREATOR" />
+		<field name="descriptionRes" />
+		<field name="nonLocalizedDescription" />
+	</class>
+	<class name="android/content/pm/PermissionInfo" since="1">
+		<extends name="android/content/pm/PackageItemInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/PermissionInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="loadDescription(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<field name="CREATOR" />
+		<field name="PROTECTION_DANGEROUS" />
+		<field name="PROTECTION_NORMAL" />
+		<field name="PROTECTION_SIGNATURE" />
+		<field name="PROTECTION_SIGNATURE_OR_SYSTEM" />
+		<field name="descriptionRes" />
+		<field name="group" />
+		<field name="nonLocalizedDescription" />
+		<field name="protectionLevel" />
+	</class>
+	<class name="android/content/pm/ProviderInfo" since="1">
+		<extends name="android/content/pm/ComponentInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/ProviderInfo;)V" />
+		<method name="describeContents()I" />
+		<field name="CREATOR" />
+		<field name="authority" />
+		<field name="grantUriPermissions" />
+		<field name="initOrder" />
+		<field name="isSyncable" />
+		<field name="multiprocess" />
+		<field name="pathPermissions" since="4" />
+		<field name="readPermission" />
+		<field name="uriPermissionPatterns" />
+		<field name="writePermission" />
+	</class>
+	<class name="android/content/pm/ResolveInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getIconResource()I" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="activityInfo" />
+		<field name="filter" />
+		<field name="icon" />
+		<field name="isDefault" />
+		<field name="labelRes" />
+		<field name="match" />
+		<field name="nonLocalizedLabel" />
+		<field name="preferredOrder" />
+		<field name="priority" />
+		<field name="resolvePackageName" since="5" />
+		<field name="serviceInfo" />
+		<field name="specificIndex" />
+	</class>
+	<class name="android/content/pm/ResolveInfo$DisplayNameComparator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Comparator" />
+		<method name="&lt;init>(Landroid/content/pm/PackageManager;)V" />
+		<method name="compare(Landroid/content/pm/ResolveInfo;Landroid/content/pm/ResolveInfo;)I" />
+	</class>
+	<class name="android/content/pm/ServiceInfo" since="1">
+		<extends name="android/content/pm/ComponentInfo" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/pm/ServiceInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" since="5" />
+		<field name="CREATOR" />
+		<field name="FLAG_STOP_WITH_TASK" since="14" />
+		<field name="flags" since="14" />
+		<field name="permission" />
+	</class>
+	<class name="android/content/pm/Signature" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>([B)V" />
+		<method name="describeContents()I" />
+		<method name="toByteArray()[B" />
+		<method name="toChars()[C" />
+		<method name="toChars([C[I)[C" />
+		<method name="toCharsString()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/res/AssetFileDescriptor" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" since="3" />
+		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;JJ)V" />
+		<method name="close()V" />
+		<method name="createInputStream()Ljava/io/FileInputStream;" since="3" />
+		<method name="createOutputStream()Ljava/io/FileOutputStream;" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getDeclaredLength()J" since="3" />
+		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
+		<method name="getLength()J" />
+		<method name="getParcelFileDescriptor()Landroid/os/ParcelFileDescriptor;" />
+		<method name="getStartOffset()J" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+		<field name="CREATOR" since="3" />
+		<field name="UNKNOWN_LENGTH" since="3" />
+	</class>
+	<class name="android/content/res/AssetFileDescriptor$AutoCloseInputStream" since="3">
+		<extends name="android/os/ParcelFileDescriptor$AutoCloseInputStream" />
+		<method name="&lt;init>(Landroid/content/res/AssetFileDescriptor;)V" />
+	</class>
+	<class name="android/content/res/AssetFileDescriptor$AutoCloseOutputStream" since="3">
+		<extends name="android/os/ParcelFileDescriptor$AutoCloseOutputStream" />
+		<method name="&lt;init>(Landroid/content/res/AssetFileDescriptor;)V" />
+	</class>
+	<class name="android/content/res/AssetManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="close()V" />
+		<method name="getLocales()[Ljava/lang/String;" />
+		<method name="list(Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="open(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="open(Ljava/lang/String;I)Ljava/io/InputStream;" />
+		<method name="openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
+		<method name="openNonAssetFd(ILjava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
+		<method name="openNonAssetFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;" />
+		<method name="openXmlResourceParser(ILjava/lang/String;)Landroid/content/res/XmlResourceParser;" />
+		<method name="openXmlResourceParser(Ljava/lang/String;)Landroid/content/res/XmlResourceParser;" />
+		<field name="ACCESS_BUFFER" />
+		<field name="ACCESS_RANDOM" />
+		<field name="ACCESS_STREAMING" />
+		<field name="ACCESS_UNKNOWN" />
+	</class>
+	<class name="android/content/res/AssetManager$AssetInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="available()I" />
+		<method name="close()V" />
+		<method name="getAssetInt()I" />
+		<method name="mark(I)V" />
+		<method name="markSupported()Z" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="reset()V" />
+		<method name="skip(J)J" />
+	</class>
+	<class name="android/content/res/ColorStateList" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>([[I[I)V" />
+		<method name="createFromXml(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;)Landroid/content/res/ColorStateList;" />
+		<method name="describeContents()I" />
+		<method name="getColorForState([II)I" />
+		<method name="getDefaultColor()I" />
+		<method name="isStateful()Z" />
+		<method name="valueOf(I)Landroid/content/res/ColorStateList;" />
+		<method name="withAlpha(I)Landroid/content/res/ColorStateList;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/content/res/Configuration" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/res/Configuration;)V" />
+		<method name="compareTo(Landroid/content/res/Configuration;)I" />
+		<method name="describeContents()I" />
+		<method name="diff(Landroid/content/res/Configuration;)I" />
+		<method name="equals(Landroid/content/res/Configuration;)Z" />
+		<method name="isLayoutSizeAtLeast(I)Z" since="11" />
+		<method name="needNewResources(II)Z" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" since="8" />
+		<method name="setTo(Landroid/content/res/Configuration;)V" since="8" />
+		<method name="setToDefaults()V" />
+		<method name="updateFrom(Landroid/content/res/Configuration;)I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="HARDKEYBOARDHIDDEN_NO" since="3" />
+		<field name="HARDKEYBOARDHIDDEN_UNDEFINED" since="3" />
+		<field name="HARDKEYBOARDHIDDEN_YES" since="3" />
+		<field name="KEYBOARDHIDDEN_NO" />
+		<field name="KEYBOARDHIDDEN_UNDEFINED" />
+		<field name="KEYBOARDHIDDEN_YES" />
+		<field name="KEYBOARD_12KEY" />
+		<field name="KEYBOARD_NOKEYS" />
+		<field name="KEYBOARD_QWERTY" />
+		<field name="KEYBOARD_UNDEFINED" />
+		<field name="NAVIGATIONHIDDEN_NO" since="5" />
+		<field name="NAVIGATIONHIDDEN_UNDEFINED" since="5" />
+		<field name="NAVIGATIONHIDDEN_YES" since="5" />
+		<field name="NAVIGATION_DPAD" />
+		<field name="NAVIGATION_NONAV" />
+		<field name="NAVIGATION_TRACKBALL" />
+		<field name="NAVIGATION_UNDEFINED" />
+		<field name="NAVIGATION_WHEEL" />
+		<field name="ORIENTATION_LANDSCAPE" />
+		<field name="ORIENTATION_PORTRAIT" />
+		<field name="ORIENTATION_SQUARE" />
+		<field name="ORIENTATION_UNDEFINED" />
+		<field name="SCREENLAYOUT_LONG_MASK" since="4" />
+		<field name="SCREENLAYOUT_LONG_NO" since="4" />
+		<field name="SCREENLAYOUT_LONG_UNDEFINED" since="4" />
+		<field name="SCREENLAYOUT_LONG_YES" since="4" />
+		<field name="SCREENLAYOUT_SIZE_LARGE" since="4" />
+		<field name="SCREENLAYOUT_SIZE_MASK" since="4" />
+		<field name="SCREENLAYOUT_SIZE_NORMAL" since="4" />
+		<field name="SCREENLAYOUT_SIZE_SMALL" since="4" />
+		<field name="SCREENLAYOUT_SIZE_UNDEFINED" since="4" />
+		<field name="SCREENLAYOUT_SIZE_XLARGE" since="9" />
+		<field name="SCREEN_HEIGHT_DP_UNDEFINED" since="13" />
+		<field name="SCREEN_WIDTH_DP_UNDEFINED" since="13" />
+		<field name="SMALLEST_SCREEN_WIDTH_DP_UNDEFINED" since="13" />
+		<field name="TOUCHSCREEN_FINGER" />
+		<field name="TOUCHSCREEN_NOTOUCH" />
+		<field name="TOUCHSCREEN_STYLUS" />
+		<field name="TOUCHSCREEN_UNDEFINED" />
+		<field name="UI_MODE_NIGHT_MASK" since="8" />
+		<field name="UI_MODE_NIGHT_NO" since="8" />
+		<field name="UI_MODE_NIGHT_UNDEFINED" since="8" />
+		<field name="UI_MODE_NIGHT_YES" since="8" />
+		<field name="UI_MODE_TYPE_CAR" since="8" />
+		<field name="UI_MODE_TYPE_DESK" since="8" />
+		<field name="UI_MODE_TYPE_MASK" since="8" />
+		<field name="UI_MODE_TYPE_NORMAL" since="8" />
+		<field name="UI_MODE_TYPE_TELEVISION" since="13" />
+		<field name="UI_MODE_TYPE_UNDEFINED" since="8" />
+		<field name="fontScale" />
+		<field name="hardKeyboardHidden" since="3" />
+		<field name="keyboard" />
+		<field name="keyboardHidden" />
+		<field name="locale" />
+		<field name="mcc" />
+		<field name="mnc" />
+		<field name="navigation" />
+		<field name="navigationHidden" since="5" />
+		<field name="orientation" />
+		<field name="screenHeightDp" since="13" />
+		<field name="screenLayout" since="4" />
+		<field name="screenWidthDp" since="13" />
+		<field name="smallestScreenWidthDp" since="13" />
+		<field name="touchscreen" />
+		<field name="uiMode" since="8" />
+	</class>
+	<class name="android/content/res/ObbInfo" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="OBB_OVERLAY" />
+		<field name="filename" />
+		<field name="flags" />
+		<field name="packageName" />
+		<field name="version" />
+	</class>
+	<class name="android/content/res/ObbScanner" since="9">
+		<extends name="java/lang/Object" />
+		<method name="getObbInfo(Ljava/lang/String;)Landroid/content/res/ObbInfo;" />
+	</class>
+	<class name="android/content/res/Resources" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/res/AssetManager;Landroid/util/DisplayMetrics;Landroid/content/res/Configuration;)V" />
+		<method name="finishPreloading()V" />
+		<method name="flushLayoutCache()V" />
+		<method name="getAnimation(I)Landroid/content/res/XmlResourceParser;" />
+		<method name="getAssets()Landroid/content/res/AssetManager;" />
+		<method name="getBoolean(I)Z" since="3" />
+		<method name="getColor(I)I" />
+		<method name="getColorStateList(I)Landroid/content/res/ColorStateList;" />
+		<method name="getConfiguration()Landroid/content/res/Configuration;" />
+		<method name="getDimension(I)F" />
+		<method name="getDimensionPixelOffset(I)I" />
+		<method name="getDimensionPixelSize(I)I" />
+		<method name="getDisplayMetrics()Landroid/util/DisplayMetrics;" />
+		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" />
+		<method name="getDrawableForDensity(II)Landroid/graphics/drawable/Drawable;" since="15" />
+		<method name="getFraction(III)F" since="3" />
+		<method name="getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getIntArray(I)[I" />
+		<method name="getInteger(I)I" />
+		<method name="getLayout(I)Landroid/content/res/XmlResourceParser;" />
+		<method name="getMovie(I)Landroid/graphics/Movie;" />
+		<method name="getQuantityString(II)Ljava/lang/String;" />
+		<method name="getQuantityString(II[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="getQuantityText(II)Ljava/lang/CharSequence;" />
+		<method name="getResourceEntryName(I)Ljava/lang/String;" />
+		<method name="getResourceName(I)Ljava/lang/String;" />
+		<method name="getResourcePackageName(I)Ljava/lang/String;" />
+		<method name="getResourceTypeName(I)Ljava/lang/String;" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getString(I[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="getStringArray(I)[Ljava/lang/String;" />
+		<method name="getSystem()Landroid/content/res/Resources;" />
+		<method name="getText(I)Ljava/lang/CharSequence;" />
+		<method name="getText(ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTextArray(I)[Ljava/lang/CharSequence;" />
+		<method name="getValue(ILandroid/util/TypedValue;Z)V" />
+		<method name="getValue(Ljava/lang/String;Landroid/util/TypedValue;Z)V" />
+		<method name="getValueForDensity(IILandroid/util/TypedValue;Z)V" since="15" />
+		<method name="getXml(I)Landroid/content/res/XmlResourceParser;" />
+		<method name="newTheme()Landroid/content/res/Resources$Theme;" />
+		<method name="obtainAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;" />
+		<method name="obtainTypedArray(I)Landroid/content/res/TypedArray;" />
+		<method name="openRawResource(I)Ljava/io/InputStream;" />
+		<method name="openRawResource(ILandroid/util/TypedValue;)Ljava/io/InputStream;" since="3" />
+		<method name="openRawResourceFd(I)Landroid/content/res/AssetFileDescriptor;" />
+		<method name="parseBundleExtra(Ljava/lang/String;Landroid/util/AttributeSet;Landroid/os/Bundle;)V" since="3" />
+		<method name="parseBundleExtras(Landroid/content/res/XmlResourceParser;Landroid/os/Bundle;)V" since="3" />
+		<method name="updateConfiguration(Landroid/content/res/Configuration;Landroid/util/DisplayMetrics;)V" />
+	</class>
+	<class name="android/content/res/Resources$NotFoundException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/content/res/Resources$Theme" since="1">
+		<extends name="java/lang/Object" />
+		<method name="applyStyle(IZ)V" />
+		<method name="dump(ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="obtainStyledAttributes(I[I)Landroid/content/res/TypedArray;" />
+		<method name="obtainStyledAttributes(Landroid/util/AttributeSet;[III)Landroid/content/res/TypedArray;" />
+		<method name="obtainStyledAttributes([I)Landroid/content/res/TypedArray;" />
+		<method name="resolveAttribute(ILandroid/util/TypedValue;Z)Z" />
+		<method name="setTo(Landroid/content/res/Resources$Theme;)V" />
+	</class>
+	<class name="android/content/res/TypedArray" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getBoolean(IZ)Z" />
+		<method name="getColor(II)I" />
+		<method name="getColorStateList(I)Landroid/content/res/ColorStateList;" />
+		<method name="getDimension(IF)F" />
+		<method name="getDimensionPixelOffset(II)I" />
+		<method name="getDimensionPixelSize(II)I" />
+		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" />
+		<method name="getFloat(IF)F" />
+		<method name="getFraction(IIIF)F" />
+		<method name="getIndex(I)I" />
+		<method name="getIndexCount()I" />
+		<method name="getInt(II)I" />
+		<method name="getInteger(II)I" />
+		<method name="getLayoutDimension(II)I" since="3" />
+		<method name="getLayoutDimension(ILjava/lang/String;)I" />
+		<method name="getNonResourceString(I)Ljava/lang/String;" />
+		<method name="getPositionDescription()Ljava/lang/String;" />
+		<method name="getResourceId(II)I" />
+		<method name="getResources()Landroid/content/res/Resources;" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getText(I)Ljava/lang/CharSequence;" />
+		<method name="getTextArray(I)[Ljava/lang/CharSequence;" />
+		<method name="getValue(ILandroid/util/TypedValue;)Z" />
+		<method name="hasValue(I)Z" />
+		<method name="length()I" />
+		<method name="peekValue(I)Landroid/util/TypedValue;" />
+		<method name="recycle()V" />
+	</class>
+	<class name="android/content/res/XmlResourceParser" since="1">
+		<implements name="android/util/AttributeSet" />
+		<implements name="org/xmlpull/v1/XmlPullParser" />
+		<method name="close()V" />
+	</class>
+	<class name="android/database/AbstractCursor" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/database/CrossProcessCursor" />
+		<method name="&lt;init>()V" />
+		<method name="checkPosition()V" />
+		<method name="close()V" />
+		<method name="copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V" />
+		<method name="deactivate()V" />
+		<method name="fillWindow(ILandroid/database/CursorWindow;)V" />
+		<method name="getBlob(I)[B" />
+		<method name="getColumnCount()I" />
+		<method name="getColumnIndex(Ljava/lang/String;)I" />
+		<method name="getColumnIndexOrThrow(Ljava/lang/String;)I" />
+		<method name="getColumnName(I)Ljava/lang/String;" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDouble(I)D" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getNotificationUri()Landroid/net/Uri;" since="11" />
+		<method name="getPosition()I" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getType(I)I" since="11" />
+		<method name="getUpdatedField(I)Ljava/lang/Object;" />
+		<method name="getWantsAllOnMoveCalls()Z" />
+		<method name="getWindow()Landroid/database/CursorWindow;" />
+		<method name="isAfterLast()Z" />
+		<method name="isBeforeFirst()Z" />
+		<method name="isClosed()Z" />
+		<method name="isFieldUpdated(I)Z" />
+		<method name="isFirst()Z" />
+		<method name="isLast()Z" />
+		<method name="isNull(I)Z" />
+		<method name="move(I)Z" />
+		<method name="moveToFirst()Z" />
+		<method name="moveToLast()Z" />
+		<method name="moveToNext()Z" />
+		<method name="moveToPosition(I)Z" />
+		<method name="moveToPrevious()Z" />
+		<method name="onChange(Z)V" />
+		<method name="onMove(II)Z" />
+		<method name="registerContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="requery()Z" />
+		<method name="respond(Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V" />
+		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<field name="mClosed" />
+		<field name="mContentResolver" />
+		<field name="mCurrentRowID" />
+		<field name="mPos" />
+		<field name="mRowIdColumnIndex" />
+		<field name="mUpdatedRows" />
+	</class>
+	<class name="android/database/AbstractCursor$SelfContentObserver" since="1">
+		<extends name="android/database/ContentObserver" />
+		<method name="&lt;init>(Landroid/database/AbstractCursor;)V" />
+	</class>
+	<class name="android/database/AbstractWindowedCursor" since="1">
+		<extends name="android/database/AbstractCursor" />
+		<method name="&lt;init>()V" />
+		<method name="getDouble(I)D" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="hasWindow()Z" />
+		<method name="isBlob(I)Z" />
+		<method name="isFloat(I)Z" since="5" />
+		<method name="isLong(I)Z" since="5" />
+		<method name="isNull(I)Z" />
+		<method name="isString(I)Z" since="5" />
+		<method name="setWindow(Landroid/database/CursorWindow;)V" />
+		<field name="mWindow" />
+	</class>
+	<class name="android/database/CharArrayBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>([C)V" />
+		<field name="data" />
+		<field name="sizeCopied" />
+	</class>
+	<class name="android/database/ContentObservable" since="1">
+		<extends name="android/database/Observable" />
+		<method name="&lt;init>()V" />
+		<method name="dispatchChange(Z)V" />
+		<method name="notifyChange(Z)V" />
+		<method name="registerObserver(Landroid/database/ContentObserver;)V" />
+	</class>
+	<class name="android/database/ContentObserver" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/os/Handler;)V" />
+		<method name="deliverSelfNotifications()Z" />
+		<method name="dispatchChange(Z)V" />
+		<method name="onChange(Z)V" />
+	</class>
+	<class name="android/database/CrossProcessCursor" since="1">
+		<implements name="android/database/Cursor" />
+		<method name="fillWindow(ILandroid/database/CursorWindow;)V" />
+		<method name="getWindow()Landroid/database/CursorWindow;" />
+		<method name="onMove(II)Z" />
+	</class>
+	<class name="android/database/CrossProcessCursorWrapper" since="15">
+		<extends name="android/database/CursorWrapper" />
+		<implements name="android/database/CrossProcessCursor" />
+		<method name="&lt;init>(Landroid/database/Cursor;)V" />
+		<method name="fillWindow(ILandroid/database/CursorWindow;)V" />
+		<method name="getWindow()Landroid/database/CursorWindow;" />
+		<method name="onMove(II)Z" />
+	</class>
+	<class name="android/database/Cursor" since="1">
+		<method name="close()V" />
+		<method name="copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V" />
+		<method name="deactivate()V" />
+		<method name="getBlob(I)[B" />
+		<method name="getColumnCount()I" />
+		<method name="getColumnIndex(Ljava/lang/String;)I" />
+		<method name="getColumnIndexOrThrow(Ljava/lang/String;)I" />
+		<method name="getColumnName(I)Ljava/lang/String;" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDouble(I)D" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getPosition()I" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getType(I)I" since="11" />
+		<method name="getWantsAllOnMoveCalls()Z" />
+		<method name="isAfterLast()Z" />
+		<method name="isBeforeFirst()Z" />
+		<method name="isClosed()Z" />
+		<method name="isFirst()Z" />
+		<method name="isLast()Z" />
+		<method name="isNull(I)Z" />
+		<method name="move(I)Z" />
+		<method name="moveToFirst()Z" />
+		<method name="moveToLast()Z" />
+		<method name="moveToNext()Z" />
+		<method name="moveToPosition(I)Z" />
+		<method name="moveToPrevious()Z" />
+		<method name="registerContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="requery()Z" />
+		<method name="respond(Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V" />
+		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<field name="FIELD_TYPE_BLOB" since="11" />
+		<field name="FIELD_TYPE_FLOAT" since="11" />
+		<field name="FIELD_TYPE_INTEGER" since="11" />
+		<field name="FIELD_TYPE_NULL" since="11" />
+		<field name="FIELD_TYPE_STRING" since="11" />
+	</class>
+	<class name="android/database/CursorIndexOutOfBoundsException" since="1">
+		<extends name="java/lang/IndexOutOfBoundsException" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/CursorJoiner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Iterable" />
+		<implements name="java/util/Iterator" />
+		<method name="&lt;init>(Landroid/database/Cursor;[Ljava/lang/String;Landroid/database/Cursor;[Ljava/lang/String;)V" />
+		<method name="hasNext()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="next()Landroid/database/CursorJoiner$Result;" />
+		<method name="remove()V" />
+	</class>
+	<class name="android/database/CursorJoiner$Result" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/database/CursorJoiner$Result;" />
+		<method name="values()[Landroid/database/CursorJoiner$Result;" />
+		<field name="BOTH" />
+		<field name="LEFT" />
+		<field name="RIGHT" />
+	</class>
+	<class name="android/database/CursorWindow" since="1">
+		<extends name="android/database/sqlite/SQLiteClosable" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" since="15" />
+		<method name="&lt;init>(Z)V" />
+		<method name="allocRow()Z" />
+		<method name="clear()V" />
+		<method name="close()V" />
+		<method name="copyStringToBuffer(IILandroid/database/CharArrayBuffer;)V" />
+		<method name="describeContents()I" />
+		<method name="freeLastRow()V" />
+		<method name="getBlob(II)[B" />
+		<method name="getDouble(II)D" />
+		<method name="getFloat(II)F" />
+		<method name="getInt(II)I" />
+		<method name="getLong(II)J" />
+		<method name="getNumRows()I" />
+		<method name="getShort(II)S" />
+		<method name="getStartPosition()I" />
+		<method name="getString(II)Ljava/lang/String;" />
+		<method name="getType(II)I" since="11" />
+		<method name="isBlob(II)Z" />
+		<method name="isFloat(II)Z" since="5" />
+		<method name="isLong(II)Z" since="5" />
+		<method name="isNull(II)Z" />
+		<method name="isString(II)Z" since="5" />
+		<method name="newFromParcel(Landroid/os/Parcel;)Landroid/database/CursorWindow;" />
+		<method name="onAllReferencesReleased()V" />
+		<method name="putBlob([BII)Z" />
+		<method name="putDouble(DII)Z" />
+		<method name="putLong(JII)Z" />
+		<method name="putNull(II)Z" />
+		<method name="putString(Ljava/lang/String;II)Z" />
+		<method name="setNumColumns(I)Z" />
+		<method name="setStartPosition(I)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/database/CursorWrapper" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/database/Cursor" />
+		<method name="&lt;init>(Landroid/database/Cursor;)V" />
+		<method name="close()V" />
+		<method name="copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V" />
+		<method name="deactivate()V" />
+		<method name="getBlob(I)[B" />
+		<method name="getColumnCount()I" />
+		<method name="getColumnIndex(Ljava/lang/String;)I" />
+		<method name="getColumnIndexOrThrow(Ljava/lang/String;)I" />
+		<method name="getColumnName(I)Ljava/lang/String;" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDouble(I)D" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getPosition()I" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getType(I)I" since="11" />
+		<method name="getWantsAllOnMoveCalls()Z" />
+		<method name="getWrappedCursor()Landroid/database/Cursor;" since="11" />
+		<method name="isAfterLast()Z" />
+		<method name="isBeforeFirst()Z" />
+		<method name="isClosed()Z" />
+		<method name="isFirst()Z" />
+		<method name="isLast()Z" />
+		<method name="isNull(I)Z" />
+		<method name="move(I)Z" />
+		<method name="moveToFirst()Z" />
+		<method name="moveToLast()Z" />
+		<method name="moveToNext()Z" />
+		<method name="moveToPosition(I)Z" />
+		<method name="moveToPrevious()Z" />
+		<method name="registerContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="requery()Z" />
+		<method name="respond(Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V" />
+		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+	</class>
+	<class name="android/database/DataSetObservable" since="1">
+		<extends name="android/database/Observable" />
+		<method name="&lt;init>()V" />
+		<method name="notifyChanged()V" />
+		<method name="notifyInvalidated()V" />
+	</class>
+	<class name="android/database/DataSetObserver" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="onChanged()V" />
+		<method name="onInvalidated()V" />
+	</class>
+	<class name="android/database/DatabaseErrorHandler" since="11">
+		<method name="onCorruption(Landroid/database/sqlite/SQLiteDatabase;)V" />
+	</class>
+	<class name="android/database/DatabaseUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="appendEscapedSQLString(Ljava/lang/StringBuilder;Ljava/lang/String;)V" />
+		<method name="appendSelectionArgs([Ljava/lang/String;[Ljava/lang/String;)[Ljava/lang/String;" since="11" />
+		<method name="appendValueToSql(Ljava/lang/StringBuilder;Ljava/lang/Object;)V" />
+		<method name="bindObjectToProgram(Landroid/database/sqlite/SQLiteProgram;ILjava/lang/Object;)V" />
+		<method name="blobFileDescriptorForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" since="11" />
+		<method name="blobFileDescriptorForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;" since="11" />
+		<method name="concatenateWhere(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11" />
+		<method name="createDbFromSqlStatements(Landroid/content/Context;Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="cursorDoubleToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
+		<method name="cursorDoubleToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
+		<method name="cursorDoubleToCursorValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
+		<method name="cursorFloatToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
+		<method name="cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
+		<method name="cursorIntToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
+		<method name="cursorIntToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
+		<method name="cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
+		<method name="cursorLongToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
+		<method name="cursorLongToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
+		<method name="cursorRowToContentValues(Landroid/database/Cursor;Landroid/content/ContentValues;)V" />
+		<method name="cursorShortToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
+		<method name="cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;)V" />
+		<method name="cursorStringToContentValues(Landroid/database/Cursor;Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;)V" />
+		<method name="cursorStringToContentValuesIfPresent(Landroid/database/Cursor;Landroid/content/ContentValues;Ljava/lang/String;)V" since="8" />
+		<method name="cursorStringToInsertHelper(Landroid/database/Cursor;Ljava/lang/String;Landroid/database/DatabaseUtils$InsertHelper;I)V" />
+		<method name="dumpCurrentRow(Landroid/database/Cursor;)V" />
+		<method name="dumpCurrentRow(Landroid/database/Cursor;Ljava/io/PrintStream;)V" />
+		<method name="dumpCurrentRow(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V" />
+		<method name="dumpCurrentRowToString(Landroid/database/Cursor;)Ljava/lang/String;" />
+		<method name="dumpCursor(Landroid/database/Cursor;)V" />
+		<method name="dumpCursor(Landroid/database/Cursor;Ljava/io/PrintStream;)V" />
+		<method name="dumpCursor(Landroid/database/Cursor;Ljava/lang/StringBuilder;)V" />
+		<method name="dumpCursorToString(Landroid/database/Cursor;)Ljava/lang/String;" />
+		<method name="getCollationKey(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getHexCollationKey(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getSqlStatementType(Ljava/lang/String;)I" since="11" />
+		<method name="longForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)J" />
+		<method name="longForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)J" />
+		<method name="queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)J" />
+		<method name="queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;)J" since="11" />
+		<method name="queryNumEntries(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)J" since="11" />
+		<method name="readExceptionFromParcel(Landroid/os/Parcel;)V" />
+		<method name="readExceptionWithFileNotFoundExceptionFromParcel(Landroid/os/Parcel;)V" />
+		<method name="readExceptionWithOperationApplicationExceptionFromParcel(Landroid/os/Parcel;)V" since="5" />
+		<method name="sqlEscapeString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="stringForQuery(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="stringForQuery(Landroid/database/sqlite/SQLiteStatement;[Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="writeExceptionToParcel(Landroid/os/Parcel;Ljava/lang/Exception;)V" />
+		<field name="STATEMENT_ABORT" since="11" />
+		<field name="STATEMENT_ATTACH" since="11" />
+		<field name="STATEMENT_BEGIN" since="11" />
+		<field name="STATEMENT_COMMIT" since="11" />
+		<field name="STATEMENT_DDL" since="11" />
+		<field name="STATEMENT_OTHER" since="11" />
+		<field name="STATEMENT_PRAGMA" since="11" />
+		<field name="STATEMENT_SELECT" since="11" />
+		<field name="STATEMENT_UNPREPARED" since="11" />
+		<field name="STATEMENT_UPDATE" since="11" />
+	</class>
+	<class name="android/database/DatabaseUtils$InsertHelper" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)V" />
+		<method name="bind(ID)V" />
+		<method name="bind(IF)V" />
+		<method name="bind(II)V" />
+		<method name="bind(IJ)V" />
+		<method name="bind(ILjava/lang/String;)V" />
+		<method name="bind(IZ)V" />
+		<method name="bind(I[B)V" />
+		<method name="bindNull(I)V" />
+		<method name="close()V" />
+		<method name="execute()J" />
+		<method name="getColumnIndex(Ljava/lang/String;)I" />
+		<method name="insert(Landroid/content/ContentValues;)J" />
+		<method name="prepareForInsert()V" />
+		<method name="prepareForReplace()V" />
+		<method name="replace(Landroid/content/ContentValues;)J" />
+		<field name="TABLE_INFO_PRAGMA_DEFAULT_INDEX" />
+	</class>
+	<class name="android/database/DefaultDatabaseErrorHandler" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/database/DatabaseErrorHandler" />
+		<method name="&lt;init>()V" />
+		<method name="onCorruption(Landroid/database/sqlite/SQLiteDatabase;)V" />
+	</class>
+	<class name="android/database/MatrixCursor" since="1">
+		<extends name="android/database/AbstractCursor" />
+		<method name="&lt;init>([Ljava/lang/String;)V" />
+		<method name="&lt;init>([Ljava/lang/String;I)V" />
+		<method name="addRow(Ljava/lang/Iterable;)V" />
+		<method name="addRow([Ljava/lang/Object;)V" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDouble(I)D" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="isNull(I)Z" />
+		<method name="newRow()Landroid/database/MatrixCursor$RowBuilder;" />
+	</class>
+	<class name="android/database/MatrixCursor$RowBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="add(Ljava/lang/Object;)Landroid/database/MatrixCursor$RowBuilder;" />
+	</class>
+	<class name="android/database/MergeCursor" since="1">
+		<extends name="android/database/AbstractCursor" />
+		<method name="&lt;init>([Landroid/database/Cursor;)V" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDouble(I)D" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="isNull(I)Z" />
+	</class>
+	<class name="android/database/Observable" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="registerObserver(LT;)V" />
+		<method name="unregisterAll()V" />
+		<method name="unregisterObserver(LT;)V" />
+		<field name="mObservers" />
+	</class>
+	<class name="android/database/SQLException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/StaleDataException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteAbortException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteAccessPermException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteBindOrColumnIndexOutOfRangeException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteBlobTooBigException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteCantOpenDatabaseException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteClosable" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="acquireReference()V" />
+		<method name="onAllReferencesReleased()V" />
+		<method name="onAllReferencesReleasedFromContainer()V" />
+		<method name="releaseReference()V" />
+		<method name="releaseReferenceFromContainer()V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteConstraintException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteCursor" since="1">
+		<extends name="android/database/AbstractWindowedCursor" />
+		<method name="&lt;init>(Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" since="11" />
+		<method name="&lt;init>(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)V" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDatabase()Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="setSelectionArguments([Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteCursorDriver" since="1">
+		<method name="cursorClosed()V" />
+		<method name="cursorDeactivated()V" />
+		<method name="cursorRequeried(Landroid/database/Cursor;)V" />
+		<method name="query(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="setBindArguments([Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDatabase" since="1">
+		<extends name="android/database/sqlite/SQLiteClosable" />
+		<method name="beginTransaction()V" />
+		<method name="beginTransactionNonExclusive()V" since="11" />
+		<method name="beginTransactionWithListener(Landroid/database/sqlite/SQLiteTransactionListener;)V" since="5" />
+		<method name="beginTransactionWithListenerNonExclusive(Landroid/database/sqlite/SQLiteTransactionListener;)V" since="11" />
+		<method name="close()V" />
+		<method name="compileStatement(Ljava/lang/String;)Landroid/database/sqlite/SQLiteStatement;" />
+		<method name="create(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="delete(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="enableWriteAheadLogging()Z" since="11" />
+		<method name="endTransaction()V" />
+		<method name="execSQL(Ljava/lang/String;)V" />
+		<method name="execSQL(Ljava/lang/String;[Ljava/lang/Object;)V" />
+		<method name="findEditTable(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getAttachedDbs()Ljava/util/List;" since="11" />
+		<method name="getMaximumSize()J" />
+		<method name="getPageSize()J" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getSyncedTables()Ljava/util/Map;" />
+		<method name="getVersion()I" />
+		<method name="inTransaction()Z" />
+		<method name="insert(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
+		<method name="insertOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
+		<method name="insertWithOnConflict(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;I)J" since="8" />
+		<method name="isDatabaseIntegrityOk()Z" since="11" />
+		<method name="isDbLockedByCurrentThread()Z" />
+		<method name="isDbLockedByOtherThreads()Z" />
+		<method name="isOpen()Z" />
+		<method name="isReadOnly()Z" />
+		<method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="markTableSyncable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="needUpgrade(I)Z" />
+		<method name="onAllReferencesReleased()V" />
+		<method name="openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="openDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
+		<method name="openOrCreateDatabase(Ljava/io/File;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
+		<method name="query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="query(Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="query(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="queryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="rawQuery(Ljava/lang/String;[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="rawQueryWithFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="releaseMemory()I" />
+		<method name="replace(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
+		<method name="replaceOrThrow(Ljava/lang/String;Ljava/lang/String;Landroid/content/ContentValues;)J" />
+		<method name="setLocale(Ljava/util/Locale;)V" />
+		<method name="setLockingEnabled(Z)V" />
+		<method name="setMaxSqlCacheSize(I)V" since="11" />
+		<method name="setMaximumSize(J)J" />
+		<method name="setPageSize(J)V" />
+		<method name="setTransactionSuccessful()V" />
+		<method name="setVersion(I)V" />
+		<method name="update(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="updateWithOnConflict(Ljava/lang/String;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;I)I" since="8" />
+		<method name="yieldIfContended()Z" />
+		<method name="yieldIfContendedSafely()Z" since="3" />
+		<method name="yieldIfContendedSafely(J)Z" since="5" />
+		<field name="CONFLICT_ABORT" since="8" />
+		<field name="CONFLICT_FAIL" since="8" />
+		<field name="CONFLICT_IGNORE" since="8" />
+		<field name="CONFLICT_NONE" since="8" />
+		<field name="CONFLICT_REPLACE" since="8" />
+		<field name="CONFLICT_ROLLBACK" since="8" />
+		<field name="CREATE_IF_NECESSARY" />
+		<field name="MAX_SQL_CACHE_SIZE" since="11" />
+		<field name="NO_LOCALIZED_COLLATORS" />
+		<field name="OPEN_READONLY" />
+		<field name="OPEN_READWRITE" />
+		<field name="SQLITE_MAX_LIKE_PATTERN_LENGTH" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDatabase$CursorFactory" since="1">
+		<method name="newCursor(Landroid/database/sqlite/SQLiteDatabase;Landroid/database/sqlite/SQLiteCursorDriver;Ljava/lang/String;Landroid/database/sqlite/SQLiteQuery;)Landroid/database/Cursor;" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDatabaseCorruptException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDatabaseLockedException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDatatypeMismatchException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDiskIOException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteDoneException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteException" since="1">
+		<extends name="android/database/SQLException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteFullException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteMisuseException" since="1">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteOpenHelper" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;Landroid/database/sqlite/SQLiteDatabase$CursorFactory;ILandroid/database/DatabaseErrorHandler;)V" since="11" />
+		<method name="close()V" />
+		<method name="getDatabaseName()Ljava/lang/String;" since="14" />
+		<method name="getReadableDatabase()Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="getWritableDatabase()Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="onCreate(Landroid/database/sqlite/SQLiteDatabase;)V" />
+		<method name="onDowngrade(Landroid/database/sqlite/SQLiteDatabase;II)V" since="11" />
+		<method name="onOpen(Landroid/database/sqlite/SQLiteDatabase;)V" />
+		<method name="onUpgrade(Landroid/database/sqlite/SQLiteDatabase;II)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteOutOfMemoryException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteProgram" since="1">
+		<extends name="android/database/sqlite/SQLiteClosable" />
+		<method name="bindAllArgsAsStrings([Ljava/lang/String;)V" since="11" />
+		<method name="bindBlob(I[B)V" />
+		<method name="bindDouble(ID)V" />
+		<method name="bindLong(IJ)V" />
+		<method name="bindNull(I)V" />
+		<method name="bindString(ILjava/lang/String;)V" />
+		<method name="clearBindings()V" />
+		<method name="close()V" />
+		<method name="compile(Ljava/lang/String;Z)V" />
+		<method name="getUniqueId()I" />
+		<method name="native_bind_blob(I[B)V" />
+		<method name="native_bind_double(ID)V" />
+		<method name="native_bind_long(IJ)V" />
+		<method name="native_bind_null(I)V" />
+		<method name="native_bind_string(ILjava/lang/String;)V" />
+		<method name="native_compile(Ljava/lang/String;)V" />
+		<method name="native_finalize()V" />
+		<method name="onAllReferencesReleased()V" />
+		<field name="mDatabase" />
+		<field name="nHandle" />
+		<field name="nStatement" />
+	</class>
+	<class name="android/database/sqlite/SQLiteQuery" since="1">
+		<extends name="android/database/sqlite/SQLiteProgram" />
+	</class>
+	<class name="android/database/sqlite/SQLiteQueryBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="appendColumns(Ljava/lang/StringBuilder;[Ljava/lang/String;)V" />
+		<method name="appendWhere(Ljava/lang/CharSequence;)V" />
+		<method name="appendWhereEscapeString(Ljava/lang/String;)V" />
+		<method name="buildQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11" />
+		<method name="buildQuery([Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="buildQueryString(ZLjava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="buildUnionQuery([Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="11" />
+		<method name="buildUnionSubQuery(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Set;ILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getTables()Ljava/lang/String;" />
+		<method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="query(Landroid/database/sqlite/SQLiteDatabase;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="setCursorFactory(Landroid/database/sqlite/SQLiteDatabase$CursorFactory;)V" />
+		<method name="setDistinct(Z)V" />
+		<method name="setProjectionMap(Ljava/util/Map;)V" />
+		<method name="setStrict(Z)V" since="14" />
+		<method name="setTables(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteReadOnlyDatabaseException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteStatement" since="1">
+		<extends name="android/database/sqlite/SQLiteProgram" />
+		<method name="execute()V" />
+		<method name="executeInsert()J" />
+		<method name="executeUpdateDelete()I" since="11" />
+		<method name="simpleQueryForBlobFileDescriptor()Landroid/os/ParcelFileDescriptor;" since="11" />
+		<method name="simpleQueryForLong()J" />
+		<method name="simpleQueryForString()Ljava/lang/String;" />
+	</class>
+	<class name="android/database/sqlite/SQLiteTableLockedException" since="11">
+		<extends name="android/database/sqlite/SQLiteException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/database/sqlite/SQLiteTransactionListener" since="5">
+		<method name="onBegin()V" />
+		<method name="onCommit()V" />
+		<method name="onRollback()V" />
+	</class>
+	<class name="android/drm/DrmConvertedStatus" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I[BI)V" />
+		<field name="STATUS_ERROR" />
+		<field name="STATUS_INPUTDATA_ERROR" />
+		<field name="STATUS_OK" />
+		<field name="convertedData" />
+		<field name="offset" />
+		<field name="statusCode" />
+	</class>
+	<class name="android/drm/DrmErrorEvent" since="11">
+		<extends name="android/drm/DrmEvent" />
+		<method name="&lt;init>(IILjava/lang/String;)V" />
+		<method name="&lt;init>(IILjava/lang/String;Ljava/util/HashMap;)V" since="12" />
+		<field name="TYPE_ACQUIRE_DRM_INFO_FAILED" since="12" />
+		<field name="TYPE_NOT_SUPPORTED" />
+		<field name="TYPE_NO_INTERNET_CONNECTION" />
+		<field name="TYPE_OUT_OF_MEMORY" />
+		<field name="TYPE_PROCESS_DRM_INFO_FAILED" />
+		<field name="TYPE_REMOVE_ALL_RIGHTS_FAILED" />
+		<field name="TYPE_RIGHTS_NOT_INSTALLED" />
+		<field name="TYPE_RIGHTS_RENEWAL_NOT_ALLOWED" />
+	</class>
+	<class name="android/drm/DrmEvent" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(IILjava/lang/String;)V" />
+		<method name="&lt;init>(IILjava/lang/String;Ljava/util/HashMap;)V" since="12" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" since="12" />
+		<method name="getMessage()Ljava/lang/String;" />
+		<method name="getType()I" />
+		<method name="getUniqueId()I" />
+		<field name="DRM_INFO_OBJECT" since="12" />
+		<field name="DRM_INFO_STATUS_OBJECT" />
+		<field name="TYPE_ALL_RIGHTS_REMOVED" />
+		<field name="TYPE_DRM_INFO_PROCESSED" />
+	</class>
+	<class name="android/drm/DrmInfo" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(I[BLjava/lang/String;)V" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getData()[B" />
+		<method name="getInfoType()I" />
+		<method name="getMimeType()Ljava/lang/String;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="keyIterator()Ljava/util/Iterator;" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="android/drm/DrmInfoEvent" since="11">
+		<extends name="android/drm/DrmEvent" />
+		<method name="&lt;init>(IILjava/lang/String;)V" />
+		<method name="&lt;init>(IILjava/lang/String;Ljava/util/HashMap;)V" since="12" />
+		<field name="TYPE_ACCOUNT_ALREADY_REGISTERED" />
+		<field name="TYPE_ALREADY_REGISTERED_BY_ANOTHER_ACCOUNT" />
+		<field name="TYPE_REMOVE_RIGHTS" />
+		<field name="TYPE_RIGHTS_INSTALLED" />
+		<field name="TYPE_RIGHTS_REMOVED" since="12" />
+		<field name="TYPE_WAIT_FOR_RIGHTS" />
+	</class>
+	<class name="android/drm/DrmInfoRequest" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(ILjava/lang/String;)V" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getInfoType()I" />
+		<method name="getMimeType()Ljava/lang/String;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="keyIterator()Ljava/util/Iterator;" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<field name="ACCOUNT_ID" />
+		<field name="SUBSCRIPTION_ID" />
+		<field name="TYPE_REGISTRATION_INFO" />
+		<field name="TYPE_RIGHTS_ACQUISITION_INFO" />
+		<field name="TYPE_RIGHTS_ACQUISITION_PROGRESS_INFO" />
+		<field name="TYPE_UNREGISTRATION_INFO" />
+	</class>
+	<class name="android/drm/DrmInfoStatus" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(IILandroid/drm/ProcessedData;Ljava/lang/String;)V" />
+		<field name="STATUS_ERROR" />
+		<field name="STATUS_OK" />
+		<field name="data" />
+		<field name="infoType" />
+		<field name="mimeType" />
+		<field name="statusCode" />
+	</class>
+	<class name="android/drm/DrmManagerClient" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="acquireDrmInfo(Landroid/drm/DrmInfoRequest;)Landroid/drm/DrmInfo;" />
+		<method name="acquireRights(Landroid/drm/DrmInfoRequest;)I" />
+		<method name="canHandle(Landroid/net/Uri;Ljava/lang/String;)Z" />
+		<method name="canHandle(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="checkRightsStatus(Landroid/net/Uri;)I" />
+		<method name="checkRightsStatus(Landroid/net/Uri;I)I" />
+		<method name="checkRightsStatus(Ljava/lang/String;)I" />
+		<method name="checkRightsStatus(Ljava/lang/String;I)I" />
+		<method name="closeConvertSession(I)Landroid/drm/DrmConvertedStatus;" />
+		<method name="convertData(I[B)Landroid/drm/DrmConvertedStatus;" />
+		<method name="getAvailableDrmEngines()[Ljava/lang/String;" />
+		<method name="getConstraints(Landroid/net/Uri;I)Landroid/content/ContentValues;" />
+		<method name="getConstraints(Ljava/lang/String;I)Landroid/content/ContentValues;" />
+		<method name="getDrmObjectType(Landroid/net/Uri;Ljava/lang/String;)I" />
+		<method name="getDrmObjectType(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getMetadata(Landroid/net/Uri;)Landroid/content/ContentValues;" />
+		<method name="getMetadata(Ljava/lang/String;)Landroid/content/ContentValues;" />
+		<method name="getOriginalMimeType(Landroid/net/Uri;)Ljava/lang/String;" />
+		<method name="getOriginalMimeType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="openConvertSession(Ljava/lang/String;)I" />
+		<method name="processDrmInfo(Landroid/drm/DrmInfo;)I" />
+		<method name="removeAllRights()I" />
+		<method name="removeRights(Landroid/net/Uri;)I" />
+		<method name="removeRights(Ljava/lang/String;)I" />
+		<method name="saveRights(Landroid/drm/DrmRights;Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="setOnErrorListener(Landroid/drm/DrmManagerClient$OnErrorListener;)V" />
+		<method name="setOnEventListener(Landroid/drm/DrmManagerClient$OnEventListener;)V" />
+		<method name="setOnInfoListener(Landroid/drm/DrmManagerClient$OnInfoListener;)V" />
+		<field name="ERROR_NONE" />
+		<field name="ERROR_UNKNOWN" />
+	</class>
+	<class name="android/drm/DrmManagerClient$OnErrorListener" since="11">
+		<method name="onError(Landroid/drm/DrmManagerClient;Landroid/drm/DrmErrorEvent;)V" />
+	</class>
+	<class name="android/drm/DrmManagerClient$OnEventListener" since="11">
+		<method name="onEvent(Landroid/drm/DrmManagerClient;Landroid/drm/DrmEvent;)V" since="12" />
+		<method name="onEvent(Landroid/drm/DrmManagerClient;Landroid/drm/DrmEvent;Ljava/util/HashMap;)V" />
+	</class>
+	<class name="android/drm/DrmManagerClient$OnInfoListener" since="11">
+		<method name="onInfo(Landroid/drm/DrmManagerClient;Landroid/drm/DrmInfoEvent;)V" />
+	</class>
+	<class name="android/drm/DrmRights" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/drm/ProcessedData;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getAccountId()Ljava/lang/String;" />
+		<method name="getData()[B" />
+		<method name="getMimeType()Ljava/lang/String;" />
+		<method name="getSubscriptionId()Ljava/lang/String;" />
+	</class>
+	<class name="android/drm/DrmStore" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/drm/DrmStore$Action" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="DEFAULT" />
+		<field name="DISPLAY" />
+		<field name="EXECUTE" />
+		<field name="OUTPUT" />
+		<field name="PLAY" />
+		<field name="PREVIEW" />
+		<field name="RINGTONE" />
+		<field name="TRANSFER" />
+	</class>
+	<class name="android/drm/DrmStore$ConstraintsColumns" since="11">
+		<field name="EXTENDED_METADATA" />
+		<field name="LICENSE_AVAILABLE_TIME" />
+		<field name="LICENSE_EXPIRY_TIME" />
+		<field name="LICENSE_START_TIME" />
+		<field name="MAX_REPEAT_COUNT" />
+		<field name="REMAINING_REPEAT_COUNT" />
+	</class>
+	<class name="android/drm/DrmStore$DrmObjectType" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="CONTENT" />
+		<field name="RIGHTS_OBJECT" />
+		<field name="TRIGGER_OBJECT" />
+		<field name="UNKNOWN" />
+	</class>
+	<class name="android/drm/DrmStore$Playback" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="PAUSE" />
+		<field name="RESUME" />
+		<field name="START" />
+		<field name="STOP" />
+	</class>
+	<class name="android/drm/DrmStore$RightsStatus" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="RIGHTS_EXPIRED" />
+		<field name="RIGHTS_INVALID" />
+		<field name="RIGHTS_NOT_ACQUIRED" />
+		<field name="RIGHTS_VALID" />
+	</class>
+	<class name="android/drm/DrmSupportInfo" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addFileSuffix(Ljava/lang/String;)V" />
+		<method name="addMimeType(Ljava/lang/String;)V" />
+		<method name="getDescriprition()Ljava/lang/String;" />
+		<method name="getFileSuffixIterator()Ljava/util/Iterator;" />
+		<method name="getMimeTypeIterator()Ljava/util/Iterator;" />
+		<method name="setDescription(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/drm/DrmUtils" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getExtendedMetadataParser([B)Landroid/drm/DrmUtils$ExtendedMetadataParser;" />
+	</class>
+	<class name="android/drm/DrmUtils$ExtendedMetadataParser" since="11">
+		<extends name="java/lang/Object" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="keyIterator()Ljava/util/Iterator;" />
+	</class>
+	<class name="android/drm/ProcessedData" since="11">
+		<extends name="java/lang/Object" />
+		<method name="getAccountId()Ljava/lang/String;" />
+		<method name="getData()[B" />
+		<method name="getSubscriptionId()Ljava/lang/String;" />
+	</class>
+	<class name="android/gesture/Gesture" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="addStroke(Landroid/gesture/GestureStroke;)V" />
+		<method name="clone()Ljava/lang/Object;" since="8" />
+		<method name="describeContents()I" />
+		<method name="getBoundingBox()Landroid/graphics/RectF;" />
+		<method name="getID()J" />
+		<method name="getLength()F" />
+		<method name="getStrokes()Ljava/util/ArrayList;" />
+		<method name="getStrokesCount()I" />
+		<method name="toBitmap(IIII)Landroid/graphics/Bitmap;" />
+		<method name="toBitmap(IIIII)Landroid/graphics/Bitmap;" />
+		<method name="toPath()Landroid/graphics/Path;" />
+		<method name="toPath(IIII)Landroid/graphics/Path;" />
+		<method name="toPath(Landroid/graphics/Path;)Landroid/graphics/Path;" />
+		<method name="toPath(Landroid/graphics/Path;IIII)Landroid/graphics/Path;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/gesture/GestureLibraries" since="4">
+		<extends name="java/lang/Object" />
+		<method name="fromFile(Ljava/io/File;)Landroid/gesture/GestureLibrary;" />
+		<method name="fromFile(Ljava/lang/String;)Landroid/gesture/GestureLibrary;" />
+		<method name="fromPrivateFile(Landroid/content/Context;Ljava/lang/String;)Landroid/gesture/GestureLibrary;" />
+		<method name="fromRawResource(Landroid/content/Context;I)Landroid/gesture/GestureLibrary;" />
+	</class>
+	<class name="android/gesture/GestureLibrary" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
+		<method name="getGestureEntries()Ljava/util/Set;" />
+		<method name="getGestures(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getOrientationStyle()I" />
+		<method name="getSequenceType()I" />
+		<method name="isReadOnly()Z" />
+		<method name="load()Z" />
+		<method name="recognize(Landroid/gesture/Gesture;)Ljava/util/ArrayList;" />
+		<method name="removeEntry(Ljava/lang/String;)V" />
+		<method name="removeGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
+		<method name="save()Z" />
+		<method name="setOrientationStyle(I)V" />
+		<method name="setSequenceType(I)V" />
+		<field name="mStore" />
+	</class>
+	<class name="android/gesture/GestureOverlayView" since="4">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="addOnGestureListener(Landroid/gesture/GestureOverlayView$OnGestureListener;)V" />
+		<method name="addOnGesturePerformedListener(Landroid/gesture/GestureOverlayView$OnGesturePerformedListener;)V" />
+		<method name="addOnGesturingListener(Landroid/gesture/GestureOverlayView$OnGesturingListener;)V" />
+		<method name="cancelClearAnimation()V" />
+		<method name="cancelGesture()V" />
+		<method name="clear(Z)V" />
+		<method name="getCurrentStroke()Ljava/util/ArrayList;" />
+		<method name="getFadeOffset()J" />
+		<method name="getGesture()Landroid/gesture/Gesture;" />
+		<method name="getGestureColor()I" />
+		<method name="getGesturePath()Landroid/graphics/Path;" />
+		<method name="getGesturePath(Landroid/graphics/Path;)Landroid/graphics/Path;" />
+		<method name="getGestureStrokeAngleThreshold()F" />
+		<method name="getGestureStrokeLengthThreshold()F" />
+		<method name="getGestureStrokeSquarenessTreshold()F" />
+		<method name="getGestureStrokeType()I" />
+		<method name="getGestureStrokeWidth()F" />
+		<method name="getOrientation()I" />
+		<method name="getUncertainGestureColor()I" />
+		<method name="isEventsInterceptionEnabled()Z" />
+		<method name="isFadeEnabled()Z" />
+		<method name="isGestureVisible()Z" />
+		<method name="isGesturing()Z" />
+		<method name="removeAllOnGestureListeners()V" />
+		<method name="removeAllOnGesturePerformedListeners()V" />
+		<method name="removeAllOnGesturingListeners()V" />
+		<method name="removeOnGestureListener(Landroid/gesture/GestureOverlayView$OnGestureListener;)V" />
+		<method name="removeOnGesturePerformedListener(Landroid/gesture/GestureOverlayView$OnGesturePerformedListener;)V" />
+		<method name="removeOnGesturingListener(Landroid/gesture/GestureOverlayView$OnGesturingListener;)V" />
+		<method name="setEventsInterceptionEnabled(Z)V" />
+		<method name="setFadeEnabled(Z)V" />
+		<method name="setFadeOffset(J)V" />
+		<method name="setGesture(Landroid/gesture/Gesture;)V" />
+		<method name="setGestureColor(I)V" />
+		<method name="setGestureStrokeAngleThreshold(F)V" />
+		<method name="setGestureStrokeLengthThreshold(F)V" />
+		<method name="setGestureStrokeSquarenessTreshold(F)V" />
+		<method name="setGestureStrokeType(I)V" />
+		<method name="setGestureStrokeWidth(F)V" />
+		<method name="setGestureVisible(Z)V" />
+		<method name="setOrientation(I)V" />
+		<method name="setUncertainGestureColor(I)V" />
+		<field name="GESTURE_STROKE_TYPE_MULTIPLE" />
+		<field name="GESTURE_STROKE_TYPE_SINGLE" />
+		<field name="ORIENTATION_HORIZONTAL" />
+		<field name="ORIENTATION_VERTICAL" />
+	</class>
+	<class name="android/gesture/GestureOverlayView$OnGestureListener" since="4">
+		<method name="onGesture(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
+		<method name="onGestureCancelled(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
+		<method name="onGestureEnded(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
+		<method name="onGestureStarted(Landroid/gesture/GestureOverlayView;Landroid/view/MotionEvent;)V" />
+	</class>
+	<class name="android/gesture/GestureOverlayView$OnGesturePerformedListener" since="4">
+		<method name="onGesturePerformed(Landroid/gesture/GestureOverlayView;Landroid/gesture/Gesture;)V" />
+	</class>
+	<class name="android/gesture/GestureOverlayView$OnGesturingListener" since="4">
+		<method name="onGesturingEnded(Landroid/gesture/GestureOverlayView;)V" />
+		<method name="onGesturingStarted(Landroid/gesture/GestureOverlayView;)V" />
+	</class>
+	<class name="android/gesture/GesturePoint" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(FFJ)V" />
+		<method name="clone()Ljava/lang/Object;" since="8" />
+		<field name="timestamp" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/gesture/GestureStore" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
+		<method name="getGestureEntries()Ljava/util/Set;" />
+		<method name="getGestures(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getOrientationStyle()I" />
+		<method name="getSequenceType()I" />
+		<method name="hasChanged()Z" />
+		<method name="load(Ljava/io/InputStream;)V" />
+		<method name="load(Ljava/io/InputStream;Z)V" />
+		<method name="recognize(Landroid/gesture/Gesture;)Ljava/util/ArrayList;" />
+		<method name="removeEntry(Ljava/lang/String;)V" />
+		<method name="removeGesture(Ljava/lang/String;Landroid/gesture/Gesture;)V" />
+		<method name="save(Ljava/io/OutputStream;)V" />
+		<method name="save(Ljava/io/OutputStream;Z)V" />
+		<method name="setOrientationStyle(I)V" />
+		<method name="setSequenceType(I)V" />
+		<field name="ORIENTATION_INVARIANT" />
+		<field name="ORIENTATION_SENSITIVE" />
+		<field name="SEQUENCE_INVARIANT" />
+		<field name="SEQUENCE_SENSITIVE" />
+	</class>
+	<class name="android/gesture/GestureStroke" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/util/ArrayList;)V" />
+		<method name="clearPath()V" />
+		<method name="clone()Ljava/lang/Object;" since="8" />
+		<method name="computeOrientedBoundingBox()Landroid/gesture/OrientedBoundingBox;" />
+		<method name="getPath()Landroid/graphics/Path;" />
+		<method name="toPath(FFI)Landroid/graphics/Path;" />
+		<field name="boundingBox" />
+		<field name="length" />
+		<field name="points" />
+	</class>
+	<class name="android/gesture/GestureUtils" since="8">
+		<extends name="java/lang/Object" />
+		<method name="computeOrientedBoundingBox(Ljava/util/ArrayList;)Landroid/gesture/OrientedBoundingBox;" />
+		<method name="computeOrientedBoundingBox([F)Landroid/gesture/OrientedBoundingBox;" />
+		<method name="spatialSampling(Landroid/gesture/Gesture;I)[F" />
+		<method name="spatialSampling(Landroid/gesture/Gesture;IZ)[F" />
+		<method name="temporalSampling(Landroid/gesture/GestureStroke;I)[F" />
+	</class>
+	<class name="android/gesture/OrientedBoundingBox" since="4">
+		<extends name="java/lang/Object" />
+		<field name="centerX" />
+		<field name="centerY" />
+		<field name="height" />
+		<field name="orientation" />
+		<field name="squareness" />
+		<field name="width" />
+	</class>
+	<class name="android/gesture/Prediction" since="4">
+		<extends name="java/lang/Object" />
+		<field name="name" />
+		<field name="score" />
+	</class>
+	<class name="android/graphics/AvoidXfermode" since="1">
+		<extends name="android/graphics/Xfermode" />
+		<method name="&lt;init>(IILandroid/graphics/AvoidXfermode$Mode;)V" />
+	</class>
+	<class name="android/graphics/AvoidXfermode$Mode" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/AvoidXfermode$Mode;" />
+		<method name="values()[Landroid/graphics/AvoidXfermode$Mode;" />
+		<field name="AVOID" />
+		<field name="TARGET" />
+	</class>
+	<class name="android/graphics/Bitmap" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z" />
+		<method name="copy(Landroid/graphics/Bitmap$Config;Z)Landroid/graphics/Bitmap;" />
+		<method name="copyPixelsFromBuffer(Ljava/nio/Buffer;)V" since="3" />
+		<method name="copyPixelsToBuffer(Ljava/nio/Buffer;)V" />
+		<method name="createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" />
+		<method name="createBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;" />
+		<method name="createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;" />
+		<method name="createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;" />
+		<method name="createBitmap([IIIIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" />
+		<method name="createBitmap([IIILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;" />
+		<method name="createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;" />
+		<method name="describeContents()I" />
+		<method name="eraseColor(I)V" />
+		<method name="extractAlpha()Landroid/graphics/Bitmap;" />
+		<method name="extractAlpha(Landroid/graphics/Paint;[I)Landroid/graphics/Bitmap;" />
+		<method name="getByteCount()I" since="12" />
+		<method name="getConfig()Landroid/graphics/Bitmap$Config;" />
+		<method name="getDensity()I" since="4" />
+		<method name="getGenerationId()I" since="12" />
+		<method name="getHeight()I" />
+		<method name="getNinePatchChunk()[B" />
+		<method name="getPixel(II)I" />
+		<method name="getPixels([IIIIIII)V" />
+		<method name="getRowBytes()I" />
+		<method name="getScaledHeight(I)I" since="4" />
+		<method name="getScaledHeight(Landroid/graphics/Canvas;)I" since="4" />
+		<method name="getScaledHeight(Landroid/util/DisplayMetrics;)I" since="4" />
+		<method name="getScaledWidth(I)I" since="4" />
+		<method name="getScaledWidth(Landroid/graphics/Canvas;)I" since="4" />
+		<method name="getScaledWidth(Landroid/util/DisplayMetrics;)I" since="4" />
+		<method name="getWidth()I" />
+		<method name="hasAlpha()Z" />
+		<method name="isMutable()Z" />
+		<method name="isRecycled()Z" />
+		<method name="prepareToDraw()V" since="4" />
+		<method name="recycle()V" />
+		<method name="sameAs(Landroid/graphics/Bitmap;)Z" since="12" />
+		<method name="setDensity(I)V" since="4" />
+		<method name="setHasAlpha(Z)V" since="12" />
+		<method name="setPixel(III)V" />
+		<method name="setPixels([IIIIIII)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="DENSITY_NONE" since="4" />
+	</class>
+	<class name="android/graphics/Bitmap$CompressFormat" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$CompressFormat;" />
+		<method name="values()[Landroid/graphics/Bitmap$CompressFormat;" />
+		<field name="JPEG" />
+		<field name="PNG" />
+		<field name="WEBP" since="14" />
+	</class>
+	<class name="android/graphics/Bitmap$Config" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Bitmap$Config;" />
+		<method name="values()[Landroid/graphics/Bitmap$Config;" />
+		<field name="ALPHA_8" />
+		<field name="ARGB_4444" />
+		<field name="ARGB_8888" />
+		<field name="RGB_565" />
+	</class>
+	<class name="android/graphics/BitmapFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="decodeByteArray([BII)Landroid/graphics/Bitmap;" />
+		<method name="decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;" />
+		<method name="decodeFile(Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="decodeFileDescriptor(Ljava/io/FileDescriptor;)Landroid/graphics/Bitmap;" />
+		<method name="decodeFileDescriptor(Ljava/io/FileDescriptor;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="decodeResource(Landroid/content/res/Resources;I)Landroid/graphics/Bitmap;" />
+		<method name="decodeResource(Landroid/content/res/Resources;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="decodeResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="4" />
+		<method name="decodeStream(Ljava/io/InputStream;)Landroid/graphics/Bitmap;" />
+		<method name="decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+	</class>
+	<class name="android/graphics/BitmapFactory$Options" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="requestCancelDecode()V" />
+		<field name="inBitmap" since="11" />
+		<field name="inDensity" since="4" />
+		<field name="inDither" />
+		<field name="inInputShareable" since="4" />
+		<field name="inJustDecodeBounds" />
+		<field name="inMutable" since="11" />
+		<field name="inPreferQualityOverSpeed" since="10" />
+		<field name="inPreferredConfig" />
+		<field name="inPurgeable" since="4" />
+		<field name="inSampleSize" />
+		<field name="inScaled" since="4" />
+		<field name="inScreenDensity" since="4" />
+		<field name="inTargetDensity" since="4" />
+		<field name="inTempStorage" />
+		<field name="mCancel" />
+		<field name="outHeight" />
+		<field name="outMimeType" />
+		<field name="outWidth" />
+	</class>
+	<class name="android/graphics/BitmapRegionDecoder" since="10">
+		<extends name="java/lang/Object" />
+		<method name="decodeRegion(Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="getHeight()I" />
+		<method name="getWidth()I" />
+		<method name="isRecycled()Z" />
+		<method name="newInstance(Ljava/io/FileDescriptor;Z)Landroid/graphics/BitmapRegionDecoder;" />
+		<method name="newInstance(Ljava/io/InputStream;Z)Landroid/graphics/BitmapRegionDecoder;" />
+		<method name="newInstance(Ljava/lang/String;Z)Landroid/graphics/BitmapRegionDecoder;" />
+		<method name="newInstance([BIIZ)Landroid/graphics/BitmapRegionDecoder;" />
+		<method name="recycle()V" />
+	</class>
+	<class name="android/graphics/BitmapShader" since="1">
+		<extends name="android/graphics/Shader" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V" />
+	</class>
+	<class name="android/graphics/BlurMaskFilter" since="1">
+		<extends name="android/graphics/MaskFilter" />
+		<method name="&lt;init>(FLandroid/graphics/BlurMaskFilter$Blur;)V" />
+	</class>
+	<class name="android/graphics/BlurMaskFilter$Blur" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/BlurMaskFilter$Blur;" />
+		<method name="values()[Landroid/graphics/BlurMaskFilter$Blur;" />
+		<field name="INNER" />
+		<field name="NORMAL" />
+		<field name="OUTER" />
+		<field name="SOLID" />
+	</class>
+	<class name="android/graphics/Camera" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="applyToCanvas(Landroid/graphics/Canvas;)V" />
+		<method name="dotWithNormal(FFF)F" />
+		<method name="getMatrix(Landroid/graphics/Matrix;)V" />
+		<method name="restore()V" />
+		<method name="rotate(FFF)V" since="12" />
+		<method name="rotateX(F)V" />
+		<method name="rotateY(F)V" />
+		<method name="rotateZ(F)V" />
+		<method name="save()V" />
+		<method name="setLocation(FFF)V" since="12" />
+		<method name="translate(FFF)V" />
+	</class>
+	<class name="android/graphics/Canvas" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
+		<method name="&lt;init>(Ljavax/microedition/khronos/opengles/GL;)V" />
+		<method name="clipPath(Landroid/graphics/Path;)Z" />
+		<method name="clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z" />
+		<method name="clipRect(FFFF)Z" />
+		<method name="clipRect(FFFFLandroid/graphics/Region$Op;)Z" />
+		<method name="clipRect(IIII)Z" />
+		<method name="clipRect(Landroid/graphics/Rect;)Z" />
+		<method name="clipRect(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z" />
+		<method name="clipRect(Landroid/graphics/RectF;)Z" />
+		<method name="clipRect(Landroid/graphics/RectF;Landroid/graphics/Region$Op;)Z" />
+		<method name="clipRegion(Landroid/graphics/Region;)Z" />
+		<method name="clipRegion(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
+		<method name="concat(Landroid/graphics/Matrix;)V" />
+		<method name="drawARGB(IIII)V" />
+		<method name="drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V" />
+		<method name="drawBitmap(Landroid/graphics/Bitmap;FFLandroid/graphics/Paint;)V" />
+		<method name="drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Matrix;Landroid/graphics/Paint;)V" />
+		<method name="drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V" />
+		<method name="drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/RectF;Landroid/graphics/Paint;)V" />
+		<method name="drawBitmap([IIIFFIIZLandroid/graphics/Paint;)V" since="3" />
+		<method name="drawBitmap([IIIIIIIZLandroid/graphics/Paint;)V" />
+		<method name="drawBitmapMesh(Landroid/graphics/Bitmap;II[FI[IILandroid/graphics/Paint;)V" />
+		<method name="drawCircle(FFFLandroid/graphics/Paint;)V" />
+		<method name="drawColor(I)V" />
+		<method name="drawColor(ILandroid/graphics/PorterDuff$Mode;)V" />
+		<method name="drawLine(FFFFLandroid/graphics/Paint;)V" />
+		<method name="drawLines([FIILandroid/graphics/Paint;)V" />
+		<method name="drawLines([FLandroid/graphics/Paint;)V" />
+		<method name="drawOval(Landroid/graphics/RectF;Landroid/graphics/Paint;)V" />
+		<method name="drawPaint(Landroid/graphics/Paint;)V" />
+		<method name="drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V" />
+		<method name="drawPicture(Landroid/graphics/Picture;)V" />
+		<method name="drawPicture(Landroid/graphics/Picture;Landroid/graphics/Rect;)V" />
+		<method name="drawPicture(Landroid/graphics/Picture;Landroid/graphics/RectF;)V" />
+		<method name="drawPoint(FFLandroid/graphics/Paint;)V" />
+		<method name="drawPoints([FIILandroid/graphics/Paint;)V" />
+		<method name="drawPoints([FLandroid/graphics/Paint;)V" />
+		<method name="drawPosText(Ljava/lang/String;[FLandroid/graphics/Paint;)V" />
+		<method name="drawPosText([CII[FLandroid/graphics/Paint;)V" />
+		<method name="drawRGB(III)V" />
+		<method name="drawRect(FFFFLandroid/graphics/Paint;)V" />
+		<method name="drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V" />
+		<method name="drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V" />
+		<method name="drawRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Paint;)V" />
+		<method name="drawText(Ljava/lang/CharSequence;IIFFLandroid/graphics/Paint;)V" />
+		<method name="drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V" />
+		<method name="drawText(Ljava/lang/String;IIFFLandroid/graphics/Paint;)V" />
+		<method name="drawText([CIIFFLandroid/graphics/Paint;)V" />
+		<method name="drawTextOnPath(Ljava/lang/String;Landroid/graphics/Path;FFLandroid/graphics/Paint;)V" />
+		<method name="drawTextOnPath([CIILandroid/graphics/Path;FFLandroid/graphics/Paint;)V" />
+		<method name="drawVertices(Landroid/graphics/Canvas$VertexMode;I[FI[FI[II[SIILandroid/graphics/Paint;)V" />
+		<method name="freeGlCaches()V" />
+		<method name="getClipBounds()Landroid/graphics/Rect;" />
+		<method name="getClipBounds(Landroid/graphics/Rect;)Z" />
+		<method name="getDensity()I" since="4" />
+		<method name="getDrawFilter()Landroid/graphics/DrawFilter;" />
+		<method name="getGL()Ljavax/microedition/khronos/opengles/GL;" />
+		<method name="getHeight()I" />
+		<method name="getMatrix()Landroid/graphics/Matrix;" />
+		<method name="getMatrix(Landroid/graphics/Matrix;)V" />
+		<method name="getMaximumBitmapHeight()I" since="14" />
+		<method name="getMaximumBitmapWidth()I" since="14" />
+		<method name="getSaveCount()I" />
+		<method name="getWidth()I" />
+		<method name="isHardwareAccelerated()Z" since="11" />
+		<method name="isOpaque()Z" />
+		<method name="quickReject(FFFFLandroid/graphics/Canvas$EdgeType;)Z" />
+		<method name="quickReject(Landroid/graphics/Path;Landroid/graphics/Canvas$EdgeType;)Z" />
+		<method name="quickReject(Landroid/graphics/RectF;Landroid/graphics/Canvas$EdgeType;)Z" />
+		<method name="restore()V" />
+		<method name="restoreToCount(I)V" />
+		<method name="rotate(F)V" />
+		<method name="rotate(FFF)V" />
+		<method name="save()I" />
+		<method name="save(I)I" />
+		<method name="saveLayer(FFFFLandroid/graphics/Paint;I)I" />
+		<method name="saveLayer(Landroid/graphics/RectF;Landroid/graphics/Paint;I)I" />
+		<method name="saveLayerAlpha(FFFFII)I" />
+		<method name="saveLayerAlpha(Landroid/graphics/RectF;II)I" />
+		<method name="scale(FF)V" />
+		<method name="scale(FFFF)V" />
+		<method name="setBitmap(Landroid/graphics/Bitmap;)V" />
+		<method name="setDensity(I)V" since="4" />
+		<method name="setDrawFilter(Landroid/graphics/DrawFilter;)V" />
+		<method name="setMatrix(Landroid/graphics/Matrix;)V" />
+		<method name="setViewport(II)V" />
+		<method name="skew(FF)V" />
+		<method name="translate(FF)V" />
+		<field name="ALL_SAVE_FLAG" />
+		<field name="CLIP_SAVE_FLAG" />
+		<field name="CLIP_TO_LAYER_SAVE_FLAG" />
+		<field name="FULL_COLOR_LAYER_SAVE_FLAG" />
+		<field name="HAS_ALPHA_LAYER_SAVE_FLAG" />
+		<field name="MATRIX_SAVE_FLAG" />
+	</class>
+	<class name="android/graphics/Canvas$EdgeType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Canvas$EdgeType;" />
+		<method name="values()[Landroid/graphics/Canvas$EdgeType;" />
+		<field name="AA" />
+		<field name="BW" />
+	</class>
+	<class name="android/graphics/Canvas$VertexMode" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Canvas$VertexMode;" />
+		<method name="values()[Landroid/graphics/Canvas$VertexMode;" />
+		<field name="TRIANGLES" />
+		<field name="TRIANGLE_FAN" />
+		<field name="TRIANGLE_STRIP" />
+	</class>
+	<class name="android/graphics/Color" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="HSVToColor(I[F)I" />
+		<method name="HSVToColor([F)I" />
+		<method name="RGBToHSV(III[F)V" />
+		<method name="alpha(I)I" />
+		<method name="argb(IIII)I" />
+		<method name="blue(I)I" />
+		<method name="colorToHSV(I[F)V" />
+		<method name="green(I)I" />
+		<method name="parseColor(Ljava/lang/String;)I" />
+		<method name="red(I)I" />
+		<method name="rgb(III)I" />
+		<field name="BLACK" />
+		<field name="BLUE" />
+		<field name="CYAN" />
+		<field name="DKGRAY" />
+		<field name="GRAY" />
+		<field name="GREEN" />
+		<field name="LTGRAY" />
+		<field name="MAGENTA" />
+		<field name="RED" />
+		<field name="TRANSPARENT" />
+		<field name="WHITE" />
+		<field name="YELLOW" />
+	</class>
+	<class name="android/graphics/ColorFilter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/ColorMatrix" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/ColorMatrix;)V" />
+		<method name="&lt;init>([F)V" />
+		<method name="getArray()[F" />
+		<method name="postConcat(Landroid/graphics/ColorMatrix;)V" />
+		<method name="preConcat(Landroid/graphics/ColorMatrix;)V" />
+		<method name="reset()V" />
+		<method name="set(Landroid/graphics/ColorMatrix;)V" />
+		<method name="set([F)V" />
+		<method name="setConcat(Landroid/graphics/ColorMatrix;Landroid/graphics/ColorMatrix;)V" />
+		<method name="setRGB2YUV()V" />
+		<method name="setRotate(IF)V" />
+		<method name="setSaturation(F)V" />
+		<method name="setScale(FFFF)V" />
+		<method name="setYUV2RGB()V" />
+	</class>
+	<class name="android/graphics/ColorMatrixColorFilter" since="1">
+		<extends name="android/graphics/ColorFilter" />
+		<method name="&lt;init>(Landroid/graphics/ColorMatrix;)V" />
+		<method name="&lt;init>([F)V" />
+	</class>
+	<class name="android/graphics/ComposePathEffect" since="1">
+		<extends name="android/graphics/PathEffect" />
+		<method name="&lt;init>(Landroid/graphics/PathEffect;Landroid/graphics/PathEffect;)V" />
+	</class>
+	<class name="android/graphics/ComposeShader" since="1">
+		<extends name="android/graphics/Shader" />
+		<method name="&lt;init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/PorterDuff$Mode;)V" />
+		<method name="&lt;init>(Landroid/graphics/Shader;Landroid/graphics/Shader;Landroid/graphics/Xfermode;)V" />
+	</class>
+	<class name="android/graphics/CornerPathEffect" since="1">
+		<extends name="android/graphics/PathEffect" />
+		<method name="&lt;init>(F)V" />
+	</class>
+	<class name="android/graphics/DashPathEffect" since="1">
+		<extends name="android/graphics/PathEffect" />
+		<method name="&lt;init>([FF)V" />
+	</class>
+	<class name="android/graphics/DiscretePathEffect" since="1">
+		<extends name="android/graphics/PathEffect" />
+		<method name="&lt;init>(FF)V" />
+	</class>
+	<class name="android/graphics/DrawFilter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/EmbossMaskFilter" since="1">
+		<extends name="android/graphics/MaskFilter" />
+		<method name="&lt;init>([FFFF)V" />
+	</class>
+	<class name="android/graphics/ImageFormat" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getBitsPerPixel(I)I" />
+		<field name="JPEG" />
+		<field name="NV16" />
+		<field name="NV21" />
+		<field name="RGB_565" />
+		<field name="UNKNOWN" />
+		<field name="YUY2" />
+		<field name="YV12" since="9" />
+	</class>
+	<class name="android/graphics/Interpolator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="getKeyFrameCount()I" />
+		<method name="getValueCount()I" />
+		<method name="reset(I)V" />
+		<method name="reset(II)V" />
+		<method name="setKeyFrame(II[F)V" />
+		<method name="setKeyFrame(II[F[F)V" />
+		<method name="setRepeatMirror(FZ)V" />
+		<method name="timeToValues(I[F)Landroid/graphics/Interpolator$Result;" />
+		<method name="timeToValues([F)Landroid/graphics/Interpolator$Result;" />
+	</class>
+	<class name="android/graphics/Interpolator$Result" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Interpolator$Result;" />
+		<method name="values()[Landroid/graphics/Interpolator$Result;" />
+		<field name="FREEZE_END" />
+		<field name="FREEZE_START" />
+		<field name="NORMAL" />
+	</class>
+	<class name="android/graphics/LayerRasterizer" since="1">
+		<extends name="android/graphics/Rasterizer" />
+		<method name="&lt;init>()V" />
+		<method name="addLayer(Landroid/graphics/Paint;)V" />
+		<method name="addLayer(Landroid/graphics/Paint;FF)V" />
+	</class>
+	<class name="android/graphics/LightingColorFilter" since="1">
+		<extends name="android/graphics/ColorFilter" />
+		<method name="&lt;init>(II)V" />
+	</class>
+	<class name="android/graphics/LinearGradient" since="1">
+		<extends name="android/graphics/Shader" />
+		<method name="&lt;init>(FFFFIILandroid/graphics/Shader$TileMode;)V" />
+		<method name="&lt;init>(FFFF[I[FLandroid/graphics/Shader$TileMode;)V" />
+	</class>
+	<class name="android/graphics/MaskFilter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/Matrix" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/Matrix;)V" />
+		<method name="getValues([F)V" />
+		<method name="invert(Landroid/graphics/Matrix;)Z" />
+		<method name="isIdentity()Z" />
+		<method name="mapPoints([F)V" />
+		<method name="mapPoints([FI[FII)V" />
+		<method name="mapPoints([F[F)V" />
+		<method name="mapRadius(F)F" />
+		<method name="mapRect(Landroid/graphics/RectF;)Z" />
+		<method name="mapRect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z" />
+		<method name="mapVectors([F)V" />
+		<method name="mapVectors([FI[FII)V" />
+		<method name="mapVectors([F[F)V" />
+		<method name="postConcat(Landroid/graphics/Matrix;)Z" />
+		<method name="postRotate(F)Z" />
+		<method name="postRotate(FFF)Z" />
+		<method name="postScale(FF)Z" />
+		<method name="postScale(FFFF)Z" />
+		<method name="postSkew(FF)Z" />
+		<method name="postSkew(FFFF)Z" />
+		<method name="postTranslate(FF)Z" />
+		<method name="preConcat(Landroid/graphics/Matrix;)Z" />
+		<method name="preRotate(F)Z" />
+		<method name="preRotate(FFF)Z" />
+		<method name="preScale(FF)Z" />
+		<method name="preScale(FFFF)Z" />
+		<method name="preSkew(FF)Z" />
+		<method name="preSkew(FFFF)Z" />
+		<method name="preTranslate(FF)Z" />
+		<method name="rectStaysRect()Z" />
+		<method name="reset()V" />
+		<method name="set(Landroid/graphics/Matrix;)V" />
+		<method name="setConcat(Landroid/graphics/Matrix;Landroid/graphics/Matrix;)Z" />
+		<method name="setPolyToPoly([FI[FII)Z" />
+		<method name="setRectToRect(Landroid/graphics/RectF;Landroid/graphics/RectF;Landroid/graphics/Matrix$ScaleToFit;)Z" />
+		<method name="setRotate(F)V" />
+		<method name="setRotate(FFF)V" />
+		<method name="setScale(FF)V" />
+		<method name="setScale(FFFF)V" />
+		<method name="setSinCos(FF)V" />
+		<method name="setSinCos(FFFF)V" />
+		<method name="setSkew(FF)V" />
+		<method name="setSkew(FFFF)V" />
+		<method name="setTranslate(FF)V" />
+		<method name="setValues([F)V" />
+		<method name="toShortString()Ljava/lang/String;" />
+		<field name="MPERSP_0" />
+		<field name="MPERSP_1" />
+		<field name="MPERSP_2" />
+		<field name="MSCALE_X" />
+		<field name="MSCALE_Y" />
+		<field name="MSKEW_X" />
+		<field name="MSKEW_Y" />
+		<field name="MTRANS_X" />
+		<field name="MTRANS_Y" />
+	</class>
+	<class name="android/graphics/Matrix$ScaleToFit" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Matrix$ScaleToFit;" />
+		<method name="values()[Landroid/graphics/Matrix$ScaleToFit;" />
+		<field name="CENTER" />
+		<field name="END" />
+		<field name="FILL" />
+		<field name="START" />
+	</class>
+	<class name="android/graphics/Movie" since="1">
+		<extends name="java/lang/Object" />
+		<method name="decodeByteArray([BII)Landroid/graphics/Movie;" />
+		<method name="decodeFile(Ljava/lang/String;)Landroid/graphics/Movie;" />
+		<method name="decodeStream(Ljava/io/InputStream;)Landroid/graphics/Movie;" />
+		<method name="draw(Landroid/graphics/Canvas;FF)V" />
+		<method name="draw(Landroid/graphics/Canvas;FFLandroid/graphics/Paint;)V" />
+		<method name="duration()I" />
+		<method name="height()I" />
+		<method name="isOpaque()Z" />
+		<method name="setTime(I)Z" />
+		<method name="width()I" />
+	</class>
+	<class name="android/graphics/NinePatch" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;[BLjava/lang/String;)V" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;)V" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Rect;Landroid/graphics/Paint;)V" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/RectF;)V" />
+		<method name="getDensity()I" since="4" />
+		<method name="getHeight()I" />
+		<method name="getTransparentRegion(Landroid/graphics/Rect;)Landroid/graphics/Region;" />
+		<method name="getWidth()I" />
+		<method name="hasAlpha()Z" />
+		<method name="isNinePatchChunk([B)Z" />
+		<method name="setPaint(Landroid/graphics/Paint;)V" />
+	</class>
+	<class name="android/graphics/Paint" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/graphics/Paint;)V" />
+		<method name="ascent()F" />
+		<method name="breakText(Ljava/lang/CharSequence;IIZF[F)I" />
+		<method name="breakText(Ljava/lang/String;ZF[F)I" />
+		<method name="breakText([CIIF[F)I" />
+		<method name="clearShadowLayer()V" />
+		<method name="descent()F" />
+		<method name="getAlpha()I" />
+		<method name="getColor()I" />
+		<method name="getColorFilter()Landroid/graphics/ColorFilter;" />
+		<method name="getFillPath(Landroid/graphics/Path;Landroid/graphics/Path;)Z" />
+		<method name="getFlags()I" />
+		<method name="getFontMetrics()Landroid/graphics/Paint$FontMetrics;" />
+		<method name="getFontMetrics(Landroid/graphics/Paint$FontMetrics;)F" />
+		<method name="getFontMetricsInt()Landroid/graphics/Paint$FontMetricsInt;" />
+		<method name="getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I" />
+		<method name="getFontSpacing()F" />
+		<method name="getHinting()I" since="14" />
+		<method name="getMaskFilter()Landroid/graphics/MaskFilter;" />
+		<method name="getPathEffect()Landroid/graphics/PathEffect;" />
+		<method name="getRasterizer()Landroid/graphics/Rasterizer;" />
+		<method name="getShader()Landroid/graphics/Shader;" />
+		<method name="getStrokeCap()Landroid/graphics/Paint$Cap;" />
+		<method name="getStrokeJoin()Landroid/graphics/Paint$Join;" />
+		<method name="getStrokeMiter()F" />
+		<method name="getStrokeWidth()F" />
+		<method name="getStyle()Landroid/graphics/Paint$Style;" />
+		<method name="getTextAlign()Landroid/graphics/Paint$Align;" />
+		<method name="getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V" />
+		<method name="getTextBounds([CIILandroid/graphics/Rect;)V" />
+		<method name="getTextPath(Ljava/lang/String;IIFFLandroid/graphics/Path;)V" />
+		<method name="getTextPath([CIIFFLandroid/graphics/Path;)V" />
+		<method name="getTextScaleX()F" />
+		<method name="getTextSize()F" />
+		<method name="getTextSkewX()F" />
+		<method name="getTextWidths(Ljava/lang/CharSequence;II[F)I" />
+		<method name="getTextWidths(Ljava/lang/String;II[F)I" />
+		<method name="getTextWidths(Ljava/lang/String;[F)I" />
+		<method name="getTextWidths([CII[F)I" />
+		<method name="getTypeface()Landroid/graphics/Typeface;" />
+		<method name="getXfermode()Landroid/graphics/Xfermode;" />
+		<method name="isAntiAlias()Z" />
+		<method name="isDither()Z" />
+		<method name="isFakeBoldText()Z" />
+		<method name="isFilterBitmap()Z" />
+		<method name="isLinearText()Z" />
+		<method name="isStrikeThruText()Z" />
+		<method name="isSubpixelText()Z" />
+		<method name="isUnderlineText()Z" />
+		<method name="measureText(Ljava/lang/CharSequence;II)F" />
+		<method name="measureText(Ljava/lang/String;)F" />
+		<method name="measureText(Ljava/lang/String;II)F" />
+		<method name="measureText([CII)F" />
+		<method name="reset()V" />
+		<method name="set(Landroid/graphics/Paint;)V" />
+		<method name="setARGB(IIII)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setAntiAlias(Z)V" />
+		<method name="setColor(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)Landroid/graphics/ColorFilter;" />
+		<method name="setDither(Z)V" />
+		<method name="setFakeBoldText(Z)V" />
+		<method name="setFilterBitmap(Z)V" />
+		<method name="setFlags(I)V" />
+		<method name="setHinting(I)V" since="14" />
+		<method name="setLinearText(Z)V" />
+		<method name="setMaskFilter(Landroid/graphics/MaskFilter;)Landroid/graphics/MaskFilter;" />
+		<method name="setPathEffect(Landroid/graphics/PathEffect;)Landroid/graphics/PathEffect;" />
+		<method name="setRasterizer(Landroid/graphics/Rasterizer;)Landroid/graphics/Rasterizer;" />
+		<method name="setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;" />
+		<method name="setShadowLayer(FFFI)V" />
+		<method name="setStrikeThruText(Z)V" />
+		<method name="setStrokeCap(Landroid/graphics/Paint$Cap;)V" />
+		<method name="setStrokeJoin(Landroid/graphics/Paint$Join;)V" />
+		<method name="setStrokeMiter(F)V" />
+		<method name="setStrokeWidth(F)V" />
+		<method name="setStyle(Landroid/graphics/Paint$Style;)V" />
+		<method name="setSubpixelText(Z)V" />
+		<method name="setTextAlign(Landroid/graphics/Paint$Align;)V" />
+		<method name="setTextScaleX(F)V" />
+		<method name="setTextSize(F)V" />
+		<method name="setTextSkewX(F)V" />
+		<method name="setTypeface(Landroid/graphics/Typeface;)Landroid/graphics/Typeface;" />
+		<method name="setUnderlineText(Z)V" />
+		<method name="setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode;" />
+		<field name="ANTI_ALIAS_FLAG" />
+		<field name="DEV_KERN_TEXT_FLAG" />
+		<field name="DITHER_FLAG" />
+		<field name="FAKE_BOLD_TEXT_FLAG" />
+		<field name="FILTER_BITMAP_FLAG" />
+		<field name="HINTING_OFF" since="14" />
+		<field name="HINTING_ON" since="14" />
+		<field name="LINEAR_TEXT_FLAG" />
+		<field name="STRIKE_THRU_TEXT_FLAG" />
+		<field name="SUBPIXEL_TEXT_FLAG" />
+		<field name="UNDERLINE_TEXT_FLAG" />
+	</class>
+	<class name="android/graphics/Paint$Align" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Align;" />
+		<method name="values()[Landroid/graphics/Paint$Align;" />
+		<field name="CENTER" />
+		<field name="LEFT" />
+		<field name="RIGHT" />
+	</class>
+	<class name="android/graphics/Paint$Cap" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Cap;" />
+		<method name="values()[Landroid/graphics/Paint$Cap;" />
+		<field name="BUTT" />
+		<field name="ROUND" />
+		<field name="SQUARE" />
+	</class>
+	<class name="android/graphics/Paint$FontMetrics" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ascent" />
+		<field name="bottom" />
+		<field name="descent" />
+		<field name="leading" />
+		<field name="top" />
+	</class>
+	<class name="android/graphics/Paint$FontMetricsInt" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ascent" />
+		<field name="bottom" />
+		<field name="descent" />
+		<field name="leading" />
+		<field name="top" />
+	</class>
+	<class name="android/graphics/Paint$Join" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Join;" />
+		<method name="values()[Landroid/graphics/Paint$Join;" />
+		<field name="BEVEL" />
+		<field name="MITER" />
+		<field name="ROUND" />
+	</class>
+	<class name="android/graphics/Paint$Style" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Paint$Style;" />
+		<method name="values()[Landroid/graphics/Paint$Style;" />
+		<field name="FILL" />
+		<field name="FILL_AND_STROKE" />
+		<field name="STROKE" />
+	</class>
+	<class name="android/graphics/PaintFlagsDrawFilter" since="1">
+		<extends name="android/graphics/DrawFilter" />
+		<method name="&lt;init>(II)V" />
+	</class>
+	<class name="android/graphics/Path" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/Path;)V" />
+		<method name="addArc(Landroid/graphics/RectF;FF)V" />
+		<method name="addCircle(FFFLandroid/graphics/Path$Direction;)V" />
+		<method name="addOval(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V" />
+		<method name="addPath(Landroid/graphics/Path;)V" />
+		<method name="addPath(Landroid/graphics/Path;FF)V" />
+		<method name="addPath(Landroid/graphics/Path;Landroid/graphics/Matrix;)V" />
+		<method name="addRect(FFFFLandroid/graphics/Path$Direction;)V" />
+		<method name="addRect(Landroid/graphics/RectF;Landroid/graphics/Path$Direction;)V" />
+		<method name="addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V" />
+		<method name="addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V" />
+		<method name="arcTo(Landroid/graphics/RectF;FF)V" />
+		<method name="arcTo(Landroid/graphics/RectF;FFZ)V" />
+		<method name="close()V" />
+		<method name="computeBounds(Landroid/graphics/RectF;Z)V" />
+		<method name="cubicTo(FFFFFF)V" />
+		<method name="getFillType()Landroid/graphics/Path$FillType;" />
+		<method name="incReserve(I)V" />
+		<method name="isEmpty()Z" />
+		<method name="isInverseFillType()Z" />
+		<method name="isRect(Landroid/graphics/RectF;)Z" />
+		<method name="lineTo(FF)V" />
+		<method name="moveTo(FF)V" />
+		<method name="offset(FF)V" />
+		<method name="offset(FFLandroid/graphics/Path;)V" />
+		<method name="quadTo(FFFF)V" />
+		<method name="rCubicTo(FFFFFF)V" />
+		<method name="rLineTo(FF)V" />
+		<method name="rMoveTo(FF)V" />
+		<method name="rQuadTo(FFFF)V" />
+		<method name="reset()V" />
+		<method name="rewind()V" />
+		<method name="set(Landroid/graphics/Path;)V" />
+		<method name="setFillType(Landroid/graphics/Path$FillType;)V" />
+		<method name="setLastPoint(FF)V" />
+		<method name="toggleInverseFillType()V" />
+		<method name="transform(Landroid/graphics/Matrix;)V" />
+		<method name="transform(Landroid/graphics/Matrix;Landroid/graphics/Path;)V" />
+	</class>
+	<class name="android/graphics/Path$Direction" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Path$Direction;" />
+		<method name="values()[Landroid/graphics/Path$Direction;" />
+		<field name="CCW" />
+		<field name="CW" />
+	</class>
+	<class name="android/graphics/Path$FillType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Path$FillType;" />
+		<method name="values()[Landroid/graphics/Path$FillType;" />
+		<field name="EVEN_ODD" />
+		<field name="INVERSE_EVEN_ODD" />
+		<field name="INVERSE_WINDING" />
+		<field name="WINDING" />
+	</class>
+	<class name="android/graphics/PathDashPathEffect" since="1">
+		<extends name="android/graphics/PathEffect" />
+		<method name="&lt;init>(Landroid/graphics/Path;FFLandroid/graphics/PathDashPathEffect$Style;)V" />
+	</class>
+	<class name="android/graphics/PathDashPathEffect$Style" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/PathDashPathEffect$Style;" />
+		<method name="values()[Landroid/graphics/PathDashPathEffect$Style;" />
+		<field name="MORPH" />
+		<field name="ROTATE" />
+		<field name="TRANSLATE" />
+	</class>
+	<class name="android/graphics/PathEffect" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/PathMeasure" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/Path;Z)V" />
+		<method name="getLength()F" />
+		<method name="getMatrix(FLandroid/graphics/Matrix;I)Z" />
+		<method name="getPosTan(F[F[F)Z" />
+		<method name="getSegment(FFLandroid/graphics/Path;Z)Z" />
+		<method name="isClosed()Z" />
+		<method name="nextContour()Z" />
+		<method name="setPath(Landroid/graphics/Path;Z)V" />
+		<field name="POSITION_MATRIX_FLAG" />
+		<field name="TANGENT_MATRIX_FLAG" />
+	</class>
+	<class name="android/graphics/Picture" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/Picture;)V" />
+		<method name="beginRecording(II)Landroid/graphics/Canvas;" />
+		<method name="createFromStream(Ljava/io/InputStream;)Landroid/graphics/Picture;" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="endRecording()V" />
+		<method name="getHeight()I" />
+		<method name="getWidth()I" />
+		<method name="writeToStream(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="android/graphics/PixelFormat" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="formatHasAlpha(I)Z" />
+		<method name="getPixelFormatInfo(ILandroid/graphics/PixelFormat;)V" />
+		<field name="A_8" />
+		<field name="JPEG" />
+		<field name="LA_88" />
+		<field name="L_8" />
+		<field name="OPAQUE" />
+		<field name="RGBA_4444" />
+		<field name="RGBA_5551" />
+		<field name="RGBA_8888" />
+		<field name="RGBX_8888" />
+		<field name="RGB_332" />
+		<field name="RGB_565" />
+		<field name="RGB_888" />
+		<field name="TRANSLUCENT" />
+		<field name="TRANSPARENT" />
+		<field name="UNKNOWN" />
+		<field name="YCbCr_420_SP" />
+		<field name="YCbCr_422_I" since="5" />
+		<field name="YCbCr_422_SP" />
+		<field name="bitsPerPixel" />
+		<field name="bytesPerPixel" />
+	</class>
+	<class name="android/graphics/PixelXorXfermode" since="1">
+		<extends name="android/graphics/Xfermode" />
+		<method name="&lt;init>(I)V" />
+	</class>
+	<class name="android/graphics/Point" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" since="13" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/graphics/Point;)V" />
+		<method name="describeContents()I" since="13" />
+		<method name="equals(II)Z" />
+		<method name="negate()V" />
+		<method name="offset(II)V" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" since="13" />
+		<method name="set(II)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="13" />
+		<field name="CREATOR" since="13" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/graphics/PointF" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" since="13" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(FF)V" />
+		<method name="&lt;init>(Landroid/graphics/Point;)V" />
+		<method name="describeContents()I" since="13" />
+		<method name="equals(FF)Z" />
+		<method name="length()F" />
+		<method name="length(FF)F" />
+		<method name="negate()V" />
+		<method name="offset(FF)V" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" since="13" />
+		<method name="set(FF)V" />
+		<method name="set(Landroid/graphics/PointF;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="13" />
+		<field name="CREATOR" since="13" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/graphics/PorterDuff" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/PorterDuff$Mode" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/PorterDuff$Mode;" />
+		<method name="values()[Landroid/graphics/PorterDuff$Mode;" />
+		<field name="ADD" since="11" />
+		<field name="CLEAR" />
+		<field name="DARKEN" />
+		<field name="DST" />
+		<field name="DST_ATOP" />
+		<field name="DST_IN" />
+		<field name="DST_OUT" />
+		<field name="DST_OVER" />
+		<field name="LIGHTEN" />
+		<field name="MULTIPLY" />
+		<field name="OVERLAY" since="11" />
+		<field name="SCREEN" />
+		<field name="SRC" />
+		<field name="SRC_ATOP" />
+		<field name="SRC_IN" />
+		<field name="SRC_OUT" />
+		<field name="SRC_OVER" />
+		<field name="XOR" />
+	</class>
+	<class name="android/graphics/PorterDuffColorFilter" since="1">
+		<extends name="android/graphics/ColorFilter" />
+		<method name="&lt;init>(ILandroid/graphics/PorterDuff$Mode;)V" />
+	</class>
+	<class name="android/graphics/PorterDuffXfermode" since="1">
+		<extends name="android/graphics/Xfermode" />
+		<method name="&lt;init>(Landroid/graphics/PorterDuff$Mode;)V" />
+	</class>
+	<class name="android/graphics/RadialGradient" since="1">
+		<extends name="android/graphics/Shader" />
+		<method name="&lt;init>(FFFIILandroid/graphics/Shader$TileMode;)V" />
+		<method name="&lt;init>(FFF[I[FLandroid/graphics/Shader$TileMode;)V" />
+	</class>
+	<class name="android/graphics/Rasterizer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/Rect" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(IIII)V" />
+		<method name="&lt;init>(Landroid/graphics/Rect;)V" />
+		<method name="centerX()I" />
+		<method name="centerY()I" />
+		<method name="contains(II)Z" />
+		<method name="contains(IIII)Z" />
+		<method name="contains(Landroid/graphics/Rect;)Z" />
+		<method name="describeContents()I" />
+		<method name="exactCenterX()F" />
+		<method name="exactCenterY()F" />
+		<method name="flattenToString()Ljava/lang/String;" since="7" />
+		<method name="height()I" />
+		<method name="inset(II)V" />
+		<method name="intersect(IIII)Z" />
+		<method name="intersect(Landroid/graphics/Rect;)Z" />
+		<method name="intersects(IIII)Z" />
+		<method name="intersects(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z" />
+		<method name="isEmpty()Z" />
+		<method name="offset(II)V" />
+		<method name="offsetTo(II)V" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="set(IIII)V" />
+		<method name="set(Landroid/graphics/Rect;)V" />
+		<method name="setEmpty()V" />
+		<method name="setIntersect(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z" />
+		<method name="sort()V" />
+		<method name="toShortString()Ljava/lang/String;" since="3" />
+		<method name="unflattenFromString(Ljava/lang/String;)Landroid/graphics/Rect;" since="7" />
+		<method name="union(II)V" />
+		<method name="union(IIII)V" />
+		<method name="union(Landroid/graphics/Rect;)V" />
+		<method name="width()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="bottom" />
+		<field name="left" />
+		<field name="right" />
+		<field name="top" />
+	</class>
+	<class name="android/graphics/RectF" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(FFFF)V" />
+		<method name="&lt;init>(Landroid/graphics/Rect;)V" />
+		<method name="&lt;init>(Landroid/graphics/RectF;)V" />
+		<method name="centerX()F" />
+		<method name="centerY()F" />
+		<method name="contains(FF)Z" />
+		<method name="contains(FFFF)Z" />
+		<method name="contains(Landroid/graphics/RectF;)Z" />
+		<method name="describeContents()I" since="3" />
+		<method name="height()F" />
+		<method name="inset(FF)V" />
+		<method name="intersect(FFFF)Z" />
+		<method name="intersect(Landroid/graphics/RectF;)Z" />
+		<method name="intersects(FFFF)Z" />
+		<method name="intersects(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z" />
+		<method name="isEmpty()Z" />
+		<method name="offset(FF)V" />
+		<method name="offsetTo(FF)V" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" since="3" />
+		<method name="round(Landroid/graphics/Rect;)V" />
+		<method name="roundOut(Landroid/graphics/Rect;)V" />
+		<method name="set(FFFF)V" />
+		<method name="set(Landroid/graphics/Rect;)V" />
+		<method name="set(Landroid/graphics/RectF;)V" />
+		<method name="setEmpty()V" />
+		<method name="setIntersect(Landroid/graphics/RectF;Landroid/graphics/RectF;)Z" />
+		<method name="sort()V" />
+		<method name="toShortString()Ljava/lang/String;" since="14" />
+		<method name="union(FF)V" />
+		<method name="union(FFFF)V" />
+		<method name="union(Landroid/graphics/RectF;)V" />
+		<method name="width()F" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+		<field name="CREATOR" since="3" />
+		<field name="bottom" />
+		<field name="left" />
+		<field name="right" />
+		<field name="top" />
+	</class>
+	<class name="android/graphics/Region" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(IIII)V" />
+		<method name="&lt;init>(Landroid/graphics/Rect;)V" />
+		<method name="&lt;init>(Landroid/graphics/Region;)V" />
+		<method name="contains(II)Z" />
+		<method name="describeContents()I" />
+		<method name="getBoundaryPath()Landroid/graphics/Path;" />
+		<method name="getBoundaryPath(Landroid/graphics/Path;)Z" />
+		<method name="getBounds()Landroid/graphics/Rect;" />
+		<method name="getBounds(Landroid/graphics/Rect;)Z" />
+		<method name="isComplex()Z" />
+		<method name="isEmpty()Z" />
+		<method name="isRect()Z" />
+		<method name="op(IIIILandroid/graphics/Region$Op;)Z" />
+		<method name="op(Landroid/graphics/Rect;Landroid/graphics/Region$Op;)Z" />
+		<method name="op(Landroid/graphics/Rect;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
+		<method name="op(Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
+		<method name="op(Landroid/graphics/Region;Landroid/graphics/Region;Landroid/graphics/Region$Op;)Z" />
+		<method name="quickContains(IIII)Z" />
+		<method name="quickContains(Landroid/graphics/Rect;)Z" />
+		<method name="quickReject(IIII)Z" />
+		<method name="quickReject(Landroid/graphics/Rect;)Z" />
+		<method name="quickReject(Landroid/graphics/Region;)Z" />
+		<method name="set(IIII)Z" />
+		<method name="set(Landroid/graphics/Rect;)Z" />
+		<method name="set(Landroid/graphics/Region;)Z" />
+		<method name="setEmpty()V" />
+		<method name="setPath(Landroid/graphics/Path;Landroid/graphics/Region;)Z" />
+		<method name="translate(II)V" />
+		<method name="translate(IILandroid/graphics/Region;)V" />
+		<method name="union(Landroid/graphics/Rect;)Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/graphics/Region$Op" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Region$Op;" />
+		<method name="values()[Landroid/graphics/Region$Op;" />
+		<field name="DIFFERENCE" />
+		<field name="INTERSECT" />
+		<field name="REPLACE" />
+		<field name="REVERSE_DIFFERENCE" />
+		<field name="UNION" />
+		<field name="XOR" />
+	</class>
+	<class name="android/graphics/RegionIterator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/graphics/Region;)V" />
+		<method name="next(Landroid/graphics/Rect;)Z" />
+	</class>
+	<class name="android/graphics/Shader" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getLocalMatrix(Landroid/graphics/Matrix;)Z" />
+		<method name="setLocalMatrix(Landroid/graphics/Matrix;)V" />
+	</class>
+	<class name="android/graphics/Shader$TileMode" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/Shader$TileMode;" />
+		<method name="values()[Landroid/graphics/Shader$TileMode;" />
+		<field name="CLAMP" />
+		<field name="MIRROR" />
+		<field name="REPEAT" />
+	</class>
+	<class name="android/graphics/SumPathEffect" since="1">
+		<extends name="android/graphics/PathEffect" />
+		<method name="&lt;init>(Landroid/graphics/PathEffect;Landroid/graphics/PathEffect;)V" />
+	</class>
+	<class name="android/graphics/SurfaceTexture" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="getTimestamp()J" since="14" />
+		<method name="getTransformMatrix([F)V" />
+		<method name="release()V" since="14" />
+		<method name="setDefaultBufferSize(II)V" since="15" />
+		<method name="setOnFrameAvailableListener(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V" />
+		<method name="updateTexImage()V" />
+	</class>
+	<class name="android/graphics/SurfaceTexture$OnFrameAvailableListener" since="11">
+		<method name="onFrameAvailable(Landroid/graphics/SurfaceTexture;)V" />
+	</class>
+	<class name="android/graphics/SurfaceTexture$OutOfResourcesException" since="11">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/graphics/SweepGradient" since="1">
+		<extends name="android/graphics/Shader" />
+		<method name="&lt;init>(FFII)V" />
+		<method name="&lt;init>(FF[I[F)V" />
+	</class>
+	<class name="android/graphics/Typeface" since="1">
+		<extends name="java/lang/Object" />
+		<method name="create(Landroid/graphics/Typeface;I)Landroid/graphics/Typeface;" />
+		<method name="create(Ljava/lang/String;I)Landroid/graphics/Typeface;" />
+		<method name="createFromAsset(Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/graphics/Typeface;" />
+		<method name="createFromFile(Ljava/io/File;)Landroid/graphics/Typeface;" since="4" />
+		<method name="createFromFile(Ljava/lang/String;)Landroid/graphics/Typeface;" since="4" />
+		<method name="defaultFromStyle(I)Landroid/graphics/Typeface;" />
+		<method name="getStyle()I" />
+		<method name="isBold()Z" />
+		<method name="isItalic()Z" />
+		<field name="BOLD" />
+		<field name="BOLD_ITALIC" />
+		<field name="DEFAULT" />
+		<field name="DEFAULT_BOLD" />
+		<field name="ITALIC" />
+		<field name="MONOSPACE" />
+		<field name="NORMAL" />
+		<field name="SANS_SERIF" />
+		<field name="SERIF" />
+	</class>
+	<class name="android/graphics/Xfermode" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/YuvImage" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>([BIII[I)V" />
+		<method name="compressToJpeg(Landroid/graphics/Rect;ILjava/io/OutputStream;)Z" />
+		<method name="getHeight()I" />
+		<method name="getStrides()[I" />
+		<method name="getWidth()I" />
+		<method name="getYuvData()[B" />
+		<method name="getYuvFormat()I" />
+	</class>
+	<class name="android/graphics/drawable/Animatable" since="4">
+		<method name="isRunning()Z" />
+		<method name="start()V" />
+		<method name="stop()V" />
+	</class>
+	<class name="android/graphics/drawable/AnimationDrawable" since="1">
+		<extends name="android/graphics/drawable/DrawableContainer" />
+		<implements name="java/lang/Runnable" />
+		<implements name="android/graphics/drawable/Animatable" since="4" />
+		<method name="&lt;init>()V" />
+		<method name="addFrame(Landroid/graphics/drawable/Drawable;I)V" />
+		<method name="getDuration(I)I" />
+		<method name="getFrame(I)Landroid/graphics/drawable/Drawable;" />
+		<method name="getNumberOfFrames()I" />
+		<method name="isOneShot()Z" />
+		<method name="isRunning()Z" />
+		<method name="run()V" />
+		<method name="setOneShot(Z)V" />
+		<method name="start()V" />
+		<method name="stop()V" />
+	</class>
+	<class name="android/graphics/drawable/BitmapDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/res/Resources;)V" since="4" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;)V" since="4" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Ljava/io/InputStream;)V" since="5" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Ljava/lang/String;)V" since="5" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getBitmap()Landroid/graphics/Bitmap;" />
+		<method name="getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;" />
+		<method name="getGravity()I" />
+		<method name="getOpacity()I" />
+		<method name="getPaint()Landroid/graphics/Paint;" />
+		<method name="getTileModeX()Landroid/graphics/Shader$TileMode;" />
+		<method name="getTileModeY()Landroid/graphics/Shader$TileMode;" />
+		<method name="setAlpha(I)V" />
+		<method name="setAntiAlias(Z)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setGravity(I)V" />
+		<method name="setTargetDensity(I)V" since="4" />
+		<method name="setTargetDensity(Landroid/graphics/Canvas;)V" since="4" />
+		<method name="setTargetDensity(Landroid/util/DisplayMetrics;)V" since="4" />
+		<method name="setTileModeX(Landroid/graphics/Shader$TileMode;)V" />
+		<method name="setTileModeXY(Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V" />
+		<method name="setTileModeY(Landroid/graphics/Shader$TileMode;)V" />
+	</class>
+	<class name="android/graphics/drawable/ClipDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;II)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+		<field name="HORIZONTAL" />
+		<field name="VERTICAL" />
+	</class>
+	<class name="android/graphics/drawable/ColorDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getAlpha()I" />
+		<method name="getColor()I" since="11" />
+		<method name="getOpacity()I" />
+		<method name="setAlpha(I)V" />
+		<method name="setColor(I)V" since="11" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+	</class>
+	<class name="android/graphics/drawable/Drawable" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clearColorFilter()V" />
+		<method name="copyBounds()Landroid/graphics/Rect;" />
+		<method name="copyBounds(Landroid/graphics/Rect;)V" />
+		<method name="createFromPath(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
+		<method name="createFromResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" since="4" />
+		<method name="createFromResourceStream(Landroid/content/res/Resources;Landroid/util/TypedValue;Ljava/io/InputStream;Ljava/lang/String;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/drawable/Drawable;" since="5" />
+		<method name="createFromStream(Ljava/io/InputStream;Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
+		<method name="createFromXml(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;)Landroid/graphics/drawable/Drawable;" />
+		<method name="createFromXmlInner(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Landroid/graphics/drawable/Drawable;" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getBounds()Landroid/graphics/Rect;" />
+		<method name="getCallback()Landroid/graphics/drawable/Drawable$Callback;" since="11" />
+		<method name="getChangingConfigurations()I" />
+		<method name="getConstantState()Landroid/graphics/drawable/Drawable$ConstantState;" />
+		<method name="getCurrent()Landroid/graphics/drawable/Drawable;" />
+		<method name="getIntrinsicHeight()I" />
+		<method name="getIntrinsicWidth()I" />
+		<method name="getLevel()I" />
+		<method name="getMinimumHeight()I" />
+		<method name="getMinimumWidth()I" />
+		<method name="getOpacity()I" />
+		<method name="getPadding(Landroid/graphics/Rect;)Z" />
+		<method name="getState()[I" />
+		<method name="getTransparentRegion()Landroid/graphics/Region;" />
+		<method name="inflate(Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)V" />
+		<method name="invalidateSelf()V" />
+		<method name="isStateful()Z" />
+		<method name="isVisible()Z" />
+		<method name="jumpToCurrentState()V" since="11" />
+		<method name="mutate()Landroid/graphics/drawable/Drawable;" since="3" />
+		<method name="onBoundsChange(Landroid/graphics/Rect;)V" />
+		<method name="onLevelChange(I)Z" />
+		<method name="onStateChange([I)Z" />
+		<method name="resolveOpacity(II)I" />
+		<method name="scheduleSelf(Ljava/lang/Runnable;J)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setBounds(IIII)V" />
+		<method name="setBounds(Landroid/graphics/Rect;)V" />
+		<method name="setCallback(Landroid/graphics/drawable/Drawable$Callback;)V" />
+		<method name="setChangingConfigurations(I)V" />
+		<method name="setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setDither(Z)V" />
+		<method name="setFilterBitmap(Z)V" />
+		<method name="setLevel(I)Z" />
+		<method name="setState([I)Z" />
+		<method name="setVisible(ZZ)Z" />
+		<method name="unscheduleSelf(Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/Drawable$Callback" since="1">
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/Drawable$ConstantState" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getChangingConfigurations()I" />
+		<method name="newDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="newDrawable(Landroid/content/res/Resources;)Landroid/graphics/drawable/Drawable;" since="5" />
+	</class>
+	<class name="android/graphics/drawable/DrawableContainer" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>()V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="selectDrawable(I)Z" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setConstantState(Landroid/graphics/drawable/DrawableContainer$DrawableContainerState;)V" />
+		<method name="setEnterFadeDuration(I)V" since="11" />
+		<method name="setExitFadeDuration(I)V" since="11" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/DrawableContainer$DrawableContainerState" since="1">
+		<extends name="android/graphics/drawable/Drawable$ConstantState" />
+		<method name="addChild(Landroid/graphics/drawable/Drawable;)I" />
+		<method name="canConstantState()Z" />
+		<method name="computeConstantSize()V" since="11" />
+		<method name="getChangingConfigurations()I" />
+		<method name="getChildCount()I" />
+		<method name="getChildren()[Landroid/graphics/drawable/Drawable;" />
+		<method name="getConstantHeight()I" />
+		<method name="getConstantMinimumHeight()I" />
+		<method name="getConstantMinimumWidth()I" />
+		<method name="getConstantPadding()Landroid/graphics/Rect;" />
+		<method name="getConstantWidth()I" />
+		<method name="getEnterFadeDuration()I" since="11" />
+		<method name="getExitFadeDuration()I" since="11" />
+		<method name="getOpacity()I" />
+		<method name="growArray(II)V" />
+		<method name="isConstantSize()Z" />
+		<method name="isStateful()Z" />
+		<method name="setConstantSize(Z)V" />
+		<method name="setEnterFadeDuration(I)V" since="11" />
+		<method name="setExitFadeDuration(I)V" since="11" />
+		<method name="setVariablePadding(Z)V" />
+	</class>
+	<class name="android/graphics/drawable/GradientDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/drawable/GradientDrawable$Orientation;[I)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="setAlpha(I)V" />
+		<method name="setColor(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setCornerRadii([F)V" />
+		<method name="setCornerRadius(F)V" />
+		<method name="setGradientCenter(FF)V" />
+		<method name="setGradientRadius(F)V" />
+		<method name="setGradientType(I)V" />
+		<method name="setShape(I)V" />
+		<method name="setSize(II)V" />
+		<method name="setStroke(II)V" />
+		<method name="setStroke(IIFF)V" />
+		<method name="setUseLevel(Z)V" />
+		<field name="LINE" />
+		<field name="LINEAR_GRADIENT" />
+		<field name="OVAL" />
+		<field name="RADIAL_GRADIENT" />
+		<field name="RECTANGLE" />
+		<field name="RING" />
+		<field name="SWEEP_GRADIENT" />
+	</class>
+	<class name="android/graphics/drawable/GradientDrawable$Orientation" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/graphics/drawable/GradientDrawable$Orientation;" />
+		<method name="values()[Landroid/graphics/drawable/GradientDrawable$Orientation;" />
+		<field name="BL_TR" />
+		<field name="BOTTOM_TOP" />
+		<field name="BR_TL" />
+		<field name="LEFT_RIGHT" />
+		<field name="RIGHT_LEFT" />
+		<field name="TL_BR" />
+		<field name="TOP_BOTTOM" />
+		<field name="TR_BL" />
+	</class>
+	<class name="android/graphics/drawable/InsetDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;I)V" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;IIII)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/LayerDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>([Landroid/graphics/drawable/Drawable;)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="findDrawableByLayerId(I)Landroid/graphics/drawable/Drawable;" />
+		<method name="getDrawable(I)Landroid/graphics/drawable/Drawable;" />
+		<method name="getId(I)I" />
+		<method name="getNumberOfLayers()I" />
+		<method name="getOpacity()I" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setDrawableByLayerId(ILandroid/graphics/drawable/Drawable;)Z" />
+		<method name="setId(II)V" />
+		<method name="setLayerInset(IIIII)V" />
+		<method name="setOpacity(I)V" since="11" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/LevelListDrawable" since="1">
+		<extends name="android/graphics/drawable/DrawableContainer" />
+		<method name="&lt;init>()V" />
+		<method name="addLevel(IILandroid/graphics/drawable/Drawable;)V" />
+	</class>
+	<class name="android/graphics/drawable/NinePatchDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" since="4" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/graphics/NinePatch;)V" since="4" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;[BLandroid/graphics/Rect;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Landroid/graphics/NinePatch;)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="getPaint()Landroid/graphics/Paint;" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setTargetDensity(I)V" since="4" />
+		<method name="setTargetDensity(Landroid/graphics/Canvas;)V" since="4" />
+		<method name="setTargetDensity(Landroid/util/DisplayMetrics;)V" since="4" />
+	</class>
+	<class name="android/graphics/drawable/PaintDrawable" since="1">
+		<extends name="android/graphics/drawable/ShapeDrawable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="setCornerRadii([F)V" />
+		<method name="setCornerRadius(F)V" />
+	</class>
+	<class name="android/graphics/drawable/PictureDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<method name="&lt;init>(Landroid/graphics/Picture;)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="getPicture()Landroid/graphics/Picture;" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setPicture(Landroid/graphics/Picture;)V" />
+	</class>
+	<class name="android/graphics/drawable/RotateDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>()V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" since="3" />
+		<method name="getOpacity()I" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/ScaleDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;IFF)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" since="3" />
+		<method name="getOpacity()I" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="android/graphics/drawable/ShapeDrawable" since="1">
+		<extends name="android/graphics/drawable/Drawable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/graphics/drawable/shapes/Shape;)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getOpacity()I" />
+		<method name="getPaint()Landroid/graphics/Paint;" />
+		<method name="getShaderFactory()Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;" />
+		<method name="getShape()Landroid/graphics/drawable/shapes/Shape;" />
+		<method name="inflateTag(Ljava/lang/String;Landroid/content/res/Resources;Lorg/xmlpull/v1/XmlPullParser;Landroid/util/AttributeSet;)Z" />
+		<method name="onDraw(Landroid/graphics/drawable/shapes/Shape;Landroid/graphics/Canvas;Landroid/graphics/Paint;)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setIntrinsicHeight(I)V" />
+		<method name="setIntrinsicWidth(I)V" />
+		<method name="setPadding(IIII)V" />
+		<method name="setPadding(Landroid/graphics/Rect;)V" />
+		<method name="setShaderFactory(Landroid/graphics/drawable/ShapeDrawable$ShaderFactory;)V" />
+		<method name="setShape(Landroid/graphics/drawable/shapes/Shape;)V" />
+	</class>
+	<class name="android/graphics/drawable/ShapeDrawable$ShaderFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="resize(II)Landroid/graphics/Shader;" />
+	</class>
+	<class name="android/graphics/drawable/StateListDrawable" since="1">
+		<extends name="android/graphics/drawable/DrawableContainer" />
+		<method name="&lt;init>()V" />
+		<method name="addState([ILandroid/graphics/drawable/Drawable;)V" />
+	</class>
+	<class name="android/graphics/drawable/TransitionDrawable" since="1">
+		<extends name="android/graphics/drawable/LayerDrawable" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<method name="&lt;init>([Landroid/graphics/drawable/Drawable;)V" since="3" />
+		<method name="isCrossFadeEnabled()Z" />
+		<method name="resetTransition()V" />
+		<method name="reverseTransition(I)V" />
+		<method name="setCrossFadeEnabled(Z)V" />
+		<method name="startTransition(I)V" />
+	</class>
+	<class name="android/graphics/drawable/shapes/ArcShape" since="1">
+		<extends name="android/graphics/drawable/shapes/RectShape" />
+		<method name="&lt;init>(FF)V" />
+	</class>
+	<class name="android/graphics/drawable/shapes/OvalShape" since="1">
+		<extends name="android/graphics/drawable/shapes/RectShape" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/graphics/drawable/shapes/PathShape" since="1">
+		<extends name="android/graphics/drawable/shapes/Shape" />
+		<method name="&lt;init>(Landroid/graphics/Path;FF)V" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V" />
+	</class>
+	<class name="android/graphics/drawable/shapes/RectShape" since="1">
+		<extends name="android/graphics/drawable/shapes/Shape" />
+		<method name="&lt;init>()V" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V" />
+		<method name="rect()Landroid/graphics/RectF;" />
+	</class>
+	<class name="android/graphics/drawable/shapes/RoundRectShape" since="1">
+		<extends name="android/graphics/drawable/shapes/RectShape" />
+		<method name="&lt;init>([FLandroid/graphics/RectF;[F)V" />
+	</class>
+	<class name="android/graphics/drawable/shapes/Shape" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Landroid/graphics/drawable/shapes/Shape;" since="3" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Paint;)V" />
+		<method name="getHeight()F" />
+		<method name="getWidth()F" />
+		<method name="hasAlpha()Z" />
+		<method name="onResize(FF)V" />
+		<method name="resize(FF)V" />
+	</class>
+	<class name="android/hardware/Camera" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addCallbackBuffer([B)V" since="8" />
+		<method name="autoFocus(Landroid/hardware/Camera$AutoFocusCallback;)V" />
+		<method name="cancelAutoFocus()V" since="5" />
+		<method name="getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V" since="9" />
+		<method name="getNumberOfCameras()I" since="9" />
+		<method name="getParameters()Landroid/hardware/Camera$Parameters;" />
+		<method name="lock()V" since="5" />
+		<method name="open()Landroid/hardware/Camera;" />
+		<method name="open(I)Landroid/hardware/Camera;" since="9" />
+		<method name="reconnect()V" since="8" />
+		<method name="release()V" />
+		<method name="setDisplayOrientation(I)V" since="8" />
+		<method name="setErrorCallback(Landroid/hardware/Camera$ErrorCallback;)V" />
+		<method name="setFaceDetectionListener(Landroid/hardware/Camera$FaceDetectionListener;)V" since="14" />
+		<method name="setOneShotPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" since="3" />
+		<method name="setParameters(Landroid/hardware/Camera$Parameters;)V" />
+		<method name="setPreviewCallback(Landroid/hardware/Camera$PreviewCallback;)V" />
+		<method name="setPreviewCallbackWithBuffer(Landroid/hardware/Camera$PreviewCallback;)V" since="8" />
+		<method name="setPreviewDisplay(Landroid/view/SurfaceHolder;)V" />
+		<method name="setPreviewTexture(Landroid/graphics/SurfaceTexture;)V" since="11" />
+		<method name="setZoomChangeListener(Landroid/hardware/Camera$OnZoomChangeListener;)V" since="8" />
+		<method name="startFaceDetection()V" since="14" />
+		<method name="startPreview()V" />
+		<method name="startSmoothZoom(I)V" since="8" />
+		<method name="stopFaceDetection()V" since="14" />
+		<method name="stopPreview()V" />
+		<method name="stopSmoothZoom()V" since="8" />
+		<method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" />
+		<method name="takePicture(Landroid/hardware/Camera$ShutterCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;Landroid/hardware/Camera$PictureCallback;)V" since="5" />
+		<method name="unlock()V" since="5" />
+		<field name="ACTION_NEW_PICTURE" since="14" />
+		<field name="ACTION_NEW_VIDEO" since="14" />
+		<field name="CAMERA_ERROR_SERVER_DIED" />
+		<field name="CAMERA_ERROR_UNKNOWN" />
+	</class>
+	<class name="android/hardware/Camera$Area" since="14">
+		<method name="&lt;init>(Landroid/graphics/Rect;I)V" />
+		<field name="rect" />
+		<field name="weight" />
+	</class>
+	<class name="android/hardware/Camera$AutoFocusCallback" since="1">
+		<method name="onAutoFocus(ZLandroid/hardware/Camera;)V" />
+	</class>
+	<class name="android/hardware/Camera$CameraInfo" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="CAMERA_FACING_BACK" />
+		<field name="CAMERA_FACING_FRONT" />
+		<field name="facing" />
+		<field name="orientation" />
+	</class>
+	<class name="android/hardware/Camera$ErrorCallback" since="1">
+		<method name="onError(ILandroid/hardware/Camera;)V" />
+	</class>
+	<class name="android/hardware/Camera$Face" since="14">
+		<method name="&lt;init>()V" />
+		<field name="id" />
+		<field name="leftEye" />
+		<field name="mouth" />
+		<field name="rect" />
+		<field name="rightEye" />
+		<field name="score" />
+	</class>
+	<class name="android/hardware/Camera$FaceDetectionListener" since="14">
+		<method name="onFaceDetection([Landroid/hardware/Camera$Face;Landroid/hardware/Camera;)V" />
+	</class>
+	<class name="android/hardware/Camera$OnZoomChangeListener" since="8">
+		<method name="onZoomChange(IZLandroid/hardware/Camera;)V" />
+	</class>
+	<class name="android/hardware/Camera$Parameters" since="1">
+		<extends name="java/lang/Object" />
+		<method name="flatten()Ljava/lang/String;" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getAntibanding()Ljava/lang/String;" since="5" />
+		<method name="getAutoExposureLock()Z" since="14" />
+		<method name="getAutoWhiteBalanceLock()Z" since="14" />
+		<method name="getColorEffect()Ljava/lang/String;" since="5" />
+		<method name="getExposureCompensation()I" since="8" />
+		<method name="getExposureCompensationStep()F" since="8" />
+		<method name="getFlashMode()Ljava/lang/String;" since="5" />
+		<method name="getFocalLength()F" since="8" />
+		<method name="getFocusAreas()Ljava/util/List;" since="14" />
+		<method name="getFocusDistances([F)V" since="9" />
+		<method name="getFocusMode()Ljava/lang/String;" since="5" />
+		<method name="getHorizontalViewAngle()F" since="8" />
+		<method name="getInt(Ljava/lang/String;)I" />
+		<method name="getJpegQuality()I" since="5" />
+		<method name="getJpegThumbnailQuality()I" since="5" />
+		<method name="getJpegThumbnailSize()Landroid/hardware/Camera$Size;" since="5" />
+		<method name="getMaxExposureCompensation()I" since="8" />
+		<method name="getMaxNumDetectedFaces()I" since="14" />
+		<method name="getMaxNumFocusAreas()I" since="14" />
+		<method name="getMaxNumMeteringAreas()I" since="14" />
+		<method name="getMaxZoom()I" since="8" />
+		<method name="getMeteringAreas()Ljava/util/List;" since="14" />
+		<method name="getMinExposureCompensation()I" since="8" />
+		<method name="getPictureFormat()I" />
+		<method name="getPictureSize()Landroid/hardware/Camera$Size;" />
+		<method name="getPreferredPreviewSizeForVideo()Landroid/hardware/Camera$Size;" since="11" />
+		<method name="getPreviewFormat()I" />
+		<method name="getPreviewFpsRange([I)V" since="9" />
+		<method name="getPreviewFrameRate()I" />
+		<method name="getPreviewSize()Landroid/hardware/Camera$Size;" />
+		<method name="getSceneMode()Ljava/lang/String;" since="5" />
+		<method name="getSupportedAntibanding()Ljava/util/List;" since="5" />
+		<method name="getSupportedColorEffects()Ljava/util/List;" since="5" />
+		<method name="getSupportedFlashModes()Ljava/util/List;" since="5" />
+		<method name="getSupportedFocusModes()Ljava/util/List;" since="5" />
+		<method name="getSupportedJpegThumbnailSizes()Ljava/util/List;" since="8" />
+		<method name="getSupportedPictureFormats()Ljava/util/List;" since="5" />
+		<method name="getSupportedPictureSizes()Ljava/util/List;" since="5" />
+		<method name="getSupportedPreviewFormats()Ljava/util/List;" since="5" />
+		<method name="getSupportedPreviewFpsRange()Ljava/util/List;" since="9" />
+		<method name="getSupportedPreviewFrameRates()Ljava/util/List;" since="5" />
+		<method name="getSupportedPreviewSizes()Ljava/util/List;" since="5" />
+		<method name="getSupportedSceneModes()Ljava/util/List;" since="5" />
+		<method name="getSupportedVideoSizes()Ljava/util/List;" since="11" />
+		<method name="getSupportedWhiteBalance()Ljava/util/List;" since="5" />
+		<method name="getVerticalViewAngle()F" since="8" />
+		<method name="getVideoStabilization()Z" since="15" />
+		<method name="getWhiteBalance()Ljava/lang/String;" since="5" />
+		<method name="getZoom()I" since="8" />
+		<method name="getZoomRatios()Ljava/util/List;" since="8" />
+		<method name="isAutoExposureLockSupported()Z" since="14" />
+		<method name="isAutoWhiteBalanceLockSupported()Z" since="14" />
+		<method name="isSmoothZoomSupported()Z" since="8" />
+		<method name="isVideoSnapshotSupported()Z" since="14" />
+		<method name="isVideoStabilizationSupported()Z" since="15" />
+		<method name="isZoomSupported()Z" since="8" />
+		<method name="remove(Ljava/lang/String;)V" />
+		<method name="removeGpsData()V" since="5" />
+		<method name="set(Ljava/lang/String;I)V" />
+		<method name="set(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setAntibanding(Ljava/lang/String;)V" since="5" />
+		<method name="setAutoExposureLock(Z)V" since="14" />
+		<method name="setAutoWhiteBalanceLock(Z)V" since="14" />
+		<method name="setColorEffect(Ljava/lang/String;)V" since="5" />
+		<method name="setExposureCompensation(I)V" since="8" />
+		<method name="setFlashMode(Ljava/lang/String;)V" since="5" />
+		<method name="setFocusAreas(Ljava/util/List;)V" since="14" />
+		<method name="setFocusMode(Ljava/lang/String;)V" since="5" />
+		<method name="setGpsAltitude(D)V" since="5" />
+		<method name="setGpsLatitude(D)V" since="5" />
+		<method name="setGpsLongitude(D)V" since="5" />
+		<method name="setGpsProcessingMethod(Ljava/lang/String;)V" since="8" />
+		<method name="setGpsTimestamp(J)V" since="5" />
+		<method name="setJpegQuality(I)V" since="5" />
+		<method name="setJpegThumbnailQuality(I)V" since="5" />
+		<method name="setJpegThumbnailSize(II)V" since="5" />
+		<method name="setMeteringAreas(Ljava/util/List;)V" since="14" />
+		<method name="setPictureFormat(I)V" />
+		<method name="setPictureSize(II)V" />
+		<method name="setPreviewFormat(I)V" />
+		<method name="setPreviewFpsRange(II)V" since="9" />
+		<method name="setPreviewFrameRate(I)V" />
+		<method name="setPreviewSize(II)V" />
+		<method name="setRecordingHint(Z)V" since="14" />
+		<method name="setRotation(I)V" since="5" />
+		<method name="setSceneMode(Ljava/lang/String;)V" since="5" />
+		<method name="setVideoStabilization(Z)V" since="15" />
+		<method name="setWhiteBalance(Ljava/lang/String;)V" since="5" />
+		<method name="setZoom(I)V" since="8" />
+		<method name="unflatten(Ljava/lang/String;)V" />
+		<field name="ANTIBANDING_50HZ" since="5" />
+		<field name="ANTIBANDING_60HZ" since="5" />
+		<field name="ANTIBANDING_AUTO" since="5" />
+		<field name="ANTIBANDING_OFF" since="5" />
+		<field name="EFFECT_AQUA" since="5" />
+		<field name="EFFECT_BLACKBOARD" since="5" />
+		<field name="EFFECT_MONO" since="5" />
+		<field name="EFFECT_NEGATIVE" since="5" />
+		<field name="EFFECT_NONE" since="5" />
+		<field name="EFFECT_POSTERIZE" since="5" />
+		<field name="EFFECT_SEPIA" since="5" />
+		<field name="EFFECT_SOLARIZE" since="5" />
+		<field name="EFFECT_WHITEBOARD" since="5" />
+		<field name="FLASH_MODE_AUTO" since="5" />
+		<field name="FLASH_MODE_OFF" since="5" />
+		<field name="FLASH_MODE_ON" since="5" />
+		<field name="FLASH_MODE_RED_EYE" since="5" />
+		<field name="FLASH_MODE_TORCH" since="5" />
+		<field name="FOCUS_DISTANCE_FAR_INDEX" since="9" />
+		<field name="FOCUS_DISTANCE_NEAR_INDEX" since="9" />
+		<field name="FOCUS_DISTANCE_OPTIMAL_INDEX" since="9" />
+		<field name="FOCUS_MODE_AUTO" since="5" />
+		<field name="FOCUS_MODE_CONTINUOUS_PICTURE" since="14" />
+		<field name="FOCUS_MODE_CONTINUOUS_VIDEO" since="9" />
+		<field name="FOCUS_MODE_EDOF" since="8" />
+		<field name="FOCUS_MODE_FIXED" since="5" />
+		<field name="FOCUS_MODE_INFINITY" since="5" />
+		<field name="FOCUS_MODE_MACRO" since="5" />
+		<field name="PREVIEW_FPS_MAX_INDEX" since="9" />
+		<field name="PREVIEW_FPS_MIN_INDEX" since="9" />
+		<field name="SCENE_MODE_ACTION" since="5" />
+		<field name="SCENE_MODE_AUTO" since="5" />
+		<field name="SCENE_MODE_BARCODE" since="8" />
+		<field name="SCENE_MODE_BEACH" since="5" />
+		<field name="SCENE_MODE_CANDLELIGHT" since="5" />
+		<field name="SCENE_MODE_FIREWORKS" since="5" />
+		<field name="SCENE_MODE_LANDSCAPE" since="5" />
+		<field name="SCENE_MODE_NIGHT" since="5" />
+		<field name="SCENE_MODE_NIGHT_PORTRAIT" since="5" />
+		<field name="SCENE_MODE_PARTY" since="5" />
+		<field name="SCENE_MODE_PORTRAIT" since="5" />
+		<field name="SCENE_MODE_SNOW" since="5" />
+		<field name="SCENE_MODE_SPORTS" since="5" />
+		<field name="SCENE_MODE_STEADYPHOTO" since="5" />
+		<field name="SCENE_MODE_SUNSET" since="5" />
+		<field name="SCENE_MODE_THEATRE" since="5" />
+		<field name="WHITE_BALANCE_AUTO" since="5" />
+		<field name="WHITE_BALANCE_CLOUDY_DAYLIGHT" since="5" />
+		<field name="WHITE_BALANCE_DAYLIGHT" since="5" />
+		<field name="WHITE_BALANCE_FLUORESCENT" since="5" />
+		<field name="WHITE_BALANCE_INCANDESCENT" since="5" />
+		<field name="WHITE_BALANCE_SHADE" since="5" />
+		<field name="WHITE_BALANCE_TWILIGHT" since="5" />
+		<field name="WHITE_BALANCE_WARM_FLUORESCENT" since="5" />
+	</class>
+	<class name="android/hardware/Camera$PictureCallback" since="1">
+		<method name="onPictureTaken([BLandroid/hardware/Camera;)V" />
+	</class>
+	<class name="android/hardware/Camera$PreviewCallback" since="1">
+		<method name="onPreviewFrame([BLandroid/hardware/Camera;)V" />
+	</class>
+	<class name="android/hardware/Camera$ShutterCallback" since="1">
+		<method name="onShutter()V" />
+	</class>
+	<class name="android/hardware/Camera$Size" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(II)V" />
+		<field name="height" />
+		<field name="width" />
+	</class>
+	<class name="android/hardware/GeomagneticField" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(FFFJ)V" />
+		<method name="getDeclination()F" />
+		<method name="getFieldStrength()F" />
+		<method name="getHorizontalStrength()F" />
+		<method name="getInclination()F" />
+		<method name="getX()F" />
+		<method name="getY()F" />
+		<method name="getZ()F" />
+	</class>
+	<class name="android/hardware/Sensor" since="3">
+		<extends name="java/lang/Object" />
+		<method name="getMaximumRange()F" />
+		<method name="getMinDelay()I" since="9" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPower()F" />
+		<method name="getResolution()F" />
+		<method name="getType()I" />
+		<method name="getVendor()Ljava/lang/String;" />
+		<method name="getVersion()I" />
+		<field name="TYPE_ACCELEROMETER" />
+		<field name="TYPE_ALL" />
+		<field name="TYPE_AMBIENT_TEMPERATURE" since="14" />
+		<field name="TYPE_GRAVITY" since="9" />
+		<field name="TYPE_GYROSCOPE" />
+		<field name="TYPE_LIGHT" />
+		<field name="TYPE_LINEAR_ACCELERATION" since="9" />
+		<field name="TYPE_MAGNETIC_FIELD" />
+		<field name="TYPE_ORIENTATION" />
+		<field name="TYPE_PRESSURE" />
+		<field name="TYPE_PROXIMITY" />
+		<field name="TYPE_RELATIVE_HUMIDITY" since="14" />
+		<field name="TYPE_ROTATION_VECTOR" since="9" />
+		<field name="TYPE_TEMPERATURE" />
+	</class>
+	<class name="android/hardware/SensorEvent" since="3">
+		<extends name="java/lang/Object" />
+		<field name="accuracy" />
+		<field name="sensor" />
+		<field name="timestamp" />
+		<field name="values" />
+	</class>
+	<class name="android/hardware/SensorEventListener" since="3">
+		<method name="onAccuracyChanged(Landroid/hardware/Sensor;I)V" />
+		<method name="onSensorChanged(Landroid/hardware/SensorEvent;)V" />
+	</class>
+	<class name="android/hardware/SensorListener" since="1">
+		<method name="onAccuracyChanged(II)V" />
+		<method name="onSensorChanged(I[F)V" />
+	</class>
+	<class name="android/hardware/SensorManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getAltitude(FF)F" since="9" />
+		<method name="getAngleChange([F[F[F)V" since="9" />
+		<method name="getDefaultSensor(I)Landroid/hardware/Sensor;" since="3" />
+		<method name="getInclination([F)F" since="3" />
+		<method name="getOrientation([F[F)[F" since="3" />
+		<method name="getQuaternionFromVector([F[F)V" since="9" />
+		<method name="getRotationMatrix([F[F[F[F)Z" since="3" />
+		<method name="getRotationMatrixFromVector([F[F)V" since="9" />
+		<method name="getSensorList(I)Ljava/util/List;" since="3" />
+		<method name="getSensors()I" />
+		<method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;I)Z" since="3" />
+		<method name="registerListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;ILandroid/os/Handler;)Z" since="3" />
+		<method name="registerListener(Landroid/hardware/SensorListener;I)Z" />
+		<method name="registerListener(Landroid/hardware/SensorListener;II)Z" />
+		<method name="remapCoordinateSystem([FII[F)Z" since="3" />
+		<method name="unregisterListener(Landroid/hardware/SensorEventListener;)V" since="3" />
+		<method name="unregisterListener(Landroid/hardware/SensorEventListener;Landroid/hardware/Sensor;)V" since="3" />
+		<method name="unregisterListener(Landroid/hardware/SensorListener;)V" />
+		<method name="unregisterListener(Landroid/hardware/SensorListener;I)V" />
+		<field name="AXIS_MINUS_X" since="3" />
+		<field name="AXIS_MINUS_Y" since="3" />
+		<field name="AXIS_MINUS_Z" since="3" />
+		<field name="AXIS_X" since="3" />
+		<field name="AXIS_Y" since="3" />
+		<field name="AXIS_Z" since="3" />
+		<field name="DATA_X" />
+		<field name="DATA_Y" />
+		<field name="DATA_Z" />
+		<field name="GRAVITY_DEATH_STAR_I" />
+		<field name="GRAVITY_EARTH" />
+		<field name="GRAVITY_JUPITER" />
+		<field name="GRAVITY_MARS" />
+		<field name="GRAVITY_MERCURY" />
+		<field name="GRAVITY_MOON" />
+		<field name="GRAVITY_NEPTUNE" />
+		<field name="GRAVITY_PLUTO" />
+		<field name="GRAVITY_SATURN" />
+		<field name="GRAVITY_SUN" />
+		<field name="GRAVITY_THE_ISLAND" />
+		<field name="GRAVITY_URANUS" />
+		<field name="GRAVITY_VENUS" />
+		<field name="LIGHT_CLOUDY" />
+		<field name="LIGHT_FULLMOON" />
+		<field name="LIGHT_NO_MOON" />
+		<field name="LIGHT_OVERCAST" />
+		<field name="LIGHT_SHADE" />
+		<field name="LIGHT_SUNLIGHT" />
+		<field name="LIGHT_SUNLIGHT_MAX" />
+		<field name="LIGHT_SUNRISE" />
+		<field name="MAGNETIC_FIELD_EARTH_MAX" />
+		<field name="MAGNETIC_FIELD_EARTH_MIN" />
+		<field name="PRESSURE_STANDARD_ATMOSPHERE" since="9" />
+		<field name="RAW_DATA_INDEX" />
+		<field name="RAW_DATA_X" />
+		<field name="RAW_DATA_Y" />
+		<field name="RAW_DATA_Z" />
+		<field name="SENSOR_ACCELEROMETER" />
+		<field name="SENSOR_ALL" />
+		<field name="SENSOR_DELAY_FASTEST" />
+		<field name="SENSOR_DELAY_GAME" />
+		<field name="SENSOR_DELAY_NORMAL" />
+		<field name="SENSOR_DELAY_UI" />
+		<field name="SENSOR_LIGHT" />
+		<field name="SENSOR_MAGNETIC_FIELD" />
+		<field name="SENSOR_MAX" />
+		<field name="SENSOR_MIN" />
+		<field name="SENSOR_ORIENTATION" />
+		<field name="SENSOR_ORIENTATION_RAW" />
+		<field name="SENSOR_PROXIMITY" />
+		<field name="SENSOR_STATUS_ACCURACY_HIGH" />
+		<field name="SENSOR_STATUS_ACCURACY_LOW" />
+		<field name="SENSOR_STATUS_ACCURACY_MEDIUM" />
+		<field name="SENSOR_STATUS_UNRELIABLE" />
+		<field name="SENSOR_TEMPERATURE" />
+		<field name="SENSOR_TRICORDER" />
+		<field name="STANDARD_GRAVITY" />
+	</class>
+	<class name="android/hardware/usb/UsbAccessory" since="12">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getDescription()Ljava/lang/String;" />
+		<method name="getManufacturer()Ljava/lang/String;" />
+		<method name="getModel()Ljava/lang/String;" />
+		<method name="getSerial()Ljava/lang/String;" />
+		<method name="getUri()Ljava/lang/String;" />
+		<method name="getVersion()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/hardware/usb/UsbConstants" since="12">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="USB_CLASS_APP_SPEC" />
+		<field name="USB_CLASS_AUDIO" />
+		<field name="USB_CLASS_CDC_DATA" />
+		<field name="USB_CLASS_COMM" />
+		<field name="USB_CLASS_CONTENT_SEC" />
+		<field name="USB_CLASS_CSCID" />
+		<field name="USB_CLASS_HID" />
+		<field name="USB_CLASS_HUB" />
+		<field name="USB_CLASS_MASS_STORAGE" />
+		<field name="USB_CLASS_MISC" />
+		<field name="USB_CLASS_PER_INTERFACE" />
+		<field name="USB_CLASS_PHYSICA" />
+		<field name="USB_CLASS_PRINTER" />
+		<field name="USB_CLASS_STILL_IMAGE" />
+		<field name="USB_CLASS_VENDOR_SPEC" />
+		<field name="USB_CLASS_VIDEO" />
+		<field name="USB_CLASS_WIRELESS_CONTROLLER" />
+		<field name="USB_DIR_IN" />
+		<field name="USB_DIR_OUT" />
+		<field name="USB_ENDPOINT_DIR_MASK" />
+		<field name="USB_ENDPOINT_NUMBER_MASK" />
+		<field name="USB_ENDPOINT_XFERTYPE_MASK" />
+		<field name="USB_ENDPOINT_XFER_BULK" />
+		<field name="USB_ENDPOINT_XFER_CONTROL" />
+		<field name="USB_ENDPOINT_XFER_INT" />
+		<field name="USB_ENDPOINT_XFER_ISOC" />
+		<field name="USB_INTERFACE_SUBCLASS_BOOT" />
+		<field name="USB_SUBCLASS_VENDOR_SPEC" />
+		<field name="USB_TYPE_CLASS" />
+		<field name="USB_TYPE_MASK" />
+		<field name="USB_TYPE_RESERVED" />
+		<field name="USB_TYPE_STANDARD" />
+		<field name="USB_TYPE_VENDOR" />
+	</class>
+	<class name="android/hardware/usb/UsbDevice" since="12">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getDeviceClass()I" />
+		<method name="getDeviceId()I" />
+		<method name="getDeviceId(Ljava/lang/String;)I" />
+		<method name="getDeviceName()Ljava/lang/String;" />
+		<method name="getDeviceName(I)Ljava/lang/String;" />
+		<method name="getDeviceProtocol()I" />
+		<method name="getDeviceSubclass()I" />
+		<method name="getInterface(I)Landroid/hardware/usb/UsbInterface;" />
+		<method name="getInterfaceCount()I" />
+		<method name="getProductId()I" />
+		<method name="getVendorId()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/hardware/usb/UsbDeviceConnection" since="12">
+		<extends name="java/lang/Object" />
+		<method name="bulkTransfer(Landroid/hardware/usb/UsbEndpoint;[BII)I" />
+		<method name="claimInterface(Landroid/hardware/usb/UsbInterface;Z)Z" />
+		<method name="close()V" />
+		<method name="controlTransfer(IIII[BII)I" />
+		<method name="getFileDescriptor()I" />
+		<method name="getRawDescriptors()[B" since="13" />
+		<method name="getSerial()Ljava/lang/String;" />
+		<method name="releaseInterface(Landroid/hardware/usb/UsbInterface;)Z" />
+		<method name="requestWait()Landroid/hardware/usb/UsbRequest;" />
+	</class>
+	<class name="android/hardware/usb/UsbEndpoint" since="12">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getAddress()I" />
+		<method name="getAttributes()I" />
+		<method name="getDirection()I" />
+		<method name="getEndpointNumber()I" />
+		<method name="getInterval()I" />
+		<method name="getMaxPacketSize()I" />
+		<method name="getType()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/hardware/usb/UsbInterface" since="12">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getEndpoint(I)Landroid/hardware/usb/UsbEndpoint;" />
+		<method name="getEndpointCount()I" />
+		<method name="getId()I" />
+		<method name="getInterfaceClass()I" />
+		<method name="getInterfaceProtocol()I" />
+		<method name="getInterfaceSubclass()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/hardware/usb/UsbManager" since="12">
+		<extends name="java/lang/Object" />
+		<method name="getAccessoryList()[Landroid/hardware/usb/UsbAccessory;" />
+		<method name="getDeviceList()Ljava/util/HashMap;" />
+		<method name="hasPermission(Landroid/hardware/usb/UsbAccessory;)Z" />
+		<method name="hasPermission(Landroid/hardware/usb/UsbDevice;)Z" />
+		<method name="openAccessory(Landroid/hardware/usb/UsbAccessory;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="openDevice(Landroid/hardware/usb/UsbDevice;)Landroid/hardware/usb/UsbDeviceConnection;" />
+		<method name="requestPermission(Landroid/hardware/usb/UsbAccessory;Landroid/app/PendingIntent;)V" />
+		<method name="requestPermission(Landroid/hardware/usb/UsbDevice;Landroid/app/PendingIntent;)V" />
+		<field name="ACTION_USB_ACCESSORY_ATTACHED" />
+		<field name="ACTION_USB_ACCESSORY_DETACHED" />
+		<field name="ACTION_USB_DEVICE_ATTACHED" />
+		<field name="ACTION_USB_DEVICE_DETACHED" />
+		<field name="EXTRA_ACCESSORY" />
+		<field name="EXTRA_DEVICE" />
+		<field name="EXTRA_PERMISSION_GRANTED" />
+	</class>
+	<class name="android/hardware/usb/UsbRequest" since="12">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="cancel()Z" />
+		<method name="close()V" />
+		<method name="getClientData()Ljava/lang/Object;" />
+		<method name="getEndpoint()Landroid/hardware/usb/UsbEndpoint;" />
+		<method name="initialize(Landroid/hardware/usb/UsbDeviceConnection;Landroid/hardware/usb/UsbEndpoint;)Z" />
+		<method name="queue(Ljava/nio/ByteBuffer;I)Z" />
+		<method name="setClientData(Ljava/lang/Object;)V" />
+	</class>
+	<class name="android/inputmethodservice/AbstractInputMethodService" since="3">
+		<extends name="android/app/Service" />
+		<implements name="android/view/KeyEvent$Callback" />
+		<method name="&lt;init>()V" />
+		<method name="getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;" since="5" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onCreateInputMethodInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;" />
+		<method name="onCreateInputMethodSessionInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;" />
+		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/inputmethod/InputMethod" />
+		<method name="&lt;init>()V" />
+		<method name="createSession(Landroid/view/inputmethod/InputMethod$SessionCallback;)V" />
+		<method name="revokeSession(Landroid/view/inputmethod/InputMethodSession;)V" />
+		<method name="setSessionEnabled(Landroid/view/inputmethod/InputMethodSession;Z)V" />
+	</class>
+	<class name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/inputmethod/InputMethodSession" />
+		<method name="&lt;init>()V" />
+		<method name="dispatchKeyEvent(ILandroid/view/KeyEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" />
+		<method name="dispatchTrackballEvent(ILandroid/view/MotionEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" />
+		<method name="isEnabled()Z" />
+		<method name="isRevoked()Z" />
+		<method name="revokeSelf()V" />
+		<method name="setEnabled(Z)V" />
+	</class>
+	<class name="android/inputmethodservice/ExtractEditText" since="3">
+		<extends name="android/widget/EditText" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="finishInternalChanges()V" />
+		<method name="hasVerticalScrollBar()Z" />
+		<method name="startInternalChanges()V" />
+	</class>
+	<class name="android/inputmethodservice/InputMethodService" since="3">
+		<extends name="android/inputmethodservice/AbstractInputMethodService" />
+		<method name="&lt;init>()V" />
+		<method name="getBackDisposition()I" since="11" />
+		<method name="getCandidatesHiddenVisibility()I" />
+		<method name="getCurrentInputBinding()Landroid/view/inputmethod/InputBinding;" />
+		<method name="getCurrentInputConnection()Landroid/view/inputmethod/InputConnection;" />
+		<method name="getCurrentInputEditorInfo()Landroid/view/inputmethod/EditorInfo;" />
+		<method name="getCurrentInputStarted()Z" />
+		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
+		<method name="getMaxWidth()I" />
+		<method name="getTextForImeAction(I)Ljava/lang/CharSequence;" />
+		<method name="getWindow()Landroid/app/Dialog;" />
+		<method name="hideStatusIcon()V" />
+		<method name="hideWindow()V" />
+		<method name="isExtractViewShown()Z" />
+		<method name="isFullscreenMode()Z" />
+		<method name="isInputViewShown()Z" />
+		<method name="isShowInputRequested()Z" />
+		<method name="onAppPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="onBindInput()V" />
+		<method name="onComputeInsets(Landroid/inputmethodservice/InputMethodService$Insets;)V" />
+		<method name="onConfigureWindow(Landroid/view/Window;ZZ)V" />
+		<method name="onCreateCandidatesView()Landroid/view/View;" />
+		<method name="onCreateExtractTextView()Landroid/view/View;" />
+		<method name="onCreateInputMethodInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl;" />
+		<method name="onCreateInputMethodSessionInterface()Landroid/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl;" />
+		<method name="onCreateInputView()Landroid/view/View;" />
+		<method name="onCurrentInputMethodSubtypeChanged(Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
+		<method name="onDisplayCompletions([Landroid/view/inputmethod/CompletionInfo;)V" />
+		<method name="onEvaluateFullscreenMode()Z" />
+		<method name="onEvaluateInputViewShown()Z" />
+		<method name="onExtractTextContextMenuItem(I)Z" />
+		<method name="onExtractedCursorMovement(II)V" />
+		<method name="onExtractedSelectionChanged(II)V" />
+		<method name="onExtractedTextClicked()V" />
+		<method name="onExtractingInputChanged(Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="onFinishCandidatesView(Z)V" />
+		<method name="onFinishInput()V" />
+		<method name="onFinishInputView(Z)V" />
+		<method name="onInitializeInterface()V" />
+		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyLongPress(ILandroid/view/KeyEvent;)Z" since="5" />
+		<method name="onKeyMultiple(IILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
+		<method name="onShowInputRequested(IZ)Z" />
+		<method name="onStartCandidatesView(Landroid/view/inputmethod/EditorInfo;Z)V" />
+		<method name="onStartInput(Landroid/view/inputmethod/EditorInfo;Z)V" />
+		<method name="onStartInputView(Landroid/view/inputmethod/EditorInfo;Z)V" />
+		<method name="onUnbindInput()V" />
+		<method name="onUpdateCursor(Landroid/graphics/Rect;)V" />
+		<method name="onUpdateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V" />
+		<method name="onUpdateExtractingViews(Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="onUpdateExtractingVisibility(Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="onUpdateSelection(IIIIII)V" />
+		<method name="onViewClicked(Z)V" since="14" />
+		<method name="onWindowHidden()V" />
+		<method name="onWindowShown()V" />
+		<method name="requestHideSelf(I)V" />
+		<method name="sendDefaultEditorAction(Z)Z" />
+		<method name="sendDownUpKeyEvents(I)V" />
+		<method name="sendKeyChar(C)V" />
+		<method name="setBackDisposition(I)V" since="11" />
+		<method name="setCandidatesView(Landroid/view/View;)V" />
+		<method name="setCandidatesViewShown(Z)V" />
+		<method name="setExtractView(Landroid/view/View;)V" />
+		<method name="setExtractViewShown(Z)V" />
+		<method name="setInputView(Landroid/view/View;)V" />
+		<method name="showStatusIcon(I)V" />
+		<method name="showWindow(Z)V" />
+		<method name="switchInputMethod(Ljava/lang/String;)V" />
+		<method name="updateFullscreenMode()V" />
+		<method name="updateInputViewShown()V" />
+		<field name="BACK_DISPOSITION_DEFAULT" since="11" />
+		<field name="BACK_DISPOSITION_WILL_DISMISS" since="11" />
+		<field name="BACK_DISPOSITION_WILL_NOT_DISMISS" since="11" />
+	</class>
+	<class name="android/inputmethodservice/InputMethodService$InputMethodImpl" since="3">
+		<extends name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodImpl" />
+		<method name="&lt;init>()V" />
+		<method name="attachToken(Landroid/os/IBinder;)V" />
+		<method name="bindInput(Landroid/view/inputmethod/InputBinding;)V" />
+		<method name="changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
+		<method name="hideSoftInput(ILandroid/os/ResultReceiver;)V" />
+		<method name="restartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="showSoftInput(ILandroid/os/ResultReceiver;)V" />
+		<method name="startInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="unbindInput()V" />
+	</class>
+	<class name="android/inputmethodservice/InputMethodService$InputMethodSessionImpl" since="3">
+		<extends name="android/inputmethodservice/AbstractInputMethodService$AbstractInputMethodSessionImpl" />
+		<method name="&lt;init>()V" />
+		<method name="appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V" />
+		<method name="finishInput()V" />
+		<method name="toggleSoftInput(II)V" />
+		<method name="updateCursor(Landroid/graphics/Rect;)V" />
+		<method name="updateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V" />
+		<method name="updateSelection(IIIIII)V" />
+		<method name="viewClicked(Z)V" since="14" />
+	</class>
+	<class name="android/inputmethodservice/InputMethodService$Insets" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="TOUCHABLE_INSETS_CONTENT" />
+		<field name="TOUCHABLE_INSETS_FRAME" />
+		<field name="TOUCHABLE_INSETS_REGION" since="11" />
+		<field name="TOUCHABLE_INSETS_VISIBLE" />
+		<field name="contentTopInsets" />
+		<field name="touchableInsets" />
+		<field name="touchableRegion" since="11" />
+		<field name="visibleTopInsets" />
+	</class>
+	<class name="android/inputmethodservice/Keyboard" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;II)V" />
+		<method name="&lt;init>(Landroid/content/Context;IIII)V" since="11" />
+		<method name="&lt;init>(Landroid/content/Context;ILjava/lang/CharSequence;II)V" />
+		<method name="createKeyFromXml(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Key;" />
+		<method name="createRowFromXml(Landroid/content/res/Resources;Landroid/content/res/XmlResourceParser;)Landroid/inputmethodservice/Keyboard$Row;" />
+		<method name="getHeight()I" />
+		<method name="getHorizontalGap()I" />
+		<method name="getKeyHeight()I" />
+		<method name="getKeyWidth()I" />
+		<method name="getKeys()Ljava/util/List;" />
+		<method name="getMinWidth()I" />
+		<method name="getModifierKeys()Ljava/util/List;" />
+		<method name="getNearestKeys(II)[I" />
+		<method name="getShiftKeyIndex()I" />
+		<method name="getVerticalGap()I" />
+		<method name="isShifted()Z" />
+		<method name="setHorizontalGap(I)V" />
+		<method name="setKeyHeight(I)V" />
+		<method name="setKeyWidth(I)V" />
+		<method name="setShifted(Z)Z" />
+		<method name="setVerticalGap(I)V" />
+		<field name="EDGE_BOTTOM" />
+		<field name="EDGE_LEFT" />
+		<field name="EDGE_RIGHT" />
+		<field name="EDGE_TOP" />
+		<field name="KEYCODE_ALT" />
+		<field name="KEYCODE_CANCEL" />
+		<field name="KEYCODE_DELETE" />
+		<field name="KEYCODE_DONE" />
+		<field name="KEYCODE_MODE_CHANGE" />
+		<field name="KEYCODE_SHIFT" />
+	</class>
+	<class name="android/inputmethodservice/Keyboard$Key" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard$Row;IILandroid/content/res/XmlResourceParser;)V" />
+		<method name="&lt;init>(Landroid/inputmethodservice/Keyboard$Row;)V" />
+		<method name="getCurrentDrawableState()[I" />
+		<method name="isInside(II)Z" />
+		<method name="onPressed()V" />
+		<method name="onReleased(Z)V" />
+		<method name="squaredDistanceFrom(II)I" />
+		<field name="codes" />
+		<field name="edgeFlags" />
+		<field name="gap" />
+		<field name="height" />
+		<field name="icon" />
+		<field name="iconPreview" />
+		<field name="label" />
+		<field name="modifier" />
+		<field name="on" />
+		<field name="popupCharacters" />
+		<field name="popupResId" />
+		<field name="pressed" />
+		<field name="repeatable" />
+		<field name="sticky" />
+		<field name="text" />
+		<field name="width" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/inputmethodservice/Keyboard$Row" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/res/Resources;Landroid/inputmethodservice/Keyboard;Landroid/content/res/XmlResourceParser;)V" />
+		<method name="&lt;init>(Landroid/inputmethodservice/Keyboard;)V" />
+		<field name="defaultHeight" />
+		<field name="defaultHorizontalGap" />
+		<field name="defaultWidth" />
+		<field name="mode" />
+		<field name="rowEdgeFlags" />
+		<field name="verticalGap" />
+	</class>
+	<class name="android/inputmethodservice/KeyboardView" since="3">
+		<extends name="android/view/View" />
+		<implements name="android/view/View$OnClickListener" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="closing()V" />
+		<method name="getKeyboard()Landroid/inputmethodservice/Keyboard;" />
+		<method name="getOnKeyboardActionListener()Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;" />
+		<method name="handleBack()Z" />
+		<method name="invalidateAllKeys()V" since="4" />
+		<method name="invalidateKey(I)V" since="4" />
+		<method name="isPreviewEnabled()Z" />
+		<method name="isProximityCorrectionEnabled()Z" />
+		<method name="isShifted()Z" />
+		<method name="onClick(Landroid/view/View;)V" />
+		<method name="onDetachedFromWindow()V" />
+		<method name="onDraw(Landroid/graphics/Canvas;)V" />
+		<method name="onLongPress(Landroid/inputmethodservice/Keyboard$Key;)Z" />
+		<method name="onMeasure(II)V" />
+		<method name="onSizeChanged(IIII)V" />
+		<method name="setKeyboard(Landroid/inputmethodservice/Keyboard;)V" />
+		<method name="setOnKeyboardActionListener(Landroid/inputmethodservice/KeyboardView$OnKeyboardActionListener;)V" />
+		<method name="setPopupOffset(II)V" />
+		<method name="setPopupParent(Landroid/view/View;)V" />
+		<method name="setPreviewEnabled(Z)V" />
+		<method name="setProximityCorrectionEnabled(Z)V" />
+		<method name="setShifted(Z)Z" />
+		<method name="setVerticalCorrection(I)V" />
+		<method name="swipeDown()V" />
+		<method name="swipeLeft()V" />
+		<method name="swipeRight()V" />
+		<method name="swipeUp()V" />
+	</class>
+	<class name="android/inputmethodservice/KeyboardView$OnKeyboardActionListener" since="3">
+		<method name="onKey(I[I)V" />
+		<method name="onPress(I)V" />
+		<method name="onRelease(I)V" />
+		<method name="onText(Ljava/lang/CharSequence;)V" />
+		<method name="swipeDown()V" />
+		<method name="swipeLeft()V" />
+		<method name="swipeRight()V" />
+		<method name="swipeUp()V" />
+	</class>
+	<class name="android/location/Address" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Ljava/util/Locale;)V" />
+		<method name="clearLatitude()V" />
+		<method name="clearLongitude()V" />
+		<method name="describeContents()I" />
+		<method name="getAddressLine(I)Ljava/lang/String;" />
+		<method name="getAdminArea()Ljava/lang/String;" />
+		<method name="getCountryCode()Ljava/lang/String;" />
+		<method name="getCountryName()Ljava/lang/String;" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getFeatureName()Ljava/lang/String;" />
+		<method name="getLatitude()D" />
+		<method name="getLocale()Ljava/util/Locale;" />
+		<method name="getLocality()Ljava/lang/String;" />
+		<method name="getLongitude()D" />
+		<method name="getMaxAddressLineIndex()I" />
+		<method name="getPhone()Ljava/lang/String;" />
+		<method name="getPostalCode()Ljava/lang/String;" />
+		<method name="getPremises()Ljava/lang/String;" since="4" />
+		<method name="getSubAdminArea()Ljava/lang/String;" />
+		<method name="getSubLocality()Ljava/lang/String;" since="4" />
+		<method name="getSubThoroughfare()Ljava/lang/String;" since="4" />
+		<method name="getThoroughfare()Ljava/lang/String;" />
+		<method name="getUrl()Ljava/lang/String;" />
+		<method name="hasLatitude()Z" />
+		<method name="hasLongitude()Z" />
+		<method name="setAddressLine(ILjava/lang/String;)V" />
+		<method name="setAdminArea(Ljava/lang/String;)V" />
+		<method name="setCountryCode(Ljava/lang/String;)V" />
+		<method name="setCountryName(Ljava/lang/String;)V" />
+		<method name="setExtras(Landroid/os/Bundle;)V" />
+		<method name="setFeatureName(Ljava/lang/String;)V" />
+		<method name="setLatitude(D)V" />
+		<method name="setLocality(Ljava/lang/String;)V" />
+		<method name="setLongitude(D)V" />
+		<method name="setPhone(Ljava/lang/String;)V" />
+		<method name="setPostalCode(Ljava/lang/String;)V" />
+		<method name="setPremises(Ljava/lang/String;)V" since="4" />
+		<method name="setSubAdminArea(Ljava/lang/String;)V" />
+		<method name="setSubLocality(Ljava/lang/String;)V" since="4" />
+		<method name="setSubThoroughfare(Ljava/lang/String;)V" since="4" />
+		<method name="setThoroughfare(Ljava/lang/String;)V" />
+		<method name="setUrl(Ljava/lang/String;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/location/Criteria" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/location/Criteria;)V" />
+		<method name="describeContents()I" />
+		<method name="getAccuracy()I" />
+		<method name="getBearingAccuracy()I" since="9" />
+		<method name="getHorizontalAccuracy()I" since="9" />
+		<method name="getPowerRequirement()I" />
+		<method name="getSpeedAccuracy()I" since="9" />
+		<method name="getVerticalAccuracy()I" since="9" />
+		<method name="isAltitudeRequired()Z" />
+		<method name="isBearingRequired()Z" />
+		<method name="isCostAllowed()Z" />
+		<method name="isSpeedRequired()Z" />
+		<method name="setAccuracy(I)V" />
+		<method name="setAltitudeRequired(Z)V" />
+		<method name="setBearingAccuracy(I)V" since="9" />
+		<method name="setBearingRequired(Z)V" />
+		<method name="setCostAllowed(Z)V" />
+		<method name="setHorizontalAccuracy(I)V" since="9" />
+		<method name="setPowerRequirement(I)V" />
+		<method name="setSpeedAccuracy(I)V" since="9" />
+		<method name="setSpeedRequired(Z)V" />
+		<method name="setVerticalAccuracy(I)V" since="9" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACCURACY_COARSE" />
+		<field name="ACCURACY_FINE" />
+		<field name="ACCURACY_HIGH" since="9" />
+		<field name="ACCURACY_LOW" since="9" />
+		<field name="ACCURACY_MEDIUM" since="9" />
+		<field name="CREATOR" />
+		<field name="NO_REQUIREMENT" />
+		<field name="POWER_HIGH" />
+		<field name="POWER_LOW" />
+		<field name="POWER_MEDIUM" />
+	</class>
+	<class name="android/location/Geocoder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/util/Locale;)V" />
+		<method name="getFromLocation(DDI)Ljava/util/List;" />
+		<method name="getFromLocationName(Ljava/lang/String;I)Ljava/util/List;" />
+		<method name="getFromLocationName(Ljava/lang/String;IDDDD)Ljava/util/List;" />
+		<method name="isPresent()Z" since="9" />
+	</class>
+	<class name="android/location/GpsSatellite" since="3">
+		<extends name="java/lang/Object" />
+		<method name="getAzimuth()F" />
+		<method name="getElevation()F" />
+		<method name="getPrn()I" />
+		<method name="getSnr()F" />
+		<method name="hasAlmanac()Z" />
+		<method name="hasEphemeris()Z" />
+		<method name="usedInFix()Z" />
+	</class>
+	<class name="android/location/GpsStatus" since="3">
+		<extends name="java/lang/Object" />
+		<method name="getMaxSatellites()I" />
+		<method name="getSatellites()Ljava/lang/Iterable;" />
+		<method name="getTimeToFirstFix()I" />
+		<field name="GPS_EVENT_FIRST_FIX" />
+		<field name="GPS_EVENT_SATELLITE_STATUS" />
+		<field name="GPS_EVENT_STARTED" />
+		<field name="GPS_EVENT_STOPPED" />
+	</class>
+	<class name="android/location/GpsStatus$Listener" since="3">
+		<method name="onGpsStatusChanged(I)V" />
+	</class>
+	<class name="android/location/GpsStatus$NmeaListener" since="5">
+		<method name="onNmeaReceived(JLjava/lang/String;)V" />
+	</class>
+	<class name="android/location/Location" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/location/Location;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="bearingTo(Landroid/location/Location;)F" />
+		<method name="convert(DI)Ljava/lang/String;" />
+		<method name="convert(Ljava/lang/String;)D" />
+		<method name="describeContents()I" />
+		<method name="distanceBetween(DDDD[F)V" />
+		<method name="distanceTo(Landroid/location/Location;)F" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" since="3" />
+		<method name="getAccuracy()F" />
+		<method name="getAltitude()D" />
+		<method name="getBearing()F" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getLatitude()D" />
+		<method name="getLongitude()D" />
+		<method name="getProvider()Ljava/lang/String;" />
+		<method name="getSpeed()F" />
+		<method name="getTime()J" />
+		<method name="hasAccuracy()Z" />
+		<method name="hasAltitude()Z" />
+		<method name="hasBearing()Z" />
+		<method name="hasSpeed()Z" />
+		<method name="removeAccuracy()V" />
+		<method name="removeAltitude()V" />
+		<method name="removeBearing()V" />
+		<method name="removeSpeed()V" />
+		<method name="reset()V" />
+		<method name="set(Landroid/location/Location;)V" />
+		<method name="setAccuracy(F)V" />
+		<method name="setAltitude(D)V" />
+		<method name="setBearing(F)V" />
+		<method name="setExtras(Landroid/os/Bundle;)V" />
+		<method name="setLatitude(D)V" />
+		<method name="setLongitude(D)V" />
+		<method name="setProvider(Ljava/lang/String;)V" />
+		<method name="setSpeed(F)V" />
+		<method name="setTime(J)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="FORMAT_DEGREES" />
+		<field name="FORMAT_MINUTES" />
+		<field name="FORMAT_SECONDS" />
+	</class>
+	<class name="android/location/LocationListener" since="1">
+		<method name="onLocationChanged(Landroid/location/Location;)V" />
+		<method name="onProviderDisabled(Ljava/lang/String;)V" />
+		<method name="onProviderEnabled(Ljava/lang/String;)V" />
+		<method name="onStatusChanged(Ljava/lang/String;ILandroid/os/Bundle;)V" />
+	</class>
+	<class name="android/location/LocationManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addGpsStatusListener(Landroid/location/GpsStatus$Listener;)Z" since="3" />
+		<method name="addNmeaListener(Landroid/location/GpsStatus$NmeaListener;)Z" since="5" />
+		<method name="addProximityAlert(DDFJLandroid/app/PendingIntent;)V" />
+		<method name="addTestProvider(Ljava/lang/String;ZZZZZZZII)V" since="3" />
+		<method name="clearTestProviderEnabled(Ljava/lang/String;)V" since="3" />
+		<method name="clearTestProviderLocation(Ljava/lang/String;)V" since="3" />
+		<method name="clearTestProviderStatus(Ljava/lang/String;)V" since="3" />
+		<method name="getAllProviders()Ljava/util/List;" />
+		<method name="getBestProvider(Landroid/location/Criteria;Z)Ljava/lang/String;" />
+		<method name="getGpsStatus(Landroid/location/GpsStatus;)Landroid/location/GpsStatus;" since="3" />
+		<method name="getLastKnownLocation(Ljava/lang/String;)Landroid/location/Location;" />
+		<method name="getProvider(Ljava/lang/String;)Landroid/location/LocationProvider;" />
+		<method name="getProviders(Landroid/location/Criteria;Z)Ljava/util/List;" />
+		<method name="getProviders(Z)Ljava/util/List;" />
+		<method name="isProviderEnabled(Ljava/lang/String;)Z" />
+		<method name="removeGpsStatusListener(Landroid/location/GpsStatus$Listener;)V" since="3" />
+		<method name="removeNmeaListener(Landroid/location/GpsStatus$NmeaListener;)V" since="5" />
+		<method name="removeProximityAlert(Landroid/app/PendingIntent;)V" />
+		<method name="removeTestProvider(Ljava/lang/String;)V" since="3" />
+		<method name="removeUpdates(Landroid/app/PendingIntent;)V" since="3" />
+		<method name="removeUpdates(Landroid/location/LocationListener;)V" />
+		<method name="requestLocationUpdates(JFLandroid/location/Criteria;Landroid/app/PendingIntent;)V" since="9" />
+		<method name="requestLocationUpdates(JFLandroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V" since="9" />
+		<method name="requestLocationUpdates(Ljava/lang/String;JFLandroid/app/PendingIntent;)V" since="3" />
+		<method name="requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V" />
+		<method name="requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;Landroid/os/Looper;)V" />
+		<method name="requestSingleUpdate(Landroid/location/Criteria;Landroid/app/PendingIntent;)V" since="9" />
+		<method name="requestSingleUpdate(Landroid/location/Criteria;Landroid/location/LocationListener;Landroid/os/Looper;)V" since="9" />
+		<method name="requestSingleUpdate(Ljava/lang/String;Landroid/app/PendingIntent;)V" since="9" />
+		<method name="requestSingleUpdate(Ljava/lang/String;Landroid/location/LocationListener;Landroid/os/Looper;)V" since="9" />
+		<method name="sendExtraCommand(Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Z" since="3" />
+		<method name="setTestProviderEnabled(Ljava/lang/String;Z)V" since="3" />
+		<method name="setTestProviderLocation(Ljava/lang/String;Landroid/location/Location;)V" since="3" />
+		<method name="setTestProviderStatus(Ljava/lang/String;ILandroid/os/Bundle;J)V" since="3" />
+		<field name="GPS_PROVIDER" />
+		<field name="KEY_LOCATION_CHANGED" since="3" />
+		<field name="KEY_PROVIDER_ENABLED" since="3" />
+		<field name="KEY_PROXIMITY_ENTERING" />
+		<field name="KEY_STATUS_CHANGED" since="3" />
+		<field name="NETWORK_PROVIDER" />
+		<field name="PASSIVE_PROVIDER" since="8" />
+		<field name="PROVIDERS_CHANGED_ACTION" since="9" />
+	</class>
+	<class name="android/location/LocationProvider" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getAccuracy()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPowerRequirement()I" />
+		<method name="hasMonetaryCost()Z" />
+		<method name="meetsCriteria(Landroid/location/Criteria;)Z" />
+		<method name="requiresCell()Z" />
+		<method name="requiresNetwork()Z" />
+		<method name="requiresSatellite()Z" />
+		<method name="supportsAltitude()Z" />
+		<method name="supportsBearing()Z" />
+		<method name="supportsSpeed()Z" />
+		<field name="AVAILABLE" />
+		<field name="OUT_OF_SERVICE" />
+		<field name="TEMPORARILY_UNAVAILABLE" />
+	</class>
+	<class name="android/media/AsyncPlayer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="play(Landroid/content/Context;Landroid/net/Uri;ZI)V" />
+		<method name="stop()V" />
+	</class>
+	<class name="android/media/AudioFormat" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="CHANNEL_CONFIGURATION_DEFAULT" />
+		<field name="CHANNEL_CONFIGURATION_INVALID" />
+		<field name="CHANNEL_CONFIGURATION_MONO" />
+		<field name="CHANNEL_CONFIGURATION_STEREO" />
+		<field name="CHANNEL_INVALID" since="5" />
+		<field name="CHANNEL_IN_BACK" since="5" />
+		<field name="CHANNEL_IN_BACK_PROCESSED" since="5" />
+		<field name="CHANNEL_IN_DEFAULT" since="5" />
+		<field name="CHANNEL_IN_FRONT" since="5" />
+		<field name="CHANNEL_IN_FRONT_PROCESSED" since="5" />
+		<field name="CHANNEL_IN_LEFT" since="5" />
+		<field name="CHANNEL_IN_LEFT_PROCESSED" since="5" />
+		<field name="CHANNEL_IN_MONO" since="5" />
+		<field name="CHANNEL_IN_PRESSURE" since="5" />
+		<field name="CHANNEL_IN_RIGHT" since="5" />
+		<field name="CHANNEL_IN_RIGHT_PROCESSED" since="5" />
+		<field name="CHANNEL_IN_STEREO" since="5" />
+		<field name="CHANNEL_IN_VOICE_DNLINK" since="5" />
+		<field name="CHANNEL_IN_VOICE_UPLINK" since="5" />
+		<field name="CHANNEL_IN_X_AXIS" since="5" />
+		<field name="CHANNEL_IN_Y_AXIS" since="5" />
+		<field name="CHANNEL_IN_Z_AXIS" since="5" />
+		<field name="CHANNEL_OUT_5POINT1" since="5" />
+		<field name="CHANNEL_OUT_7POINT1" since="5" />
+		<field name="CHANNEL_OUT_BACK_CENTER" since="5" />
+		<field name="CHANNEL_OUT_BACK_LEFT" since="5" />
+		<field name="CHANNEL_OUT_BACK_RIGHT" since="5" />
+		<field name="CHANNEL_OUT_DEFAULT" since="5" />
+		<field name="CHANNEL_OUT_FRONT_CENTER" since="5" />
+		<field name="CHANNEL_OUT_FRONT_LEFT" since="5" />
+		<field name="CHANNEL_OUT_FRONT_LEFT_OF_CENTER" since="5" />
+		<field name="CHANNEL_OUT_FRONT_RIGHT" since="5" />
+		<field name="CHANNEL_OUT_FRONT_RIGHT_OF_CENTER" since="5" />
+		<field name="CHANNEL_OUT_LOW_FREQUENCY" since="5" />
+		<field name="CHANNEL_OUT_MONO" since="5" />
+		<field name="CHANNEL_OUT_QUAD" since="5" />
+		<field name="CHANNEL_OUT_STEREO" since="5" />
+		<field name="CHANNEL_OUT_SURROUND" since="5" />
+		<field name="ENCODING_DEFAULT" />
+		<field name="ENCODING_INVALID" />
+		<field name="ENCODING_PCM_16BIT" />
+		<field name="ENCODING_PCM_8BIT" />
+	</class>
+	<class name="android/media/AudioManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="abandonAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;)I" since="8" />
+		<method name="adjustStreamVolume(III)V" />
+		<method name="adjustSuggestedStreamVolume(III)V" />
+		<method name="adjustVolume(II)V" />
+		<method name="getMode()I" />
+		<method name="getParameters(Ljava/lang/String;)Ljava/lang/String;" since="5" />
+		<method name="getRingerMode()I" />
+		<method name="getRouting(I)I" />
+		<method name="getStreamMaxVolume(I)I" />
+		<method name="getStreamVolume(I)I" />
+		<method name="getVibrateSetting(I)I" />
+		<method name="isBluetoothA2dpOn()Z" since="3" />
+		<method name="isBluetoothScoAvailableOffCall()Z" since="8" />
+		<method name="isBluetoothScoOn()Z" />
+		<method name="isMicrophoneMute()Z" />
+		<method name="isMusicActive()Z" />
+		<method name="isSpeakerphoneOn()Z" />
+		<method name="isWiredHeadsetOn()Z" since="5" />
+		<method name="loadSoundEffects()V" />
+		<method name="playSoundEffect(I)V" />
+		<method name="playSoundEffect(IF)V" since="3" />
+		<method name="registerMediaButtonEventReceiver(Landroid/content/ComponentName;)V" since="8" />
+		<method name="registerRemoteControlClient(Landroid/media/RemoteControlClient;)V" since="14" />
+		<method name="requestAudioFocus(Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I" since="8" />
+		<method name="setBluetoothA2dpOn(Z)V" since="3" />
+		<method name="setBluetoothScoOn(Z)V" />
+		<method name="setMicrophoneMute(Z)V" />
+		<method name="setMode(I)V" />
+		<method name="setParameters(Ljava/lang/String;)V" since="5" />
+		<method name="setRingerMode(I)V" />
+		<method name="setRouting(III)V" />
+		<method name="setSpeakerphoneOn(Z)V" />
+		<method name="setStreamMute(IZ)V" />
+		<method name="setStreamSolo(IZ)V" />
+		<method name="setStreamVolume(III)V" />
+		<method name="setVibrateSetting(II)V" />
+		<method name="setWiredHeadsetOn(Z)V" since="5" />
+		<method name="shouldVibrate(I)Z" />
+		<method name="startBluetoothSco()V" since="8" />
+		<method name="stopBluetoothSco()V" since="8" />
+		<method name="unloadSoundEffects()V" />
+		<method name="unregisterMediaButtonEventReceiver(Landroid/content/ComponentName;)V" since="8" />
+		<method name="unregisterRemoteControlClient(Landroid/media/RemoteControlClient;)V" since="14" />
+		<field name="ACTION_AUDIO_BECOMING_NOISY" since="3" />
+		<field name="ACTION_SCO_AUDIO_STATE_CHANGED" since="8" />
+		<field name="ACTION_SCO_AUDIO_STATE_UPDATED" since="14" />
+		<field name="ADJUST_LOWER" />
+		<field name="ADJUST_RAISE" />
+		<field name="ADJUST_SAME" />
+		<field name="AUDIOFOCUS_GAIN" since="8" />
+		<field name="AUDIOFOCUS_GAIN_TRANSIENT" since="8" />
+		<field name="AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK" since="8" />
+		<field name="AUDIOFOCUS_LOSS" since="8" />
+		<field name="AUDIOFOCUS_LOSS_TRANSIENT" since="8" />
+		<field name="AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK" since="8" />
+		<field name="AUDIOFOCUS_REQUEST_FAILED" since="8" />
+		<field name="AUDIOFOCUS_REQUEST_GRANTED" since="8" />
+		<field name="EXTRA_RINGER_MODE" />
+		<field name="EXTRA_SCO_AUDIO_PREVIOUS_STATE" since="14" />
+		<field name="EXTRA_SCO_AUDIO_STATE" since="8" />
+		<field name="EXTRA_VIBRATE_SETTING" />
+		<field name="EXTRA_VIBRATE_TYPE" />
+		<field name="FLAG_ALLOW_RINGER_MODES" />
+		<field name="FLAG_PLAY_SOUND" />
+		<field name="FLAG_REMOVE_SOUND_AND_VIBRATE" />
+		<field name="FLAG_SHOW_UI" />
+		<field name="FLAG_VIBRATE" />
+		<field name="FX_FOCUS_NAVIGATION_DOWN" />
+		<field name="FX_FOCUS_NAVIGATION_LEFT" />
+		<field name="FX_FOCUS_NAVIGATION_RIGHT" />
+		<field name="FX_FOCUS_NAVIGATION_UP" />
+		<field name="FX_KEYPRESS_DELETE" since="3" />
+		<field name="FX_KEYPRESS_RETURN" since="3" />
+		<field name="FX_KEYPRESS_SPACEBAR" since="3" />
+		<field name="FX_KEYPRESS_STANDARD" since="3" />
+		<field name="FX_KEY_CLICK" />
+		<field name="MODE_CURRENT" />
+		<field name="MODE_INVALID" />
+		<field name="MODE_IN_CALL" />
+		<field name="MODE_IN_COMMUNICATION" since="11" />
+		<field name="MODE_NORMAL" />
+		<field name="MODE_RINGTONE" />
+		<field name="NUM_STREAMS" />
+		<field name="RINGER_MODE_CHANGED_ACTION" />
+		<field name="RINGER_MODE_NORMAL" />
+		<field name="RINGER_MODE_SILENT" />
+		<field name="RINGER_MODE_VIBRATE" />
+		<field name="ROUTE_ALL" />
+		<field name="ROUTE_BLUETOOTH" />
+		<field name="ROUTE_BLUETOOTH_A2DP" since="3" />
+		<field name="ROUTE_BLUETOOTH_SCO" since="3" />
+		<field name="ROUTE_EARPIECE" />
+		<field name="ROUTE_HEADSET" />
+		<field name="ROUTE_SPEAKER" />
+		<field name="SCO_AUDIO_STATE_CONNECTED" since="8" />
+		<field name="SCO_AUDIO_STATE_CONNECTING" since="14" />
+		<field name="SCO_AUDIO_STATE_DISCONNECTED" since="8" />
+		<field name="SCO_AUDIO_STATE_ERROR" since="8" />
+		<field name="STREAM_ALARM" />
+		<field name="STREAM_DTMF" since="5" />
+		<field name="STREAM_MUSIC" />
+		<field name="STREAM_NOTIFICATION" since="3" />
+		<field name="STREAM_RING" />
+		<field name="STREAM_SYSTEM" />
+		<field name="STREAM_VOICE_CALL" />
+		<field name="USE_DEFAULT_STREAM_TYPE" />
+		<field name="VIBRATE_SETTING_CHANGED_ACTION" />
+		<field name="VIBRATE_SETTING_OFF" />
+		<field name="VIBRATE_SETTING_ON" />
+		<field name="VIBRATE_SETTING_ONLY_SILENT" />
+		<field name="VIBRATE_TYPE_NOTIFICATION" />
+		<field name="VIBRATE_TYPE_RINGER" />
+	</class>
+	<class name="android/media/AudioManager$OnAudioFocusChangeListener" since="8">
+		<method name="onAudioFocusChange(I)V" />
+	</class>
+	<class name="android/media/AudioRecord" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(IIIII)V" />
+		<method name="getAudioFormat()I" />
+		<method name="getAudioSource()I" />
+		<method name="getChannelConfiguration()I" />
+		<method name="getChannelCount()I" />
+		<method name="getMinBufferSize(III)I" />
+		<method name="getNotificationMarkerPosition()I" />
+		<method name="getPositionNotificationPeriod()I" />
+		<method name="getRecordingState()I" />
+		<method name="getSampleRate()I" />
+		<method name="getState()I" />
+		<method name="read(Ljava/nio/ByteBuffer;I)I" />
+		<method name="read([BII)I" />
+		<method name="read([SII)I" />
+		<method name="release()V" />
+		<method name="setNotificationMarkerPosition(I)I" />
+		<method name="setPositionNotificationPeriod(I)I" />
+		<method name="setRecordPositionUpdateListener(Landroid/media/AudioRecord$OnRecordPositionUpdateListener;)V" />
+		<method name="setRecordPositionUpdateListener(Landroid/media/AudioRecord$OnRecordPositionUpdateListener;Landroid/os/Handler;)V" />
+		<method name="startRecording()V" />
+		<method name="stop()V" />
+		<field name="ERROR" />
+		<field name="ERROR_BAD_VALUE" />
+		<field name="ERROR_INVALID_OPERATION" />
+		<field name="RECORDSTATE_RECORDING" />
+		<field name="RECORDSTATE_STOPPED" />
+		<field name="STATE_INITIALIZED" />
+		<field name="STATE_UNINITIALIZED" />
+		<field name="SUCCESS" />
+	</class>
+	<class name="android/media/AudioRecord$OnRecordPositionUpdateListener" since="3">
+		<method name="onMarkerReached(Landroid/media/AudioRecord;)V" />
+		<method name="onPeriodicNotification(Landroid/media/AudioRecord;)V" />
+	</class>
+	<class name="android/media/AudioTrack" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(IIIIII)V" />
+		<method name="&lt;init>(IIIIIII)V" since="9" />
+		<method name="attachAuxEffect(I)I" since="9" />
+		<method name="flush()V" />
+		<method name="getAudioFormat()I" />
+		<method name="getAudioSessionId()I" since="9" />
+		<method name="getChannelConfiguration()I" />
+		<method name="getChannelCount()I" />
+		<method name="getMaxVolume()F" />
+		<method name="getMinBufferSize(III)I" />
+		<method name="getMinVolume()F" />
+		<method name="getNativeFrameCount()I" />
+		<method name="getNativeOutputSampleRate(I)I" />
+		<method name="getNotificationMarkerPosition()I" />
+		<method name="getPlayState()I" />
+		<method name="getPlaybackHeadPosition()I" />
+		<method name="getPlaybackRate()I" />
+		<method name="getPositionNotificationPeriod()I" />
+		<method name="getSampleRate()I" />
+		<method name="getState()I" />
+		<method name="getStreamType()I" />
+		<method name="pause()V" />
+		<method name="play()V" />
+		<method name="release()V" />
+		<method name="reloadStaticData()I" />
+		<method name="setAuxEffectSendLevel(F)I" since="9" />
+		<method name="setLoopPoints(III)I" />
+		<method name="setNotificationMarkerPosition(I)I" />
+		<method name="setPlaybackHeadPosition(I)I" />
+		<method name="setPlaybackPositionUpdateListener(Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;)V" />
+		<method name="setPlaybackPositionUpdateListener(Landroid/media/AudioTrack$OnPlaybackPositionUpdateListener;Landroid/os/Handler;)V" />
+		<method name="setPlaybackRate(I)I" />
+		<method name="setPositionNotificationPeriod(I)I" />
+		<method name="setState(I)V" />
+		<method name="setStereoVolume(FF)I" />
+		<method name="stop()V" />
+		<method name="write([BII)I" />
+		<method name="write([SII)I" />
+		<field name="ERROR" />
+		<field name="ERROR_BAD_VALUE" />
+		<field name="ERROR_INVALID_OPERATION" />
+		<field name="MODE_STATIC" />
+		<field name="MODE_STREAM" />
+		<field name="PLAYSTATE_PAUSED" />
+		<field name="PLAYSTATE_PLAYING" />
+		<field name="PLAYSTATE_STOPPED" />
+		<field name="STATE_INITIALIZED" />
+		<field name="STATE_NO_STATIC_DATA" />
+		<field name="STATE_UNINITIALIZED" />
+		<field name="SUCCESS" />
+	</class>
+	<class name="android/media/AudioTrack$OnPlaybackPositionUpdateListener" since="3">
+		<method name="onMarkerReached(Landroid/media/AudioTrack;)V" />
+		<method name="onPeriodicNotification(Landroid/media/AudioTrack;)V" />
+	</class>
+	<class name="android/media/CamcorderProfile" since="8">
+		<extends name="java/lang/Object" />
+		<method name="get(I)Landroid/media/CamcorderProfile;" />
+		<method name="get(II)Landroid/media/CamcorderProfile;" since="9" />
+		<method name="hasProfile(I)Z" since="11" />
+		<method name="hasProfile(II)Z" since="11" />
+		<field name="QUALITY_1080P" since="11" />
+		<field name="QUALITY_480P" since="11" />
+		<field name="QUALITY_720P" since="11" />
+		<field name="QUALITY_CIF" since="11" />
+		<field name="QUALITY_HIGH" />
+		<field name="QUALITY_LOW" />
+		<field name="QUALITY_QCIF" since="11" />
+		<field name="QUALITY_QVGA" since="15" />
+		<field name="QUALITY_TIME_LAPSE_1080P" since="11" />
+		<field name="QUALITY_TIME_LAPSE_480P" since="11" />
+		<field name="QUALITY_TIME_LAPSE_720P" since="11" />
+		<field name="QUALITY_TIME_LAPSE_CIF" since="11" />
+		<field name="QUALITY_TIME_LAPSE_HIGH" since="11" />
+		<field name="QUALITY_TIME_LAPSE_LOW" since="11" />
+		<field name="QUALITY_TIME_LAPSE_QCIF" since="11" />
+		<field name="QUALITY_TIME_LAPSE_QVGA" since="15" />
+		<field name="audioBitRate" />
+		<field name="audioChannels" />
+		<field name="audioCodec" />
+		<field name="audioSampleRate" />
+		<field name="duration" />
+		<field name="fileFormat" />
+		<field name="quality" />
+		<field name="videoBitRate" />
+		<field name="videoCodec" />
+		<field name="videoFrameHeight" />
+		<field name="videoFrameRate" />
+		<field name="videoFrameWidth" />
+	</class>
+	<class name="android/media/CameraProfile" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getJpegEncodingQualityParameter(I)I" />
+		<method name="getJpegEncodingQualityParameter(II)I" since="9" />
+		<field name="QUALITY_HIGH" />
+		<field name="QUALITY_LOW" />
+		<field name="QUALITY_MEDIUM" />
+	</class>
+	<class name="android/media/ExifInterface" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getAltitude(D)D" since="9" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getAttributeDouble(Ljava/lang/String;D)D" since="8" />
+		<method name="getAttributeInt(Ljava/lang/String;I)I" />
+		<method name="getLatLong([F)Z" />
+		<method name="getThumbnail()[B" />
+		<method name="hasThumbnail()Z" />
+		<method name="saveAttributes()V" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="ORIENTATION_FLIP_HORIZONTAL" />
+		<field name="ORIENTATION_FLIP_VERTICAL" />
+		<field name="ORIENTATION_NORMAL" />
+		<field name="ORIENTATION_ROTATE_180" />
+		<field name="ORIENTATION_ROTATE_270" />
+		<field name="ORIENTATION_ROTATE_90" />
+		<field name="ORIENTATION_TRANSPOSE" />
+		<field name="ORIENTATION_TRANSVERSE" />
+		<field name="ORIENTATION_UNDEFINED" />
+		<field name="TAG_APERTURE" since="11" />
+		<field name="TAG_DATETIME" />
+		<field name="TAG_EXPOSURE_TIME" since="11" />
+		<field name="TAG_FLASH" />
+		<field name="TAG_FOCAL_LENGTH" since="8" />
+		<field name="TAG_GPS_ALTITUDE" since="9" />
+		<field name="TAG_GPS_ALTITUDE_REF" since="9" />
+		<field name="TAG_GPS_DATESTAMP" since="8" />
+		<field name="TAG_GPS_LATITUDE" />
+		<field name="TAG_GPS_LATITUDE_REF" />
+		<field name="TAG_GPS_LONGITUDE" />
+		<field name="TAG_GPS_LONGITUDE_REF" />
+		<field name="TAG_GPS_PROCESSING_METHOD" since="8" />
+		<field name="TAG_GPS_TIMESTAMP" since="8" />
+		<field name="TAG_IMAGE_LENGTH" />
+		<field name="TAG_IMAGE_WIDTH" />
+		<field name="TAG_ISO" since="11" />
+		<field name="TAG_MAKE" />
+		<field name="TAG_MODEL" />
+		<field name="TAG_ORIENTATION" />
+		<field name="TAG_WHITE_BALANCE" />
+		<field name="WHITEBALANCE_AUTO" />
+		<field name="WHITEBALANCE_MANUAL" />
+	</class>
+	<class name="android/media/FaceDetector" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(III)V" />
+		<method name="findFaces(Landroid/graphics/Bitmap;[Landroid/media/FaceDetector$Face;)I" />
+	</class>
+	<class name="android/media/FaceDetector$Face" since="1">
+		<extends name="java/lang/Object" />
+		<method name="confidence()F" />
+		<method name="eyesDistance()F" />
+		<method name="getMidPoint(Landroid/graphics/PointF;)V" />
+		<method name="pose(I)F" />
+		<field name="CONFIDENCE_THRESHOLD" />
+		<field name="EULER_X" />
+		<field name="EULER_Y" />
+		<field name="EULER_Z" />
+	</class>
+	<class name="android/media/JetPlayer" since="3">
+		<extends name="java/lang/Object" />
+		<method name="clearQueue()Z" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="closeJetFile()Z" />
+		<method name="getJetPlayer()Landroid/media/JetPlayer;" />
+		<method name="getMaxTracks()I" />
+		<method name="loadJetFile(Landroid/content/res/AssetFileDescriptor;)Z" />
+		<method name="loadJetFile(Ljava/lang/String;)Z" />
+		<method name="pause()Z" />
+		<method name="play()Z" />
+		<method name="queueJetSegment(IIIIIB)Z" />
+		<method name="queueJetSegmentMuteArray(IIII[ZB)Z" />
+		<method name="release()V" />
+		<method name="setEventListener(Landroid/media/JetPlayer$OnJetEventListener;)V" />
+		<method name="setEventListener(Landroid/media/JetPlayer$OnJetEventListener;Landroid/os/Handler;)V" />
+		<method name="setMuteArray([ZZ)Z" />
+		<method name="setMuteFlag(IZZ)Z" />
+		<method name="setMuteFlags(IZ)Z" />
+		<method name="triggerClip(I)Z" />
+	</class>
+	<class name="android/media/JetPlayer$OnJetEventListener" since="3">
+		<method name="onJetEvent(Landroid/media/JetPlayer;SBBBB)V" />
+		<method name="onJetNumQueuedSegmentUpdate(Landroid/media/JetPlayer;I)V" />
+		<method name="onJetPauseUpdate(Landroid/media/JetPlayer;I)V" />
+		<method name="onJetUserIdUpdate(Landroid/media/JetPlayer;II)V" />
+	</class>
+	<class name="android/media/MediaMetadataRetriever" since="10">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="extractMetadata(I)Ljava/lang/String;" />
+		<method name="getEmbeddedPicture()[B" />
+		<method name="getFrameAtTime()Landroid/graphics/Bitmap;" />
+		<method name="getFrameAtTime(J)Landroid/graphics/Bitmap;" />
+		<method name="getFrameAtTime(JI)Landroid/graphics/Bitmap;" />
+		<method name="release()V" />
+		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;)V" />
+		<method name="setDataSource(Ljava/io/FileDescriptor;)V" />
+		<method name="setDataSource(Ljava/io/FileDescriptor;JJ)V" />
+		<method name="setDataSource(Ljava/lang/String;)V" />
+		<method name="setDataSource(Ljava/lang/String;Ljava/util/Map;)V" since="14" />
+		<field name="METADATA_KEY_ALBUM" />
+		<field name="METADATA_KEY_ALBUMARTIST" />
+		<field name="METADATA_KEY_ARTIST" />
+		<field name="METADATA_KEY_AUTHOR" />
+		<field name="METADATA_KEY_BITRATE" since="14" />
+		<field name="METADATA_KEY_CD_TRACK_NUMBER" />
+		<field name="METADATA_KEY_COMPILATION" />
+		<field name="METADATA_KEY_COMPOSER" />
+		<field name="METADATA_KEY_DATE" />
+		<field name="METADATA_KEY_DISC_NUMBER" />
+		<field name="METADATA_KEY_DURATION" />
+		<field name="METADATA_KEY_GENRE" />
+		<field name="METADATA_KEY_HAS_AUDIO" since="14" />
+		<field name="METADATA_KEY_HAS_VIDEO" since="14" />
+		<field name="METADATA_KEY_LOCATION" since="15" />
+		<field name="METADATA_KEY_MIMETYPE" />
+		<field name="METADATA_KEY_NUM_TRACKS" />
+		<field name="METADATA_KEY_TITLE" />
+		<field name="METADATA_KEY_VIDEO_HEIGHT" since="14" />
+		<field name="METADATA_KEY_VIDEO_WIDTH" since="14" />
+		<field name="METADATA_KEY_WRITER" />
+		<field name="METADATA_KEY_YEAR" />
+		<field name="OPTION_CLOSEST" />
+		<field name="OPTION_CLOSEST_SYNC" />
+		<field name="OPTION_NEXT_SYNC" />
+		<field name="OPTION_PREVIOUS_SYNC" />
+	</class>
+	<class name="android/media/MediaPlayer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="attachAuxEffect(I)V" since="9" />
+		<method name="create(Landroid/content/Context;I)Landroid/media/MediaPlayer;" />
+		<method name="create(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/MediaPlayer;" />
+		<method name="create(Landroid/content/Context;Landroid/net/Uri;Landroid/view/SurfaceHolder;)Landroid/media/MediaPlayer;" />
+		<method name="getAudioSessionId()I" since="9" />
+		<method name="getCurrentPosition()I" />
+		<method name="getDuration()I" />
+		<method name="getVideoHeight()I" />
+		<method name="getVideoWidth()I" />
+		<method name="isLooping()Z" since="3" />
+		<method name="isPlaying()Z" />
+		<method name="pause()V" />
+		<method name="prepare()V" />
+		<method name="prepareAsync()V" />
+		<method name="release()V" />
+		<method name="reset()V" />
+		<method name="seekTo(I)V" />
+		<method name="setAudioSessionId(I)V" since="9" />
+		<method name="setAudioStreamType(I)V" />
+		<method name="setAuxEffectSendLevel(F)V" since="9" />
+		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;)V" />
+		<method name="setDataSource(Landroid/content/Context;Landroid/net/Uri;Ljava/util/Map;)V" since="14" />
+		<method name="setDataSource(Ljava/io/FileDescriptor;)V" />
+		<method name="setDataSource(Ljava/io/FileDescriptor;JJ)V" />
+		<method name="setDataSource(Ljava/lang/String;)V" />
+		<method name="setDisplay(Landroid/view/SurfaceHolder;)V" />
+		<method name="setLooping(Z)V" />
+		<method name="setOnBufferingUpdateListener(Landroid/media/MediaPlayer$OnBufferingUpdateListener;)V" />
+		<method name="setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V" />
+		<method name="setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V" />
+		<method name="setOnInfoListener(Landroid/media/MediaPlayer$OnInfoListener;)V" since="3" />
+		<method name="setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V" />
+		<method name="setOnSeekCompleteListener(Landroid/media/MediaPlayer$OnSeekCompleteListener;)V" />
+		<method name="setOnVideoSizeChangedListener(Landroid/media/MediaPlayer$OnVideoSizeChangedListener;)V" since="3" />
+		<method name="setScreenOnWhilePlaying(Z)V" />
+		<method name="setSurface(Landroid/view/Surface;)V" since="14" />
+		<method name="setVolume(FF)V" />
+		<method name="setWakeMode(Landroid/content/Context;I)V" />
+		<method name="start()V" />
+		<method name="stop()V" />
+		<field name="MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK" since="3" />
+		<field name="MEDIA_ERROR_SERVER_DIED" />
+		<field name="MEDIA_ERROR_UNKNOWN" />
+		<field name="MEDIA_INFO_BAD_INTERLEAVING" since="3" />
+		<field name="MEDIA_INFO_BUFFERING_END" since="9" />
+		<field name="MEDIA_INFO_BUFFERING_START" since="9" />
+		<field name="MEDIA_INFO_METADATA_UPDATE" since="5" />
+		<field name="MEDIA_INFO_NOT_SEEKABLE" since="3" />
+		<field name="MEDIA_INFO_UNKNOWN" since="3" />
+		<field name="MEDIA_INFO_VIDEO_TRACK_LAGGING" since="3" />
+	</class>
+	<class name="android/media/MediaPlayer$OnBufferingUpdateListener" since="1">
+		<method name="onBufferingUpdate(Landroid/media/MediaPlayer;I)V" />
+	</class>
+	<class name="android/media/MediaPlayer$OnCompletionListener" since="1">
+		<method name="onCompletion(Landroid/media/MediaPlayer;)V" />
+	</class>
+	<class name="android/media/MediaPlayer$OnErrorListener" since="1">
+		<method name="onError(Landroid/media/MediaPlayer;II)Z" />
+	</class>
+	<class name="android/media/MediaPlayer$OnInfoListener" since="3">
+		<method name="onInfo(Landroid/media/MediaPlayer;II)Z" />
+	</class>
+	<class name="android/media/MediaPlayer$OnPreparedListener" since="1">
+		<method name="onPrepared(Landroid/media/MediaPlayer;)V" />
+	</class>
+	<class name="android/media/MediaPlayer$OnSeekCompleteListener" since="1">
+		<method name="onSeekComplete(Landroid/media/MediaPlayer;)V" />
+	</class>
+	<class name="android/media/MediaPlayer$OnVideoSizeChangedListener" since="3">
+		<method name="onVideoSizeChanged(Landroid/media/MediaPlayer;II)V" />
+	</class>
+	<class name="android/media/MediaRecorder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAudioSourceMax()I" since="4" />
+		<method name="getMaxAmplitude()I" />
+		<method name="prepare()V" />
+		<method name="release()V" />
+		<method name="reset()V" />
+		<method name="setAudioChannels(I)V" since="8" />
+		<method name="setAudioEncoder(I)V" />
+		<method name="setAudioEncodingBitRate(I)V" since="8" />
+		<method name="setAudioSamplingRate(I)V" since="8" />
+		<method name="setAudioSource(I)V" />
+		<method name="setAuxiliaryOutputFile(Ljava/io/FileDescriptor;)V" since="11" />
+		<method name="setAuxiliaryOutputFile(Ljava/lang/String;)V" since="11" />
+		<method name="setCamera(Landroid/hardware/Camera;)V" since="3" />
+		<method name="setCaptureRate(D)V" since="11" />
+		<method name="setLocation(FF)V" since="14" />
+		<method name="setMaxDuration(I)V" since="3" />
+		<method name="setMaxFileSize(J)V" since="3" />
+		<method name="setOnErrorListener(Landroid/media/MediaRecorder$OnErrorListener;)V" since="3" />
+		<method name="setOnInfoListener(Landroid/media/MediaRecorder$OnInfoListener;)V" since="3" />
+		<method name="setOrientationHint(I)V" since="9" />
+		<method name="setOutputFile(Ljava/io/FileDescriptor;)V" since="3" />
+		<method name="setOutputFile(Ljava/lang/String;)V" />
+		<method name="setOutputFormat(I)V" />
+		<method name="setPreviewDisplay(Landroid/view/Surface;)V" />
+		<method name="setProfile(Landroid/media/CamcorderProfile;)V" since="8" />
+		<method name="setVideoEncoder(I)V" since="3" />
+		<method name="setVideoEncodingBitRate(I)V" since="8" />
+		<method name="setVideoFrameRate(I)V" since="3" />
+		<method name="setVideoSize(II)V" since="3" />
+		<method name="setVideoSource(I)V" since="3" />
+		<method name="start()V" />
+		<method name="stop()V" />
+		<field name="MEDIA_RECORDER_ERROR_UNKNOWN" since="3" />
+		<field name="MEDIA_RECORDER_INFO_MAX_DURATION_REACHED" since="3" />
+		<field name="MEDIA_RECORDER_INFO_MAX_FILESIZE_REACHED" since="3" />
+		<field name="MEDIA_RECORDER_INFO_UNKNOWN" since="3" />
+	</class>
+	<class name="android/media/MediaRecorder$AudioEncoder" since="1">
+		<extends name="java/lang/Object" />
+		<field name="AAC" since="10" />
+		<field name="AMR_NB" />
+		<field name="AMR_WB" since="10" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="android/media/MediaRecorder$AudioSource" since="1">
+		<extends name="java/lang/Object" />
+		<field name="CAMCORDER" since="7" />
+		<field name="DEFAULT" />
+		<field name="MIC" />
+		<field name="VOICE_CALL" since="4" />
+		<field name="VOICE_COMMUNICATION" since="11" />
+		<field name="VOICE_DOWNLINK" since="4" />
+		<field name="VOICE_RECOGNITION" since="7" />
+		<field name="VOICE_UPLINK" since="4" />
+	</class>
+	<class name="android/media/MediaRecorder$OnErrorListener" since="3">
+		<method name="onError(Landroid/media/MediaRecorder;II)V" />
+	</class>
+	<class name="android/media/MediaRecorder$OnInfoListener" since="3">
+		<method name="onInfo(Landroid/media/MediaRecorder;II)V" />
+	</class>
+	<class name="android/media/MediaRecorder$OutputFormat" since="1">
+		<extends name="java/lang/Object" />
+		<field name="AMR_NB" since="10" />
+		<field name="AMR_WB" since="10" />
+		<field name="DEFAULT" />
+		<field name="MPEG_4" />
+		<field name="RAW_AMR" since="3" />
+		<field name="THREE_GPP" />
+	</class>
+	<class name="android/media/MediaRecorder$VideoEncoder" since="3">
+		<extends name="java/lang/Object" />
+		<field name="DEFAULT" />
+		<field name="H263" />
+		<field name="H264" />
+		<field name="MPEG_4_SP" />
+	</class>
+	<class name="android/media/MediaRecorder$VideoSource" since="3">
+		<extends name="java/lang/Object" />
+		<field name="CAMERA" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="android/media/MediaScannerConnection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/content/ServiceConnection" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/media/MediaScannerConnection$MediaScannerConnectionClient;)V" />
+		<method name="connect()V" />
+		<method name="disconnect()V" />
+		<method name="isConnected()Z" />
+		<method name="onServiceConnected(Landroid/content/ComponentName;Landroid/os/IBinder;)V" />
+		<method name="onServiceDisconnected(Landroid/content/ComponentName;)V" />
+		<method name="scanFile(Landroid/content/Context;[Ljava/lang/String;[Ljava/lang/String;Landroid/media/MediaScannerConnection$OnScanCompletedListener;)V" since="8" />
+		<method name="scanFile(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/media/MediaScannerConnection$MediaScannerConnectionClient" since="1">
+		<implements name="android/media/MediaScannerConnection$OnScanCompletedListener" since="8" />
+		<method name="onMediaScannerConnected()V" />
+		<method name="onScanCompleted(Ljava/lang/String;Landroid/net/Uri;)V" />
+	</class>
+	<class name="android/media/MediaScannerConnection$OnScanCompletedListener" since="8">
+		<method name="onScanCompleted(Ljava/lang/String;Landroid/net/Uri;)V" />
+	</class>
+	<class name="android/media/RemoteControlClient" since="14">
+		<method name="&lt;init>(Landroid/app/PendingIntent;)V" />
+		<method name="&lt;init>(Landroid/app/PendingIntent;Landroid/os/Looper;)V" />
+		<method name="editMetadata(Z)Landroid/media/RemoteControlClient$MetadataEditor;" />
+		<method name="setPlaybackState(I)V" />
+		<method name="setTransportControlFlags(I)V" />
+		<field name="FLAG_KEY_MEDIA_FAST_FORWARD" />
+		<field name="FLAG_KEY_MEDIA_NEXT" />
+		<field name="FLAG_KEY_MEDIA_PAUSE" />
+		<field name="FLAG_KEY_MEDIA_PLAY" />
+		<field name="FLAG_KEY_MEDIA_PLAY_PAUSE" />
+		<field name="FLAG_KEY_MEDIA_PREVIOUS" />
+		<field name="FLAG_KEY_MEDIA_REWIND" />
+		<field name="FLAG_KEY_MEDIA_STOP" />
+		<field name="PLAYSTATE_BUFFERING" />
+		<field name="PLAYSTATE_ERROR" />
+		<field name="PLAYSTATE_FAST_FORWARDING" />
+		<field name="PLAYSTATE_PAUSED" />
+		<field name="PLAYSTATE_PLAYING" />
+		<field name="PLAYSTATE_REWINDING" />
+		<field name="PLAYSTATE_SKIPPING_BACKWARDS" />
+		<field name="PLAYSTATE_SKIPPING_FORWARDS" />
+		<field name="PLAYSTATE_STOPPED" />
+	</class>
+	<class name="android/media/RemoteControlClient$MetadataEditor" since="14">
+		<method name="apply()V" />
+		<method name="clear()V" />
+		<method name="putBitmap(ILandroid/graphics/Bitmap;)Landroid/media/RemoteControlClient$MetadataEditor;" />
+		<method name="putLong(IJ)Landroid/media/RemoteControlClient$MetadataEditor;" />
+		<method name="putString(ILjava/lang/String;)Landroid/media/RemoteControlClient$MetadataEditor;" />
+		<field name="BITMAP_KEY_ARTWORK" />
+	</class>
+	<class name="android/media/Ringtone" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getStreamType()I" />
+		<method name="getTitle(Landroid/content/Context;)Ljava/lang/String;" />
+		<method name="isPlaying()Z" />
+		<method name="play()V" />
+		<method name="setStreamType(I)V" />
+		<method name="stop()V" />
+	</class>
+	<class name="android/media/RingtoneManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/app/Activity;)V" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="getActualDefaultRingtoneUri(Landroid/content/Context;I)Landroid/net/Uri;" />
+		<method name="getCursor()Landroid/database/Cursor;" />
+		<method name="getDefaultType(Landroid/net/Uri;)I" />
+		<method name="getDefaultUri(I)Landroid/net/Uri;" />
+		<method name="getIncludeDrm()Z" />
+		<method name="getRingtone(I)Landroid/media/Ringtone;" />
+		<method name="getRingtone(Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone;" />
+		<method name="getRingtonePosition(Landroid/net/Uri;)I" />
+		<method name="getRingtoneUri(I)Landroid/net/Uri;" />
+		<method name="getStopPreviousRingtone()Z" />
+		<method name="getValidRingtoneUri(Landroid/content/Context;)Landroid/net/Uri;" />
+		<method name="inferStreamType()I" since="3" />
+		<method name="isDefault(Landroid/net/Uri;)Z" />
+		<method name="setActualDefaultRingtoneUri(Landroid/content/Context;ILandroid/net/Uri;)V" />
+		<method name="setIncludeDrm(Z)V" />
+		<method name="setStopPreviousRingtone(Z)V" />
+		<method name="setType(I)V" />
+		<method name="stopPreviousRingtone()V" />
+		<field name="ACTION_RINGTONE_PICKER" />
+		<field name="EXTRA_RINGTONE_DEFAULT_URI" />
+		<field name="EXTRA_RINGTONE_EXISTING_URI" />
+		<field name="EXTRA_RINGTONE_INCLUDE_DRM" />
+		<field name="EXTRA_RINGTONE_PICKED_URI" />
+		<field name="EXTRA_RINGTONE_SHOW_DEFAULT" />
+		<field name="EXTRA_RINGTONE_SHOW_SILENT" />
+		<field name="EXTRA_RINGTONE_TITLE" />
+		<field name="EXTRA_RINGTONE_TYPE" />
+		<field name="ID_COLUMN_INDEX" />
+		<field name="TITLE_COLUMN_INDEX" />
+		<field name="TYPE_ALARM" />
+		<field name="TYPE_ALL" />
+		<field name="TYPE_NOTIFICATION" />
+		<field name="TYPE_RINGTONE" />
+		<field name="URI_COLUMN_INDEX" />
+	</class>
+	<class name="android/media/SoundPool" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(III)V" />
+		<method name="autoPause()V" since="8" />
+		<method name="autoResume()V" since="8" />
+		<method name="load(Landroid/content/Context;II)I" />
+		<method name="load(Landroid/content/res/AssetFileDescriptor;I)I" since="3" />
+		<method name="load(Ljava/io/FileDescriptor;JJI)I" since="3" />
+		<method name="load(Ljava/lang/String;I)I" />
+		<method name="pause(I)V" />
+		<method name="play(IFFIIF)I" />
+		<method name="release()V" />
+		<method name="resume(I)V" />
+		<method name="setLoop(II)V" />
+		<method name="setOnLoadCompleteListener(Landroid/media/SoundPool$OnLoadCompleteListener;)V" since="8" />
+		<method name="setPriority(II)V" />
+		<method name="setRate(IF)V" />
+		<method name="setVolume(IFF)V" />
+		<method name="stop(I)V" />
+		<method name="unload(I)Z" />
+	</class>
+	<class name="android/media/SoundPool$OnLoadCompleteListener" since="8">
+		<method name="onLoadComplete(Landroid/media/SoundPool;II)V" />
+	</class>
+	<class name="android/media/ThumbnailUtils" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="createVideoThumbnail(Ljava/lang/String;I)Landroid/graphics/Bitmap;" />
+		<method name="extractThumbnail(Landroid/graphics/Bitmap;II)Landroid/graphics/Bitmap;" />
+		<method name="extractThumbnail(Landroid/graphics/Bitmap;III)Landroid/graphics/Bitmap;" />
+		<field name="OPTIONS_RECYCLE_INPUT" />
+	</class>
+	<class name="android/media/ToneGenerator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(II)V" />
+		<method name="release()V" />
+		<method name="startTone(I)Z" />
+		<method name="startTone(II)Z" since="5" />
+		<method name="stopTone()V" />
+		<field name="MAX_VOLUME" />
+		<field name="MIN_VOLUME" />
+		<field name="TONE_CDMA_ABBR_ALERT" since="4" />
+		<field name="TONE_CDMA_ABBR_INTERCEPT" since="4" />
+		<field name="TONE_CDMA_ABBR_REORDER" since="4" />
+		<field name="TONE_CDMA_ALERT_AUTOREDIAL_LITE" since="4" />
+		<field name="TONE_CDMA_ALERT_CALL_GUARD" since="4" />
+		<field name="TONE_CDMA_ALERT_INCALL_LITE" since="4" />
+		<field name="TONE_CDMA_ALERT_NETWORK_LITE" since="4" />
+		<field name="TONE_CDMA_ANSWER" since="4" />
+		<field name="TONE_CDMA_CALLDROP_LITE" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_INTERGROUP" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_NORMAL" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT3" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT5" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT6" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PAT7" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_PING_RING" since="4" />
+		<field name="TONE_CDMA_CALL_SIGNAL_ISDN_SP_PRI" since="4" />
+		<field name="TONE_CDMA_CONFIRM" since="4" />
+		<field name="TONE_CDMA_DIAL_TONE_LITE" since="4" />
+		<field name="TONE_CDMA_EMERGENCY_RINGBACK" since="4" />
+		<field name="TONE_CDMA_HIGH_L" since="4" />
+		<field name="TONE_CDMA_HIGH_PBX_L" since="4" />
+		<field name="TONE_CDMA_HIGH_PBX_SLS" since="4" />
+		<field name="TONE_CDMA_HIGH_PBX_SS" since="4" />
+		<field name="TONE_CDMA_HIGH_PBX_SSL" since="4" />
+		<field name="TONE_CDMA_HIGH_PBX_S_X4" since="4" />
+		<field name="TONE_CDMA_HIGH_SLS" since="4" />
+		<field name="TONE_CDMA_HIGH_SS" since="4" />
+		<field name="TONE_CDMA_HIGH_SSL" since="4" />
+		<field name="TONE_CDMA_HIGH_SS_2" since="4" />
+		<field name="TONE_CDMA_HIGH_S_X4" since="4" />
+		<field name="TONE_CDMA_INTERCEPT" since="4" />
+		<field name="TONE_CDMA_KEYPAD_VOLUME_KEY_LITE" since="4" />
+		<field name="TONE_CDMA_LOW_L" since="4" />
+		<field name="TONE_CDMA_LOW_PBX_L" since="4" />
+		<field name="TONE_CDMA_LOW_PBX_SLS" since="4" />
+		<field name="TONE_CDMA_LOW_PBX_SS" since="4" />
+		<field name="TONE_CDMA_LOW_PBX_SSL" since="4" />
+		<field name="TONE_CDMA_LOW_PBX_S_X4" since="4" />
+		<field name="TONE_CDMA_LOW_SLS" since="4" />
+		<field name="TONE_CDMA_LOW_SS" since="4" />
+		<field name="TONE_CDMA_LOW_SSL" since="4" />
+		<field name="TONE_CDMA_LOW_SS_2" since="4" />
+		<field name="TONE_CDMA_LOW_S_X4" since="4" />
+		<field name="TONE_CDMA_MED_L" since="4" />
+		<field name="TONE_CDMA_MED_PBX_L" since="4" />
+		<field name="TONE_CDMA_MED_PBX_SLS" since="4" />
+		<field name="TONE_CDMA_MED_PBX_SS" since="4" />
+		<field name="TONE_CDMA_MED_PBX_SSL" since="4" />
+		<field name="TONE_CDMA_MED_PBX_S_X4" since="4" />
+		<field name="TONE_CDMA_MED_SLS" since="4" />
+		<field name="TONE_CDMA_MED_SS" since="4" />
+		<field name="TONE_CDMA_MED_SSL" since="4" />
+		<field name="TONE_CDMA_MED_SS_2" since="4" />
+		<field name="TONE_CDMA_MED_S_X4" since="4" />
+		<field name="TONE_CDMA_NETWORK_BUSY" since="4" />
+		<field name="TONE_CDMA_NETWORK_BUSY_ONE_SHOT" since="4" />
+		<field name="TONE_CDMA_NETWORK_CALLWAITING" since="4" />
+		<field name="TONE_CDMA_NETWORK_USA_RINGBACK" since="4" />
+		<field name="TONE_CDMA_ONE_MIN_BEEP" since="4" />
+		<field name="TONE_CDMA_PIP" since="4" />
+		<field name="TONE_CDMA_PRESSHOLDKEY_LITE" since="4" />
+		<field name="TONE_CDMA_REORDER" since="4" />
+		<field name="TONE_CDMA_SIGNAL_OFF" since="4" />
+		<field name="TONE_CDMA_SOFT_ERROR_LITE" since="4" />
+		<field name="TONE_DTMF_0" />
+		<field name="TONE_DTMF_1" />
+		<field name="TONE_DTMF_2" />
+		<field name="TONE_DTMF_3" />
+		<field name="TONE_DTMF_4" />
+		<field name="TONE_DTMF_5" />
+		<field name="TONE_DTMF_6" />
+		<field name="TONE_DTMF_7" />
+		<field name="TONE_DTMF_8" />
+		<field name="TONE_DTMF_9" />
+		<field name="TONE_DTMF_A" />
+		<field name="TONE_DTMF_B" />
+		<field name="TONE_DTMF_C" />
+		<field name="TONE_DTMF_D" />
+		<field name="TONE_DTMF_P" />
+		<field name="TONE_DTMF_S" />
+		<field name="TONE_PROP_ACK" />
+		<field name="TONE_PROP_BEEP" />
+		<field name="TONE_PROP_BEEP2" />
+		<field name="TONE_PROP_NACK" />
+		<field name="TONE_PROP_PROMPT" />
+		<field name="TONE_SUP_BUSY" />
+		<field name="TONE_SUP_CALL_WAITING" />
+		<field name="TONE_SUP_CONFIRM" since="4" />
+		<field name="TONE_SUP_CONGESTION" />
+		<field name="TONE_SUP_CONGESTION_ABBREV" since="4" />
+		<field name="TONE_SUP_DIAL" />
+		<field name="TONE_SUP_ERROR" />
+		<field name="TONE_SUP_INTERCEPT" since="4" />
+		<field name="TONE_SUP_INTERCEPT_ABBREV" since="4" />
+		<field name="TONE_SUP_PIP" since="4" />
+		<field name="TONE_SUP_RADIO_ACK" />
+		<field name="TONE_SUP_RADIO_NOTAVAIL" />
+		<field name="TONE_SUP_RINGTONE" />
+	</class>
+	<class name="android/media/audiofx/AudioEffect" since="9">
+		<extends name="java/lang/Object" />
+		<method name="getDescriptor()Landroid/media/audiofx/AudioEffect$Descriptor;" />
+		<method name="getEnabled()Z" />
+		<method name="getId()I" />
+		<method name="hasControl()Z" />
+		<method name="queryEffects()[Landroid/media/audiofx/AudioEffect$Descriptor;" />
+		<method name="release()V" />
+		<method name="setControlStatusListener(Landroid/media/audiofx/AudioEffect$OnControlStatusChangeListener;)V" />
+		<method name="setEnableStatusListener(Landroid/media/audiofx/AudioEffect$OnEnableStatusChangeListener;)V" />
+		<method name="setEnabled(Z)I" />
+		<field name="ACTION_CLOSE_AUDIO_EFFECT_CONTROL_SESSION" />
+		<field name="ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL" />
+		<field name="ACTION_OPEN_AUDIO_EFFECT_CONTROL_SESSION" />
+		<field name="ALREADY_EXISTS" />
+		<field name="CONTENT_TYPE_GAME" />
+		<field name="CONTENT_TYPE_MOVIE" />
+		<field name="CONTENT_TYPE_MUSIC" />
+		<field name="CONTENT_TYPE_VOICE" />
+		<field name="EFFECT_AUXILIARY" />
+		<field name="EFFECT_INSERT" />
+		<field name="ERROR" />
+		<field name="ERROR_BAD_VALUE" />
+		<field name="ERROR_DEAD_OBJECT" />
+		<field name="ERROR_INVALID_OPERATION" />
+		<field name="ERROR_NO_INIT" />
+		<field name="ERROR_NO_MEMORY" />
+		<field name="EXTRA_AUDIO_SESSION" />
+		<field name="EXTRA_CONTENT_TYPE" />
+		<field name="EXTRA_PACKAGE_NAME" />
+		<field name="SUCCESS" />
+	</class>
+	<class name="android/media/audiofx/AudioEffect$Descriptor" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="connectMode" />
+		<field name="implementor" />
+		<field name="name" />
+		<field name="type" />
+		<field name="uuid" />
+	</class>
+	<class name="android/media/audiofx/AudioEffect$OnControlStatusChangeListener" since="9">
+		<method name="onControlStatusChange(Landroid/media/audiofx/AudioEffect;Z)V" />
+	</class>
+	<class name="android/media/audiofx/AudioEffect$OnEnableStatusChangeListener" since="9">
+		<method name="onEnableStatusChange(Landroid/media/audiofx/AudioEffect;Z)V" />
+	</class>
+	<class name="android/media/audiofx/BassBoost" since="9">
+		<extends name="android/media/audiofx/AudioEffect" />
+		<method name="&lt;init>(II)V" />
+		<method name="getProperties()Landroid/media/audiofx/BassBoost$Settings;" />
+		<method name="getRoundedStrength()S" />
+		<method name="getStrengthSupported()Z" />
+		<method name="setParameterListener(Landroid/media/audiofx/BassBoost$OnParameterChangeListener;)V" />
+		<method name="setProperties(Landroid/media/audiofx/BassBoost$Settings;)V" />
+		<method name="setStrength(S)V" />
+		<field name="PARAM_STRENGTH" />
+		<field name="PARAM_STRENGTH_SUPPORTED" />
+	</class>
+	<class name="android/media/audiofx/BassBoost$OnParameterChangeListener" since="9">
+		<method name="onParameterChange(Landroid/media/audiofx/BassBoost;IIS)V" />
+	</class>
+	<class name="android/media/audiofx/BassBoost$Settings" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="strength" />
+	</class>
+	<class name="android/media/audiofx/EnvironmentalReverb" since="9">
+		<extends name="android/media/audiofx/AudioEffect" />
+		<method name="&lt;init>(II)V" />
+		<method name="getDecayHFRatio()S" />
+		<method name="getDecayTime()I" />
+		<method name="getDensity()S" />
+		<method name="getDiffusion()S" />
+		<method name="getProperties()Landroid/media/audiofx/EnvironmentalReverb$Settings;" />
+		<method name="getReflectionsDelay()I" />
+		<method name="getReflectionsLevel()S" />
+		<method name="getReverbDelay()I" />
+		<method name="getReverbLevel()S" />
+		<method name="getRoomHFLevel()S" />
+		<method name="getRoomLevel()S" />
+		<method name="setDecayHFRatio(S)V" />
+		<method name="setDecayTime(I)V" />
+		<method name="setDensity(S)V" />
+		<method name="setDiffusion(S)V" />
+		<method name="setParameterListener(Landroid/media/audiofx/EnvironmentalReverb$OnParameterChangeListener;)V" />
+		<method name="setProperties(Landroid/media/audiofx/EnvironmentalReverb$Settings;)V" />
+		<method name="setReflectionsDelay(I)V" />
+		<method name="setReflectionsLevel(S)V" />
+		<method name="setReverbDelay(I)V" />
+		<method name="setReverbLevel(S)V" />
+		<method name="setRoomHFLevel(S)V" />
+		<method name="setRoomLevel(S)V" />
+		<field name="PARAM_DECAY_HF_RATIO" />
+		<field name="PARAM_DECAY_TIME" />
+		<field name="PARAM_DENSITY" />
+		<field name="PARAM_DIFFUSION" />
+		<field name="PARAM_REFLECTIONS_DELAY" />
+		<field name="PARAM_REFLECTIONS_LEVEL" />
+		<field name="PARAM_REVERB_DELAY" />
+		<field name="PARAM_REVERB_LEVEL" />
+		<field name="PARAM_ROOM_HF_LEVEL" />
+		<field name="PARAM_ROOM_LEVEL" />
+	</class>
+	<class name="android/media/audiofx/EnvironmentalReverb$OnParameterChangeListener" since="9">
+		<method name="onParameterChange(Landroid/media/audiofx/EnvironmentalReverb;III)V" />
+	</class>
+	<class name="android/media/audiofx/EnvironmentalReverb$Settings" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="decayHFRatio" />
+		<field name="decayTime" />
+		<field name="density" />
+		<field name="diffusion" />
+		<field name="reflectionsDelay" />
+		<field name="reflectionsLevel" />
+		<field name="reverbDelay" />
+		<field name="reverbLevel" />
+		<field name="roomHFLevel" />
+		<field name="roomLevel" />
+	</class>
+	<class name="android/media/audiofx/Equalizer" since="9">
+		<extends name="android/media/audiofx/AudioEffect" />
+		<method name="&lt;init>(II)V" />
+		<method name="getBand(I)S" />
+		<method name="getBandFreqRange(S)[I" />
+		<method name="getBandLevel(S)S" />
+		<method name="getBandLevelRange()[S" />
+		<method name="getCenterFreq(S)I" />
+		<method name="getCurrentPreset()S" />
+		<method name="getNumberOfBands()S" />
+		<method name="getNumberOfPresets()S" />
+		<method name="getPresetName(S)Ljava/lang/String;" />
+		<method name="getProperties()Landroid/media/audiofx/Equalizer$Settings;" />
+		<method name="setBandLevel(SS)V" />
+		<method name="setParameterListener(Landroid/media/audiofx/Equalizer$OnParameterChangeListener;)V" />
+		<method name="setProperties(Landroid/media/audiofx/Equalizer$Settings;)V" />
+		<method name="usePreset(S)V" />
+		<field name="PARAM_BAND_FREQ_RANGE" />
+		<field name="PARAM_BAND_LEVEL" />
+		<field name="PARAM_CENTER_FREQ" />
+		<field name="PARAM_CURRENT_PRESET" />
+		<field name="PARAM_GET_BAND" />
+		<field name="PARAM_GET_NUM_OF_PRESETS" />
+		<field name="PARAM_GET_PRESET_NAME" />
+		<field name="PARAM_LEVEL_RANGE" />
+		<field name="PARAM_NUM_BANDS" />
+		<field name="PARAM_STRING_SIZE_MAX" />
+	</class>
+	<class name="android/media/audiofx/Equalizer$OnParameterChangeListener" since="9">
+		<method name="onParameterChange(Landroid/media/audiofx/Equalizer;IIII)V" />
+	</class>
+	<class name="android/media/audiofx/Equalizer$Settings" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="bandLevels" />
+		<field name="curPreset" />
+		<field name="numBands" />
+	</class>
+	<class name="android/media/audiofx/PresetReverb" since="9">
+		<extends name="android/media/audiofx/AudioEffect" />
+		<method name="&lt;init>(II)V" />
+		<method name="getPreset()S" />
+		<method name="getProperties()Landroid/media/audiofx/PresetReverb$Settings;" />
+		<method name="setParameterListener(Landroid/media/audiofx/PresetReverb$OnParameterChangeListener;)V" />
+		<method name="setPreset(S)V" />
+		<method name="setProperties(Landroid/media/audiofx/PresetReverb$Settings;)V" />
+		<field name="PARAM_PRESET" />
+		<field name="PRESET_LARGEHALL" />
+		<field name="PRESET_LARGEROOM" />
+		<field name="PRESET_MEDIUMHALL" />
+		<field name="PRESET_MEDIUMROOM" />
+		<field name="PRESET_NONE" />
+		<field name="PRESET_PLATE" />
+		<field name="PRESET_SMALLROOM" />
+	</class>
+	<class name="android/media/audiofx/PresetReverb$OnParameterChangeListener" since="9">
+		<method name="onParameterChange(Landroid/media/audiofx/PresetReverb;IIS)V" />
+	</class>
+	<class name="android/media/audiofx/PresetReverb$Settings" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="preset" />
+	</class>
+	<class name="android/media/audiofx/Virtualizer" since="9">
+		<extends name="android/media/audiofx/AudioEffect" />
+		<method name="&lt;init>(II)V" />
+		<method name="getProperties()Landroid/media/audiofx/Virtualizer$Settings;" />
+		<method name="getRoundedStrength()S" />
+		<method name="getStrengthSupported()Z" />
+		<method name="setParameterListener(Landroid/media/audiofx/Virtualizer$OnParameterChangeListener;)V" />
+		<method name="setProperties(Landroid/media/audiofx/Virtualizer$Settings;)V" />
+		<method name="setStrength(S)V" />
+		<field name="PARAM_STRENGTH" />
+		<field name="PARAM_STRENGTH_SUPPORTED" />
+	</class>
+	<class name="android/media/audiofx/Virtualizer$OnParameterChangeListener" since="9">
+		<method name="onParameterChange(Landroid/media/audiofx/Virtualizer;IIS)V" />
+	</class>
+	<class name="android/media/audiofx/Virtualizer$Settings" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="strength" />
+	</class>
+	<class name="android/media/audiofx/Visualizer" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="getCaptureSize()I" />
+		<method name="getCaptureSizeRange()[I" />
+		<method name="getEnabled()Z" />
+		<method name="getFft([B)I" />
+		<method name="getMaxCaptureRate()I" />
+		<method name="getSamplingRate()I" />
+		<method name="getWaveForm([B)I" />
+		<method name="release()V" />
+		<method name="setCaptureSize(I)I" />
+		<method name="setDataCaptureListener(Landroid/media/audiofx/Visualizer$OnDataCaptureListener;IZZ)I" />
+		<method name="setEnabled(Z)I" />
+		<field name="ALREADY_EXISTS" />
+		<field name="ERROR" />
+		<field name="ERROR_BAD_VALUE" />
+		<field name="ERROR_DEAD_OBJECT" />
+		<field name="ERROR_INVALID_OPERATION" />
+		<field name="ERROR_NO_INIT" />
+		<field name="ERROR_NO_MEMORY" />
+		<field name="STATE_ENABLED" />
+		<field name="STATE_INITIALIZED" />
+		<field name="STATE_UNINITIALIZED" />
+		<field name="SUCCESS" />
+	</class>
+	<class name="android/media/audiofx/Visualizer$OnDataCaptureListener" since="9">
+		<method name="onFftDataCapture(Landroid/media/audiofx/Visualizer;[BI)V" />
+		<method name="onWaveFormDataCapture(Landroid/media/audiofx/Visualizer;[BI)V" />
+	</class>
+	<class name="android/media/effect/Effect" since="14">
+		<method name="&lt;init>()V" />
+		<method name="apply(IIII)V" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="release()V" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setUpdateListener(Landroid/media/effect/EffectUpdateListener;)V" />
+	</class>
+	<class name="android/media/effect/EffectContext" since="14">
+		<method name="createWithCurrentGlContext()Landroid/media/effect/EffectContext;" />
+		<method name="getFactory()Landroid/media/effect/EffectFactory;" />
+		<method name="release()V" />
+	</class>
+	<class name="android/media/effect/EffectFactory" since="14">
+		<method name="createEffect(Ljava/lang/String;)Landroid/media/effect/Effect;" />
+		<method name="isEffectSupported(Ljava/lang/String;)Z" />
+		<field name="EFFECT_AUTOFIX" />
+		<field name="EFFECT_BACKDROPPER" />
+		<field name="EFFECT_BITMAPOVERLAY" />
+		<field name="EFFECT_BLACKWHITE" />
+		<field name="EFFECT_BRIGHTNESS" />
+		<field name="EFFECT_CONTRAST" />
+		<field name="EFFECT_CROP" />
+		<field name="EFFECT_CROSSPROCESS" />
+		<field name="EFFECT_DOCUMENTARY" />
+		<field name="EFFECT_DUOTONE" />
+		<field name="EFFECT_FILLLIGHT" />
+		<field name="EFFECT_FISHEYE" />
+		<field name="EFFECT_FLIP" />
+		<field name="EFFECT_GRAIN" />
+		<field name="EFFECT_GRAYSCALE" />
+		<field name="EFFECT_LOMOISH" />
+		<field name="EFFECT_NEGATIVE" />
+		<field name="EFFECT_POSTERIZE" />
+		<field name="EFFECT_REDEYE" />
+		<field name="EFFECT_ROTATE" />
+		<field name="EFFECT_SATURATE" />
+		<field name="EFFECT_SEPIA" />
+		<field name="EFFECT_SHARPEN" />
+		<field name="EFFECT_STRAIGHTEN" />
+		<field name="EFFECT_TEMPERATURE" />
+		<field name="EFFECT_TINT" />
+		<field name="EFFECT_VIGNETTE" />
+	</class>
+	<class name="android/media/effect/EffectUpdateListener" since="14">
+		<method name="onEffectUpdated(Landroid/media/effect/Effect;Ljava/lang/Object;)V" />
+	</class>
+	<class name="android/mtp/MtpConstants" since="12">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="isAbstractObject(I)Z" />
+		<field name="ASSOCIATION_TYPE_GENERIC_FOLDER" />
+		<field name="FORMAT_3GP_CONTAINER" />
+		<field name="FORMAT_AAC" />
+		<field name="FORMAT_ABSTRACT_AUDIO_ALBUM" />
+		<field name="FORMAT_ABSTRACT_AUDIO_PLAYLIST" />
+		<field name="FORMAT_ABSTRACT_AV_PLAYLIST" />
+		<field name="FORMAT_ABSTRACT_DOCUMENT" />
+		<field name="FORMAT_ABSTRACT_IMAGE_ALBUM" />
+		<field name="FORMAT_ABSTRACT_MEDIACAST" />
+		<field name="FORMAT_ABSTRACT_MULTIMEDIA_ALBUM" />
+		<field name="FORMAT_ABSTRACT_VIDEO_ALBUM" />
+		<field name="FORMAT_ABSTRACT_VIDEO_PLAYLIST" />
+		<field name="FORMAT_AIFF" />
+		<field name="FORMAT_ASF" />
+		<field name="FORMAT_ASSOCIATION" />
+		<field name="FORMAT_ASX_PLAYLIST" />
+		<field name="FORMAT_AUDIBLE" />
+		<field name="FORMAT_AVI" />
+		<field name="FORMAT_BMP" />
+		<field name="FORMAT_DPOF" />
+		<field name="FORMAT_EXECUTABLE" />
+		<field name="FORMAT_EXIF_JPEG" />
+		<field name="FORMAT_FLAC" />
+		<field name="FORMAT_GIF" />
+		<field name="FORMAT_HTML" />
+		<field name="FORMAT_JFIF" />
+		<field name="FORMAT_JP2" />
+		<field name="FORMAT_JPX" />
+		<field name="FORMAT_M3U_PLAYLIST" />
+		<field name="FORMAT_MP2" />
+		<field name="FORMAT_MP3" />
+		<field name="FORMAT_MP4_CONTAINER" />
+		<field name="FORMAT_MPEG" />
+		<field name="FORMAT_MPL_PLAYLIST" />
+		<field name="FORMAT_MS_EXCEL_SPREADSHEET" />
+		<field name="FORMAT_MS_POWERPOINT_PRESENTATION" />
+		<field name="FORMAT_MS_WORD_DOCUMENT" />
+		<field name="FORMAT_OGG" />
+		<field name="FORMAT_PICT" />
+		<field name="FORMAT_PLS_PLAYLIST" />
+		<field name="FORMAT_PNG" />
+		<field name="FORMAT_SCRIPT" />
+		<field name="FORMAT_TEXT" />
+		<field name="FORMAT_TIFF" />
+		<field name="FORMAT_TIFF_EP" />
+		<field name="FORMAT_UNDEFINED" />
+		<field name="FORMAT_UNDEFINED_AUDIO" />
+		<field name="FORMAT_UNDEFINED_COLLECTION" />
+		<field name="FORMAT_UNDEFINED_DOCUMENT" />
+		<field name="FORMAT_UNDEFINED_FIRMWARE" />
+		<field name="FORMAT_UNDEFINED_VIDEO" />
+		<field name="FORMAT_WAV" />
+		<field name="FORMAT_WINDOWS_IMAGE_FORMAT" />
+		<field name="FORMAT_WMA" />
+		<field name="FORMAT_WMV" />
+		<field name="FORMAT_WPL_PLAYLIST" />
+		<field name="FORMAT_XML_DOCUMENT" />
+		<field name="PROTECTION_STATUS_NONE" />
+		<field name="PROTECTION_STATUS_NON_TRANSFERABLE_DATA" />
+		<field name="PROTECTION_STATUS_READ_ONLY" />
+		<field name="PROTECTION_STATUS_READ_ONLY_DATA" />
+	</class>
+	<class name="android/mtp/MtpDevice" since="12">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/hardware/usb/UsbDevice;)V" />
+		<method name="close()V" />
+		<method name="deleteObject(I)Z" />
+		<method name="getDeviceId()I" />
+		<method name="getDeviceInfo()Landroid/mtp/MtpDeviceInfo;" />
+		<method name="getDeviceName()Ljava/lang/String;" />
+		<method name="getObject(II)[B" />
+		<method name="getObjectHandles(III)[I" />
+		<method name="getObjectInfo(I)Landroid/mtp/MtpObjectInfo;" />
+		<method name="getParent(I)J" />
+		<method name="getStorageId(I)J" />
+		<method name="getStorageIds()[I" />
+		<method name="getStorageInfo(I)Landroid/mtp/MtpStorageInfo;" />
+		<method name="getThumbnail(I)[B" />
+		<method name="importFile(ILjava/lang/String;)Z" />
+		<method name="open(Landroid/hardware/usb/UsbDeviceConnection;)Z" />
+	</class>
+	<class name="android/mtp/MtpDeviceInfo" since="12">
+		<extends name="java/lang/Object" />
+		<method name="getManufacturer()Ljava/lang/String;" />
+		<method name="getModel()Ljava/lang/String;" />
+		<method name="getSerialNumber()Ljava/lang/String;" />
+		<method name="getVersion()Ljava/lang/String;" />
+	</class>
+	<class name="android/mtp/MtpObjectInfo" since="12">
+		<extends name="java/lang/Object" />
+		<method name="getAssociationDesc()I" />
+		<method name="getAssociationType()I" />
+		<method name="getCompressedSize()I" />
+		<method name="getDateCreated()J" />
+		<method name="getDateModified()J" />
+		<method name="getFormat()I" />
+		<method name="getImagePixDepth()I" />
+		<method name="getImagePixHeight()I" />
+		<method name="getImagePixWidth()I" />
+		<method name="getKeywords()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getObjectHandle()I" />
+		<method name="getParent()I" />
+		<method name="getProtectionStatus()I" />
+		<method name="getSequenceNumber()I" />
+		<method name="getStorageId()I" />
+		<method name="getThumbCompressedSize()I" />
+		<method name="getThumbFormat()I" />
+		<method name="getThumbPixHeight()I" />
+		<method name="getThumbPixWidth()I" />
+	</class>
+	<class name="android/mtp/MtpStorageInfo" since="12">
+		<extends name="java/lang/Object" />
+		<method name="getDescription()Ljava/lang/String;" />
+		<method name="getFreeSpace()J" />
+		<method name="getMaxCapacity()J" />
+		<method name="getStorageId()I" />
+		<method name="getVolumeIdentifier()Ljava/lang/String;" />
+	</class>
+	<class name="android/net/ConnectivityManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getActiveNetworkInfo()Landroid/net/NetworkInfo;" />
+		<method name="getAllNetworkInfo()[Landroid/net/NetworkInfo;" />
+		<method name="getBackgroundDataSetting()Z" since="3" />
+		<method name="getNetworkInfo(I)Landroid/net/NetworkInfo;" />
+		<method name="getNetworkPreference()I" />
+		<method name="isNetworkTypeValid(I)Z" />
+		<method name="requestRouteToHost(II)Z" />
+		<method name="setNetworkPreference(I)V" />
+		<method name="startUsingNetworkFeature(ILjava/lang/String;)I" />
+		<method name="stopUsingNetworkFeature(ILjava/lang/String;)I" />
+		<field name="ACTION_BACKGROUND_DATA_SETTING_CHANGED" since="3" />
+		<field name="CONNECTIVITY_ACTION" />
+		<field name="DEFAULT_NETWORK_PREFERENCE" />
+		<field name="EXTRA_EXTRA_INFO" />
+		<field name="EXTRA_IS_FAILOVER" />
+		<field name="EXTRA_NETWORK_INFO" />
+		<field name="EXTRA_NO_CONNECTIVITY" />
+		<field name="EXTRA_OTHER_NETWORK_INFO" />
+		<field name="EXTRA_REASON" />
+		<field name="TYPE_BLUETOOTH" since="13" />
+		<field name="TYPE_DUMMY" since="14" />
+		<field name="TYPE_ETHERNET" since="13" />
+		<field name="TYPE_MOBILE" />
+		<field name="TYPE_MOBILE_DUN" since="8" />
+		<field name="TYPE_MOBILE_HIPRI" since="8" />
+		<field name="TYPE_MOBILE_MMS" since="8" />
+		<field name="TYPE_MOBILE_SUPL" since="8" />
+		<field name="TYPE_WIFI" />
+		<field name="TYPE_WIMAX" since="8" />
+	</class>
+	<class name="android/net/Credentials" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(III)V" />
+		<method name="getGid()I" />
+		<method name="getPid()I" />
+		<method name="getUid()I" />
+	</class>
+	<class name="android/net/DhcpInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="dns1" />
+		<field name="dns2" />
+		<field name="gateway" />
+		<field name="ipAddress" />
+		<field name="leaseDuration" />
+		<field name="netmask" />
+		<field name="serverAddress" />
+	</class>
+	<class name="android/net/LocalServerSocket" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="accept()Landroid/net/LocalSocket;" />
+		<method name="close()V" />
+		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
+		<method name="getLocalSocketAddress()Landroid/net/LocalSocketAddress;" />
+	</class>
+	<class name="android/net/LocalSocket" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="bind(Landroid/net/LocalSocketAddress;)V" />
+		<method name="close()V" />
+		<method name="connect(Landroid/net/LocalSocketAddress;)V" />
+		<method name="connect(Landroid/net/LocalSocketAddress;I)V" />
+		<method name="getAncillaryFileDescriptors()[Ljava/io/FileDescriptor;" />
+		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getLocalSocketAddress()Landroid/net/LocalSocketAddress;" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="getPeerCredentials()Landroid/net/Credentials;" />
+		<method name="getReceiveBufferSize()I" />
+		<method name="getRemoteSocketAddress()Landroid/net/LocalSocketAddress;" />
+		<method name="getSendBufferSize()I" />
+		<method name="getSoTimeout()I" />
+		<method name="isBound()Z" />
+		<method name="isClosed()Z" />
+		<method name="isConnected()Z" />
+		<method name="isInputShutdown()Z" />
+		<method name="isOutputShutdown()Z" />
+		<method name="setFileDescriptorsForSend([Ljava/io/FileDescriptor;)V" />
+		<method name="setReceiveBufferSize(I)V" />
+		<method name="setSendBufferSize(I)V" />
+		<method name="setSoTimeout(I)V" />
+		<method name="shutdownInput()V" />
+		<method name="shutdownOutput()V" />
+	</class>
+	<class name="android/net/LocalSocketAddress" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Landroid/net/LocalSocketAddress$Namespace;)V" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getNamespace()Landroid/net/LocalSocketAddress$Namespace;" />
+	</class>
+	<class name="android/net/LocalSocketAddress$Namespace" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/net/LocalSocketAddress$Namespace;" />
+		<method name="values()[Landroid/net/LocalSocketAddress$Namespace;" />
+		<field name="ABSTRACT" />
+		<field name="FILESYSTEM" />
+		<field name="RESERVED" />
+	</class>
+	<class name="android/net/MailTo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getBody()Ljava/lang/String;" />
+		<method name="getCc()Ljava/lang/String;" />
+		<method name="getHeaders()Ljava/util/Map;" />
+		<method name="getSubject()Ljava/lang/String;" />
+		<method name="getTo()Ljava/lang/String;" />
+		<method name="isMailTo(Ljava/lang/String;)Z" />
+		<method name="parse(Ljava/lang/String;)Landroid/net/MailTo;" />
+		<field name="MAILTO_SCHEME" />
+	</class>
+	<class name="android/net/NetworkInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(I)V" />
+		<method name="describeContents()I" />
+		<method name="getDetailedState()Landroid/net/NetworkInfo$DetailedState;" />
+		<method name="getExtraInfo()Ljava/lang/String;" />
+		<method name="getReason()Ljava/lang/String;" />
+		<method name="getState()Landroid/net/NetworkInfo$State;" />
+		<method name="getSubtype()I" since="3" />
+		<method name="getSubtypeName()Ljava/lang/String;" since="3" />
+		<method name="getType()I" />
+		<method name="getTypeName()Ljava/lang/String;" />
+		<method name="isAvailable()Z" />
+		<method name="isConnected()Z" />
+		<method name="isConnectedOrConnecting()Z" />
+		<method name="isFailover()Z" />
+		<method name="isRoaming()Z" since="3" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+	</class>
+	<class name="android/net/NetworkInfo$DetailedState" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$DetailedState;" />
+		<method name="values()[Landroid/net/NetworkInfo$DetailedState;" />
+		<field name="AUTHENTICATING" />
+		<field name="BLOCKED" since="14" />
+		<field name="CONNECTED" />
+		<field name="CONNECTING" />
+		<field name="DISCONNECTED" />
+		<field name="DISCONNECTING" />
+		<field name="FAILED" />
+		<field name="IDLE" />
+		<field name="OBTAINING_IPADDR" />
+		<field name="SCANNING" />
+		<field name="SUSPENDED" />
+	</class>
+	<class name="android/net/NetworkInfo$State" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/net/NetworkInfo$State;" />
+		<method name="values()[Landroid/net/NetworkInfo$State;" />
+		<field name="CONNECTED" />
+		<field name="CONNECTING" />
+		<field name="DISCONNECTED" />
+		<field name="DISCONNECTING" />
+		<field name="SUSPENDED" />
+		<field name="UNKNOWN" />
+	</class>
+	<class name="android/net/ParseException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<field name="response" />
+	</class>
+	<class name="android/net/Proxy" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getDefaultHost()Ljava/lang/String;" />
+		<method name="getDefaultPort()I" />
+		<method name="getHost(Landroid/content/Context;)Ljava/lang/String;" />
+		<method name="getPort(Landroid/content/Context;)I" />
+		<field name="PROXY_CHANGE_ACTION" />
+	</class>
+	<class name="android/net/SSLCertificateSocketFactory" since="1">
+		<extends name="javax/net/ssl/SSLSocketFactory" />
+		<method name="&lt;init>(I)V" />
+		<method name="createSocket(Ljava/lang/String;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" />
+		<method name="getDefault(I)Ljavax/net/SocketFactory;" />
+		<method name="getDefault(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8" />
+		<method name="getDefaultCipherSuites()[Ljava/lang/String;" />
+		<method name="getHttpSocketFactory(ILandroid/net/SSLSessionCache;)Lorg/apache/http/conn/ssl/SSLSocketFactory;" since="8" />
+		<method name="getInsecure(ILandroid/net/SSLSessionCache;)Ljavax/net/ssl/SSLSocketFactory;" since="8" />
+		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
+		<method name="setKeyManagers([Ljavax/net/ssl/KeyManager;)V" since="14" />
+		<method name="setTrustManagers([Ljavax/net/ssl/TrustManager;)V" since="14" />
+	</class>
+	<class name="android/net/SSLSessionCache" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+	</class>
+	<class name="android/net/TrafficStats" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clearThreadStatsTag()V" since="14" />
+		<method name="getMobileRxBytes()J" />
+		<method name="getMobileRxPackets()J" />
+		<method name="getMobileTxBytes()J" />
+		<method name="getMobileTxPackets()J" />
+		<method name="getThreadStatsTag()I" since="14" />
+		<method name="getTotalRxBytes()J" />
+		<method name="getTotalRxPackets()J" />
+		<method name="getTotalTxBytes()J" />
+		<method name="getTotalTxPackets()J" />
+		<method name="getUidRxBytes(I)J" />
+		<method name="getUidRxPackets(I)J" since="12" />
+		<method name="getUidTcpRxBytes(I)J" since="12" />
+		<method name="getUidTcpRxSegments(I)J" since="12" />
+		<method name="getUidTcpTxBytes(I)J" since="12" />
+		<method name="getUidTcpTxSegments(I)J" since="12" />
+		<method name="getUidTxBytes(I)J" />
+		<method name="getUidTxPackets(I)J" since="12" />
+		<method name="getUidUdpRxBytes(I)J" since="12" />
+		<method name="getUidUdpRxPackets(I)J" since="12" />
+		<method name="getUidUdpTxBytes(I)J" since="12" />
+		<method name="getUidUdpTxPackets(I)J" since="12" />
+		<method name="incrementOperationCount(I)V" since="14" />
+		<method name="incrementOperationCount(II)V" since="14" />
+		<method name="setThreadStatsTag(I)V" since="14" />
+		<method name="tagSocket(Ljava/net/Socket;)V" since="14" />
+		<method name="untagSocket(Ljava/net/Socket;)V" since="14" />
+		<field name="UNSUPPORTED" />
+	</class>
+	<class name="android/net/Uri" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="android/os/Parcelable" />
+		<method name="buildUpon()Landroid/net/Uri$Builder;" />
+		<method name="compareTo(Landroid/net/Uri;)I" />
+		<method name="decode(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="encode(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="fromFile(Ljava/io/File;)Landroid/net/Uri;" />
+		<method name="fromParts(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="getAuthority()Ljava/lang/String;" />
+		<method name="getBooleanQueryParameter(Ljava/lang/String;Z)Z" since="11" />
+		<method name="getEncodedAuthority()Ljava/lang/String;" />
+		<method name="getEncodedFragment()Ljava/lang/String;" />
+		<method name="getEncodedPath()Ljava/lang/String;" />
+		<method name="getEncodedQuery()Ljava/lang/String;" />
+		<method name="getEncodedSchemeSpecificPart()Ljava/lang/String;" />
+		<method name="getEncodedUserInfo()Ljava/lang/String;" />
+		<method name="getFragment()Ljava/lang/String;" />
+		<method name="getHost()Ljava/lang/String;" />
+		<method name="getLastPathSegment()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPathSegments()Ljava/util/List;" />
+		<method name="getPort()I" />
+		<method name="getQuery()Ljava/lang/String;" />
+		<method name="getQueryParameter(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getQueryParameterNames()Ljava/util/Set;" since="11" />
+		<method name="getQueryParameters(Ljava/lang/String;)Ljava/util/List;" />
+		<method name="getScheme()Ljava/lang/String;" />
+		<method name="getSchemeSpecificPart()Ljava/lang/String;" />
+		<method name="getUserInfo()Ljava/lang/String;" />
+		<method name="isAbsolute()Z" />
+		<method name="isHierarchical()Z" />
+		<method name="isOpaque()Z" />
+		<method name="isRelative()Z" />
+		<method name="parse(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="withAppendedPath(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="writeToParcel(Landroid/os/Parcel;Landroid/net/Uri;)V" />
+		<field name="CREATOR" />
+		<field name="EMPTY" />
+	</class>
+	<class name="android/net/Uri$Builder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="appendEncodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="appendPath(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="appendQueryParameter(Ljava/lang/String;Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="authority(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="build()Landroid/net/Uri;" />
+		<method name="clearQuery()Landroid/net/Uri$Builder;" since="11" />
+		<method name="encodedAuthority(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="encodedFragment(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="encodedOpaquePart(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="encodedPath(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="encodedQuery(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="fragment(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="opaquePart(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="path(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="query(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+		<method name="scheme(Ljava/lang/String;)Landroid/net/Uri$Builder;" />
+	</class>
+	<class name="android/net/UrlQuerySanitizer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="addSanitizedEntry(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clear()V" />
+		<method name="decodeHexDigit(C)I" />
+		<method name="getAllButNulAndAngleBracketsLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getAllButNulLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getAllButWhitespaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getAllIllegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getAllowUnregisteredParamaters()Z" />
+		<method name="getAmpAndSpaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getAmpLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getEffectiveValueSanitizer(Ljava/lang/String;)Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getParameterList()Ljava/util/List;" />
+		<method name="getParameterSet()Ljava/util/Set;" />
+		<method name="getPreferFirstRepeatedParameter()Z" />
+		<method name="getSpaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getUnregisteredParameterValueSanitizer()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getUrlAndSpaceLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getUrlLegal()Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValueSanitizer(Ljava/lang/String;)Landroid/net/UrlQuerySanitizer$ValueSanitizer;" />
+		<method name="hasParameter(Ljava/lang/String;)Z" />
+		<method name="isHexDigit(C)Z" />
+		<method name="parseEntry(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="parseQuery(Ljava/lang/String;)V" />
+		<method name="parseUrl(Ljava/lang/String;)V" />
+		<method name="registerParameter(Ljava/lang/String;Landroid/net/UrlQuerySanitizer$ValueSanitizer;)V" />
+		<method name="registerParameters([Ljava/lang/String;Landroid/net/UrlQuerySanitizer$ValueSanitizer;)V" />
+		<method name="setAllowUnregisteredParamaters(Z)V" />
+		<method name="setPreferFirstRepeatedParameter(Z)V" />
+		<method name="setUnregisteredParameterValueSanitizer(Landroid/net/UrlQuerySanitizer$ValueSanitizer;)V" />
+		<method name="unescape(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="android/net/UrlQuerySanitizer$IllegalCharacterValueSanitizer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/net/UrlQuerySanitizer$ValueSanitizer" />
+		<method name="&lt;init>(I)V" />
+		<method name="sanitize(Ljava/lang/String;)Ljava/lang/String;" />
+		<field name="ALL_BUT_NUL_AND_ANGLE_BRACKETS_LEGAL" />
+		<field name="ALL_BUT_NUL_LEGAL" />
+		<field name="ALL_BUT_WHITESPACE_LEGAL" />
+		<field name="ALL_ILLEGAL" />
+		<field name="ALL_OK" />
+		<field name="ALL_WHITESPACE_OK" />
+		<field name="AMP_AND_SPACE_LEGAL" />
+		<field name="AMP_LEGAL" />
+		<field name="AMP_OK" />
+		<field name="DQUOTE_OK" />
+		<field name="GT_OK" />
+		<field name="LT_OK" />
+		<field name="NON_7_BIT_ASCII_OK" />
+		<field name="NUL_OK" />
+		<field name="OTHER_WHITESPACE_OK" />
+		<field name="PCT_OK" />
+		<field name="SCRIPT_URL_OK" />
+		<field name="SPACE_LEGAL" />
+		<field name="SPACE_OK" />
+		<field name="SQUOTE_OK" />
+		<field name="URL_AND_SPACE_LEGAL" />
+		<field name="URL_LEGAL" />
+	</class>
+	<class name="android/net/UrlQuerySanitizer$ParameterValuePair" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="mParameter" />
+		<field name="mValue" />
+	</class>
+	<class name="android/net/UrlQuerySanitizer$ValueSanitizer" since="1">
+		<method name="sanitize(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="android/net/VpnService" since="14">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onRevoke()V" />
+		<method name="prepare(Landroid/content/Context;)Landroid/content/Intent;" />
+		<method name="protect(I)Z" />
+		<method name="protect(Ljava/net/DatagramSocket;)Z" />
+		<method name="protect(Ljava/net/Socket;)Z" />
+		<field name="SERVICE_INTERFACE" />
+	</class>
+	<class name="android/net/VpnService$Builder" since="14">
+		<method name="&lt;init>()V" />
+		<method name="addAddress(Ljava/lang/String;I)Landroid/net/VpnService$Builder;" />
+		<method name="addAddress(Ljava/net/InetAddress;I)Landroid/net/VpnService$Builder;" />
+		<method name="addDnsServer(Ljava/lang/String;)Landroid/net/VpnService$Builder;" />
+		<method name="addDnsServer(Ljava/net/InetAddress;)Landroid/net/VpnService$Builder;" />
+		<method name="addRoute(Ljava/lang/String;I)Landroid/net/VpnService$Builder;" />
+		<method name="addRoute(Ljava/net/InetAddress;I)Landroid/net/VpnService$Builder;" />
+		<method name="addSearchDomain(Ljava/lang/String;)Landroid/net/VpnService$Builder;" />
+		<method name="establish()Landroid/os/ParcelFileDescriptor;" />
+		<method name="setConfigureIntent(Landroid/app/PendingIntent;)Landroid/net/VpnService$Builder;" />
+		<method name="setMtu(I)Landroid/net/VpnService$Builder;" />
+		<method name="setSession(Ljava/lang/String;)Landroid/net/VpnService$Builder;" />
+	</class>
+	<class name="android/net/http/AndroidHttpClient" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/HttpClient" />
+		<method name="close()V" />
+		<method name="disableCurlLogging()V" />
+		<method name="enableCurlLogging(Ljava/lang/String;I)V" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;)LT;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)LT;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;)LT;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)LT;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="getCompressedEntity([BLandroid/content/ContentResolver;)Lorg/apache/http/entity/AbstractHttpEntity;" />
+		<method name="getConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
+		<method name="getMinGzipSize(Landroid/content/ContentResolver;)J" />
+		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="getUngzippedContent(Lorg/apache/http/HttpEntity;)Ljava/io/InputStream;" />
+		<method name="modifyRequestToAcceptGzipResponse(Lorg/apache/http/HttpRequest;)V" />
+		<method name="newInstance(Ljava/lang/String;)Landroid/net/http/AndroidHttpClient;" />
+		<method name="newInstance(Ljava/lang/String;Landroid/content/Context;)Landroid/net/http/AndroidHttpClient;" />
+		<method name="parseDate(Ljava/lang/String;)J" />
+		<field name="DEFAULT_SYNC_MIN_GZIP_BYTES" />
+	</class>
+	<class name="android/net/http/HttpResponseCache" since="13">
+		<extends name="java/net/ResponseCache" />
+		<implements name="java/io/Closeable" />
+		<method name="close()V" />
+		<method name="delete()V" />
+		<method name="flush()V" />
+		<method name="get(Ljava/net/URI;Ljava/lang/String;Ljava/util/Map;)Ljava/net/CacheResponse;" />
+		<method name="getHitCount()I" />
+		<method name="getInstalled()Landroid/net/http/HttpResponseCache;" />
+		<method name="getNetworkCount()I" />
+		<method name="getRequestCount()I" />
+		<method name="install(Ljava/io/File;J)Landroid/net/http/HttpResponseCache;" />
+		<method name="maxSize()J" />
+		<method name="put(Ljava/net/URI;Ljava/net/URLConnection;)Ljava/net/CacheRequest;" />
+		<method name="size()J" />
+	</class>
+	<class name="android/net/http/SslCertificate" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Date;Ljava/util/Date;)V" since="8" />
+		<method name="&lt;init>(Ljava/security/cert/X509Certificate;)V" />
+		<method name="getIssuedBy()Landroid/net/http/SslCertificate$DName;" />
+		<method name="getIssuedTo()Landroid/net/http/SslCertificate$DName;" />
+		<method name="getValidNotAfter()Ljava/lang/String;" />
+		<method name="getValidNotAfterDate()Ljava/util/Date;" since="8" />
+		<method name="getValidNotBefore()Ljava/lang/String;" />
+		<method name="getValidNotBeforeDate()Ljava/util/Date;" since="8" />
+		<method name="restoreState(Landroid/os/Bundle;)Landroid/net/http/SslCertificate;" />
+		<method name="saveState(Landroid/net/http/SslCertificate;)Landroid/os/Bundle;" />
+	</class>
+	<class name="android/net/http/SslCertificate$DName" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getCName()Ljava/lang/String;" />
+		<method name="getDName()Ljava/lang/String;" />
+		<method name="getOName()Ljava/lang/String;" />
+		<method name="getUName()Ljava/lang/String;" />
+	</class>
+	<class name="android/net/http/SslError" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(ILandroid/net/http/SslCertificate;)V" />
+		<method name="&lt;init>(ILandroid/net/http/SslCertificate;Ljava/lang/String;)V" since="14" />
+		<method name="&lt;init>(ILjava/security/cert/X509Certificate;)V" />
+		<method name="&lt;init>(ILjava/security/cert/X509Certificate;Ljava/lang/String;)V" since="14" />
+		<method name="addError(I)Z" />
+		<method name="getCertificate()Landroid/net/http/SslCertificate;" />
+		<method name="getPrimaryError()I" />
+		<method name="getUrl()Ljava/lang/String;" since="14" />
+		<method name="hasError(I)Z" />
+		<field name="SSL_DATE_INVALID" since="14" />
+		<field name="SSL_EXPIRED" />
+		<field name="SSL_IDMISMATCH" />
+		<field name="SSL_INVALID" since="14" />
+		<field name="SSL_MAX_ERROR" />
+		<field name="SSL_NOTYETVALID" />
+		<field name="SSL_UNTRUSTED" />
+	</class>
+	<class name="android/net/rtp/AudioCodec" since="12">
+		<extends name="java/lang/Object" />
+		<method name="getCodec(ILjava/lang/String;Ljava/lang/String;)Landroid/net/rtp/AudioCodec;" />
+		<method name="getCodecs()[Landroid/net/rtp/AudioCodec;" />
+		<field name="AMR" />
+		<field name="GSM" />
+		<field name="GSM_EFR" />
+		<field name="PCMA" />
+		<field name="PCMU" />
+		<field name="fmtp" />
+		<field name="rtpmap" />
+		<field name="type" />
+	</class>
+	<class name="android/net/rtp/AudioGroup" since="12">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clear()V" />
+		<method name="getMode()I" />
+		<method name="getStreams()[Landroid/net/rtp/AudioStream;" />
+		<method name="sendDtmf(I)V" />
+		<method name="setMode(I)V" />
+		<field name="MODE_ECHO_SUPPRESSION" />
+		<field name="MODE_MUTED" />
+		<field name="MODE_NORMAL" />
+		<field name="MODE_ON_HOLD" />
+	</class>
+	<class name="android/net/rtp/AudioStream" since="12">
+		<extends name="android/net/rtp/RtpStream" />
+		<method name="&lt;init>(Ljava/net/InetAddress;)V" />
+		<method name="getCodec()Landroid/net/rtp/AudioCodec;" />
+		<method name="getDtmfType()I" />
+		<method name="getGroup()Landroid/net/rtp/AudioGroup;" />
+		<method name="isBusy()Z" />
+		<method name="join(Landroid/net/rtp/AudioGroup;)V" />
+		<method name="setCodec(Landroid/net/rtp/AudioCodec;)V" />
+		<method name="setDtmfType(I)V" />
+	</class>
+	<class name="android/net/rtp/RtpStream" since="12">
+		<extends name="java/lang/Object" />
+		<method name="associate(Ljava/net/InetAddress;I)V" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getMode()I" />
+		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
+		<method name="getRemotePort()I" />
+		<method name="isBusy()Z" />
+		<method name="release()V" />
+		<method name="setMode(I)V" />
+		<field name="MODE_NORMAL" />
+		<field name="MODE_RECEIVE_ONLY" />
+		<field name="MODE_SEND_ONLY" />
+	</class>
+	<class name="android/net/sip/SipAudioCall" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/net/sip/SipProfile;)V" />
+		<method name="answerCall(I)V" />
+		<method name="attachCall(Landroid/net/sip/SipSession;Ljava/lang/String;)V" />
+		<method name="close()V" />
+		<method name="continueCall(I)V" />
+		<method name="endCall()V" />
+		<method name="getLocalProfile()Landroid/net/sip/SipProfile;" />
+		<method name="getPeerProfile()Landroid/net/sip/SipProfile;" />
+		<method name="getState()I" />
+		<method name="holdCall(I)V" />
+		<method name="isInCall()Z" />
+		<method name="isMuted()Z" />
+		<method name="isOnHold()Z" />
+		<method name="makeCall(Landroid/net/sip/SipProfile;Landroid/net/sip/SipSession;I)V" />
+		<method name="sendDtmf(I)V" />
+		<method name="sendDtmf(ILandroid/os/Message;)V" />
+		<method name="setListener(Landroid/net/sip/SipAudioCall$Listener;)V" />
+		<method name="setListener(Landroid/net/sip/SipAudioCall$Listener;Z)V" />
+		<method name="setSpeakerMode(Z)V" />
+		<method name="startAudio()V" />
+		<method name="toggleMute()V" />
+	</class>
+	<class name="android/net/sip/SipAudioCall$Listener" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="onCallBusy(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onCallEnded(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onCallEstablished(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onCallHeld(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onCalling(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onChanged(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onError(Landroid/net/sip/SipAudioCall;ILjava/lang/String;)V" />
+		<method name="onReadyToCall(Landroid/net/sip/SipAudioCall;)V" />
+		<method name="onRinging(Landroid/net/sip/SipAudioCall;Landroid/net/sip/SipProfile;)V" />
+		<method name="onRingingBack(Landroid/net/sip/SipAudioCall;)V" />
+	</class>
+	<class name="android/net/sip/SipErrorCode" since="9">
+		<extends name="java/lang/Object" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<field name="CLIENT_ERROR" />
+		<field name="CROSS_DOMAIN_AUTHENTICATION" />
+		<field name="DATA_CONNECTION_LOST" />
+		<field name="INVALID_CREDENTIALS" />
+		<field name="INVALID_REMOTE_URI" />
+		<field name="IN_PROGRESS" />
+		<field name="NO_ERROR" />
+		<field name="PEER_NOT_REACHABLE" />
+		<field name="SERVER_ERROR" />
+		<field name="SERVER_UNREACHABLE" />
+		<field name="SOCKET_ERROR" />
+		<field name="TIME_OUT" />
+		<field name="TRANSACTION_TERMINTED" />
+	</class>
+	<class name="android/net/sip/SipException" since="9">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/net/sip/SipManager" since="9">
+		<extends name="java/lang/Object" />
+		<method name="close(Ljava/lang/String;)V" />
+		<method name="createSipSession(Landroid/net/sip/SipProfile;Landroid/net/sip/SipSession$Listener;)Landroid/net/sip/SipSession;" />
+		<method name="getCallId(Landroid/content/Intent;)Ljava/lang/String;" />
+		<method name="getOfferSessionDescription(Landroid/content/Intent;)Ljava/lang/String;" />
+		<method name="getSessionFor(Landroid/content/Intent;)Landroid/net/sip/SipSession;" />
+		<method name="isApiSupported(Landroid/content/Context;)Z" />
+		<method name="isIncomingCallIntent(Landroid/content/Intent;)Z" />
+		<method name="isOpened(Ljava/lang/String;)Z" />
+		<method name="isRegistered(Ljava/lang/String;)Z" />
+		<method name="isSipWifiOnly(Landroid/content/Context;)Z" />
+		<method name="isVoipSupported(Landroid/content/Context;)Z" />
+		<method name="makeAudioCall(Landroid/net/sip/SipProfile;Landroid/net/sip/SipProfile;Landroid/net/sip/SipAudioCall$Listener;I)Landroid/net/sip/SipAudioCall;" />
+		<method name="makeAudioCall(Ljava/lang/String;Ljava/lang/String;Landroid/net/sip/SipAudioCall$Listener;I)Landroid/net/sip/SipAudioCall;" />
+		<method name="newInstance(Landroid/content/Context;)Landroid/net/sip/SipManager;" />
+		<method name="open(Landroid/net/sip/SipProfile;)V" />
+		<method name="open(Landroid/net/sip/SipProfile;Landroid/app/PendingIntent;Landroid/net/sip/SipRegistrationListener;)V" />
+		<method name="register(Landroid/net/sip/SipProfile;ILandroid/net/sip/SipRegistrationListener;)V" />
+		<method name="setRegistrationListener(Ljava/lang/String;Landroid/net/sip/SipRegistrationListener;)V" />
+		<method name="takeAudioCall(Landroid/content/Intent;Landroid/net/sip/SipAudioCall$Listener;)Landroid/net/sip/SipAudioCall;" />
+		<method name="unregister(Landroid/net/sip/SipProfile;Landroid/net/sip/SipRegistrationListener;)V" />
+		<field name="EXTRA_CALL_ID" />
+		<field name="EXTRA_OFFER_SD" />
+		<field name="INCOMING_CALL_RESULT_CODE" />
+	</class>
+	<class name="android/net/sip/SipProfile" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="android/os/Parcelable" />
+		<implements name="java/io/Serializable" />
+		<method name="describeContents()I" />
+		<method name="getAuthUserName()Ljava/lang/String;" since="12" />
+		<method name="getAutoRegistration()Z" />
+		<method name="getDisplayName()Ljava/lang/String;" />
+		<method name="getPassword()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="getProfileName()Ljava/lang/String;" />
+		<method name="getProtocol()Ljava/lang/String;" />
+		<method name="getProxyAddress()Ljava/lang/String;" />
+		<method name="getSendKeepAlive()Z" />
+		<method name="getSipDomain()Ljava/lang/String;" />
+		<method name="getUriString()Ljava/lang/String;" />
+		<method name="getUserName()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/net/sip/SipProfile$Builder" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/net/sip/SipProfile;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="build()Landroid/net/sip/SipProfile;" />
+		<method name="setAuthUserName(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" since="12" />
+		<method name="setAutoRegistration(Z)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setDisplayName(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setOutboundProxy(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setPassword(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setPort(I)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setProfileName(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setProtocol(Ljava/lang/String;)Landroid/net/sip/SipProfile$Builder;" />
+		<method name="setSendKeepAlive(Z)Landroid/net/sip/SipProfile$Builder;" />
+	</class>
+	<class name="android/net/sip/SipRegistrationListener" since="9">
+		<method name="onRegistering(Ljava/lang/String;)V" />
+		<method name="onRegistrationDone(Ljava/lang/String;J)V" />
+		<method name="onRegistrationFailed(Ljava/lang/String;ILjava/lang/String;)V" />
+	</class>
+	<class name="android/net/sip/SipSession" since="9">
+		<extends name="java/lang/Object" />
+		<method name="answerCall(Ljava/lang/String;I)V" />
+		<method name="changeCall(Ljava/lang/String;I)V" />
+		<method name="endCall()V" />
+		<method name="getCallId()Ljava/lang/String;" />
+		<method name="getLocalIp()Ljava/lang/String;" />
+		<method name="getLocalProfile()Landroid/net/sip/SipProfile;" />
+		<method name="getPeerProfile()Landroid/net/sip/SipProfile;" />
+		<method name="getState()I" />
+		<method name="isInCall()Z" />
+		<method name="makeCall(Landroid/net/sip/SipProfile;Ljava/lang/String;I)V" />
+		<method name="register(I)V" />
+		<method name="setListener(Landroid/net/sip/SipSession$Listener;)V" />
+		<method name="unregister()V" />
+	</class>
+	<class name="android/net/sip/SipSession$Listener" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="onCallBusy(Landroid/net/sip/SipSession;)V" />
+		<method name="onCallChangeFailed(Landroid/net/sip/SipSession;ILjava/lang/String;)V" />
+		<method name="onCallEnded(Landroid/net/sip/SipSession;)V" />
+		<method name="onCallEstablished(Landroid/net/sip/SipSession;Ljava/lang/String;)V" />
+		<method name="onCalling(Landroid/net/sip/SipSession;)V" />
+		<method name="onError(Landroid/net/sip/SipSession;ILjava/lang/String;)V" />
+		<method name="onRegistering(Landroid/net/sip/SipSession;)V" />
+		<method name="onRegistrationDone(Landroid/net/sip/SipSession;I)V" />
+		<method name="onRegistrationFailed(Landroid/net/sip/SipSession;ILjava/lang/String;)V" />
+		<method name="onRegistrationTimeout(Landroid/net/sip/SipSession;)V" />
+		<method name="onRinging(Landroid/net/sip/SipSession;Landroid/net/sip/SipProfile;Ljava/lang/String;)V" />
+		<method name="onRingingBack(Landroid/net/sip/SipSession;)V" />
+	</class>
+	<class name="android/net/sip/SipSession$State" since="9">
+		<extends name="java/lang/Object" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<field name="DEREGISTERING" />
+		<field name="INCOMING_CALL" />
+		<field name="INCOMING_CALL_ANSWERING" />
+		<field name="IN_CALL" />
+		<field name="NOT_DEFINED" />
+		<field name="OUTGOING_CALL" />
+		<field name="OUTGOING_CALL_CANCELING" />
+		<field name="OUTGOING_CALL_RING_BACK" />
+		<field name="PINGING" />
+		<field name="READY_TO_CALL" />
+		<field name="REGISTERING" />
+	</class>
+	<class name="android/net/wifi/ScanResult" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="BSSID" />
+		<field name="SSID" />
+		<field name="capabilities" />
+		<field name="frequency" />
+		<field name="level" />
+	</class>
+	<class name="android/net/wifi/SupplicantState" since="1">
+		<extends name="java/lang/Enum" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="isValidState(Landroid/net/wifi/SupplicantState;)Z" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/net/wifi/SupplicantState;" />
+		<method name="values()[Landroid/net/wifi/SupplicantState;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ASSOCIATED" />
+		<field name="ASSOCIATING" />
+		<field name="AUTHENTICATING" since="14" />
+		<field name="COMPLETED" />
+		<field name="DISCONNECTED" />
+		<field name="DORMANT" />
+		<field name="FOUR_WAY_HANDSHAKE" />
+		<field name="GROUP_HANDSHAKE" />
+		<field name="INACTIVE" />
+		<field name="INTERFACE_DISABLED" since="14" />
+		<field name="INVALID" />
+		<field name="SCANNING" />
+		<field name="UNINITIALIZED" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="BSSID" />
+		<field name="SSID" />
+		<field name="allowedAuthAlgorithms" />
+		<field name="allowedGroupCiphers" />
+		<field name="allowedKeyManagement" />
+		<field name="allowedPairwiseCiphers" />
+		<field name="allowedProtocols" />
+		<field name="hiddenSSID" />
+		<field name="networkId" />
+		<field name="preSharedKey" />
+		<field name="priority" />
+		<field name="status" />
+		<field name="wepKeys" />
+		<field name="wepTxKeyIndex" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration$AuthAlgorithm" since="1">
+		<extends name="java/lang/Object" />
+		<field name="LEAP" />
+		<field name="OPEN" />
+		<field name="SHARED" />
+		<field name="strings" />
+		<field name="varName" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration$GroupCipher" since="1">
+		<extends name="java/lang/Object" />
+		<field name="CCMP" />
+		<field name="TKIP" />
+		<field name="WEP104" />
+		<field name="WEP40" />
+		<field name="strings" />
+		<field name="varName" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration$KeyMgmt" since="1">
+		<extends name="java/lang/Object" />
+		<field name="IEEE8021X" />
+		<field name="NONE" />
+		<field name="WPA_EAP" />
+		<field name="WPA_PSK" />
+		<field name="strings" />
+		<field name="varName" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration$PairwiseCipher" since="1">
+		<extends name="java/lang/Object" />
+		<field name="CCMP" />
+		<field name="NONE" />
+		<field name="TKIP" />
+		<field name="strings" />
+		<field name="varName" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration$Protocol" since="1">
+		<extends name="java/lang/Object" />
+		<field name="RSN" />
+		<field name="WPA" />
+		<field name="strings" />
+		<field name="varName" />
+	</class>
+	<class name="android/net/wifi/WifiConfiguration$Status" since="1">
+		<extends name="java/lang/Object" />
+		<field name="CURRENT" />
+		<field name="DISABLED" />
+		<field name="ENABLED" />
+		<field name="strings" />
+	</class>
+	<class name="android/net/wifi/WifiInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getBSSID()Ljava/lang/String;" />
+		<method name="getDetailedStateOf(Landroid/net/wifi/SupplicantState;)Landroid/net/NetworkInfo$DetailedState;" />
+		<method name="getHiddenSSID()Z" />
+		<method name="getIpAddress()I" />
+		<method name="getLinkSpeed()I" />
+		<method name="getMacAddress()Ljava/lang/String;" />
+		<method name="getNetworkId()I" />
+		<method name="getRssi()I" />
+		<method name="getSSID()Ljava/lang/String;" />
+		<method name="getSupplicantState()Landroid/net/wifi/SupplicantState;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="LINK_SPEED_UNITS" />
+	</class>
+	<class name="android/net/wifi/WifiManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addNetwork(Landroid/net/wifi/WifiConfiguration;)I" />
+		<method name="calculateSignalLevel(II)I" />
+		<method name="compareSignalLevel(II)I" />
+		<method name="createMulticastLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$MulticastLock;" since="4" />
+		<method name="createWifiLock(ILjava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;" since="3" />
+		<method name="createWifiLock(Ljava/lang/String;)Landroid/net/wifi/WifiManager$WifiLock;" />
+		<method name="disableNetwork(I)Z" />
+		<method name="disconnect()Z" />
+		<method name="enableNetwork(IZ)Z" />
+		<method name="getConfiguredNetworks()Ljava/util/List;" />
+		<method name="getConnectionInfo()Landroid/net/wifi/WifiInfo;" />
+		<method name="getDhcpInfo()Landroid/net/DhcpInfo;" />
+		<method name="getScanResults()Ljava/util/List;" />
+		<method name="getWifiState()I" />
+		<method name="isWifiEnabled()Z" />
+		<method name="pingSupplicant()Z" />
+		<method name="reassociate()Z" />
+		<method name="reconnect()Z" />
+		<method name="removeNetwork(I)Z" />
+		<method name="saveConfiguration()Z" />
+		<method name="setWifiEnabled(Z)Z" />
+		<method name="startScan()Z" />
+		<method name="updateNetwork(Landroid/net/wifi/WifiConfiguration;)I" />
+		<field name="ACTION_PICK_WIFI_NETWORK" />
+		<field name="ERROR_AUTHENTICATING" />
+		<field name="EXTRA_BSSID" />
+		<field name="EXTRA_NETWORK_INFO" />
+		<field name="EXTRA_NEW_RSSI" />
+		<field name="EXTRA_NEW_STATE" />
+		<field name="EXTRA_PREVIOUS_WIFI_STATE" />
+		<field name="EXTRA_SUPPLICANT_CONNECTED" />
+		<field name="EXTRA_SUPPLICANT_ERROR" />
+		<field name="EXTRA_WIFI_INFO" since="14" />
+		<field name="EXTRA_WIFI_STATE" />
+		<field name="NETWORK_IDS_CHANGED_ACTION" />
+		<field name="NETWORK_STATE_CHANGED_ACTION" />
+		<field name="RSSI_CHANGED_ACTION" />
+		<field name="SCAN_RESULTS_AVAILABLE_ACTION" />
+		<field name="SUPPLICANT_CONNECTION_CHANGE_ACTION" />
+		<field name="SUPPLICANT_STATE_CHANGED_ACTION" />
+		<field name="WIFI_MODE_FULL" since="3" />
+		<field name="WIFI_MODE_FULL_HIGH_PERF" since="12" />
+		<field name="WIFI_MODE_SCAN_ONLY" since="3" />
+		<field name="WIFI_STATE_CHANGED_ACTION" />
+		<field name="WIFI_STATE_DISABLED" />
+		<field name="WIFI_STATE_DISABLING" />
+		<field name="WIFI_STATE_ENABLED" />
+		<field name="WIFI_STATE_ENABLING" />
+		<field name="WIFI_STATE_UNKNOWN" />
+	</class>
+	<class name="android/net/wifi/WifiManager$MulticastLock" since="4">
+		<extends name="java/lang/Object" />
+		<method name="acquire()V" />
+		<method name="isHeld()Z" />
+		<method name="release()V" />
+		<method name="setReferenceCounted(Z)V" />
+	</class>
+	<class name="android/net/wifi/WifiManager$WifiLock" since="1">
+		<extends name="java/lang/Object" />
+		<method name="acquire()V" />
+		<method name="isHeld()Z" />
+		<method name="release()V" />
+		<method name="setReferenceCounted(Z)V" />
+		<method name="setWorkSource(Landroid/os/WorkSource;)V" since="9" />
+	</class>
+	<class name="android/net/wifi/WpsInfo" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/net/wifi/WpsInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="DISPLAY" />
+		<field name="INVALID" />
+		<field name="KEYPAD" />
+		<field name="LABEL" />
+		<field name="PBC" />
+		<field name="pin" />
+		<field name="setup" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pConfig" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pConfig;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="deviceAddress" />
+		<field name="groupOwnerIntent" />
+		<field name="wps" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pDevice" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pDevice;)V" />
+		<method name="describeContents()I" />
+		<method name="isGroupOwner()Z" />
+		<method name="isServiceDiscoveryCapable()Z" />
+		<method name="wpsDisplaySupported()Z" />
+		<method name="wpsKeypadSupported()Z" />
+		<method name="wpsPbcSupported()Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="AVAILABLE" />
+		<field name="CONNECTED" />
+		<field name="CREATOR" />
+		<field name="FAILED" />
+		<field name="INVITED" />
+		<field name="UNAVAILABLE" />
+		<field name="deviceAddress" />
+		<field name="deviceName" />
+		<field name="primaryDeviceType" />
+		<field name="secondaryDeviceType" />
+		<field name="status" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pDeviceList" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pDeviceList;)V" />
+		<method name="describeContents()I" />
+		<method name="getDeviceList()Ljava/util/Collection;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pGroup" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pGroup;)V" />
+		<method name="describeContents()I" />
+		<method name="getClientList()Ljava/util/Collection;" />
+		<method name="getInterface()Ljava/lang/String;" />
+		<method name="getNetworkName()Ljava/lang/String;" />
+		<method name="getOwner()Landroid/net/wifi/p2p/WifiP2pDevice;" />
+		<method name="getPassphrase()Ljava/lang/String;" />
+		<method name="isGroupOwner()Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pInfo" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/net/wifi/p2p/WifiP2pInfo;)V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="groupFormed" />
+		<field name="groupOwnerAddress" />
+		<field name="isGroupOwner" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager" since="14">
+		<method name="cancelConnect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
+		<method name="connect(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pConfig;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
+		<method name="createGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
+		<method name="discoverPeers(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
+		<method name="initialize(Landroid/content/Context;Landroid/os/Looper;Landroid/net/wifi/p2p/WifiP2pManager$ChannelListener;)Landroid/net/wifi/p2p/WifiP2pManager$Channel;" />
+		<method name="removeGroup(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ActionListener;)V" />
+		<method name="requestConnectionInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$ConnectionInfoListener;)V" />
+		<method name="requestGroupInfo(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$GroupInfoListener;)V" />
+		<method name="requestPeers(Landroid/net/wifi/p2p/WifiP2pManager$Channel;Landroid/net/wifi/p2p/WifiP2pManager$PeerListListener;)V" />
+		<field name="BUSY" />
+		<field name="ERROR" />
+		<field name="EXTRA_NETWORK_INFO" />
+		<field name="EXTRA_WIFI_P2P_DEVICE" />
+		<field name="EXTRA_WIFI_P2P_INFO" />
+		<field name="EXTRA_WIFI_STATE" />
+		<field name="P2P_UNSUPPORTED" />
+		<field name="WIFI_P2P_CONNECTION_CHANGED_ACTION" />
+		<field name="WIFI_P2P_PEERS_CHANGED_ACTION" />
+		<field name="WIFI_P2P_STATE_CHANGED_ACTION" />
+		<field name="WIFI_P2P_STATE_DISABLED" />
+		<field name="WIFI_P2P_STATE_ENABLED" />
+		<field name="WIFI_P2P_THIS_DEVICE_CHANGED_ACTION" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager$ActionListener" since="14">
+		<method name="onFailure(I)V" />
+		<method name="onSuccess()V" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager$Channel" since="14">
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager$ChannelListener" since="14">
+		<method name="onChannelDisconnected()V" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager$ConnectionInfoListener" since="14">
+		<method name="onConnectionInfoAvailable(Landroid/net/wifi/p2p/WifiP2pInfo;)V" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager$GroupInfoListener" since="14">
+		<method name="onGroupInfoAvailable(Landroid/net/wifi/p2p/WifiP2pGroup;)V" />
+	</class>
+	<class name="android/net/wifi/p2p/WifiP2pManager$PeerListListener" since="14">
+		<method name="onPeersAvailable(Landroid/net/wifi/p2p/WifiP2pDeviceList;)V" />
+	</class>
+	<class name="android/nfc/FormatException" since="9">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/nfc/NdefMessage" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>([B)V" />
+		<method name="&lt;init>([Landroid/nfc/NdefRecord;)V" />
+		<method name="describeContents()I" />
+		<method name="getRecords()[Landroid/nfc/NdefRecord;" />
+		<method name="toByteArray()[B" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/nfc/NdefRecord" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(S[B[B[B)V" />
+		<method name="&lt;init>([B)V" />
+		<method name="createApplicationRecord(Ljava/lang/String;)Landroid/nfc/NdefRecord;" since="14" />
+		<method name="createUri(Landroid/net/Uri;)Landroid/nfc/NdefRecord;" since="14" />
+		<method name="createUri(Ljava/lang/String;)Landroid/nfc/NdefRecord;" since="14" />
+		<method name="describeContents()I" />
+		<method name="getId()[B" />
+		<method name="getPayload()[B" />
+		<method name="getTnf()S" />
+		<method name="getType()[B" />
+		<method name="toByteArray()[B" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="RTD_ALTERNATIVE_CARRIER" />
+		<field name="RTD_HANDOVER_CARRIER" />
+		<field name="RTD_HANDOVER_REQUEST" />
+		<field name="RTD_HANDOVER_SELECT" />
+		<field name="RTD_SMART_POSTER" />
+		<field name="RTD_TEXT" />
+		<field name="RTD_URI" />
+		<field name="TNF_ABSOLUTE_URI" />
+		<field name="TNF_EMPTY" />
+		<field name="TNF_EXTERNAL_TYPE" />
+		<field name="TNF_MIME_MEDIA" />
+		<field name="TNF_UNCHANGED" />
+		<field name="TNF_UNKNOWN" />
+		<field name="TNF_WELL_KNOWN" />
+	</class>
+	<class name="android/nfc/NfcAdapter" since="9">
+		<extends name="java/lang/Object" />
+		<method name="disableForegroundDispatch(Landroid/app/Activity;)V" since="10" />
+		<method name="disableForegroundNdefPush(Landroid/app/Activity;)V" since="10" />
+		<method name="enableForegroundDispatch(Landroid/app/Activity;Landroid/app/PendingIntent;[Landroid/content/IntentFilter;[[Ljava/lang/String;)V" since="10" />
+		<method name="enableForegroundNdefPush(Landroid/app/Activity;Landroid/nfc/NdefMessage;)V" since="10" />
+		<method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;" />
+		<method name="getDefaultAdapter(Landroid/content/Context;)Landroid/nfc/NfcAdapter;" since="10" />
+		<method name="isEnabled()Z" />
+		<method name="setNdefPushMessage(Landroid/nfc/NdefMessage;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" />
+		<method name="setNdefPushMessageCallback(Landroid/nfc/NfcAdapter$CreateNdefMessageCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" />
+		<method name="setOnNdefPushCompleteCallback(Landroid/nfc/NfcAdapter$OnNdefPushCompleteCallback;Landroid/app/Activity;[Landroid/app/Activity;)V" since="14" />
+		<field name="ACTION_NDEF_DISCOVERED" since="10" />
+		<field name="ACTION_TAG_DISCOVERED" />
+		<field name="ACTION_TECH_DISCOVERED" since="10" />
+		<field name="EXTRA_ID" />
+		<field name="EXTRA_NDEF_MESSAGES" />
+		<field name="EXTRA_TAG" since="10" />
+	</class>
+	<class name="android/nfc/NfcAdapter$CreateNdefMessageCallback" since="14">
+		<method name="createNdefMessage(Landroid/nfc/NfcEvent;)Landroid/nfc/NdefMessage;" />
+	</class>
+	<class name="android/nfc/NfcAdapter$OnNdefPushCompleteCallback" since="14">
+		<method name="onNdefPushComplete(Landroid/nfc/NfcEvent;)V" />
+	</class>
+	<class name="android/nfc/NfcEvent" since="14">
+		<field name="nfcAdapter" />
+	</class>
+	<class name="android/nfc/NfcManager" since="10">
+		<extends name="java/lang/Object" />
+		<method name="getDefaultAdapter()Landroid/nfc/NfcAdapter;" />
+	</class>
+	<class name="android/nfc/Tag" since="10">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getId()[B" />
+		<method name="getTechList()[Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/nfc/TagLostException" since="10">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/nfc/tech/BasicTagTechnology" since="10">
+		<extends name="java/lang/Object" />
+		<implements name="android/nfc/tech/TagTechnology" />
+		<method name="close()V" />
+		<method name="connect()V" />
+		<method name="getTag()Landroid/nfc/Tag;" />
+		<method name="isConnected()Z" />
+	</class>
+	<class name="android/nfc/tech/IsoDep" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/IsoDep;" />
+		<method name="getHiLayerResponse()[B" />
+		<method name="getHistoricalBytes()[B" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getTimeout()I" since="14" />
+		<method name="setTimeout(I)V" />
+		<method name="transceive([B)[B" />
+	</class>
+	<class name="android/nfc/tech/MifareClassic" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="authenticateSectorWithKeyA(I[B)Z" />
+		<method name="authenticateSectorWithKeyB(I[B)Z" />
+		<method name="blockToSector(I)I" />
+		<method name="decrement(II)V" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/MifareClassic;" />
+		<method name="getBlockCount()I" />
+		<method name="getBlockCountInSector(I)I" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getSectorCount()I" />
+		<method name="getSize()I" />
+		<method name="getTimeout()I" since="14" />
+		<method name="getType()I" />
+		<method name="increment(II)V" />
+		<method name="readBlock(I)[B" />
+		<method name="restore(I)V" />
+		<method name="sectorToBlock(I)I" />
+		<method name="setTimeout(I)V" since="14" />
+		<method name="transceive([B)[B" />
+		<method name="transfer(I)V" />
+		<method name="writeBlock(I[B)V" />
+		<field name="BLOCK_SIZE" />
+		<field name="KEY_DEFAULT" />
+		<field name="KEY_MIFARE_APPLICATION_DIRECTORY" />
+		<field name="KEY_NFC_FORUM" />
+		<field name="SIZE_1K" />
+		<field name="SIZE_2K" />
+		<field name="SIZE_4K" />
+		<field name="SIZE_MINI" />
+		<field name="TYPE_CLASSIC" />
+		<field name="TYPE_PLUS" />
+		<field name="TYPE_PRO" />
+		<field name="TYPE_UNKNOWN" />
+	</class>
+	<class name="android/nfc/tech/MifareUltralight" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/MifareUltralight;" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getTimeout()I" since="14" />
+		<method name="getType()I" />
+		<method name="readPages(I)[B" />
+		<method name="setTimeout(I)V" since="14" />
+		<method name="transceive([B)[B" />
+		<method name="writePage(I[B)V" />
+		<field name="PAGE_SIZE" />
+		<field name="TYPE_ULTRALIGHT" />
+		<field name="TYPE_ULTRALIGHT_C" />
+		<field name="TYPE_UNKNOWN" />
+	</class>
+	<class name="android/nfc/tech/Ndef" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="canMakeReadOnly()Z" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/Ndef;" />
+		<method name="getCachedNdefMessage()Landroid/nfc/NdefMessage;" />
+		<method name="getMaxSize()I" />
+		<method name="getNdefMessage()Landroid/nfc/NdefMessage;" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="isWritable()Z" />
+		<method name="makeReadOnly()Z" />
+		<method name="writeNdefMessage(Landroid/nfc/NdefMessage;)V" />
+		<field name="MIFARE_CLASSIC" />
+		<field name="NFC_FORUM_TYPE_1" />
+		<field name="NFC_FORUM_TYPE_2" />
+		<field name="NFC_FORUM_TYPE_3" />
+		<field name="NFC_FORUM_TYPE_4" />
+	</class>
+	<class name="android/nfc/tech/NdefFormatable" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="format(Landroid/nfc/NdefMessage;)V" />
+		<method name="formatReadOnly(Landroid/nfc/NdefMessage;)V" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NdefFormatable;" />
+	</class>
+	<class name="android/nfc/tech/NfcA" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcA;" />
+		<method name="getAtqa()[B" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getSak()S" />
+		<method name="getTimeout()I" since="14" />
+		<method name="setTimeout(I)V" since="14" />
+		<method name="transceive([B)[B" />
+	</class>
+	<class name="android/nfc/tech/NfcB" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcB;" />
+		<method name="getApplicationData()[B" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getProtocolInfo()[B" />
+		<method name="transceive([B)[B" />
+	</class>
+	<class name="android/nfc/tech/NfcF" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcF;" />
+		<method name="getManufacturer()[B" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getSystemCode()[B" />
+		<method name="getTimeout()I" since="14" />
+		<method name="setTimeout(I)V" since="14" />
+		<method name="transceive([B)[B" />
+	</class>
+	<class name="android/nfc/tech/NfcV" since="10">
+		<extends name="android/nfc/tech/BasicTagTechnology" />
+		<method name="get(Landroid/nfc/Tag;)Landroid/nfc/tech/NfcV;" />
+		<method name="getDsfId()B" />
+		<method name="getMaxTransceiveLength()I" since="14" />
+		<method name="getResponseFlags()B" />
+		<method name="transceive([B)[B" />
+	</class>
+	<class name="android/nfc/tech/TagTechnology" since="10">
+		<implements name="java/io/Closeable" />
+		<method name="close()V" />
+		<method name="connect()V" />
+		<method name="getTag()Landroid/nfc/Tag;" />
+		<method name="isConnected()Z" />
+	</class>
+	<class name="android/opengl/ETC1" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="decodeBlock(Ljava/nio/Buffer;Ljava/nio/Buffer;)V" />
+		<method name="decodeImage(Ljava/nio/Buffer;Ljava/nio/Buffer;IIII)V" />
+		<method name="encodeBlock(Ljava/nio/Buffer;ILjava/nio/Buffer;)V" />
+		<method name="encodeImage(Ljava/nio/Buffer;IIIILjava/nio/Buffer;)V" />
+		<method name="formatHeader(Ljava/nio/Buffer;II)V" />
+		<method name="getEncodedDataSize(II)I" />
+		<method name="getHeight(Ljava/nio/Buffer;)I" />
+		<method name="getWidth(Ljava/nio/Buffer;)I" />
+		<method name="isValid(Ljava/nio/Buffer;)Z" />
+		<field name="DECODED_BLOCK_SIZE" />
+		<field name="ENCODED_BLOCK_SIZE" />
+		<field name="ETC1_RGB8_OES" />
+		<field name="ETC_PKM_HEADER_SIZE" />
+	</class>
+	<class name="android/opengl/ETC1Util" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="compressTexture(Ljava/nio/Buffer;IIII)Landroid/opengl/ETC1Util$ETC1Texture;" />
+		<method name="createTexture(Ljava/io/InputStream;)Landroid/opengl/ETC1Util$ETC1Texture;" />
+		<method name="isETC1Supported()Z" />
+		<method name="loadTexture(IIIIILandroid/opengl/ETC1Util$ETC1Texture;)V" />
+		<method name="loadTexture(IIIIILjava/io/InputStream;)V" />
+		<method name="writeTexture(Landroid/opengl/ETC1Util$ETC1Texture;Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="android/opengl/ETC1Util$ETC1Texture" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(IILjava/nio/ByteBuffer;)V" />
+		<method name="getData()Ljava/nio/ByteBuffer;" />
+		<method name="getHeight()I" />
+		<method name="getWidth()I" />
+	</class>
+	<class name="android/opengl/GLDebugHelper" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="wrap(Ljavax/microedition/khronos/egl/EGL;ILjava/io/Writer;)Ljavax/microedition/khronos/egl/EGL;" />
+		<method name="wrap(Ljavax/microedition/khronos/opengles/GL;ILjava/io/Writer;)Ljavax/microedition/khronos/opengles/GL;" />
+		<field name="CONFIG_CHECK_GL_ERROR" />
+		<field name="CONFIG_CHECK_THREAD" />
+		<field name="CONFIG_LOG_ARGUMENT_NAMES" />
+		<field name="ERROR_WRONG_THREAD" />
+	</class>
+	<class name="android/opengl/GLES10" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="glActiveTexture(I)V" />
+		<method name="glAlphaFunc(IF)V" />
+		<method name="glAlphaFuncx(II)V" />
+		<method name="glBindTexture(II)V" />
+		<method name="glBlendFunc(II)V" />
+		<method name="glClear(I)V" />
+		<method name="glClearColor(FFFF)V" />
+		<method name="glClearColorx(IIII)V" />
+		<method name="glClearDepthf(F)V" />
+		<method name="glClearDepthx(I)V" />
+		<method name="glClearStencil(I)V" />
+		<method name="glClientActiveTexture(I)V" />
+		<method name="glColor4f(FFFF)V" />
+		<method name="glColor4x(IIII)V" />
+		<method name="glColorMask(ZZZZ)V" />
+		<method name="glColorPointer(IIILjava/nio/Buffer;)V" />
+		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCompressedTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCopyTexImage2D(IIIIIIII)V" />
+		<method name="glCopyTexSubImage2D(IIIIIIII)V" />
+		<method name="glCullFace(I)V" />
+		<method name="glDeleteTextures(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteTextures(I[II)V" />
+		<method name="glDepthFunc(I)V" />
+		<method name="glDepthMask(Z)V" />
+		<method name="glDepthRangef(FF)V" />
+		<method name="glDepthRangex(II)V" />
+		<method name="glDisable(I)V" />
+		<method name="glDisableClientState(I)V" />
+		<method name="glDrawArrays(III)V" />
+		<method name="glDrawElements(IIILjava/nio/Buffer;)V" />
+		<method name="glEnable(I)V" />
+		<method name="glEnableClientState(I)V" />
+		<method name="glFinish()V" />
+		<method name="glFlush()V" />
+		<method name="glFogf(IF)V" />
+		<method name="glFogfv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glFogfv(I[FI)V" />
+		<method name="glFogx(II)V" />
+		<method name="glFogxv(ILjava/nio/IntBuffer;)V" />
+		<method name="glFogxv(I[II)V" />
+		<method name="glFrontFace(I)V" />
+		<method name="glFrustumf(FFFFFF)V" />
+		<method name="glFrustumx(IIIIII)V" />
+		<method name="glGenTextures(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenTextures(I[II)V" />
+		<method name="glGetError()I" />
+		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetIntegerv(I[II)V" />
+		<method name="glGetString(I)Ljava/lang/String;" />
+		<method name="glHint(II)V" />
+		<method name="glLightModelf(IF)V" />
+		<method name="glLightModelfv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glLightModelfv(I[FI)V" />
+		<method name="glLightModelx(II)V" />
+		<method name="glLightModelxv(ILjava/nio/IntBuffer;)V" />
+		<method name="glLightModelxv(I[II)V" />
+		<method name="glLightf(IIF)V" />
+		<method name="glLightfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glLightfv(II[FI)V" />
+		<method name="glLightx(III)V" />
+		<method name="glLightxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glLightxv(II[II)V" />
+		<method name="glLineWidth(F)V" />
+		<method name="glLineWidthx(I)V" />
+		<method name="glLoadIdentity()V" />
+		<method name="glLoadMatrixf(Ljava/nio/FloatBuffer;)V" />
+		<method name="glLoadMatrixf([FI)V" />
+		<method name="glLoadMatrixx(Ljava/nio/IntBuffer;)V" />
+		<method name="glLoadMatrixx([II)V" />
+		<method name="glLogicOp(I)V" />
+		<method name="glMaterialf(IIF)V" />
+		<method name="glMaterialfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glMaterialfv(II[FI)V" />
+		<method name="glMaterialx(III)V" />
+		<method name="glMaterialxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glMaterialxv(II[II)V" />
+		<method name="glMatrixMode(I)V" />
+		<method name="glMultMatrixf(Ljava/nio/FloatBuffer;)V" />
+		<method name="glMultMatrixf([FI)V" />
+		<method name="glMultMatrixx(Ljava/nio/IntBuffer;)V" />
+		<method name="glMultMatrixx([II)V" />
+		<method name="glMultiTexCoord4f(IFFFF)V" />
+		<method name="glMultiTexCoord4x(IIIII)V" />
+		<method name="glNormal3f(FFF)V" />
+		<method name="glNormal3x(III)V" />
+		<method name="glNormalPointer(IILjava/nio/Buffer;)V" />
+		<method name="glOrthof(FFFFFF)V" />
+		<method name="glOrthox(IIIIII)V" />
+		<method name="glPixelStorei(II)V" />
+		<method name="glPointSize(F)V" />
+		<method name="glPointSizex(I)V" />
+		<method name="glPolygonOffset(FF)V" />
+		<method name="glPolygonOffsetx(II)V" />
+		<method name="glPopMatrix()V" />
+		<method name="glPushMatrix()V" />
+		<method name="glReadPixels(IIIIIILjava/nio/Buffer;)V" />
+		<method name="glRotatef(FFFF)V" />
+		<method name="glRotatex(IIII)V" />
+		<method name="glSampleCoverage(FZ)V" />
+		<method name="glSampleCoveragex(IZ)V" />
+		<method name="glScalef(FFF)V" />
+		<method name="glScalex(III)V" />
+		<method name="glScissor(IIII)V" />
+		<method name="glShadeModel(I)V" />
+		<method name="glStencilFunc(III)V" />
+		<method name="glStencilMask(I)V" />
+		<method name="glStencilOp(III)V" />
+		<method name="glTexCoordPointer(IIILjava/nio/Buffer;)V" />
+		<method name="glTexEnvf(IIF)V" />
+		<method name="glTexEnvfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexEnvfv(II[FI)V" />
+		<method name="glTexEnvx(III)V" />
+		<method name="glTexEnvxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexEnvxv(II[II)V" />
+		<method name="glTexImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glTexParameterf(IIF)V" />
+		<method name="glTexParameterx(III)V" />
+		<method name="glTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glTranslatef(FFF)V" />
+		<method name="glTranslatex(III)V" />
+		<method name="glVertexPointer(IIILjava/nio/Buffer;)V" />
+		<method name="glViewport(IIII)V" />
+		<field name="GL_ADD" />
+		<field name="GL_ALIASED_LINE_WIDTH_RANGE" />
+		<field name="GL_ALIASED_POINT_SIZE_RANGE" />
+		<field name="GL_ALPHA" />
+		<field name="GL_ALPHA_BITS" />
+		<field name="GL_ALPHA_TEST" />
+		<field name="GL_ALWAYS" />
+		<field name="GL_AMBIENT" />
+		<field name="GL_AMBIENT_AND_DIFFUSE" />
+		<field name="GL_AND" />
+		<field name="GL_AND_INVERTED" />
+		<field name="GL_AND_REVERSE" />
+		<field name="GL_BACK" />
+		<field name="GL_BLEND" />
+		<field name="GL_BLUE_BITS" />
+		<field name="GL_BYTE" />
+		<field name="GL_CCW" />
+		<field name="GL_CLAMP_TO_EDGE" />
+		<field name="GL_CLEAR" />
+		<field name="GL_COLOR_ARRAY" />
+		<field name="GL_COLOR_BUFFER_BIT" />
+		<field name="GL_COLOR_LOGIC_OP" />
+		<field name="GL_COLOR_MATERIAL" />
+		<field name="GL_COMPRESSED_TEXTURE_FORMATS" />
+		<field name="GL_CONSTANT_ATTENUATION" />
+		<field name="GL_COPY" />
+		<field name="GL_COPY_INVERTED" />
+		<field name="GL_CULL_FACE" />
+		<field name="GL_CW" />
+		<field name="GL_DECAL" />
+		<field name="GL_DECR" />
+		<field name="GL_DEPTH_BITS" />
+		<field name="GL_DEPTH_BUFFER_BIT" />
+		<field name="GL_DEPTH_TEST" />
+		<field name="GL_DIFFUSE" />
+		<field name="GL_DITHER" />
+		<field name="GL_DONT_CARE" />
+		<field name="GL_DST_ALPHA" />
+		<field name="GL_DST_COLOR" />
+		<field name="GL_EMISSION" />
+		<field name="GL_EQUAL" />
+		<field name="GL_EQUIV" />
+		<field name="GL_EXP" />
+		<field name="GL_EXP2" />
+		<field name="GL_EXTENSIONS" />
+		<field name="GL_FALSE" />
+		<field name="GL_FASTEST" />
+		<field name="GL_FIXED" />
+		<field name="GL_FLAT" />
+		<field name="GL_FLOAT" />
+		<field name="GL_FOG" />
+		<field name="GL_FOG_COLOR" />
+		<field name="GL_FOG_DENSITY" />
+		<field name="GL_FOG_END" />
+		<field name="GL_FOG_HINT" />
+		<field name="GL_FOG_MODE" />
+		<field name="GL_FOG_START" />
+		<field name="GL_FRONT" />
+		<field name="GL_FRONT_AND_BACK" />
+		<field name="GL_GEQUAL" />
+		<field name="GL_GREATER" />
+		<field name="GL_GREEN_BITS" />
+		<field name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES" />
+		<field name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES" />
+		<field name="GL_INCR" />
+		<field name="GL_INVALID_ENUM" />
+		<field name="GL_INVALID_OPERATION" />
+		<field name="GL_INVALID_VALUE" />
+		<field name="GL_INVERT" />
+		<field name="GL_KEEP" />
+		<field name="GL_LEQUAL" />
+		<field name="GL_LESS" />
+		<field name="GL_LIGHT0" />
+		<field name="GL_LIGHT1" />
+		<field name="GL_LIGHT2" />
+		<field name="GL_LIGHT3" />
+		<field name="GL_LIGHT4" />
+		<field name="GL_LIGHT5" />
+		<field name="GL_LIGHT6" />
+		<field name="GL_LIGHT7" />
+		<field name="GL_LIGHTING" />
+		<field name="GL_LIGHT_MODEL_AMBIENT" />
+		<field name="GL_LIGHT_MODEL_TWO_SIDE" />
+		<field name="GL_LINEAR" />
+		<field name="GL_LINEAR_ATTENUATION" />
+		<field name="GL_LINEAR_MIPMAP_LINEAR" />
+		<field name="GL_LINEAR_MIPMAP_NEAREST" />
+		<field name="GL_LINES" />
+		<field name="GL_LINE_LOOP" />
+		<field name="GL_LINE_SMOOTH" />
+		<field name="GL_LINE_SMOOTH_HINT" />
+		<field name="GL_LINE_STRIP" />
+		<field name="GL_LUMINANCE" />
+		<field name="GL_LUMINANCE_ALPHA" />
+		<field name="GL_MAX_ELEMENTS_INDICES" />
+		<field name="GL_MAX_ELEMENTS_VERTICES" />
+		<field name="GL_MAX_LIGHTS" />
+		<field name="GL_MAX_MODELVIEW_STACK_DEPTH" />
+		<field name="GL_MAX_PROJECTION_STACK_DEPTH" />
+		<field name="GL_MAX_TEXTURE_SIZE" />
+		<field name="GL_MAX_TEXTURE_STACK_DEPTH" />
+		<field name="GL_MAX_TEXTURE_UNITS" />
+		<field name="GL_MAX_VIEWPORT_DIMS" />
+		<field name="GL_MODELVIEW" />
+		<field name="GL_MODULATE" />
+		<field name="GL_MULTISAMPLE" />
+		<field name="GL_NAND" />
+		<field name="GL_NEAREST" />
+		<field name="GL_NEAREST_MIPMAP_LINEAR" />
+		<field name="GL_NEAREST_MIPMAP_NEAREST" />
+		<field name="GL_NEVER" />
+		<field name="GL_NICEST" />
+		<field name="GL_NOOP" />
+		<field name="GL_NOR" />
+		<field name="GL_NORMALIZE" />
+		<field name="GL_NORMAL_ARRAY" />
+		<field name="GL_NOTEQUAL" />
+		<field name="GL_NO_ERROR" />
+		<field name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" />
+		<field name="GL_ONE" />
+		<field name="GL_ONE_MINUS_DST_ALPHA" />
+		<field name="GL_ONE_MINUS_DST_COLOR" />
+		<field name="GL_ONE_MINUS_SRC_ALPHA" />
+		<field name="GL_ONE_MINUS_SRC_COLOR" />
+		<field name="GL_OR" />
+		<field name="GL_OR_INVERTED" />
+		<field name="GL_OR_REVERSE" />
+		<field name="GL_OUT_OF_MEMORY" />
+		<field name="GL_PACK_ALIGNMENT" />
+		<field name="GL_PALETTE4_R5_G6_B5_OES" />
+		<field name="GL_PALETTE4_RGB5_A1_OES" />
+		<field name="GL_PALETTE4_RGB8_OES" />
+		<field name="GL_PALETTE4_RGBA4_OES" />
+		<field name="GL_PALETTE4_RGBA8_OES" />
+		<field name="GL_PALETTE8_R5_G6_B5_OES" />
+		<field name="GL_PALETTE8_RGB5_A1_OES" />
+		<field name="GL_PALETTE8_RGB8_OES" />
+		<field name="GL_PALETTE8_RGBA4_OES" />
+		<field name="GL_PALETTE8_RGBA8_OES" />
+		<field name="GL_PERSPECTIVE_CORRECTION_HINT" />
+		<field name="GL_POINTS" />
+		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
+		<field name="GL_POINT_SIZE" />
+		<field name="GL_POINT_SMOOTH" />
+		<field name="GL_POINT_SMOOTH_HINT" />
+		<field name="GL_POLYGON_OFFSET_FILL" />
+		<field name="GL_POLYGON_SMOOTH_HINT" />
+		<field name="GL_POSITION" />
+		<field name="GL_PROJECTION" />
+		<field name="GL_QUADRATIC_ATTENUATION" />
+		<field name="GL_RED_BITS" />
+		<field name="GL_RENDERER" />
+		<field name="GL_REPEAT" />
+		<field name="GL_REPLACE" />
+		<field name="GL_RESCALE_NORMAL" />
+		<field name="GL_RGB" />
+		<field name="GL_RGBA" />
+		<field name="GL_SAMPLE_ALPHA_TO_COVERAGE" />
+		<field name="GL_SAMPLE_ALPHA_TO_ONE" />
+		<field name="GL_SAMPLE_COVERAGE" />
+		<field name="GL_SCISSOR_TEST" />
+		<field name="GL_SET" />
+		<field name="GL_SHININESS" />
+		<field name="GL_SHORT" />
+		<field name="GL_SMOOTH" />
+		<field name="GL_SMOOTH_LINE_WIDTH_RANGE" />
+		<field name="GL_SMOOTH_POINT_SIZE_RANGE" />
+		<field name="GL_SPECULAR" />
+		<field name="GL_SPOT_CUTOFF" />
+		<field name="GL_SPOT_DIRECTION" />
+		<field name="GL_SPOT_EXPONENT" />
+		<field name="GL_SRC_ALPHA" />
+		<field name="GL_SRC_ALPHA_SATURATE" />
+		<field name="GL_SRC_COLOR" />
+		<field name="GL_STACK_OVERFLOW" />
+		<field name="GL_STACK_UNDERFLOW" />
+		<field name="GL_STENCIL_BITS" />
+		<field name="GL_STENCIL_BUFFER_BIT" />
+		<field name="GL_STENCIL_TEST" />
+		<field name="GL_SUBPIXEL_BITS" />
+		<field name="GL_TEXTURE" />
+		<field name="GL_TEXTURE0" />
+		<field name="GL_TEXTURE1" />
+		<field name="GL_TEXTURE10" />
+		<field name="GL_TEXTURE11" />
+		<field name="GL_TEXTURE12" />
+		<field name="GL_TEXTURE13" />
+		<field name="GL_TEXTURE14" />
+		<field name="GL_TEXTURE15" />
+		<field name="GL_TEXTURE16" />
+		<field name="GL_TEXTURE17" />
+		<field name="GL_TEXTURE18" />
+		<field name="GL_TEXTURE19" />
+		<field name="GL_TEXTURE2" />
+		<field name="GL_TEXTURE20" />
+		<field name="GL_TEXTURE21" />
+		<field name="GL_TEXTURE22" />
+		<field name="GL_TEXTURE23" />
+		<field name="GL_TEXTURE24" />
+		<field name="GL_TEXTURE25" />
+		<field name="GL_TEXTURE26" />
+		<field name="GL_TEXTURE27" />
+		<field name="GL_TEXTURE28" />
+		<field name="GL_TEXTURE29" />
+		<field name="GL_TEXTURE3" />
+		<field name="GL_TEXTURE30" />
+		<field name="GL_TEXTURE31" />
+		<field name="GL_TEXTURE4" />
+		<field name="GL_TEXTURE5" />
+		<field name="GL_TEXTURE6" />
+		<field name="GL_TEXTURE7" />
+		<field name="GL_TEXTURE8" />
+		<field name="GL_TEXTURE9" />
+		<field name="GL_TEXTURE_2D" />
+		<field name="GL_TEXTURE_COORD_ARRAY" />
+		<field name="GL_TEXTURE_ENV" />
+		<field name="GL_TEXTURE_ENV_COLOR" />
+		<field name="GL_TEXTURE_ENV_MODE" />
+		<field name="GL_TEXTURE_MAG_FILTER" />
+		<field name="GL_TEXTURE_MIN_FILTER" />
+		<field name="GL_TEXTURE_WRAP_S" />
+		<field name="GL_TEXTURE_WRAP_T" />
+		<field name="GL_TRIANGLES" />
+		<field name="GL_TRIANGLE_FAN" />
+		<field name="GL_TRIANGLE_STRIP" />
+		<field name="GL_TRUE" />
+		<field name="GL_UNPACK_ALIGNMENT" />
+		<field name="GL_UNSIGNED_BYTE" />
+		<field name="GL_UNSIGNED_SHORT" />
+		<field name="GL_UNSIGNED_SHORT_4_4_4_4" />
+		<field name="GL_UNSIGNED_SHORT_5_5_5_1" />
+		<field name="GL_UNSIGNED_SHORT_5_6_5" />
+		<field name="GL_VENDOR" />
+		<field name="GL_VERSION" />
+		<field name="GL_VERTEX_ARRAY" />
+		<field name="GL_XOR" />
+		<field name="GL_ZERO" />
+	</class>
+	<class name="android/opengl/GLES10Ext" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="glQueryMatrixxOES(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I" />
+		<method name="glQueryMatrixxOES([II[II)I" />
+	</class>
+	<class name="android/opengl/GLES11" since="4">
+		<extends name="android/opengl/GLES10" />
+		<method name="&lt;init>()V" />
+		<method name="glBindBuffer(II)V" />
+		<method name="glBufferData(IILjava/nio/Buffer;I)V" />
+		<method name="glBufferSubData(IIILjava/nio/Buffer;)V" />
+		<method name="glClipPlanef(ILjava/nio/FloatBuffer;)V" />
+		<method name="glClipPlanef(I[FI)V" />
+		<method name="glClipPlanex(ILjava/nio/IntBuffer;)V" />
+		<method name="glClipPlanex(I[II)V" />
+		<method name="glColor4ub(BBBB)V" />
+		<method name="glColorPointer(IIII)V" />
+		<method name="glDeleteBuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteBuffers(I[II)V" />
+		<method name="glDrawElements(IIII)V" />
+		<method name="glGenBuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenBuffers(I[II)V" />
+		<method name="glGetBooleanv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetBooleanv(I[ZI)V" />
+		<method name="glGetBufferParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetBufferParameteriv(II[II)V" />
+		<method name="glGetClipPlanef(ILjava/nio/FloatBuffer;)V" />
+		<method name="glGetClipPlanef(I[FI)V" />
+		<method name="glGetClipPlanex(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetClipPlanex(I[II)V" />
+		<method name="glGetFixedv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetFixedv(I[II)V" />
+		<method name="glGetFloatv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glGetFloatv(I[FI)V" />
+		<method name="glGetLightfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetLightfv(II[FI)V" />
+		<method name="glGetLightxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetLightxv(II[II)V" />
+		<method name="glGetMaterialfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetMaterialfv(II[FI)V" />
+		<method name="glGetMaterialxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetMaterialxv(II[II)V" />
+		<method name="glGetTexEnvfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetTexEnvfv(II[FI)V" />
+		<method name="glGetTexEnviv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexEnviv(II[II)V" />
+		<method name="glGetTexEnvxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexEnvxv(II[II)V" />
+		<method name="glGetTexParameterfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetTexParameterfv(II[FI)V" />
+		<method name="glGetTexParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexParameteriv(II[II)V" />
+		<method name="glGetTexParameterxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexParameterxv(II[II)V" />
+		<method name="glIsBuffer(I)Z" />
+		<method name="glIsEnabled(I)Z" />
+		<method name="glIsTexture(I)Z" />
+		<method name="glNormalPointer(III)V" />
+		<method name="glPointParameterf(IF)V" />
+		<method name="glPointParameterfv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glPointParameterfv(I[FI)V" />
+		<method name="glPointParameterx(II)V" />
+		<method name="glPointParameterxv(ILjava/nio/IntBuffer;)V" />
+		<method name="glPointParameterxv(I[II)V" />
+		<method name="glPointSizePointerOES(IILjava/nio/Buffer;)V" />
+		<method name="glTexCoordPointer(IIII)V" />
+		<method name="glTexEnvi(III)V" />
+		<method name="glTexEnviv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexEnviv(II[II)V" />
+		<method name="glTexParameterfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexParameterfv(II[FI)V" />
+		<method name="glTexParameteri(III)V" />
+		<method name="glTexParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexParameteriv(II[II)V" />
+		<method name="glTexParameterxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexParameterxv(II[II)V" />
+		<method name="glVertexPointer(IIII)V" />
+		<field name="GL_ACTIVE_TEXTURE" />
+		<field name="GL_ADD_SIGNED" />
+		<field name="GL_ALPHA_SCALE" />
+		<field name="GL_ALPHA_TEST_FUNC" />
+		<field name="GL_ALPHA_TEST_REF" />
+		<field name="GL_ARRAY_BUFFER" />
+		<field name="GL_ARRAY_BUFFER_BINDING" />
+		<field name="GL_BLEND_DST" />
+		<field name="GL_BLEND_SRC" />
+		<field name="GL_BUFFER_ACCESS" />
+		<field name="GL_BUFFER_SIZE" />
+		<field name="GL_BUFFER_USAGE" />
+		<field name="GL_CLIENT_ACTIVE_TEXTURE" />
+		<field name="GL_CLIP_PLANE0" />
+		<field name="GL_CLIP_PLANE1" />
+		<field name="GL_CLIP_PLANE2" />
+		<field name="GL_CLIP_PLANE3" />
+		<field name="GL_CLIP_PLANE4" />
+		<field name="GL_CLIP_PLANE5" />
+		<field name="GL_COLOR_ARRAY_BUFFER_BINDING" />
+		<field name="GL_COLOR_ARRAY_POINTER" />
+		<field name="GL_COLOR_ARRAY_SIZE" />
+		<field name="GL_COLOR_ARRAY_STRIDE" />
+		<field name="GL_COLOR_ARRAY_TYPE" />
+		<field name="GL_COLOR_CLEAR_VALUE" />
+		<field name="GL_COLOR_WRITEMASK" />
+		<field name="GL_COMBINE" />
+		<field name="GL_COMBINE_ALPHA" />
+		<field name="GL_COMBINE_RGB" />
+		<field name="GL_CONSTANT" />
+		<field name="GL_COORD_REPLACE_OES" />
+		<field name="GL_CULL_FACE_MODE" />
+		<field name="GL_CURRENT_COLOR" />
+		<field name="GL_CURRENT_NORMAL" />
+		<field name="GL_CURRENT_TEXTURE_COORDS" />
+		<field name="GL_DEPTH_CLEAR_VALUE" />
+		<field name="GL_DEPTH_FUNC" />
+		<field name="GL_DEPTH_RANGE" />
+		<field name="GL_DEPTH_WRITEMASK" />
+		<field name="GL_DOT3_RGB" />
+		<field name="GL_DOT3_RGBA" />
+		<field name="GL_DYNAMIC_DRAW" />
+		<field name="GL_ELEMENT_ARRAY_BUFFER" />
+		<field name="GL_ELEMENT_ARRAY_BUFFER_BINDING" />
+		<field name="GL_FRONT_FACE" />
+		<field name="GL_GENERATE_MIPMAP" />
+		<field name="GL_GENERATE_MIPMAP_HINT" />
+		<field name="GL_INTERPOLATE" />
+		<field name="GL_LINE_WIDTH" />
+		<field name="GL_LOGIC_OP_MODE" />
+		<field name="GL_MATRIX_MODE" />
+		<field name="GL_MAX_CLIP_PLANES" />
+		<field name="GL_MODELVIEW_MATRIX" />
+		<field name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_MODELVIEW_STACK_DEPTH" />
+		<field name="GL_NORMAL_ARRAY_BUFFER_BINDING" />
+		<field name="GL_NORMAL_ARRAY_POINTER" />
+		<field name="GL_NORMAL_ARRAY_STRIDE" />
+		<field name="GL_NORMAL_ARRAY_TYPE" />
+		<field name="GL_OPERAND0_ALPHA" />
+		<field name="GL_OPERAND0_RGB" />
+		<field name="GL_OPERAND1_ALPHA" />
+		<field name="GL_OPERAND1_RGB" />
+		<field name="GL_OPERAND2_ALPHA" />
+		<field name="GL_OPERAND2_RGB" />
+		<field name="GL_POINT_DISTANCE_ATTENUATION" />
+		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
+		<field name="GL_POINT_SIZE" />
+		<field name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_POINTER_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_STRIDE_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_TYPE_OES" />
+		<field name="GL_POINT_SIZE_MAX" />
+		<field name="GL_POINT_SIZE_MIN" />
+		<field name="GL_POINT_SPRITE_OES" />
+		<field name="GL_POLYGON_OFFSET_FACTOR" />
+		<field name="GL_POLYGON_OFFSET_UNITS" />
+		<field name="GL_PREVIOUS" />
+		<field name="GL_PRIMARY_COLOR" />
+		<field name="GL_PROJECTION_MATRIX" />
+		<field name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_PROJECTION_STACK_DEPTH" />
+		<field name="GL_RGB_SCALE" />
+		<field name="GL_SAMPLES" />
+		<field name="GL_SAMPLE_BUFFERS" />
+		<field name="GL_SAMPLE_COVERAGE_INVERT" />
+		<field name="GL_SAMPLE_COVERAGE_VALUE" />
+		<field name="GL_SCISSOR_BOX" />
+		<field name="GL_SHADE_MODEL" />
+		<field name="GL_SRC0_ALPHA" />
+		<field name="GL_SRC0_RGB" />
+		<field name="GL_SRC1_ALPHA" />
+		<field name="GL_SRC1_RGB" />
+		<field name="GL_SRC2_ALPHA" />
+		<field name="GL_SRC2_RGB" />
+		<field name="GL_STATIC_DRAW" />
+		<field name="GL_STENCIL_CLEAR_VALUE" />
+		<field name="GL_STENCIL_FAIL" />
+		<field name="GL_STENCIL_FUNC" />
+		<field name="GL_STENCIL_PASS_DEPTH_FAIL" />
+		<field name="GL_STENCIL_PASS_DEPTH_PASS" />
+		<field name="GL_STENCIL_REF" />
+		<field name="GL_STENCIL_VALUE_MASK" />
+		<field name="GL_STENCIL_WRITEMASK" />
+		<field name="GL_SUBTRACT" />
+		<field name="GL_TEXTURE_BINDING_2D" />
+		<field name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING" />
+		<field name="GL_TEXTURE_COORD_ARRAY_POINTER" />
+		<field name="GL_TEXTURE_COORD_ARRAY_SIZE" />
+		<field name="GL_TEXTURE_COORD_ARRAY_STRIDE" />
+		<field name="GL_TEXTURE_COORD_ARRAY_TYPE" />
+		<field name="GL_TEXTURE_MATRIX" />
+		<field name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_TEXTURE_STACK_DEPTH" />
+		<field name="GL_VERTEX_ARRAY_BUFFER_BINDING" />
+		<field name="GL_VERTEX_ARRAY_POINTER" />
+		<field name="GL_VERTEX_ARRAY_SIZE" />
+		<field name="GL_VERTEX_ARRAY_STRIDE" />
+		<field name="GL_VERTEX_ARRAY_TYPE" />
+		<field name="GL_VIEWPORT" />
+		<field name="GL_WRITE_ONLY" />
+	</class>
+	<class name="android/opengl/GLES11Ext" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="glAlphaFuncxOES(II)V" />
+		<method name="glBindFramebufferOES(II)V" />
+		<method name="glBindRenderbufferOES(II)V" />
+		<method name="glBlendEquationOES(I)V" />
+		<method name="glBlendEquationSeparateOES(II)V" />
+		<method name="glBlendFuncSeparateOES(IIII)V" />
+		<method name="glCheckFramebufferStatusOES(I)I" />
+		<method name="glClearColorxOES(IIII)V" />
+		<method name="glClearDepthfOES(F)V" />
+		<method name="glClearDepthxOES(I)V" />
+		<method name="glClipPlanefOES(ILjava/nio/FloatBuffer;)V" />
+		<method name="glClipPlanefOES(I[FI)V" />
+		<method name="glClipPlanexOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glClipPlanexOES(I[II)V" />
+		<method name="glColor4xOES(IIII)V" />
+		<method name="glCurrentPaletteMatrixOES(I)V" />
+		<method name="glDeleteFramebuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteFramebuffersOES(I[II)V" />
+		<method name="glDeleteRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteRenderbuffersOES(I[II)V" />
+		<method name="glDepthRangefOES(FF)V" />
+		<method name="glDepthRangexOES(II)V" />
+		<method name="glDrawTexfOES(FFFFF)V" />
+		<method name="glDrawTexfvOES(Ljava/nio/FloatBuffer;)V" />
+		<method name="glDrawTexfvOES([FI)V" />
+		<method name="glDrawTexiOES(IIIII)V" />
+		<method name="glDrawTexivOES(Ljava/nio/IntBuffer;)V" />
+		<method name="glDrawTexivOES([II)V" />
+		<method name="glDrawTexsOES(SSSSS)V" />
+		<method name="glDrawTexsvOES(Ljava/nio/ShortBuffer;)V" />
+		<method name="glDrawTexsvOES([SI)V" />
+		<method name="glDrawTexxOES(IIIII)V" />
+		<method name="glDrawTexxvOES(Ljava/nio/IntBuffer;)V" />
+		<method name="glDrawTexxvOES([II)V" />
+		<method name="glEGLImageTargetRenderbufferStorageOES(ILjava/nio/Buffer;)V" />
+		<method name="glEGLImageTargetTexture2DOES(ILjava/nio/Buffer;)V" />
+		<method name="glFogxOES(II)V" />
+		<method name="glFogxvOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glFogxvOES(I[II)V" />
+		<method name="glFramebufferRenderbufferOES(IIII)V" />
+		<method name="glFramebufferTexture2DOES(IIIII)V" />
+		<method name="glFrustumfOES(FFFFFF)V" />
+		<method name="glFrustumxOES(IIIIII)V" />
+		<method name="glGenFramebuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenFramebuffersOES(I[II)V" />
+		<method name="glGenRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenRenderbuffersOES(I[II)V" />
+		<method name="glGenerateMipmapOES(I)V" />
+		<method name="glGetClipPlanefOES(ILjava/nio/FloatBuffer;)V" />
+		<method name="glGetClipPlanefOES(I[FI)V" />
+		<method name="glGetClipPlanexOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetClipPlanexOES(I[II)V" />
+		<method name="glGetFixedvOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetFixedvOES(I[II)V" />
+		<method name="glGetFramebufferAttachmentParameterivOES(IIILjava/nio/IntBuffer;)V" />
+		<method name="glGetFramebufferAttachmentParameterivOES(III[II)V" />
+		<method name="glGetLightxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetLightxvOES(II[II)V" />
+		<method name="glGetMaterialxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetMaterialxvOES(II[II)V" />
+		<method name="glGetRenderbufferParameterivOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetRenderbufferParameterivOES(II[II)V" />
+		<method name="glGetTexEnvxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexEnvxvOES(II[II)V" />
+		<method name="glGetTexGenfvOES(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetTexGenfvOES(II[FI)V" />
+		<method name="glGetTexGenivOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexGenivOES(II[II)V" />
+		<method name="glGetTexGenxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexGenxvOES(II[II)V" />
+		<method name="glGetTexParameterxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexParameterxvOES(II[II)V" />
+		<method name="glIsFramebufferOES(I)Z" />
+		<method name="glIsRenderbufferOES(I)Z" />
+		<method name="glLightModelxOES(II)V" />
+		<method name="glLightModelxvOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glLightModelxvOES(I[II)V" />
+		<method name="glLightxOES(III)V" />
+		<method name="glLightxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glLightxvOES(II[II)V" />
+		<method name="glLineWidthxOES(I)V" />
+		<method name="glLoadMatrixxOES(Ljava/nio/IntBuffer;)V" />
+		<method name="glLoadMatrixxOES([II)V" />
+		<method name="glLoadPaletteFromModelViewMatrixOES()V" />
+		<method name="glMaterialxOES(III)V" />
+		<method name="glMaterialxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glMaterialxvOES(II[II)V" />
+		<method name="glMatrixIndexPointerOES(IIILjava/nio/Buffer;)V" />
+		<method name="glMultMatrixxOES(Ljava/nio/IntBuffer;)V" />
+		<method name="glMultMatrixxOES([II)V" />
+		<method name="glMultiTexCoord4xOES(IIIII)V" />
+		<method name="glNormal3xOES(III)V" />
+		<method name="glOrthofOES(FFFFFF)V" />
+		<method name="glOrthoxOES(IIIIII)V" />
+		<method name="glPointParameterxOES(II)V" />
+		<method name="glPointParameterxvOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glPointParameterxvOES(I[II)V" />
+		<method name="glPointSizexOES(I)V" />
+		<method name="glPolygonOffsetxOES(II)V" />
+		<method name="glRenderbufferStorageOES(IIII)V" />
+		<method name="glRotatexOES(IIII)V" />
+		<method name="glSampleCoveragexOES(IZ)V" />
+		<method name="glScalexOES(III)V" />
+		<method name="glTexEnvxOES(III)V" />
+		<method name="glTexEnvxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexEnvxvOES(II[II)V" />
+		<method name="glTexGenfOES(IIF)V" />
+		<method name="glTexGenfvOES(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexGenfvOES(II[FI)V" />
+		<method name="glTexGeniOES(III)V" />
+		<method name="glTexGenivOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexGenivOES(II[II)V" />
+		<method name="glTexGenxOES(III)V" />
+		<method name="glTexGenxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexGenxvOES(II[II)V" />
+		<method name="glTexParameterxOES(III)V" />
+		<method name="glTexParameterxvOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexParameterxvOES(II[II)V" />
+		<method name="glTranslatexOES(III)V" />
+		<method name="glWeightPointerOES(IIILjava/nio/Buffer;)V" />
+		<field name="GL_3DC_XY_AMD" />
+		<field name="GL_3DC_X_AMD" />
+		<field name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD" />
+		<field name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD" />
+		<field name="GL_ATC_RGB_AMD" />
+		<field name="GL_BGRA" />
+		<field name="GL_BLEND_DST_ALPHA_OES" />
+		<field name="GL_BLEND_DST_RGB_OES" />
+		<field name="GL_BLEND_EQUATION_ALPHA_OES" />
+		<field name="GL_BLEND_EQUATION_OES" />
+		<field name="GL_BLEND_EQUATION_RGB_OES" />
+		<field name="GL_BLEND_SRC_ALPHA_OES" />
+		<field name="GL_BLEND_SRC_RGB_OES" />
+		<field name="GL_BUFFER_ACCESS_OES" />
+		<field name="GL_BUFFER_MAPPED_OES" />
+		<field name="GL_BUFFER_MAP_POINTER_OES" />
+		<field name="GL_COLOR_ATTACHMENT0_OES" />
+		<field name="GL_CURRENT_PALETTE_MATRIX_OES" />
+		<field name="GL_DECR_WRAP_OES" />
+		<field name="GL_DEPTH24_STENCIL8_OES" />
+		<field name="GL_DEPTH_ATTACHMENT_OES" />
+		<field name="GL_DEPTH_COMPONENT16_OES" />
+		<field name="GL_DEPTH_COMPONENT24_OES" />
+		<field name="GL_DEPTH_COMPONENT32_OES" />
+		<field name="GL_DEPTH_STENCIL_OES" />
+		<field name="GL_ETC1_RGB8_OES" />
+		<field name="GL_FIXED_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" />
+		<field name="GL_FRAMEBUFFER_BINDING_OES" />
+		<field name="GL_FRAMEBUFFER_COMPLETE_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES" />
+		<field name="GL_FRAMEBUFFER_OES" />
+		<field name="GL_FRAMEBUFFER_UNSUPPORTED_OES" />
+		<field name="GL_FUNC_ADD_OES" />
+		<field name="GL_FUNC_REVERSE_SUBTRACT_OES" />
+		<field name="GL_FUNC_SUBTRACT_OES" />
+		<field name="GL_INCR_WRAP_OES" />
+		<field name="GL_INVALID_FRAMEBUFFER_OPERATION_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_SIZE_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_TYPE_OES" />
+		<field name="GL_MATRIX_PALETTE_OES" />
+		<field name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES" />
+		<field name="GL_MAX_PALETTE_MATRICES_OES" />
+		<field name="GL_MAX_RENDERBUFFER_SIZE_OES" />
+		<field name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT" />
+		<field name="GL_MAX_VERTEX_UNITS_OES" />
+		<field name="GL_MIRRORED_REPEAT_OES" />
+		<field name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_NONE_OES" />
+		<field name="GL_NORMAL_MAP_OES" />
+		<field name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_REFLECTION_MAP_OES" />
+		<field name="GL_RENDERBUFFER_ALPHA_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_BINDING_OES" />
+		<field name="GL_RENDERBUFFER_BLUE_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_DEPTH_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_GREEN_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_HEIGHT_OES" />
+		<field name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES" />
+		<field name="GL_RENDERBUFFER_OES" />
+		<field name="GL_RENDERBUFFER_RED_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_STENCIL_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_WIDTH_OES" />
+		<field name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES" since="15" />
+		<field name="GL_RGB565_OES" />
+		<field name="GL_RGB5_A1_OES" />
+		<field name="GL_RGB8_OES" />
+		<field name="GL_RGBA4_OES" />
+		<field name="GL_RGBA8_OES" />
+		<field name="GL_SAMPLER_EXTERNAL_OES" since="15" />
+		<field name="GL_STENCIL_ATTACHMENT_OES" />
+		<field name="GL_STENCIL_INDEX1_OES" />
+		<field name="GL_STENCIL_INDEX4_OES" />
+		<field name="GL_STENCIL_INDEX8_OES" />
+		<field name="GL_TEXTURE_BINDING_CUBE_MAP_OES" />
+		<field name="GL_TEXTURE_BINDING_EXTERNAL_OES" since="15" />
+		<field name="GL_TEXTURE_CROP_RECT_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES" />
+		<field name="GL_TEXTURE_EXTERNAL_OES" since="15" />
+		<field name="GL_TEXTURE_GEN_MODE_OES" />
+		<field name="GL_TEXTURE_GEN_STR_OES" />
+		<field name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_TEXTURE_MAX_ANISOTROPY_EXT" />
+		<field name="GL_UNSIGNED_INT_24_8_OES" />
+		<field name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES" />
+		<field name="GL_WEIGHT_ARRAY_OES" />
+		<field name="GL_WEIGHT_ARRAY_POINTER_OES" />
+		<field name="GL_WEIGHT_ARRAY_SIZE_OES" />
+		<field name="GL_WEIGHT_ARRAY_STRIDE_OES" />
+		<field name="GL_WEIGHT_ARRAY_TYPE_OES" />
+		<field name="GL_WRITE_ONLY_OES" />
+	</class>
+	<class name="android/opengl/GLES20" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="glActiveTexture(I)V" />
+		<method name="glAttachShader(II)V" />
+		<method name="glBindAttribLocation(IILjava/lang/String;)V" />
+		<method name="glBindBuffer(II)V" />
+		<method name="glBindFramebuffer(II)V" />
+		<method name="glBindRenderbuffer(II)V" />
+		<method name="glBindTexture(II)V" />
+		<method name="glBlendColor(FFFF)V" />
+		<method name="glBlendEquation(I)V" />
+		<method name="glBlendEquationSeparate(II)V" />
+		<method name="glBlendFunc(II)V" />
+		<method name="glBlendFuncSeparate(IIII)V" />
+		<method name="glBufferData(IILjava/nio/Buffer;I)V" />
+		<method name="glBufferSubData(IIILjava/nio/Buffer;)V" />
+		<method name="glCheckFramebufferStatus(I)I" />
+		<method name="glClear(I)V" />
+		<method name="glClearColor(FFFF)V" />
+		<method name="glClearDepthf(F)V" />
+		<method name="glClearStencil(I)V" />
+		<method name="glColorMask(ZZZZ)V" />
+		<method name="glCompileShader(I)V" />
+		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCompressedTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCopyTexImage2D(IIIIIIII)V" />
+		<method name="glCopyTexSubImage2D(IIIIIIII)V" />
+		<method name="glCreateProgram()I" />
+		<method name="glCreateShader(I)I" />
+		<method name="glCullFace(I)V" />
+		<method name="glDeleteBuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteBuffers(I[II)V" />
+		<method name="glDeleteFramebuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteFramebuffers(I[II)V" />
+		<method name="glDeleteProgram(I)V" />
+		<method name="glDeleteRenderbuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteRenderbuffers(I[II)V" />
+		<method name="glDeleteShader(I)V" />
+		<method name="glDeleteTextures(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteTextures(I[II)V" />
+		<method name="glDepthFunc(I)V" />
+		<method name="glDepthMask(Z)V" />
+		<method name="glDepthRangef(FF)V" />
+		<method name="glDetachShader(II)V" />
+		<method name="glDisable(I)V" />
+		<method name="glDisableVertexAttribArray(I)V" />
+		<method name="glDrawArrays(III)V" />
+		<method name="glDrawElements(IIII)V" since="9" />
+		<method name="glDrawElements(IIILjava/nio/Buffer;)V" />
+		<method name="glEnable(I)V" />
+		<method name="glEnableVertexAttribArray(I)V" />
+		<method name="glFinish()V" />
+		<method name="glFlush()V" />
+		<method name="glFramebufferRenderbuffer(IIII)V" />
+		<method name="glFramebufferTexture2D(IIIII)V" />
+		<method name="glFrontFace(I)V" />
+		<method name="glGenBuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenBuffers(I[II)V" />
+		<method name="glGenFramebuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenFramebuffers(I[II)V" />
+		<method name="glGenRenderbuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenRenderbuffers(I[II)V" />
+		<method name="glGenTextures(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenTextures(I[II)V" />
+		<method name="glGenerateMipmap(I)V" />
+		<method name="glGetActiveAttrib(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V" />
+		<method name="glGetActiveAttrib(III[II[II[II[BI)V" />
+		<method name="glGetActiveUniform(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V" />
+		<method name="glGetActiveUniform(III[II[II[II[BI)V" />
+		<method name="glGetAttachedShaders(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V" />
+		<method name="glGetAttachedShaders(II[II[II)V" />
+		<method name="glGetAttribLocation(ILjava/lang/String;)I" />
+		<method name="glGetBooleanv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetBooleanv(I[ZI)V" />
+		<method name="glGetBufferParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetBufferParameteriv(II[II)V" />
+		<method name="glGetError()I" />
+		<method name="glGetFloatv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glGetFloatv(I[FI)V" />
+		<method name="glGetFramebufferAttachmentParameteriv(IIILjava/nio/IntBuffer;)V" />
+		<method name="glGetFramebufferAttachmentParameteriv(III[II)V" />
+		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetIntegerv(I[II)V" />
+		<method name="glGetProgramInfoLog(I)Ljava/lang/String;" />
+		<method name="glGetProgramiv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetProgramiv(II[II)V" />
+		<method name="glGetRenderbufferParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetRenderbufferParameteriv(II[II)V" />
+		<method name="glGetShaderInfoLog(I)Ljava/lang/String;" />
+		<method name="glGetShaderPrecisionFormat(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V" />
+		<method name="glGetShaderPrecisionFormat(II[II[II)V" />
+		<method name="glGetShaderSource(IILjava/nio/IntBuffer;B)V" />
+		<method name="glGetShaderSource(II[II[BI)V" />
+		<method name="glGetShaderiv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetShaderiv(II[II)V" />
+		<method name="glGetString(I)Ljava/lang/String;" />
+		<method name="glGetTexParameterfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetTexParameterfv(II[FI)V" />
+		<method name="glGetTexParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexParameteriv(II[II)V" />
+		<method name="glGetUniformLocation(ILjava/lang/String;)I" />
+		<method name="glGetUniformfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetUniformfv(II[FI)V" />
+		<method name="glGetUniformiv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetUniformiv(II[II)V" />
+		<method name="glGetVertexAttribfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetVertexAttribfv(II[FI)V" />
+		<method name="glGetVertexAttribiv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetVertexAttribiv(II[II)V" />
+		<method name="glHint(II)V" />
+		<method name="glIsBuffer(I)Z" />
+		<method name="glIsEnabled(I)Z" />
+		<method name="glIsFramebuffer(I)Z" />
+		<method name="glIsProgram(I)Z" />
+		<method name="glIsRenderbuffer(I)Z" />
+		<method name="glIsShader(I)Z" />
+		<method name="glIsTexture(I)Z" />
+		<method name="glLineWidth(F)V" />
+		<method name="glLinkProgram(I)V" />
+		<method name="glPixelStorei(II)V" />
+		<method name="glPolygonOffset(FF)V" />
+		<method name="glReadPixels(IIIIIILjava/nio/Buffer;)V" />
+		<method name="glReleaseShaderCompiler()V" />
+		<method name="glRenderbufferStorage(IIII)V" />
+		<method name="glSampleCoverage(FZ)V" />
+		<method name="glScissor(IIII)V" />
+		<method name="glShaderBinary(ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V" />
+		<method name="glShaderBinary(I[IIILjava/nio/Buffer;I)V" />
+		<method name="glShaderSource(ILjava/lang/String;)V" />
+		<method name="glStencilFunc(III)V" />
+		<method name="glStencilFuncSeparate(IIII)V" />
+		<method name="glStencilMask(I)V" />
+		<method name="glStencilMaskSeparate(II)V" />
+		<method name="glStencilOp(III)V" />
+		<method name="glStencilOpSeparate(IIII)V" />
+		<method name="glTexImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glTexParameterf(IIF)V" />
+		<method name="glTexParameterfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexParameterfv(II[FI)V" />
+		<method name="glTexParameteri(III)V" />
+		<method name="glTexParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexParameteriv(II[II)V" />
+		<method name="glTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glUniform1f(IF)V" />
+		<method name="glUniform1fv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glUniform1fv(II[FI)V" />
+		<method name="glUniform1i(II)V" />
+		<method name="glUniform1iv(IILjava/nio/IntBuffer;)V" />
+		<method name="glUniform1iv(II[II)V" />
+		<method name="glUniform2f(IFF)V" />
+		<method name="glUniform2fv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glUniform2fv(II[FI)V" />
+		<method name="glUniform2i(III)V" />
+		<method name="glUniform2iv(IILjava/nio/IntBuffer;)V" />
+		<method name="glUniform2iv(II[II)V" />
+		<method name="glUniform3f(IFFF)V" />
+		<method name="glUniform3fv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glUniform3fv(II[FI)V" />
+		<method name="glUniform3i(IIII)V" />
+		<method name="glUniform3iv(IILjava/nio/IntBuffer;)V" />
+		<method name="glUniform3iv(II[II)V" />
+		<method name="glUniform4f(IFFFF)V" />
+		<method name="glUniform4fv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glUniform4fv(II[FI)V" />
+		<method name="glUniform4i(IIIII)V" />
+		<method name="glUniform4iv(IILjava/nio/IntBuffer;)V" />
+		<method name="glUniform4iv(II[II)V" />
+		<method name="glUniformMatrix2fv(IIZLjava/nio/FloatBuffer;)V" />
+		<method name="glUniformMatrix2fv(IIZ[FI)V" />
+		<method name="glUniformMatrix3fv(IIZLjava/nio/FloatBuffer;)V" />
+		<method name="glUniformMatrix3fv(IIZ[FI)V" />
+		<method name="glUniformMatrix4fv(IIZLjava/nio/FloatBuffer;)V" />
+		<method name="glUniformMatrix4fv(IIZ[FI)V" />
+		<method name="glUseProgram(I)V" />
+		<method name="glValidateProgram(I)V" />
+		<method name="glVertexAttrib1f(IF)V" />
+		<method name="glVertexAttrib1fv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glVertexAttrib1fv(I[FI)V" />
+		<method name="glVertexAttrib2f(IFF)V" />
+		<method name="glVertexAttrib2fv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glVertexAttrib2fv(I[FI)V" />
+		<method name="glVertexAttrib3f(IFFF)V" />
+		<method name="glVertexAttrib3fv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glVertexAttrib3fv(I[FI)V" />
+		<method name="glVertexAttrib4f(IFFFF)V" />
+		<method name="glVertexAttrib4fv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glVertexAttrib4fv(I[FI)V" />
+		<method name="glVertexAttribPointer(IIIZII)V" since="9" />
+		<method name="glVertexAttribPointer(IIIZILjava/nio/Buffer;)V" />
+		<method name="glViewport(IIII)V" />
+		<field name="GL_ACTIVE_ATTRIBUTES" />
+		<field name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH" />
+		<field name="GL_ACTIVE_TEXTURE" />
+		<field name="GL_ACTIVE_UNIFORMS" />
+		<field name="GL_ACTIVE_UNIFORM_MAX_LENGTH" />
+		<field name="GL_ALIASED_LINE_WIDTH_RANGE" />
+		<field name="GL_ALIASED_POINT_SIZE_RANGE" />
+		<field name="GL_ALPHA" />
+		<field name="GL_ALPHA_BITS" />
+		<field name="GL_ALWAYS" />
+		<field name="GL_ARRAY_BUFFER" />
+		<field name="GL_ARRAY_BUFFER_BINDING" />
+		<field name="GL_ATTACHED_SHADERS" />
+		<field name="GL_BACK" />
+		<field name="GL_BLEND" />
+		<field name="GL_BLEND_COLOR" />
+		<field name="GL_BLEND_DST_ALPHA" />
+		<field name="GL_BLEND_DST_RGB" />
+		<field name="GL_BLEND_EQUATION" />
+		<field name="GL_BLEND_EQUATION_ALPHA" />
+		<field name="GL_BLEND_EQUATION_RGB" />
+		<field name="GL_BLEND_SRC_ALPHA" />
+		<field name="GL_BLEND_SRC_RGB" />
+		<field name="GL_BLUE_BITS" />
+		<field name="GL_BOOL" />
+		<field name="GL_BOOL_VEC2" />
+		<field name="GL_BOOL_VEC3" />
+		<field name="GL_BOOL_VEC4" />
+		<field name="GL_BUFFER_SIZE" />
+		<field name="GL_BUFFER_USAGE" />
+		<field name="GL_BYTE" />
+		<field name="GL_CCW" />
+		<field name="GL_CLAMP_TO_EDGE" />
+		<field name="GL_COLOR_ATTACHMENT0" />
+		<field name="GL_COLOR_BUFFER_BIT" />
+		<field name="GL_COLOR_CLEAR_VALUE" />
+		<field name="GL_COLOR_WRITEMASK" />
+		<field name="GL_COMPILE_STATUS" />
+		<field name="GL_COMPRESSED_TEXTURE_FORMATS" />
+		<field name="GL_CONSTANT_ALPHA" />
+		<field name="GL_CONSTANT_COLOR" />
+		<field name="GL_CULL_FACE" />
+		<field name="GL_CULL_FACE_MODE" />
+		<field name="GL_CURRENT_PROGRAM" />
+		<field name="GL_CURRENT_VERTEX_ATTRIB" />
+		<field name="GL_CW" />
+		<field name="GL_DECR" />
+		<field name="GL_DECR_WRAP" />
+		<field name="GL_DELETE_STATUS" />
+		<field name="GL_DEPTH_ATTACHMENT" />
+		<field name="GL_DEPTH_BITS" />
+		<field name="GL_DEPTH_BUFFER_BIT" />
+		<field name="GL_DEPTH_CLEAR_VALUE" />
+		<field name="GL_DEPTH_COMPONENT" />
+		<field name="GL_DEPTH_COMPONENT16" />
+		<field name="GL_DEPTH_FUNC" />
+		<field name="GL_DEPTH_RANGE" />
+		<field name="GL_DEPTH_TEST" />
+		<field name="GL_DEPTH_WRITEMASK" />
+		<field name="GL_DITHER" />
+		<field name="GL_DONT_CARE" />
+		<field name="GL_DST_ALPHA" />
+		<field name="GL_DST_COLOR" />
+		<field name="GL_DYNAMIC_DRAW" />
+		<field name="GL_ELEMENT_ARRAY_BUFFER" />
+		<field name="GL_ELEMENT_ARRAY_BUFFER_BINDING" />
+		<field name="GL_EQUAL" />
+		<field name="GL_EXTENSIONS" />
+		<field name="GL_FALSE" />
+		<field name="GL_FASTEST" />
+		<field name="GL_FIXED" />
+		<field name="GL_FLOAT" />
+		<field name="GL_FLOAT_MAT2" />
+		<field name="GL_FLOAT_MAT3" />
+		<field name="GL_FLOAT_MAT4" />
+		<field name="GL_FLOAT_VEC2" />
+		<field name="GL_FLOAT_VEC3" />
+		<field name="GL_FLOAT_VEC4" />
+		<field name="GL_FRAGMENT_SHADER" />
+		<field name="GL_FRAMEBUFFER" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL" />
+		<field name="GL_FRAMEBUFFER_BINDING" />
+		<field name="GL_FRAMEBUFFER_COMPLETE" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT" />
+		<field name="GL_FRAMEBUFFER_UNSUPPORTED" />
+		<field name="GL_FRONT" />
+		<field name="GL_FRONT_AND_BACK" />
+		<field name="GL_FRONT_FACE" />
+		<field name="GL_FUNC_ADD" />
+		<field name="GL_FUNC_REVERSE_SUBTRACT" />
+		<field name="GL_FUNC_SUBTRACT" />
+		<field name="GL_GENERATE_MIPMAP_HINT" />
+		<field name="GL_GEQUAL" />
+		<field name="GL_GREATER" />
+		<field name="GL_GREEN_BITS" />
+		<field name="GL_HIGH_FLOAT" />
+		<field name="GL_HIGH_INT" />
+		<field name="GL_IMPLEMENTATION_COLOR_READ_FORMAT" />
+		<field name="GL_IMPLEMENTATION_COLOR_READ_TYPE" />
+		<field name="GL_INCR" />
+		<field name="GL_INCR_WRAP" />
+		<field name="GL_INFO_LOG_LENGTH" />
+		<field name="GL_INT" />
+		<field name="GL_INT_VEC2" />
+		<field name="GL_INT_VEC3" />
+		<field name="GL_INT_VEC4" />
+		<field name="GL_INVALID_ENUM" />
+		<field name="GL_INVALID_FRAMEBUFFER_OPERATION" />
+		<field name="GL_INVALID_OPERATION" />
+		<field name="GL_INVALID_VALUE" />
+		<field name="GL_INVERT" />
+		<field name="GL_KEEP" />
+		<field name="GL_LEQUAL" />
+		<field name="GL_LESS" />
+		<field name="GL_LINEAR" />
+		<field name="GL_LINEAR_MIPMAP_LINEAR" />
+		<field name="GL_LINEAR_MIPMAP_NEAREST" />
+		<field name="GL_LINES" />
+		<field name="GL_LINE_LOOP" />
+		<field name="GL_LINE_STRIP" />
+		<field name="GL_LINE_WIDTH" />
+		<field name="GL_LINK_STATUS" />
+		<field name="GL_LOW_FLOAT" />
+		<field name="GL_LOW_INT" />
+		<field name="GL_LUMINANCE" />
+		<field name="GL_LUMINANCE_ALPHA" />
+		<field name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS" />
+		<field name="GL_MAX_CUBE_MAP_TEXTURE_SIZE" />
+		<field name="GL_MAX_FRAGMENT_UNIFORM_VECTORS" />
+		<field name="GL_MAX_RENDERBUFFER_SIZE" />
+		<field name="GL_MAX_TEXTURE_IMAGE_UNITS" />
+		<field name="GL_MAX_TEXTURE_SIZE" />
+		<field name="GL_MAX_VARYING_VECTORS" />
+		<field name="GL_MAX_VERTEX_ATTRIBS" />
+		<field name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS" />
+		<field name="GL_MAX_VERTEX_UNIFORM_VECTORS" />
+		<field name="GL_MAX_VIEWPORT_DIMS" />
+		<field name="GL_MEDIUM_FLOAT" />
+		<field name="GL_MEDIUM_INT" />
+		<field name="GL_MIRRORED_REPEAT" />
+		<field name="GL_NEAREST" />
+		<field name="GL_NEAREST_MIPMAP_LINEAR" />
+		<field name="GL_NEAREST_MIPMAP_NEAREST" />
+		<field name="GL_NEVER" />
+		<field name="GL_NICEST" />
+		<field name="GL_NONE" />
+		<field name="GL_NOTEQUAL" />
+		<field name="GL_NO_ERROR" />
+		<field name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" />
+		<field name="GL_NUM_SHADER_BINARY_FORMATS" />
+		<field name="GL_ONE" />
+		<field name="GL_ONE_MINUS_CONSTANT_ALPHA" />
+		<field name="GL_ONE_MINUS_CONSTANT_COLOR" />
+		<field name="GL_ONE_MINUS_DST_ALPHA" />
+		<field name="GL_ONE_MINUS_DST_COLOR" />
+		<field name="GL_ONE_MINUS_SRC_ALPHA" />
+		<field name="GL_ONE_MINUS_SRC_COLOR" />
+		<field name="GL_OUT_OF_MEMORY" />
+		<field name="GL_PACK_ALIGNMENT" />
+		<field name="GL_POINTS" />
+		<field name="GL_POLYGON_OFFSET_FACTOR" />
+		<field name="GL_POLYGON_OFFSET_FILL" />
+		<field name="GL_POLYGON_OFFSET_UNITS" />
+		<field name="GL_RED_BITS" />
+		<field name="GL_RENDERBUFFER" />
+		<field name="GL_RENDERBUFFER_ALPHA_SIZE" />
+		<field name="GL_RENDERBUFFER_BINDING" />
+		<field name="GL_RENDERBUFFER_BLUE_SIZE" />
+		<field name="GL_RENDERBUFFER_DEPTH_SIZE" />
+		<field name="GL_RENDERBUFFER_GREEN_SIZE" />
+		<field name="GL_RENDERBUFFER_HEIGHT" />
+		<field name="GL_RENDERBUFFER_INTERNAL_FORMAT" />
+		<field name="GL_RENDERBUFFER_RED_SIZE" />
+		<field name="GL_RENDERBUFFER_STENCIL_SIZE" />
+		<field name="GL_RENDERBUFFER_WIDTH" />
+		<field name="GL_RENDERER" />
+		<field name="GL_REPEAT" />
+		<field name="GL_REPLACE" />
+		<field name="GL_RGB" />
+		<field name="GL_RGB565" />
+		<field name="GL_RGB5_A1" />
+		<field name="GL_RGBA" />
+		<field name="GL_RGBA4" />
+		<field name="GL_SAMPLER_2D" />
+		<field name="GL_SAMPLER_CUBE" />
+		<field name="GL_SAMPLES" />
+		<field name="GL_SAMPLE_ALPHA_TO_COVERAGE" />
+		<field name="GL_SAMPLE_BUFFERS" />
+		<field name="GL_SAMPLE_COVERAGE" />
+		<field name="GL_SAMPLE_COVERAGE_INVERT" />
+		<field name="GL_SAMPLE_COVERAGE_VALUE" />
+		<field name="GL_SCISSOR_BOX" />
+		<field name="GL_SCISSOR_TEST" />
+		<field name="GL_SHADER_BINARY_FORMATS" />
+		<field name="GL_SHADER_COMPILER" />
+		<field name="GL_SHADER_SOURCE_LENGTH" />
+		<field name="GL_SHADER_TYPE" />
+		<field name="GL_SHADING_LANGUAGE_VERSION" />
+		<field name="GL_SHORT" />
+		<field name="GL_SRC_ALPHA" />
+		<field name="GL_SRC_ALPHA_SATURATE" />
+		<field name="GL_SRC_COLOR" />
+		<field name="GL_STATIC_DRAW" />
+		<field name="GL_STENCIL_ATTACHMENT" />
+		<field name="GL_STENCIL_BACK_FAIL" />
+		<field name="GL_STENCIL_BACK_FUNC" />
+		<field name="GL_STENCIL_BACK_PASS_DEPTH_FAIL" />
+		<field name="GL_STENCIL_BACK_PASS_DEPTH_PASS" />
+		<field name="GL_STENCIL_BACK_REF" />
+		<field name="GL_STENCIL_BACK_VALUE_MASK" />
+		<field name="GL_STENCIL_BACK_WRITEMASK" />
+		<field name="GL_STENCIL_BITS" />
+		<field name="GL_STENCIL_BUFFER_BIT" />
+		<field name="GL_STENCIL_CLEAR_VALUE" />
+		<field name="GL_STENCIL_FAIL" />
+		<field name="GL_STENCIL_FUNC" />
+		<field name="GL_STENCIL_INDEX" />
+		<field name="GL_STENCIL_INDEX8" />
+		<field name="GL_STENCIL_PASS_DEPTH_FAIL" />
+		<field name="GL_STENCIL_PASS_DEPTH_PASS" />
+		<field name="GL_STENCIL_REF" />
+		<field name="GL_STENCIL_TEST" />
+		<field name="GL_STENCIL_VALUE_MASK" />
+		<field name="GL_STENCIL_WRITEMASK" />
+		<field name="GL_STREAM_DRAW" />
+		<field name="GL_SUBPIXEL_BITS" />
+		<field name="GL_TEXTURE" />
+		<field name="GL_TEXTURE0" />
+		<field name="GL_TEXTURE1" />
+		<field name="GL_TEXTURE10" />
+		<field name="GL_TEXTURE11" />
+		<field name="GL_TEXTURE12" />
+		<field name="GL_TEXTURE13" />
+		<field name="GL_TEXTURE14" />
+		<field name="GL_TEXTURE15" />
+		<field name="GL_TEXTURE16" />
+		<field name="GL_TEXTURE17" />
+		<field name="GL_TEXTURE18" />
+		<field name="GL_TEXTURE19" />
+		<field name="GL_TEXTURE2" />
+		<field name="GL_TEXTURE20" />
+		<field name="GL_TEXTURE21" />
+		<field name="GL_TEXTURE22" />
+		<field name="GL_TEXTURE23" />
+		<field name="GL_TEXTURE24" />
+		<field name="GL_TEXTURE25" />
+		<field name="GL_TEXTURE26" />
+		<field name="GL_TEXTURE27" />
+		<field name="GL_TEXTURE28" />
+		<field name="GL_TEXTURE29" />
+		<field name="GL_TEXTURE3" />
+		<field name="GL_TEXTURE30" />
+		<field name="GL_TEXTURE31" />
+		<field name="GL_TEXTURE4" />
+		<field name="GL_TEXTURE5" />
+		<field name="GL_TEXTURE6" />
+		<field name="GL_TEXTURE7" />
+		<field name="GL_TEXTURE8" />
+		<field name="GL_TEXTURE9" />
+		<field name="GL_TEXTURE_2D" />
+		<field name="GL_TEXTURE_BINDING_2D" />
+		<field name="GL_TEXTURE_BINDING_CUBE_MAP" />
+		<field name="GL_TEXTURE_CUBE_MAP" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" />
+		<field name="GL_TEXTURE_MAG_FILTER" />
+		<field name="GL_TEXTURE_MIN_FILTER" />
+		<field name="GL_TEXTURE_WRAP_S" />
+		<field name="GL_TEXTURE_WRAP_T" />
+		<field name="GL_TRIANGLES" />
+		<field name="GL_TRIANGLE_FAN" />
+		<field name="GL_TRIANGLE_STRIP" />
+		<field name="GL_TRUE" />
+		<field name="GL_UNPACK_ALIGNMENT" />
+		<field name="GL_UNSIGNED_BYTE" />
+		<field name="GL_UNSIGNED_INT" />
+		<field name="GL_UNSIGNED_SHORT" />
+		<field name="GL_UNSIGNED_SHORT_4_4_4_4" />
+		<field name="GL_UNSIGNED_SHORT_5_5_5_1" />
+		<field name="GL_UNSIGNED_SHORT_5_6_5" />
+		<field name="GL_VALIDATE_STATUS" />
+		<field name="GL_VENDOR" />
+		<field name="GL_VERSION" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_ENABLED" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_POINTER" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_SIZE" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_STRIDE" />
+		<field name="GL_VERTEX_ATTRIB_ARRAY_TYPE" />
+		<field name="GL_VERTEX_SHADER" />
+		<field name="GL_VIEWPORT" />
+		<field name="GL_ZERO" />
+	</class>
+	<class name="android/opengl/GLException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/lang/String;)V" />
+	</class>
+	<class name="android/opengl/GLSurfaceView" since="3">
+		<extends name="android/view/SurfaceView" />
+		<implements name="android/view/SurfaceHolder$Callback" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getDebugFlags()I" />
+		<method name="getPreserveEGLContextOnPause()Z" since="11" />
+		<method name="getRenderMode()I" />
+		<method name="onPause()V" />
+		<method name="onResume()V" />
+		<method name="queueEvent(Ljava/lang/Runnable;)V" />
+		<method name="requestRender()V" />
+		<method name="setDebugFlags(I)V" />
+		<method name="setEGLConfigChooser(IIIIII)V" />
+		<method name="setEGLConfigChooser(Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V" />
+		<method name="setEGLConfigChooser(Z)V" />
+		<method name="setEGLContextClientVersion(I)V" since="8" />
+		<method name="setEGLContextFactory(Landroid/opengl/GLSurfaceView$EGLContextFactory;)V" since="5" />
+		<method name="setEGLWindowSurfaceFactory(Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;)V" since="5" />
+		<method name="setGLWrapper(Landroid/opengl/GLSurfaceView$GLWrapper;)V" />
+		<method name="setPreserveEGLContextOnPause(Z)V" since="11" />
+		<method name="setRenderMode(I)V" />
+		<method name="setRenderer(Landroid/opengl/GLSurfaceView$Renderer;)V" />
+		<method name="surfaceChanged(Landroid/view/SurfaceHolder;III)V" />
+		<method name="surfaceCreated(Landroid/view/SurfaceHolder;)V" />
+		<method name="surfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
+		<field name="DEBUG_CHECK_GL_ERROR" />
+		<field name="DEBUG_LOG_GL_CALLS" />
+		<field name="RENDERMODE_CONTINUOUSLY" />
+		<field name="RENDERMODE_WHEN_DIRTY" />
+	</class>
+	<class name="android/opengl/GLSurfaceView$EGLConfigChooser" since="3">
+		<method name="chooseConfig(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;)Ljavax/microedition/khronos/egl/EGLConfig;" />
+	</class>
+	<class name="android/opengl/GLSurfaceView$EGLContextFactory" since="5">
+		<method name="createContext(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;)Ljavax/microedition/khronos/egl/EGLContext;" />
+		<method name="destroyContext(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;)V" />
+	</class>
+	<class name="android/opengl/GLSurfaceView$EGLWindowSurfaceFactory" since="5">
+		<method name="createWindowSurface(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLSurface;" />
+		<method name="destroySurface(Ljavax/microedition/khronos/egl/EGL10;Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)V" />
+	</class>
+	<class name="android/opengl/GLSurfaceView$GLWrapper" since="3">
+		<method name="wrap(Ljavax/microedition/khronos/opengles/GL;)Ljavax/microedition/khronos/opengles/GL;" />
+	</class>
+	<class name="android/opengl/GLSurfaceView$Renderer" since="3">
+		<method name="onDrawFrame(Ljavax/microedition/khronos/opengles/GL10;)V" />
+		<method name="onSurfaceChanged(Ljavax/microedition/khronos/opengles/GL10;II)V" />
+		<method name="onSurfaceCreated(Ljavax/microedition/khronos/opengles/GL10;Ljavax/microedition/khronos/egl/EGLConfig;)V" />
+	</class>
+	<class name="android/opengl/GLU" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="gluErrorString(I)Ljava/lang/String;" />
+		<method name="gluLookAt(Ljavax/microedition/khronos/opengles/GL10;FFFFFFFFF)V" />
+		<method name="gluOrtho2D(Ljavax/microedition/khronos/opengles/GL10;FFFF)V" />
+		<method name="gluPerspective(Ljavax/microedition/khronos/opengles/GL10;FFFF)V" />
+		<method name="gluProject(FFF[FI[FI[II[FI)I" />
+		<method name="gluUnProject(FFF[FI[FI[II[FI)I" />
+	</class>
+	<class name="android/opengl/GLUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getEGLErrorString(I)Ljava/lang/String;" since="14" />
+		<method name="getInternalFormat(Landroid/graphics/Bitmap;)I" />
+		<method name="getType(Landroid/graphics/Bitmap;)I" />
+		<method name="texImage2D(IIILandroid/graphics/Bitmap;I)V" />
+		<method name="texImage2D(IIILandroid/graphics/Bitmap;II)V" />
+		<method name="texImage2D(IILandroid/graphics/Bitmap;I)V" />
+		<method name="texSubImage2D(IIIILandroid/graphics/Bitmap;)V" />
+		<method name="texSubImage2D(IIIILandroid/graphics/Bitmap;II)V" />
+	</class>
+	<class name="android/opengl/Matrix" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="frustumM([FIFFFFFF)V" />
+		<method name="invertM([FI[FI)Z" />
+		<method name="length(FFF)F" />
+		<method name="multiplyMM([FI[FI[FI)V" />
+		<method name="multiplyMV([FI[FI[FI)V" />
+		<method name="orthoM([FIFFFFFF)V" />
+		<method name="perspectiveM([FIFFFF)V" since="14" />
+		<method name="rotateM([FIFFFF)V" />
+		<method name="rotateM([FI[FIFFFF)V" />
+		<method name="scaleM([FIFFF)V" />
+		<method name="scaleM([FI[FIFFF)V" />
+		<method name="setIdentityM([FI)V" />
+		<method name="setLookAtM([FIFFFFFFFFF)V" since="8" />
+		<method name="setRotateEulerM([FIFFF)V" />
+		<method name="setRotateM([FIFFFF)V" />
+		<method name="translateM([FIFFF)V" />
+		<method name="translateM([FI[FIFFF)V" />
+		<method name="transposeM([FI[FI)V" />
+	</class>
+	<class name="android/opengl/Visibility" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="computeBoundingSphere([FII[FI)V" />
+		<method name="frustumCullSpheres([FI[FII[III)I" />
+		<method name="visibilityTest([FI[FI[CII)I" />
+	</class>
+	<class name="android/os/AsyncTask" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="cancel(Z)Z" />
+		<method name="doInBackground([LParams;)LResult;" />
+		<method name="execute(Ljava/lang/Runnable;)V" since="11" />
+		<method name="execute([LParams;)Landroid/os/AsyncTask;" />
+		<method name="executeOnExecutor(Ljava/util/concurrent/Executor;[LParams;)Landroid/os/AsyncTask;" since="11" />
+		<method name="get()LResult;" />
+		<method name="get(JLjava/util/concurrent/TimeUnit;)LResult;" />
+		<method name="getStatus()Landroid/os/AsyncTask$Status;" />
+		<method name="isCancelled()Z" />
+		<method name="onCancelled()V" />
+		<method name="onCancelled(LResult;)V" since="11" />
+		<method name="onPostExecute(LResult;)V" />
+		<method name="onPreExecute()V" />
+		<method name="onProgressUpdate([LProgress;)V" />
+		<method name="publishProgress([LProgress;)V" />
+		<field name="SERIAL_EXECUTOR" since="11" />
+		<field name="THREAD_POOL_EXECUTOR" since="11" />
+	</class>
+	<class name="android/os/AsyncTask$Status" since="3">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/os/AsyncTask$Status;" />
+		<method name="values()[Landroid/os/AsyncTask$Status;" />
+		<field name="FINISHED" />
+		<field name="PENDING" />
+		<field name="RUNNING" />
+	</class>
+	<class name="android/os/BadParcelableException" since="1">
+		<extends name="android/util/AndroidRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/os/BatteryManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="BATTERY_HEALTH_COLD" since="11" />
+		<field name="BATTERY_HEALTH_DEAD" />
+		<field name="BATTERY_HEALTH_GOOD" />
+		<field name="BATTERY_HEALTH_OVERHEAT" />
+		<field name="BATTERY_HEALTH_OVER_VOLTAGE" />
+		<field name="BATTERY_HEALTH_UNKNOWN" />
+		<field name="BATTERY_HEALTH_UNSPECIFIED_FAILURE" />
+		<field name="BATTERY_PLUGGED_AC" />
+		<field name="BATTERY_PLUGGED_USB" />
+		<field name="BATTERY_STATUS_CHARGING" />
+		<field name="BATTERY_STATUS_DISCHARGING" />
+		<field name="BATTERY_STATUS_FULL" />
+		<field name="BATTERY_STATUS_NOT_CHARGING" />
+		<field name="BATTERY_STATUS_UNKNOWN" />
+		<field name="EXTRA_HEALTH" since="5" />
+		<field name="EXTRA_ICON_SMALL" since="5" />
+		<field name="EXTRA_LEVEL" since="5" />
+		<field name="EXTRA_PLUGGED" since="5" />
+		<field name="EXTRA_PRESENT" since="5" />
+		<field name="EXTRA_SCALE" since="5" />
+		<field name="EXTRA_STATUS" since="5" />
+		<field name="EXTRA_TECHNOLOGY" since="5" />
+		<field name="EXTRA_TEMPERATURE" since="5" />
+		<field name="EXTRA_VOLTAGE" since="5" />
+	</class>
+	<class name="android/os/Binder" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/IBinder" />
+		<method name="&lt;init>()V" />
+		<method name="attachInterface(Landroid/os/IInterface;Ljava/lang/String;)V" />
+		<method name="clearCallingIdentity()J" />
+		<method name="dump(Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" />
+		<method name="dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V" since="3" />
+		<method name="dumpAsync(Ljava/io/FileDescriptor;[Ljava/lang/String;)V" since="13" />
+		<method name="flushPendingCommands()V" />
+		<method name="getCallingPid()I" />
+		<method name="getCallingUid()I" />
+		<method name="getInterfaceDescriptor()Ljava/lang/String;" />
+		<method name="isBinderAlive()Z" />
+		<method name="joinThreadPool()V" />
+		<method name="linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V" />
+		<method name="onTransact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z" />
+		<method name="pingBinder()Z" />
+		<method name="queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;" />
+		<method name="restoreCallingIdentity(J)V" />
+		<method name="transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z" />
+		<method name="unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z" />
+	</class>
+	<class name="android/os/Build" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getRadioVersion()Ljava/lang/String;" since="14" />
+		<field name="BOARD" />
+		<field name="BOOTLOADER" since="8" />
+		<field name="BRAND" />
+		<field name="CPU_ABI" since="4" />
+		<field name="CPU_ABI2" since="8" />
+		<field name="DEVICE" />
+		<field name="DISPLAY" since="3" />
+		<field name="FINGERPRINT" />
+		<field name="HARDWARE" since="8" />
+		<field name="HOST" />
+		<field name="ID" />
+		<field name="MANUFACTURER" since="4" />
+		<field name="MODEL" />
+		<field name="PRODUCT" />
+		<field name="RADIO" since="8" />
+		<field name="SERIAL" since="9" />
+		<field name="TAGS" />
+		<field name="TIME" />
+		<field name="TYPE" />
+		<field name="UNKNOWN" since="8" />
+		<field name="USER" />
+	</class>
+	<class name="android/os/Build$VERSION" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="CODENAME" since="4" />
+		<field name="INCREMENTAL" />
+		<field name="RELEASE" />
+		<field name="SDK" />
+		<field name="SDK_INT" since="4" />
+	</class>
+	<class name="android/os/Build$VERSION_CODES" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="BASE" />
+		<field name="BASE_1_1" />
+		<field name="CUPCAKE" />
+		<field name="CUR_DEVELOPMENT" />
+		<field name="DONUT" />
+		<field name="ECLAIR" since="5" />
+		<field name="ECLAIR_0_1" since="6" />
+		<field name="ECLAIR_MR1" since="7" />
+		<field name="FROYO" since="8" />
+		<field name="GINGERBREAD" since="9" />
+		<field name="GINGERBREAD_MR1" since="10" />
+		<field name="HONEYCOMB" since="11" />
+		<field name="HONEYCOMB_MR1" since="12" />
+		<field name="HONEYCOMB_MR2" since="13" />
+		<field name="ICE_CREAM_SANDWICH" since="14" />
+		<field name="ICE_CREAM_SANDWICH_MR1" since="15" />
+	</class>
+	<class name="android/os/Bundle" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/os/Bundle;)V" />
+		<method name="&lt;init>(Ljava/lang/ClassLoader;)V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="containsKey(Ljava/lang/String;)Z" />
+		<method name="describeContents()I" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getBoolean(Ljava/lang/String;)Z" />
+		<method name="getBoolean(Ljava/lang/String;Z)Z" />
+		<method name="getBooleanArray(Ljava/lang/String;)[Z" />
+		<method name="getBundle(Ljava/lang/String;)Landroid/os/Bundle;" />
+		<method name="getByte(Ljava/lang/String;)B" />
+		<method name="getByte(Ljava/lang/String;B)Ljava/lang/Byte;" />
+		<method name="getByteArray(Ljava/lang/String;)[B" />
+		<method name="getChar(Ljava/lang/String;)C" />
+		<method name="getChar(Ljava/lang/String;C)C" />
+		<method name="getCharArray(Ljava/lang/String;)[C" />
+		<method name="getCharSequence(Ljava/lang/String;)Ljava/lang/CharSequence;" />
+		<method name="getCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" since="12" />
+		<method name="getCharSequenceArray(Ljava/lang/String;)[Ljava/lang/CharSequence;" since="8" />
+		<method name="getCharSequenceArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" since="8" />
+		<method name="getClassLoader()Ljava/lang/ClassLoader;" since="11" />
+		<method name="getDouble(Ljava/lang/String;)D" />
+		<method name="getDouble(Ljava/lang/String;D)D" />
+		<method name="getDoubleArray(Ljava/lang/String;)[D" />
+		<method name="getFloat(Ljava/lang/String;)F" />
+		<method name="getFloat(Ljava/lang/String;F)F" />
+		<method name="getFloatArray(Ljava/lang/String;)[F" />
+		<method name="getInt(Ljava/lang/String;)I" />
+		<method name="getInt(Ljava/lang/String;I)I" />
+		<method name="getIntArray(Ljava/lang/String;)[I" />
+		<method name="getIntegerArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getLong(Ljava/lang/String;)J" />
+		<method name="getLong(Ljava/lang/String;J)J" />
+		<method name="getLongArray(Ljava/lang/String;)[J" />
+		<method name="getParcelable(Ljava/lang/String;)LT;" />
+		<method name="getParcelableArray(Ljava/lang/String;)[Landroid/os/Parcelable;" />
+		<method name="getParcelableArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getSerializable(Ljava/lang/String;)Ljava/io/Serializable;" />
+		<method name="getShort(Ljava/lang/String;)S" />
+		<method name="getShort(Ljava/lang/String;S)S" />
+		<method name="getShortArray(Ljava/lang/String;)[S" />
+		<method name="getSparseParcelableArray(Ljava/lang/String;)Landroid/util/SparseArray;" />
+		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" since="12" />
+		<method name="getStringArray(Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="hasFileDescriptors()Z" />
+		<method name="isEmpty()Z" />
+		<method name="keySet()Ljava/util/Set;" />
+		<method name="putAll(Landroid/os/Bundle;)V" />
+		<method name="putBoolean(Ljava/lang/String;Z)V" />
+		<method name="putBooleanArray(Ljava/lang/String;[Z)V" />
+		<method name="putBundle(Ljava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="putByte(Ljava/lang/String;B)V" />
+		<method name="putByteArray(Ljava/lang/String;[B)V" />
+		<method name="putChar(Ljava/lang/String;C)V" />
+		<method name="putCharArray(Ljava/lang/String;[C)V" />
+		<method name="putCharSequence(Ljava/lang/String;Ljava/lang/CharSequence;)V" />
+		<method name="putCharSequenceArray(Ljava/lang/String;[Ljava/lang/CharSequence;)V" since="8" />
+		<method name="putCharSequenceArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" since="8" />
+		<method name="putDouble(Ljava/lang/String;D)V" />
+		<method name="putDoubleArray(Ljava/lang/String;[D)V" />
+		<method name="putFloat(Ljava/lang/String;F)V" />
+		<method name="putFloatArray(Ljava/lang/String;[F)V" />
+		<method name="putInt(Ljava/lang/String;I)V" />
+		<method name="putIntArray(Ljava/lang/String;[I)V" />
+		<method name="putIntegerArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" />
+		<method name="putLong(Ljava/lang/String;J)V" />
+		<method name="putLongArray(Ljava/lang/String;[J)V" />
+		<method name="putParcelable(Ljava/lang/String;Landroid/os/Parcelable;)V" />
+		<method name="putParcelableArray(Ljava/lang/String;[Landroid/os/Parcelable;)V" />
+		<method name="putParcelableArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" />
+		<method name="putSerializable(Ljava/lang/String;Ljava/io/Serializable;)V" />
+		<method name="putShort(Ljava/lang/String;S)V" />
+		<method name="putShortArray(Ljava/lang/String;[S)V" />
+		<method name="putSparseParcelableArray(Ljava/lang/String;Landroid/util/SparseArray;)V" />
+		<method name="putString(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="putStringArray(Ljava/lang/String;[Ljava/lang/String;)V" />
+		<method name="putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="remove(Ljava/lang/String;)V" />
+		<method name="setClassLoader(Ljava/lang/ClassLoader;)V" />
+		<method name="size()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="EMPTY" />
+	</class>
+	<class name="android/os/ConditionVariable" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="block()V" />
+		<method name="block(J)Z" />
+		<method name="close()V" />
+		<method name="open()V" />
+	</class>
+	<class name="android/os/CountDownTimer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(JJ)V" />
+		<method name="cancel()V" />
+		<method name="onFinish()V" />
+		<method name="onTick(J)V" />
+		<method name="start()Landroid/os/CountDownTimer;" />
+	</class>
+	<class name="android/os/DeadObjectException" since="1">
+		<extends name="android/os/RemoteException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/os/Debug" since="1">
+		<extends name="java/lang/Object" />
+		<method name="changeDebugPort(I)V" />
+		<method name="dumpHprofData(Ljava/lang/String;)V" since="3" />
+		<method name="dumpService(Ljava/lang/String;Ljava/io/FileDescriptor;[Ljava/lang/String;)Z" since="8" />
+		<method name="enableEmulatorTraceOutput()V" />
+		<method name="getBinderDeathObjectCount()I" />
+		<method name="getBinderLocalObjectCount()I" />
+		<method name="getBinderProxyObjectCount()I" />
+		<method name="getBinderReceivedTransactions()I" />
+		<method name="getBinderSentTransactions()I" />
+		<method name="getGlobalAllocCount()I" />
+		<method name="getGlobalAllocSize()I" />
+		<method name="getGlobalClassInitCount()I" since="8" />
+		<method name="getGlobalClassInitTime()I" since="8" />
+		<method name="getGlobalExternalAllocCount()I" />
+		<method name="getGlobalExternalAllocSize()I" />
+		<method name="getGlobalExternalFreedCount()I" />
+		<method name="getGlobalExternalFreedSize()I" />
+		<method name="getGlobalFreedCount()I" />
+		<method name="getGlobalFreedSize()I" />
+		<method name="getGlobalGcInvocationCount()I" />
+		<method name="getLoadedClassCount()I" />
+		<method name="getMemoryInfo(Landroid/os/Debug$MemoryInfo;)V" />
+		<method name="getNativeHeapAllocatedSize()J" />
+		<method name="getNativeHeapFreeSize()J" />
+		<method name="getNativeHeapSize()J" />
+		<method name="getPss()J" since="14" />
+		<method name="getThreadAllocCount()I" />
+		<method name="getThreadAllocSize()I" />
+		<method name="getThreadExternalAllocCount()I" />
+		<method name="getThreadExternalAllocSize()I" />
+		<method name="getThreadGcInvocationCount()I" />
+		<method name="isDebuggerConnected()Z" />
+		<method name="printLoadedClasses(I)V" />
+		<method name="resetAllCounts()V" />
+		<method name="resetGlobalAllocCount()V" />
+		<method name="resetGlobalAllocSize()V" />
+		<method name="resetGlobalClassInitCount()V" since="8" />
+		<method name="resetGlobalClassInitTime()V" since="8" />
+		<method name="resetGlobalExternalAllocCount()V" />
+		<method name="resetGlobalExternalAllocSize()V" />
+		<method name="resetGlobalExternalFreedCount()V" />
+		<method name="resetGlobalExternalFreedSize()V" />
+		<method name="resetGlobalFreedCount()V" />
+		<method name="resetGlobalFreedSize()V" />
+		<method name="resetGlobalGcInvocationCount()V" />
+		<method name="resetThreadAllocCount()V" />
+		<method name="resetThreadAllocSize()V" />
+		<method name="resetThreadExternalAllocCount()V" />
+		<method name="resetThreadExternalAllocSize()V" />
+		<method name="resetThreadGcInvocationCount()V" />
+		<method name="setAllocationLimit(I)I" />
+		<method name="setGlobalAllocationLimit(I)I" />
+		<method name="startAllocCounting()V" />
+		<method name="startMethodTracing()V" />
+		<method name="startMethodTracing(Ljava/lang/String;)V" />
+		<method name="startMethodTracing(Ljava/lang/String;I)V" />
+		<method name="startMethodTracing(Ljava/lang/String;II)V" />
+		<method name="startNativeTracing()V" />
+		<method name="stopAllocCounting()V" />
+		<method name="stopMethodTracing()V" />
+		<method name="stopNativeTracing()V" />
+		<method name="threadCpuTimeNanos()J" />
+		<method name="waitForDebugger()V" />
+		<method name="waitingForDebugger()Z" />
+		<field name="SHOW_CLASSLOADER" />
+		<field name="SHOW_FULL_DETAIL" />
+		<field name="SHOW_INITIALIZED" />
+		<field name="TRACE_COUNT_ALLOCS" />
+	</class>
+	<class name="android/os/Debug$InstructionCount" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="collect()Z" />
+		<method name="globalMethodInvocations()I" />
+		<method name="globalTotal()I" />
+		<method name="resetAndStart()Z" />
+	</class>
+	<class name="android/os/Debug$MemoryInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" since="5" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" since="5" />
+		<method name="getOtherLabel(I)Ljava/lang/String;" since="14" />
+		<method name="getOtherPrivateDirty(I)I" since="14" />
+		<method name="getOtherPss(I)I" since="14" />
+		<method name="getOtherSharedDirty(I)I" since="14" />
+		<method name="getTotalPrivateDirty()I" since="5" />
+		<method name="getTotalPss()I" since="5" />
+		<method name="getTotalSharedDirty()I" since="5" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" since="5" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="5" />
+		<field name="CREATOR" since="5" />
+		<field name="dalvikPrivateDirty" />
+		<field name="dalvikPss" />
+		<field name="dalvikSharedDirty" />
+		<field name="nativePrivateDirty" />
+		<field name="nativePss" />
+		<field name="nativeSharedDirty" />
+		<field name="otherPrivateDirty" />
+		<field name="otherPss" />
+		<field name="otherSharedDirty" />
+	</class>
+	<class name="android/os/DropBoxManager" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addData(Ljava/lang/String;[BI)V" />
+		<method name="addFile(Ljava/lang/String;Ljava/io/File;I)V" />
+		<method name="addText(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getNextEntry(Ljava/lang/String;J)Landroid/os/DropBoxManager$Entry;" />
+		<method name="isTagEnabled(Ljava/lang/String;)Z" />
+		<field name="ACTION_DROPBOX_ENTRY_ADDED" since="11" />
+		<field name="EXTRA_TAG" since="11" />
+		<field name="EXTRA_TIME" since="11" />
+		<field name="IS_EMPTY" />
+		<field name="IS_GZIPPED" />
+		<field name="IS_TEXT" />
+	</class>
+	<class name="android/os/DropBoxManager$Entry" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<implements name="java/io/Closeable" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;J)V" />
+		<method name="&lt;init>(Ljava/lang/String;JLandroid/os/ParcelFileDescriptor;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;JLjava/io/File;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;JLjava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;J[BI)V" />
+		<method name="close()V" />
+		<method name="describeContents()I" />
+		<method name="getFlags()I" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getTag()Ljava/lang/String;" />
+		<method name="getText(I)Ljava/lang/String;" />
+		<method name="getTimeMillis()J" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/os/Environment" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getDataDirectory()Ljava/io/File;" />
+		<method name="getDownloadCacheDirectory()Ljava/io/File;" />
+		<method name="getExternalStorageDirectory()Ljava/io/File;" />
+		<method name="getExternalStoragePublicDirectory(Ljava/lang/String;)Ljava/io/File;" since="8" />
+		<method name="getExternalStorageState()Ljava/lang/String;" />
+		<method name="getRootDirectory()Ljava/io/File;" />
+		<method name="isExternalStorageEmulated()Z" since="11" />
+		<method name="isExternalStorageRemovable()Z" since="9" />
+		<field name="DIRECTORY_ALARMS" since="8" />
+		<field name="DIRECTORY_DCIM" since="8" />
+		<field name="DIRECTORY_DOWNLOADS" since="8" />
+		<field name="DIRECTORY_MOVIES" since="8" />
+		<field name="DIRECTORY_MUSIC" since="8" />
+		<field name="DIRECTORY_NOTIFICATIONS" since="8" />
+		<field name="DIRECTORY_PICTURES" since="8" />
+		<field name="DIRECTORY_PODCASTS" since="8" />
+		<field name="DIRECTORY_RINGTONES" since="8" />
+		<field name="MEDIA_BAD_REMOVAL" />
+		<field name="MEDIA_CHECKING" since="3" />
+		<field name="MEDIA_MOUNTED" />
+		<field name="MEDIA_MOUNTED_READ_ONLY" />
+		<field name="MEDIA_NOFS" since="3" />
+		<field name="MEDIA_REMOVED" />
+		<field name="MEDIA_SHARED" />
+		<field name="MEDIA_UNMOUNTABLE" />
+		<field name="MEDIA_UNMOUNTED" />
+	</class>
+	<class name="android/os/FileObserver" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="onEvent(ILjava/lang/String;)V" />
+		<method name="startWatching()V" />
+		<method name="stopWatching()V" />
+		<field name="ACCESS" />
+		<field name="ALL_EVENTS" />
+		<field name="ATTRIB" />
+		<field name="CLOSE_NOWRITE" />
+		<field name="CLOSE_WRITE" />
+		<field name="CREATE" />
+		<field name="DELETE" />
+		<field name="DELETE_SELF" />
+		<field name="MODIFY" />
+		<field name="MOVED_FROM" />
+		<field name="MOVED_TO" />
+		<field name="MOVE_SELF" />
+		<field name="OPEN" />
+	</class>
+	<class name="android/os/Handler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Handler$Callback;)V" since="3" />
+		<method name="&lt;init>(Landroid/os/Looper;)V" />
+		<method name="&lt;init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V" since="3" />
+		<method name="dispatchMessage(Landroid/os/Message;)V" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getLooper()Landroid/os/Looper;" />
+		<method name="getMessageName(Landroid/os/Message;)Ljava/lang/String;" since="14" />
+		<method name="handleMessage(Landroid/os/Message;)V" />
+		<method name="hasMessages(I)Z" />
+		<method name="hasMessages(ILjava/lang/Object;)Z" />
+		<method name="obtainMessage()Landroid/os/Message;" />
+		<method name="obtainMessage(I)Landroid/os/Message;" />
+		<method name="obtainMessage(III)Landroid/os/Message;" />
+		<method name="obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;" />
+		<method name="obtainMessage(ILjava/lang/Object;)Landroid/os/Message;" />
+		<method name="post(Ljava/lang/Runnable;)Z" />
+		<method name="postAtFrontOfQueue(Ljava/lang/Runnable;)Z" />
+		<method name="postAtTime(Ljava/lang/Runnable;J)Z" />
+		<method name="postAtTime(Ljava/lang/Runnable;Ljava/lang/Object;J)Z" />
+		<method name="postDelayed(Ljava/lang/Runnable;J)Z" />
+		<method name="removeCallbacks(Ljava/lang/Runnable;)V" />
+		<method name="removeCallbacks(Ljava/lang/Runnable;Ljava/lang/Object;)V" />
+		<method name="removeCallbacksAndMessages(Ljava/lang/Object;)V" />
+		<method name="removeMessages(I)V" />
+		<method name="removeMessages(ILjava/lang/Object;)V" />
+		<method name="sendEmptyMessage(I)Z" />
+		<method name="sendEmptyMessageAtTime(IJ)Z" />
+		<method name="sendEmptyMessageDelayed(IJ)Z" />
+		<method name="sendMessage(Landroid/os/Message;)Z" />
+		<method name="sendMessageAtFrontOfQueue(Landroid/os/Message;)Z" />
+		<method name="sendMessageAtTime(Landroid/os/Message;J)Z" />
+		<method name="sendMessageDelayed(Landroid/os/Message;J)Z" />
+	</class>
+	<class name="android/os/Handler$Callback" since="3">
+		<method name="handleMessage(Landroid/os/Message;)Z" />
+	</class>
+	<class name="android/os/HandlerThread" since="1">
+		<extends name="java/lang/Thread" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="getLooper()Landroid/os/Looper;" />
+		<method name="getThreadId()I" />
+		<method name="onLooperPrepared()V" />
+		<method name="quit()Z" since="5" />
+	</class>
+	<class name="android/os/IBinder" since="1">
+		<method name="dump(Ljava/io/FileDescriptor;[Ljava/lang/String;)V" since="3" />
+		<method name="dumpAsync(Ljava/io/FileDescriptor;[Ljava/lang/String;)V" since="13" />
+		<method name="getInterfaceDescriptor()Ljava/lang/String;" />
+		<method name="isBinderAlive()Z" />
+		<method name="linkToDeath(Landroid/os/IBinder$DeathRecipient;I)V" />
+		<method name="pingBinder()Z" />
+		<method name="queryLocalInterface(Ljava/lang/String;)Landroid/os/IInterface;" />
+		<method name="transact(ILandroid/os/Parcel;Landroid/os/Parcel;I)Z" />
+		<method name="unlinkToDeath(Landroid/os/IBinder$DeathRecipient;I)Z" />
+		<field name="DUMP_TRANSACTION" />
+		<field name="FIRST_CALL_TRANSACTION" />
+		<field name="FLAG_ONEWAY" />
+		<field name="INTERFACE_TRANSACTION" />
+		<field name="LAST_CALL_TRANSACTION" />
+		<field name="LIKE_TRANSACTION" since="15" />
+		<field name="PING_TRANSACTION" />
+		<field name="TWEET_TRANSACTION" since="13" />
+	</class>
+	<class name="android/os/IBinder$DeathRecipient" since="1">
+		<method name="binderDied()V" />
+	</class>
+	<class name="android/os/IInterface" since="1">
+		<method name="asBinder()Landroid/os/IBinder;" />
+	</class>
+	<class name="android/os/Looper" since="1">
+		<extends name="java/lang/Object" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getMainLooper()Landroid/os/Looper;" />
+		<method name="getThread()Ljava/lang/Thread;" since="3" />
+		<method name="loop()V" />
+		<method name="myLooper()Landroid/os/Looper;" />
+		<method name="myQueue()Landroid/os/MessageQueue;" />
+		<method name="prepare()V" />
+		<method name="prepareMainLooper()V" />
+		<method name="quit()V" />
+		<method name="setMessageLogging(Landroid/util/Printer;)V" />
+	</class>
+	<class name="android/os/MemoryFile" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="allowPurging(Z)Z" />
+		<method name="close()V" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="isPurgingAllowed()Z" />
+		<method name="length()I" />
+		<method name="readBytes([BIII)I" />
+		<method name="writeBytes([BIII)V" />
+	</class>
+	<class name="android/os/Message" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="copyFrom(Landroid/os/Message;)V" />
+		<method name="describeContents()I" />
+		<method name="getCallback()Ljava/lang/Runnable;" />
+		<method name="getData()Landroid/os/Bundle;" />
+		<method name="getTarget()Landroid/os/Handler;" />
+		<method name="getWhen()J" />
+		<method name="obtain()Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Handler;)Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Handler;I)Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Handler;III)Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Handler;IIILjava/lang/Object;)Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Handler;Ljava/lang/Runnable;)Landroid/os/Message;" />
+		<method name="obtain(Landroid/os/Message;)Landroid/os/Message;" />
+		<method name="peekData()Landroid/os/Bundle;" />
+		<method name="recycle()V" />
+		<method name="sendToTarget()V" />
+		<method name="setData(Landroid/os/Bundle;)V" />
+		<method name="setTarget(Landroid/os/Handler;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="arg1" />
+		<field name="arg2" />
+		<field name="obj" />
+		<field name="replyTo" />
+		<field name="what" />
+	</class>
+	<class name="android/os/MessageQueue" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V" />
+		<method name="removeIdleHandler(Landroid/os/MessageQueue$IdleHandler;)V" />
+	</class>
+	<class name="android/os/MessageQueue$IdleHandler" since="1">
+		<method name="queueIdle()Z" />
+	</class>
+	<class name="android/os/Messenger" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Handler;)V" />
+		<method name="&lt;init>(Landroid/os/IBinder;)V" />
+		<method name="describeContents()I" />
+		<method name="getBinder()Landroid/os/IBinder;" />
+		<method name="readMessengerOrNullFromParcel(Landroid/os/Parcel;)Landroid/os/Messenger;" />
+		<method name="send(Landroid/os/Message;)V" />
+		<method name="writeMessengerOrNullToParcel(Landroid/os/Messenger;Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/os/NetworkOnMainThreadException" since="11">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/os/Parcel" since="1">
+		<extends name="java/lang/Object" />
+		<method name="appendFrom(Landroid/os/Parcel;II)V" />
+		<method name="createBinderArray()[Landroid/os/IBinder;" />
+		<method name="createBinderArrayList()Ljava/util/ArrayList;" />
+		<method name="createBooleanArray()[Z" />
+		<method name="createByteArray()[B" />
+		<method name="createCharArray()[C" />
+		<method name="createDoubleArray()[D" />
+		<method name="createFloatArray()[F" />
+		<method name="createIntArray()[I" />
+		<method name="createLongArray()[J" />
+		<method name="createStringArray()[Ljava/lang/String;" />
+		<method name="createStringArrayList()Ljava/util/ArrayList;" />
+		<method name="createTypedArray(Landroid/os/Parcelable$Creator;)[LT;" />
+		<method name="createTypedArrayList(Landroid/os/Parcelable$Creator;)Ljava/util/ArrayList;" />
+		<method name="dataAvail()I" />
+		<method name="dataCapacity()I" />
+		<method name="dataPosition()I" />
+		<method name="dataSize()I" />
+		<method name="enforceInterface(Ljava/lang/String;)V" />
+		<method name="hasFileDescriptors()Z" />
+		<method name="marshall()[B" />
+		<method name="obtain()Landroid/os/Parcel;" />
+		<method name="obtain(I)Landroid/os/Parcel;" />
+		<method name="readArray(Ljava/lang/ClassLoader;)[Ljava/lang/Object;" />
+		<method name="readArrayList(Ljava/lang/ClassLoader;)Ljava/util/ArrayList;" />
+		<method name="readBinderArray([Landroid/os/IBinder;)V" />
+		<method name="readBinderList(Ljava/util/List;)V" />
+		<method name="readBooleanArray([Z)V" />
+		<method name="readBundle()Landroid/os/Bundle;" />
+		<method name="readBundle(Ljava/lang/ClassLoader;)Landroid/os/Bundle;" />
+		<method name="readByte()B" />
+		<method name="readByteArray([B)V" />
+		<method name="readCharArray([C)V" />
+		<method name="readDouble()D" />
+		<method name="readDoubleArray([D)V" />
+		<method name="readException()V" />
+		<method name="readException(ILjava/lang/String;)V" />
+		<method name="readFileDescriptor()Landroid/os/ParcelFileDescriptor;" />
+		<method name="readFloat()F" />
+		<method name="readFloatArray([F)V" />
+		<method name="readHashMap(Ljava/lang/ClassLoader;)Ljava/util/HashMap;" />
+		<method name="readInt()I" />
+		<method name="readIntArray([I)V" />
+		<method name="readList(Ljava/util/List;Ljava/lang/ClassLoader;)V" />
+		<method name="readLong()J" />
+		<method name="readLongArray([J)V" />
+		<method name="readMap(Ljava/util/Map;Ljava/lang/ClassLoader;)V" />
+		<method name="readParcelable(Ljava/lang/ClassLoader;)LT;" />
+		<method name="readParcelableArray(Ljava/lang/ClassLoader;)[Landroid/os/Parcelable;" />
+		<method name="readSerializable()Ljava/io/Serializable;" />
+		<method name="readSparseArray(Ljava/lang/ClassLoader;)Landroid/util/SparseArray;" />
+		<method name="readSparseBooleanArray()Landroid/util/SparseBooleanArray;" />
+		<method name="readString()Ljava/lang/String;" />
+		<method name="readStringArray([Ljava/lang/String;)V" />
+		<method name="readStringList(Ljava/util/List;)V" />
+		<method name="readStrongBinder()Landroid/os/IBinder;" />
+		<method name="readTypedArray([LT;Landroid/os/Parcelable$Creator;)V" />
+		<method name="readTypedList(Ljava/util/List;Landroid/os/Parcelable$Creator;)V" />
+		<method name="readValue(Ljava/lang/ClassLoader;)Ljava/lang/Object;" />
+		<method name="recycle()V" />
+		<method name="setDataCapacity(I)V" />
+		<method name="setDataPosition(I)V" />
+		<method name="setDataSize(I)V" />
+		<method name="unmarshall([BII)V" />
+		<method name="writeArray([Ljava/lang/Object;)V" />
+		<method name="writeBinderArray([Landroid/os/IBinder;)V" />
+		<method name="writeBinderList(Ljava/util/List;)V" />
+		<method name="writeBooleanArray([Z)V" />
+		<method name="writeBundle(Landroid/os/Bundle;)V" />
+		<method name="writeByte(B)V" />
+		<method name="writeByteArray([B)V" />
+		<method name="writeByteArray([BII)V" />
+		<method name="writeCharArray([C)V" />
+		<method name="writeDouble(D)V" />
+		<method name="writeDoubleArray([D)V" />
+		<method name="writeException(Ljava/lang/Exception;)V" />
+		<method name="writeFileDescriptor(Ljava/io/FileDescriptor;)V" />
+		<method name="writeFloat(F)V" />
+		<method name="writeFloatArray([F)V" />
+		<method name="writeInt(I)V" />
+		<method name="writeIntArray([I)V" />
+		<method name="writeInterfaceToken(Ljava/lang/String;)V" />
+		<method name="writeList(Ljava/util/List;)V" />
+		<method name="writeLong(J)V" />
+		<method name="writeLongArray([J)V" />
+		<method name="writeMap(Ljava/util/Map;)V" />
+		<method name="writeNoException()V" />
+		<method name="writeParcelable(Landroid/os/Parcelable;I)V" />
+		<method name="writeParcelableArray([LT;I)V" />
+		<method name="writeSerializable(Ljava/io/Serializable;)V" />
+		<method name="writeSparseArray(Landroid/util/SparseArray;)V" />
+		<method name="writeSparseBooleanArray(Landroid/util/SparseBooleanArray;)V" />
+		<method name="writeString(Ljava/lang/String;)V" />
+		<method name="writeStringArray([Ljava/lang/String;)V" />
+		<method name="writeStringList(Ljava/util/List;)V" />
+		<method name="writeStrongBinder(Landroid/os/IBinder;)V" />
+		<method name="writeStrongInterface(Landroid/os/IInterface;)V" />
+		<method name="writeTypedArray([LT;I)V" />
+		<method name="writeTypedList(Ljava/util/List;)V" />
+		<method name="writeValue(Ljava/lang/Object;)V" />
+		<field name="STRING_CREATOR" />
+	</class>
+	<class name="android/os/ParcelFileDescriptor" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
+		<method name="adoptFd(I)Landroid/os/ParcelFileDescriptor;" since="13" />
+		<method name="close()V" />
+		<method name="createPipe()[Landroid/os/ParcelFileDescriptor;" since="9" />
+		<method name="describeContents()I" />
+		<method name="detachFd()I" since="12" />
+		<method name="dup()Landroid/os/ParcelFileDescriptor;" since="14" />
+		<method name="dup(Ljava/io/FileDescriptor;)Landroid/os/ParcelFileDescriptor;" since="13" />
+		<method name="fromDatagramSocket(Ljava/net/DatagramSocket;)Landroid/os/ParcelFileDescriptor;" since="14" />
+		<method name="fromFd(I)Landroid/os/ParcelFileDescriptor;" since="13" />
+		<method name="fromSocket(Ljava/net/Socket;)Landroid/os/ParcelFileDescriptor;" />
+		<method name="getFd()I" since="12" />
+		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
+		<method name="getStatSize()J" since="3" />
+		<method name="open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="MODE_APPEND" since="3" />
+		<field name="MODE_CREATE" />
+		<field name="MODE_READ_ONLY" />
+		<field name="MODE_READ_WRITE" />
+		<field name="MODE_TRUNCATE" />
+		<field name="MODE_WORLD_READABLE" />
+		<field name="MODE_WORLD_WRITEABLE" />
+		<field name="MODE_WRITE_ONLY" />
+	</class>
+	<class name="android/os/ParcelFileDescriptor$AutoCloseInputStream" since="1">
+		<extends name="java/io/FileInputStream" />
+		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
+	</class>
+	<class name="android/os/ParcelFileDescriptor$AutoCloseOutputStream" since="1">
+		<extends name="java/io/FileOutputStream" />
+		<method name="&lt;init>(Landroid/os/ParcelFileDescriptor;)V" />
+	</class>
+	<class name="android/os/ParcelFormatException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/os/ParcelUuid" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Ljava/util/UUID;)V" />
+		<method name="describeContents()I" />
+		<method name="fromString(Ljava/lang/String;)Landroid/os/ParcelUuid;" />
+		<method name="getUuid()Ljava/util/UUID;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/os/Parcelable" since="1">
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CONTENTS_FILE_DESCRIPTOR" />
+		<field name="PARCELABLE_WRITE_RETURN_VALUE" />
+	</class>
+	<class name="android/os/Parcelable$ClassLoaderCreator" since="13">
+		<implements name="android/os/Parcelable$Creator" />
+		<method name="createFromParcel(Landroid/os/Parcel;Ljava/lang/ClassLoader;)LT;" />
+	</class>
+	<class name="android/os/Parcelable$Creator" since="1">
+		<method name="createFromParcel(Landroid/os/Parcel;)LT;" />
+		<method name="newArray(I)[LT;" />
+	</class>
+	<class name="android/os/PatternMatcher" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="describeContents()I" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getType()I" />
+		<method name="match(Ljava/lang/String;)Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="PATTERN_LITERAL" />
+		<field name="PATTERN_PREFIX" />
+		<field name="PATTERN_SIMPLE_GLOB" />
+	</class>
+	<class name="android/os/PowerManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="goToSleep(J)V" />
+		<method name="isScreenOn()Z" since="7" />
+		<method name="newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;" />
+		<method name="reboot(Ljava/lang/String;)V" since="8" />
+		<method name="userActivity(JZ)V" />
+		<field name="ACQUIRE_CAUSES_WAKEUP" />
+		<field name="FULL_WAKE_LOCK" />
+		<field name="ON_AFTER_RELEASE" />
+		<field name="PARTIAL_WAKE_LOCK" />
+		<field name="SCREEN_BRIGHT_WAKE_LOCK" />
+		<field name="SCREEN_DIM_WAKE_LOCK" />
+	</class>
+	<class name="android/os/PowerManager$WakeLock" since="1">
+		<extends name="java/lang/Object" />
+		<method name="acquire()V" />
+		<method name="acquire(J)V" />
+		<method name="isHeld()Z" />
+		<method name="release()V" />
+		<method name="setReferenceCounted(Z)V" />
+		<method name="setWorkSource(Landroid/os/WorkSource;)V" since="9" />
+	</class>
+	<class name="android/os/Process" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getElapsedCpuTime()J" />
+		<method name="getGidForName(Ljava/lang/String;)I" />
+		<method name="getThreadPriority(I)I" />
+		<method name="getUidForName(Ljava/lang/String;)I" />
+		<method name="killProcess(I)V" />
+		<method name="myPid()I" />
+		<method name="myTid()I" />
+		<method name="myUid()I" since="2" />
+		<method name="sendSignal(II)V" />
+		<method name="setThreadPriority(I)V" />
+		<method name="setThreadPriority(II)V" />
+		<method name="supportsProcesses()Z" />
+		<field name="BLUETOOTH_GID" />
+		<field name="FIRST_APPLICATION_UID" />
+		<field name="LAST_APPLICATION_UID" />
+		<field name="PHONE_UID" />
+		<field name="SIGNAL_KILL" />
+		<field name="SIGNAL_QUIT" />
+		<field name="SIGNAL_USR1" />
+		<field name="SYSTEM_UID" />
+		<field name="THREAD_PRIORITY_AUDIO" />
+		<field name="THREAD_PRIORITY_BACKGROUND" />
+		<field name="THREAD_PRIORITY_DEFAULT" />
+		<field name="THREAD_PRIORITY_DISPLAY" />
+		<field name="THREAD_PRIORITY_FOREGROUND" />
+		<field name="THREAD_PRIORITY_LESS_FAVORABLE" />
+		<field name="THREAD_PRIORITY_LOWEST" />
+		<field name="THREAD_PRIORITY_MORE_FAVORABLE" />
+		<field name="THREAD_PRIORITY_URGENT_AUDIO" />
+		<field name="THREAD_PRIORITY_URGENT_DISPLAY" />
+	</class>
+	<class name="android/os/RecoverySystem" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="installPackage(Landroid/content/Context;Ljava/io/File;)V" />
+		<method name="rebootWipeCache(Landroid/content/Context;)V" since="14" />
+		<method name="rebootWipeUserData(Landroid/content/Context;)V" />
+		<method name="verifyPackage(Ljava/io/File;Landroid/os/RecoverySystem$ProgressListener;Ljava/io/File;)V" />
+	</class>
+	<class name="android/os/RecoverySystem$ProgressListener" since="8">
+		<method name="onProgress(I)V" />
+	</class>
+	<class name="android/os/RemoteCallbackList" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="beginBroadcast()I" />
+		<method name="finishBroadcast()V" />
+		<method name="getBroadcastCookie(I)Ljava/lang/Object;" since="4" />
+		<method name="getBroadcastItem(I)LE;" />
+		<method name="kill()V" />
+		<method name="onCallbackDied(LE;)V" />
+		<method name="onCallbackDied(LE;Ljava/lang/Object;)V" since="4" />
+		<method name="register(LE;)Z" />
+		<method name="register(LE;Ljava/lang/Object;)Z" since="4" />
+		<method name="unregister(LE;)Z" />
+	</class>
+	<class name="android/os/RemoteException" since="1">
+		<extends name="android/util/AndroidException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" since="15" />
+	</class>
+	<class name="android/os/ResultReceiver" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Handler;)V" />
+		<method name="describeContents()I" />
+		<method name="onReceiveResult(ILandroid/os/Bundle;)V" />
+		<method name="send(ILandroid/os/Bundle;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/os/StatFs" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getAvailableBlocks()I" />
+		<method name="getBlockCount()I" />
+		<method name="getBlockSize()I" />
+		<method name="getFreeBlocks()I" />
+		<method name="restat(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/os/StrictMode" since="9">
+		<extends name="java/lang/Object" />
+		<method name="allowThreadDiskReads()Landroid/os/StrictMode$ThreadPolicy;" />
+		<method name="allowThreadDiskWrites()Landroid/os/StrictMode$ThreadPolicy;" />
+		<method name="enableDefaults()V" />
+		<method name="getThreadPolicy()Landroid/os/StrictMode$ThreadPolicy;" />
+		<method name="getVmPolicy()Landroid/os/StrictMode$VmPolicy;" />
+		<method name="noteSlowCall(Ljava/lang/String;)V" since="11" />
+		<method name="setThreadPolicy(Landroid/os/StrictMode$ThreadPolicy;)V" />
+		<method name="setVmPolicy(Landroid/os/StrictMode$VmPolicy;)V" />
+	</class>
+	<class name="android/os/StrictMode$ThreadPolicy" since="9">
+		<extends name="java/lang/Object" />
+		<field name="LAX" />
+	</class>
+	<class name="android/os/StrictMode$ThreadPolicy$Builder" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/StrictMode$ThreadPolicy;)V" />
+		<method name="build()Landroid/os/StrictMode$ThreadPolicy;" />
+		<method name="detectAll()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="detectCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
+		<method name="detectDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="detectDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="detectNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="penaltyDeath()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="penaltyDeathOnNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
+		<method name="penaltyDialog()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="penaltyDropBox()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="penaltyFlashScreen()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
+		<method name="penaltyLog()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="permitAll()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="permitCustomSlowCalls()Landroid/os/StrictMode$ThreadPolicy$Builder;" since="11" />
+		<method name="permitDiskReads()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="permitDiskWrites()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+		<method name="permitNetwork()Landroid/os/StrictMode$ThreadPolicy$Builder;" />
+	</class>
+	<class name="android/os/StrictMode$VmPolicy" since="9">
+		<extends name="java/lang/Object" />
+		<field name="LAX" />
+	</class>
+	<class name="android/os/StrictMode$VmPolicy$Builder" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/StrictMode$VmPolicy;)V" since="11" />
+		<method name="build()Landroid/os/StrictMode$VmPolicy;" />
+		<method name="detectActivityLeaks()Landroid/os/StrictMode$VmPolicy$Builder;" since="11" />
+		<method name="detectAll()Landroid/os/StrictMode$VmPolicy$Builder;" />
+		<method name="detectLeakedClosableObjects()Landroid/os/StrictMode$VmPolicy$Builder;" since="11" />
+		<method name="detectLeakedSqlLiteObjects()Landroid/os/StrictMode$VmPolicy$Builder;" />
+		<method name="penaltyDeath()Landroid/os/StrictMode$VmPolicy$Builder;" />
+		<method name="penaltyDropBox()Landroid/os/StrictMode$VmPolicy$Builder;" />
+		<method name="penaltyLog()Landroid/os/StrictMode$VmPolicy$Builder;" />
+		<method name="setClassInstanceLimit(Ljava/lang/Class;I)Landroid/os/StrictMode$VmPolicy$Builder;" since="11" />
+	</class>
+	<class name="android/os/SystemClock" since="1">
+		<extends name="java/lang/Object" />
+		<method name="currentThreadTimeMillis()J" />
+		<method name="elapsedRealtime()J" />
+		<method name="setCurrentTimeMillis(J)Z" />
+		<method name="sleep(J)V" />
+		<method name="uptimeMillis()J" />
+	</class>
+	<class name="android/os/TokenWatcher" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/os/Handler;Ljava/lang/String;)V" />
+		<method name="acquire(Landroid/os/IBinder;Ljava/lang/String;)V" />
+		<method name="acquired()V" />
+		<method name="cleanup(Landroid/os/IBinder;Z)V" />
+		<method name="dump()V" />
+		<method name="isAcquired()Z" />
+		<method name="release(Landroid/os/IBinder;)V" />
+		<method name="released()V" />
+	</class>
+	<class name="android/os/TransactionTooLargeException" since="15">
+		<extends name="android/os/RemoteException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/os/Vibrator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="cancel()V" />
+		<method name="hasVibrator()Z" since="11" />
+		<method name="vibrate(J)V" />
+		<method name="vibrate([JI)V" />
+	</class>
+	<class name="android/os/WorkSource" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/WorkSource;)V" />
+		<method name="add(Landroid/os/WorkSource;)Z" />
+		<method name="clear()V" />
+		<method name="describeContents()I" />
+		<method name="diff(Landroid/os/WorkSource;)Z" />
+		<method name="remove(Landroid/os/WorkSource;)Z" />
+		<method name="set(Landroid/os/WorkSource;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/os/storage/OnObbStateChangeListener" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="onObbStateChange(Ljava/lang/String;I)V" />
+		<field name="ERROR_ALREADY_MOUNTED" />
+		<field name="ERROR_COULD_NOT_MOUNT" />
+		<field name="ERROR_COULD_NOT_UNMOUNT" />
+		<field name="ERROR_INTERNAL" />
+		<field name="ERROR_NOT_MOUNTED" />
+		<field name="ERROR_PERMISSION_DENIED" />
+		<field name="MOUNTED" />
+		<field name="UNMOUNTED" />
+	</class>
+	<class name="android/os/storage/StorageManager" since="9">
+		<extends name="java/lang/Object" />
+		<method name="getMountedObbPath(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="isObbMounted(Ljava/lang/String;)Z" />
+		<method name="mountObb(Ljava/lang/String;Ljava/lang/String;Landroid/os/storage/OnObbStateChangeListener;)Z" />
+		<method name="unmountObb(Ljava/lang/String;ZLandroid/os/storage/OnObbStateChangeListener;)Z" />
+	</class>
+	<class name="android/preference/CheckBoxPreference" since="1">
+		<extends name="android/preference/Preference" />
+		<extends name="android/preference/TwoStatePreference" since="14" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getDisableDependentsState()Z" />
+		<method name="getSummaryOff()Ljava/lang/CharSequence;" />
+		<method name="getSummaryOn()Ljava/lang/CharSequence;" />
+		<method name="isChecked()Z" />
+		<method name="setChecked(Z)V" />
+		<method name="setDisableDependentsState(Z)V" />
+		<method name="setSummaryOff(I)V" />
+		<method name="setSummaryOff(Ljava/lang/CharSequence;)V" />
+		<method name="setSummaryOn(I)V" />
+		<method name="setSummaryOn(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/preference/DialogPreference" since="1">
+		<extends name="android/preference/Preference" />
+		<implements name="android/content/DialogInterface$OnClickListener" />
+		<implements name="android/content/DialogInterface$OnDismissListener" />
+		<implements name="android/preference/PreferenceManager$OnActivityDestroyListener" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getDialog()Landroid/app/Dialog;" since="3" />
+		<method name="getDialogIcon()Landroid/graphics/drawable/Drawable;" />
+		<method name="getDialogLayoutResource()I" />
+		<method name="getDialogMessage()Ljava/lang/CharSequence;" />
+		<method name="getDialogTitle()Ljava/lang/CharSequence;" />
+		<method name="getNegativeButtonText()Ljava/lang/CharSequence;" />
+		<method name="getPositiveButtonText()Ljava/lang/CharSequence;" />
+		<method name="onActivityDestroy()V" />
+		<method name="onBindDialogView(Landroid/view/View;)V" />
+		<method name="onClick(Landroid/content/DialogInterface;I)V" />
+		<method name="onCreateDialogView()Landroid/view/View;" />
+		<method name="onDialogClosed(Z)V" />
+		<method name="onDismiss(Landroid/content/DialogInterface;)V" />
+		<method name="onPrepareDialogBuilder(Landroid/app/AlertDialog$Builder;)V" />
+		<method name="setDialogIcon(I)V" />
+		<method name="setDialogIcon(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setDialogLayoutResource(I)V" />
+		<method name="setDialogMessage(I)V" />
+		<method name="setDialogMessage(Ljava/lang/CharSequence;)V" />
+		<method name="setDialogTitle(I)V" />
+		<method name="setDialogTitle(Ljava/lang/CharSequence;)V" />
+		<method name="setNegativeButtonText(I)V" />
+		<method name="setNegativeButtonText(Ljava/lang/CharSequence;)V" />
+		<method name="setPositiveButtonText(I)V" />
+		<method name="setPositiveButtonText(Ljava/lang/CharSequence;)V" />
+		<method name="showDialog(Landroid/os/Bundle;)V" />
+	</class>
+	<class name="android/preference/EditTextPreference" since="1">
+		<extends name="android/preference/DialogPreference" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getEditText()Landroid/widget/EditText;" />
+		<method name="getText()Ljava/lang/String;" />
+		<method name="onAddEditTextToDialogView(Landroid/view/View;Landroid/widget/EditText;)V" />
+		<method name="setText(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/preference/ListPreference" since="1">
+		<extends name="android/preference/DialogPreference" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="findIndexOfValue(Ljava/lang/String;)I" />
+		<method name="getEntries()[Ljava/lang/CharSequence;" />
+		<method name="getEntry()Ljava/lang/CharSequence;" />
+		<method name="getEntryValues()[Ljava/lang/CharSequence;" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="setEntries(I)V" />
+		<method name="setEntries([Ljava/lang/CharSequence;)V" />
+		<method name="setEntryValues(I)V" />
+		<method name="setEntryValues([Ljava/lang/CharSequence;)V" />
+		<method name="setValue(Ljava/lang/String;)V" />
+		<method name="setValueIndex(I)V" />
+	</class>
+	<class name="android/preference/MultiSelectListPreference" since="11">
+		<extends name="android/preference/DialogPreference" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="findIndexOfValue(Ljava/lang/String;)I" />
+		<method name="getEntries()[Ljava/lang/CharSequence;" />
+		<method name="getEntryValues()[Ljava/lang/CharSequence;" />
+		<method name="getValues()Ljava/util/Set;" />
+		<method name="setEntries(I)V" />
+		<method name="setEntries([Ljava/lang/CharSequence;)V" />
+		<method name="setEntryValues(I)V" />
+		<method name="setEntryValues([Ljava/lang/CharSequence;)V" />
+		<method name="setValues(Ljava/util/Set;)V" />
+	</class>
+	<class name="android/preference/Preference" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="callChangeListener(Ljava/lang/Object;)Z" />
+		<method name="compareTo(Landroid/preference/Preference;)I" />
+		<method name="findPreferenceInHierarchy(Ljava/lang/String;)Landroid/preference/Preference;" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getDependency()Ljava/lang/String;" />
+		<method name="getEditor()Landroid/content/SharedPreferences$Editor;" />
+		<method name="getExtras()Landroid/os/Bundle;" since="11" />
+		<method name="getFragment()Ljava/lang/String;" since="11" />
+		<method name="getIcon()Landroid/graphics/drawable/Drawable;" since="11" />
+		<method name="getIntent()Landroid/content/Intent;" />
+		<method name="getKey()Ljava/lang/String;" />
+		<method name="getLayoutResource()I" />
+		<method name="getOnPreferenceChangeListener()Landroid/preference/Preference$OnPreferenceChangeListener;" />
+		<method name="getOnPreferenceClickListener()Landroid/preference/Preference$OnPreferenceClickListener;" />
+		<method name="getOrder()I" />
+		<method name="getPersistedBoolean(Z)Z" />
+		<method name="getPersistedFloat(F)F" />
+		<method name="getPersistedInt(I)I" />
+		<method name="getPersistedLong(J)J" />
+		<method name="getPersistedString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getPreferenceManager()Landroid/preference/PreferenceManager;" />
+		<method name="getSharedPreferences()Landroid/content/SharedPreferences;" />
+		<method name="getShouldDisableView()Z" />
+		<method name="getSummary()Ljava/lang/CharSequence;" />
+		<method name="getTitle()Ljava/lang/CharSequence;" />
+		<method name="getTitleRes()I" since="14" />
+		<method name="getView(Landroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getWidgetLayoutResource()I" />
+		<method name="hasKey()Z" />
+		<method name="isEnabled()Z" />
+		<method name="isPersistent()Z" />
+		<method name="isSelectable()Z" />
+		<method name="notifyChanged()V" />
+		<method name="notifyDependencyChange(Z)V" />
+		<method name="notifyHierarchyChanged()V" />
+		<method name="onAttachedToActivity()V" />
+		<method name="onAttachedToHierarchy(Landroid/preference/PreferenceManager;)V" />
+		<method name="onBindView(Landroid/view/View;)V" />
+		<method name="onClick()V" />
+		<method name="onCreateView(Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="onDependencyChanged(Landroid/preference/Preference;Z)V" />
+		<method name="onGetDefaultValue(Landroid/content/res/TypedArray;I)Ljava/lang/Object;" />
+		<method name="onPrepareForRemoval()V" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
+		<method name="onSetInitialValue(ZLjava/lang/Object;)V" />
+		<method name="peekExtras()Landroid/os/Bundle;" since="11" />
+		<method name="persistBoolean(Z)Z" />
+		<method name="persistFloat(F)Z" />
+		<method name="persistInt(I)Z" />
+		<method name="persistLong(J)Z" />
+		<method name="persistString(Ljava/lang/String;)Z" />
+		<method name="restoreHierarchyState(Landroid/os/Bundle;)V" />
+		<method name="saveHierarchyState(Landroid/os/Bundle;)V" />
+		<method name="setDefaultValue(Ljava/lang/Object;)V" />
+		<method name="setDependency(Ljava/lang/String;)V" />
+		<method name="setEnabled(Z)V" />
+		<method name="setFragment(Ljava/lang/String;)V" since="11" />
+		<method name="setIcon(I)V" since="11" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)V" since="11" />
+		<method name="setIntent(Landroid/content/Intent;)V" />
+		<method name="setKey(Ljava/lang/String;)V" />
+		<method name="setLayoutResource(I)V" />
+		<method name="setOnPreferenceChangeListener(Landroid/preference/Preference$OnPreferenceChangeListener;)V" />
+		<method name="setOnPreferenceClickListener(Landroid/preference/Preference$OnPreferenceClickListener;)V" />
+		<method name="setOrder(I)V" />
+		<method name="setPersistent(Z)V" />
+		<method name="setSelectable(Z)V" />
+		<method name="setShouldDisableView(Z)V" />
+		<method name="setSummary(I)V" />
+		<method name="setSummary(Ljava/lang/CharSequence;)V" />
+		<method name="setTitle(I)V" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+		<method name="setWidgetLayoutResource(I)V" />
+		<method name="shouldCommit()Z" />
+		<method name="shouldDisableDependents()Z" />
+		<method name="shouldPersist()Z" />
+		<field name="DEFAULT_ORDER" />
+	</class>
+	<class name="android/preference/Preference$BaseSavedState" since="1">
+		<extends name="android/view/AbsSavedState" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Landroid/os/Parcelable;)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/preference/Preference$OnPreferenceChangeListener" since="1">
+		<method name="onPreferenceChange(Landroid/preference/Preference;Ljava/lang/Object;)Z" />
+	</class>
+	<class name="android/preference/Preference$OnPreferenceClickListener" since="1">
+		<method name="onPreferenceClick(Landroid/preference/Preference;)Z" />
+	</class>
+	<class name="android/preference/PreferenceActivity" since="1">
+		<extends name="android/app/ListActivity" />
+		<implements name="android/preference/PreferenceFragment$OnPreferenceStartFragmentCallback" since="11" />
+		<method name="&lt;init>()V" />
+		<method name="addPreferencesFromIntent(Landroid/content/Intent;)V" />
+		<method name="addPreferencesFromResource(I)V" />
+		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
+		<method name="finishPreferencePanel(Landroid/app/Fragment;ILandroid/content/Intent;)V" since="11" />
+		<method name="getPreferenceManager()Landroid/preference/PreferenceManager;" />
+		<method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" />
+		<method name="hasHeaders()Z" since="11" />
+		<method name="invalidateHeaders()V" since="11" />
+		<method name="isMultiPane()Z" since="11" />
+		<method name="loadHeadersFromResource(ILjava/util/List;)V" since="11" />
+		<method name="onBuildHeaders(Ljava/util/List;)V" since="11" />
+		<method name="onBuildStartFragmentIntent(Ljava/lang/String;Landroid/os/Bundle;II)Landroid/content/Intent;" since="14" />
+		<method name="onGetInitialHeader()Landroid/preference/PreferenceActivity$Header;" since="11" />
+		<method name="onGetNewHeader()Landroid/preference/PreferenceActivity$Header;" since="11" />
+		<method name="onHeaderClick(Landroid/preference/PreferenceActivity$Header;I)V" since="11" />
+		<method name="onIsHidingHeaders()Z" since="11" />
+		<method name="onIsMultiPane()Z" since="11" />
+		<method name="onPreferenceStartFragment(Landroid/preference/PreferenceFragment;Landroid/preference/Preference;)Z" since="11" />
+		<method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" />
+		<method name="setListFooter(Landroid/view/View;)V" since="11" />
+		<method name="setParentTitle(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/view/View$OnClickListener;)V" since="11" />
+		<method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" />
+		<method name="showBreadCrumbs(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)V" since="11" />
+		<method name="startPreferenceFragment(Landroid/app/Fragment;Z)V" since="11" />
+		<method name="startPreferencePanel(Ljava/lang/String;Landroid/os/Bundle;ILjava/lang/CharSequence;Landroid/app/Fragment;I)V" since="11" />
+		<method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;I)V" since="11" />
+		<method name="startWithFragment(Ljava/lang/String;Landroid/os/Bundle;Landroid/app/Fragment;III)V" since="14" />
+		<method name="switchToHeader(Landroid/preference/PreferenceActivity$Header;)V" since="11" />
+		<method name="switchToHeader(Ljava/lang/String;Landroid/os/Bundle;)V" since="11" />
+		<field name="EXTRA_NO_HEADERS" since="11" />
+		<field name="EXTRA_SHOW_FRAGMENT" since="11" />
+		<field name="EXTRA_SHOW_FRAGMENT_ARGUMENTS" since="11" />
+		<field name="EXTRA_SHOW_FRAGMENT_SHORT_TITLE" since="14" />
+		<field name="EXTRA_SHOW_FRAGMENT_TITLE" since="14" />
+		<field name="HEADER_ID_UNDEFINED" since="11" />
+	</class>
+	<class name="android/preference/PreferenceActivity$Header" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="getBreadCrumbShortTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
+		<method name="getBreadCrumbTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
+		<method name="getSummary(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
+		<method name="getTitle(Landroid/content/res/Resources;)Ljava/lang/CharSequence;" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="breadCrumbShortTitle" />
+		<field name="breadCrumbShortTitleRes" />
+		<field name="breadCrumbTitle" />
+		<field name="breadCrumbTitleRes" />
+		<field name="extras" />
+		<field name="fragment" />
+		<field name="fragmentArguments" />
+		<field name="iconRes" />
+		<field name="id" />
+		<field name="intent" />
+		<field name="summary" />
+		<field name="summaryRes" />
+		<field name="title" />
+		<field name="titleRes" />
+	</class>
+	<class name="android/preference/PreferenceCategory" since="1">
+		<extends name="android/preference/PreferenceGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/preference/PreferenceFragment" since="11">
+		<extends name="android/app/Fragment" />
+		<method name="&lt;init>()V" />
+		<method name="addPreferencesFromIntent(Landroid/content/Intent;)V" />
+		<method name="addPreferencesFromResource(I)V" />
+		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
+		<method name="getPreferenceManager()Landroid/preference/PreferenceManager;" />
+		<method name="getPreferenceScreen()Landroid/preference/PreferenceScreen;" />
+		<method name="onPreferenceTreeClick(Landroid/preference/PreferenceScreen;Landroid/preference/Preference;)Z" />
+		<method name="setPreferenceScreen(Landroid/preference/PreferenceScreen;)V" />
+	</class>
+	<class name="android/preference/PreferenceFragment$OnPreferenceStartFragmentCallback" since="11">
+		<method name="onPreferenceStartFragment(Landroid/preference/PreferenceFragment;Landroid/preference/Preference;)Z" />
+	</class>
+	<class name="android/preference/PreferenceGroup" since="1">
+		<extends name="android/preference/Preference" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="addItemFromInflater(Landroid/preference/Preference;)V" />
+		<method name="addPreference(Landroid/preference/Preference;)Z" />
+		<method name="dispatchRestoreInstanceState(Landroid/os/Bundle;)V" />
+		<method name="dispatchSaveInstanceState(Landroid/os/Bundle;)V" />
+		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
+		<method name="getPreference(I)Landroid/preference/Preference;" />
+		<method name="getPreferenceCount()I" />
+		<method name="isOnSameScreenAsChildren()Z" />
+		<method name="isOrderingAsAdded()Z" />
+		<method name="onPrepareAddPreference(Landroid/preference/Preference;)Z" />
+		<method name="removeAll()V" />
+		<method name="removePreference(Landroid/preference/Preference;)Z" />
+		<method name="setOrderingAsAdded(Z)V" />
+	</class>
+	<class name="android/preference/PreferenceManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="createPreferenceScreen(Landroid/content/Context;)Landroid/preference/PreferenceScreen;" />
+		<method name="findPreference(Ljava/lang/CharSequence;)Landroid/preference/Preference;" />
+		<method name="getDefaultSharedPreferences(Landroid/content/Context;)Landroid/content/SharedPreferences;" />
+		<method name="getSharedPreferences()Landroid/content/SharedPreferences;" />
+		<method name="getSharedPreferencesMode()I" />
+		<method name="getSharedPreferencesName()Ljava/lang/String;" />
+		<method name="setDefaultValues(Landroid/content/Context;IZ)V" />
+		<method name="setDefaultValues(Landroid/content/Context;Ljava/lang/String;IIZ)V" />
+		<method name="setSharedPreferencesMode(I)V" />
+		<method name="setSharedPreferencesName(Ljava/lang/String;)V" />
+		<field name="KEY_HAS_SET_DEFAULT_VALUES" />
+		<field name="METADATA_KEY_PREFERENCES" />
+	</class>
+	<class name="android/preference/PreferenceManager$OnActivityDestroyListener" since="1">
+		<method name="onActivityDestroy()V" />
+	</class>
+	<class name="android/preference/PreferenceManager$OnActivityResultListener" since="1">
+		<method name="onActivityResult(IILandroid/content/Intent;)Z" />
+	</class>
+	<class name="android/preference/PreferenceManager$OnActivityStopListener" since="1">
+		<method name="onActivityStop()V" />
+	</class>
+	<class name="android/preference/PreferenceScreen" since="1">
+		<extends name="android/preference/PreferenceGroup" />
+		<implements name="android/widget/AdapterView$OnItemClickListener" />
+		<implements name="android/content/DialogInterface$OnDismissListener" />
+		<method name="bind(Landroid/widget/ListView;)V" />
+		<method name="getDialog()Landroid/app/Dialog;" />
+		<method name="getRootAdapter()Landroid/widget/ListAdapter;" />
+		<method name="onCreateRootAdapter()Landroid/widget/ListAdapter;" />
+		<method name="onDismiss(Landroid/content/DialogInterface;)V" />
+		<method name="onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V" />
+	</class>
+	<class name="android/preference/RingtonePreference" since="1">
+		<extends name="android/preference/Preference" />
+		<implements name="android/preference/PreferenceManager$OnActivityResultListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getRingtoneType()I" />
+		<method name="getShowDefault()Z" />
+		<method name="getShowSilent()Z" />
+		<method name="onActivityResult(IILandroid/content/Intent;)Z" />
+		<method name="onPrepareRingtonePickerIntent(Landroid/content/Intent;)V" />
+		<method name="onRestoreRingtone()Landroid/net/Uri;" />
+		<method name="onSaveRingtone(Landroid/net/Uri;)V" />
+		<method name="setRingtoneType(I)V" />
+		<method name="setShowDefault(Z)V" />
+		<method name="setShowSilent(Z)V" />
+	</class>
+	<class name="android/preference/SwitchPreference" since="14">
+		<extends name="android/preference/TwoStatePreference" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getSwitchTextOff()Ljava/lang/CharSequence;" />
+		<method name="getSwitchTextOn()Ljava/lang/CharSequence;" />
+		<method name="setSwitchTextOff(I)V" />
+		<method name="setSwitchTextOff(Ljava/lang/CharSequence;)V" />
+		<method name="setSwitchTextOn(I)V" />
+		<method name="setSwitchTextOn(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/preference/TwoStatePreference" since="14">
+		<extends name="android/preference/Preference" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getDisableDependentsState()Z" />
+		<method name="getSummaryOff()Ljava/lang/CharSequence;" />
+		<method name="getSummaryOn()Ljava/lang/CharSequence;" />
+		<method name="isChecked()Z" />
+		<method name="setChecked(Z)V" />
+		<method name="setDisableDependentsState(Z)V" />
+		<method name="setSummaryOff(I)V" />
+		<method name="setSummaryOff(Ljava/lang/CharSequence;)V" />
+		<method name="setSummaryOn(I)V" />
+		<method name="setSummaryOn(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/provider/AlarmClock" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACTION_SET_ALARM" />
+		<field name="EXTRA_HOUR" />
+		<field name="EXTRA_MESSAGE" />
+		<field name="EXTRA_MINUTES" />
+		<field name="EXTRA_SKIP_UI" since="11" />
+	</class>
+	<class name="android/provider/BaseColumns" since="1">
+		<field name="_COUNT" />
+		<field name="_ID" />
+	</class>
+	<class name="android/provider/Browser" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addSearchUrl(Landroid/content/ContentResolver;Ljava/lang/String;)V" />
+		<method name="canClearHistory(Landroid/content/ContentResolver;)Z" />
+		<method name="clearHistory(Landroid/content/ContentResolver;)V" />
+		<method name="clearSearches(Landroid/content/ContentResolver;)V" />
+		<method name="deleteFromHistory(Landroid/content/ContentResolver;Ljava/lang/String;)V" />
+		<method name="deleteHistoryTimeFrame(Landroid/content/ContentResolver;JJ)V" />
+		<method name="getAllBookmarks(Landroid/content/ContentResolver;)Landroid/database/Cursor;" />
+		<method name="getAllVisitedUrls(Landroid/content/ContentResolver;)Landroid/database/Cursor;" />
+		<method name="requestAllIcons(Landroid/content/ContentResolver;Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V" />
+		<method name="saveBookmark(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="sendString(Landroid/content/Context;Ljava/lang/String;)V" />
+		<method name="truncateHistory(Landroid/content/ContentResolver;)V" />
+		<method name="updateVisitedHistory(Landroid/content/ContentResolver;Ljava/lang/String;Z)V" />
+		<field name="BOOKMARKS_URI" />
+		<field name="EXTRA_APPLICATION_ID" since="3" />
+		<field name="EXTRA_CREATE_NEW_TAB" since="12" />
+		<field name="EXTRA_HEADERS" since="8" />
+		<field name="HISTORY_PROJECTION" />
+		<field name="HISTORY_PROJECTION_BOOKMARK_INDEX" />
+		<field name="HISTORY_PROJECTION_DATE_INDEX" />
+		<field name="HISTORY_PROJECTION_FAVICON_INDEX" />
+		<field name="HISTORY_PROJECTION_ID_INDEX" />
+		<field name="HISTORY_PROJECTION_TITLE_INDEX" />
+		<field name="HISTORY_PROJECTION_URL_INDEX" />
+		<field name="HISTORY_PROJECTION_VISITS_INDEX" />
+		<field name="INITIAL_ZOOM_LEVEL" />
+		<field name="SEARCHES_PROJECTION" />
+		<field name="SEARCHES_PROJECTION_DATE_INDEX" />
+		<field name="SEARCHES_PROJECTION_SEARCH_INDEX" />
+		<field name="SEARCHES_URI" />
+		<field name="TRUNCATE_HISTORY_PROJECTION" />
+		<field name="TRUNCATE_HISTORY_PROJECTION_ID_INDEX" />
+		<field name="TRUNCATE_N_OLDEST" />
+	</class>
+	<class name="android/provider/Browser$BookmarkColumns" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<field name="BOOKMARK" />
+		<field name="CREATED" />
+		<field name="DATE" />
+		<field name="FAVICON" />
+		<field name="TITLE" />
+		<field name="URL" />
+		<field name="VISITS" />
+	</class>
+	<class name="android/provider/Browser$SearchColumns" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<field name="DATE" />
+		<field name="SEARCH" />
+		<field name="URL" />
+	</class>
+	<class name="android/provider/CalendarContract" since="14">
+		<field name="ACCOUNT_TYPE_LOCAL" />
+		<field name="ACTION_EVENT_REMINDER" />
+		<field name="AUTHORITY" />
+		<field name="CALLER_IS_SYNCADAPTER" />
+		<field name="CONTENT_URI" />
+		<field name="EXTRA_EVENT_ALL_DAY" />
+		<field name="EXTRA_EVENT_BEGIN_TIME" />
+		<field name="EXTRA_EVENT_END_TIME" />
+	</class>
+	<class name="android/provider/CalendarContract$Attendees" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$AttendeesColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<method name="query(Landroid/content/ContentResolver;J[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$AttendeesColumns" since="14">
+		<field name="ATTENDEE_EMAIL" />
+		<field name="ATTENDEE_NAME" />
+		<field name="ATTENDEE_RELATIONSHIP" />
+		<field name="ATTENDEE_STATUS" />
+		<field name="ATTENDEE_STATUS_ACCEPTED" />
+		<field name="ATTENDEE_STATUS_DECLINED" />
+		<field name="ATTENDEE_STATUS_INVITED" />
+		<field name="ATTENDEE_STATUS_NONE" />
+		<field name="ATTENDEE_STATUS_TENTATIVE" />
+		<field name="ATTENDEE_TYPE" />
+		<field name="EVENT_ID" />
+		<field name="RELATIONSHIP_ATTENDEE" />
+		<field name="RELATIONSHIP_NONE" />
+		<field name="RELATIONSHIP_ORGANIZER" />
+		<field name="RELATIONSHIP_PERFORMER" />
+		<field name="RELATIONSHIP_SPEAKER" />
+		<field name="TYPE_NONE" />
+		<field name="TYPE_OPTIONAL" />
+		<field name="TYPE_REQUIRED" />
+		<field name="TYPE_RESOURCE" since="15" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarAlerts" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$CalendarAlertsColumns" />
+		<implements name="android/provider/CalendarContract$CalendarColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<field name="CONTENT_URI" />
+		<field name="CONTENT_URI_BY_INSTANCE" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarAlertsColumns" since="14">
+		<field name="ALARM_TIME" />
+		<field name="BEGIN" />
+		<field name="CREATION_TIME" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="END" />
+		<field name="EVENT_ID" />
+		<field name="MINUTES" />
+		<field name="NOTIFY_TIME" />
+		<field name="RECEIVED_TIME" />
+		<field name="STATE" />
+		<field name="STATE_DISMISSED" />
+		<field name="STATE_FIRED" />
+		<field name="STATE_SCHEDULED" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarCache" since="14">
+		<implements name="android/provider/CalendarContract$CalendarCacheColumns" />
+		<field name="KEY_TIMEZONE_INSTANCES" />
+		<field name="KEY_TIMEZONE_INSTANCES_PREVIOUS" />
+		<field name="KEY_TIMEZONE_TYPE" />
+		<field name="TIMEZONE_TYPE_AUTO" />
+		<field name="TIMEZONE_TYPE_HOME" />
+		<field name="URI" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarCacheColumns" since="14">
+		<field name="KEY" />
+		<field name="VALUE" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarColumns" since="14">
+		<field name="ALLOWED_ATTENDEE_TYPES" since="15" />
+		<field name="ALLOWED_AVAILABILITY" since="15" />
+		<field name="ALLOWED_REMINDERS" />
+		<field name="CALENDAR_ACCESS_LEVEL" />
+		<field name="CALENDAR_COLOR" />
+		<field name="CALENDAR_COLOR_KEY" since="15" />
+		<field name="CALENDAR_DISPLAY_NAME" />
+		<field name="CALENDAR_TIME_ZONE" />
+		<field name="CAL_ACCESS_CONTRIBUTOR" />
+		<field name="CAL_ACCESS_EDITOR" />
+		<field name="CAL_ACCESS_FREEBUSY" />
+		<field name="CAL_ACCESS_NONE" />
+		<field name="CAL_ACCESS_OVERRIDE" />
+		<field name="CAL_ACCESS_OWNER" />
+		<field name="CAL_ACCESS_READ" />
+		<field name="CAL_ACCESS_RESPOND" />
+		<field name="CAL_ACCESS_ROOT" />
+		<field name="CAN_MODIFY_TIME_ZONE" />
+		<field name="CAN_ORGANIZER_RESPOND" />
+		<field name="MAX_REMINDERS" />
+		<field name="OWNER_ACCOUNT" />
+		<field name="SYNC_EVENTS" />
+		<field name="VISIBLE" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarEntity" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$CalendarColumns" />
+		<implements name="android/provider/CalendarContract$SyncColumns" />
+		<method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$CalendarSyncColumns" since="14">
+		<field name="CAL_SYNC1" />
+		<field name="CAL_SYNC10" />
+		<field name="CAL_SYNC2" />
+		<field name="CAL_SYNC3" />
+		<field name="CAL_SYNC4" />
+		<field name="CAL_SYNC5" />
+		<field name="CAL_SYNC6" />
+		<field name="CAL_SYNC7" />
+		<field name="CAL_SYNC8" />
+		<field name="CAL_SYNC9" />
+	</class>
+	<class name="android/provider/CalendarContract$Calendars" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$CalendarColumns" />
+		<implements name="android/provider/CalendarContract$SyncColumns" />
+		<field name="CALENDAR_LOCATION" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="NAME" />
+	</class>
+	<class name="android/provider/CalendarContract$Colors" since="15">
+		<implements name="android/provider/CalendarContract$ColorsColumns" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$ColorsColumns" since="15">
+		<implements name="android/provider/SyncStateContract$Columns" />
+		<field name="COLOR" />
+		<field name="COLOR_KEY" />
+		<field name="COLOR_TYPE" />
+		<field name="TYPE_CALENDAR" />
+		<field name="TYPE_EVENT" />
+	</class>
+	<class name="android/provider/CalendarContract$EventDays" since="14">
+		<implements name="android/provider/CalendarContract$EventDaysColumns" />
+		<method name="query(Landroid/content/ContentResolver;II[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$EventDaysColumns" since="14">
+		<field name="ENDDAY" />
+		<field name="STARTDAY" />
+	</class>
+	<class name="android/provider/CalendarContract$Events" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$CalendarColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<implements name="android/provider/CalendarContract$SyncColumns" />
+		<field name="CONTENT_EXCEPTION_URI" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$EventsColumns" since="14">
+		<field name="ACCESS_CONFIDENTIAL" />
+		<field name="ACCESS_DEFAULT" />
+		<field name="ACCESS_LEVEL" />
+		<field name="ACCESS_PRIVATE" />
+		<field name="ACCESS_PUBLIC" />
+		<field name="ALL_DAY" />
+		<field name="AVAILABILITY" />
+		<field name="AVAILABILITY_BUSY" />
+		<field name="AVAILABILITY_FREE" />
+		<field name="AVAILABILITY_TENTATIVE" since="15" />
+		<field name="CALENDAR_ID" />
+		<field name="CAN_INVITE_OTHERS" />
+		<field name="DESCRIPTION" />
+		<field name="DTEND" />
+		<field name="DTSTART" />
+		<field name="DURATION" />
+		<field name="EVENT_COLOR" />
+		<field name="EVENT_COLOR_KEY" since="15" />
+		<field name="EVENT_END_TIMEZONE" />
+		<field name="EVENT_LOCATION" />
+		<field name="EVENT_TIMEZONE" />
+		<field name="EXDATE" />
+		<field name="EXRULE" />
+		<field name="GUESTS_CAN_INVITE_OTHERS" />
+		<field name="GUESTS_CAN_MODIFY" />
+		<field name="GUESTS_CAN_SEE_GUESTS" />
+		<field name="HAS_ALARM" />
+		<field name="HAS_ATTENDEE_DATA" />
+		<field name="HAS_EXTENDED_PROPERTIES" />
+		<field name="LAST_DATE" />
+		<field name="LAST_SYNCED" />
+		<field name="ORGANIZER" />
+		<field name="ORIGINAL_ALL_DAY" />
+		<field name="ORIGINAL_ID" />
+		<field name="ORIGINAL_INSTANCE_TIME" />
+		<field name="ORIGINAL_SYNC_ID" />
+		<field name="RDATE" />
+		<field name="RRULE" />
+		<field name="SELF_ATTENDEE_STATUS" />
+		<field name="STATUS" />
+		<field name="STATUS_CANCELED" />
+		<field name="STATUS_CONFIRMED" />
+		<field name="STATUS_TENTATIVE" />
+		<field name="SYNC_DATA1" />
+		<field name="SYNC_DATA10" />
+		<field name="SYNC_DATA2" />
+		<field name="SYNC_DATA3" />
+		<field name="SYNC_DATA4" />
+		<field name="SYNC_DATA5" />
+		<field name="SYNC_DATA6" />
+		<field name="SYNC_DATA7" />
+		<field name="SYNC_DATA8" />
+		<field name="SYNC_DATA9" />
+		<field name="TITLE" />
+	</class>
+	<class name="android/provider/CalendarContract$EventsEntity" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<implements name="android/provider/CalendarContract$SyncColumns" />
+		<method name="newEntityIterator(Landroid/database/Cursor;Landroid/content/ContentProviderClient;)Landroid/content/EntityIterator;" />
+		<method name="newEntityIterator(Landroid/database/Cursor;Landroid/content/ContentResolver;)Landroid/content/EntityIterator;" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$ExtendedProperties" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<implements name="android/provider/CalendarContract$ExtendedPropertiesColumns" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$ExtendedPropertiesColumns" since="14">
+		<field name="EVENT_ID" />
+		<field name="NAME" />
+		<field name="VALUE" />
+	</class>
+	<class name="android/provider/CalendarContract$Instances" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$CalendarColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<method name="query(Landroid/content/ContentResolver;[Ljava/lang/String;JJ)Landroid/database/Cursor;" />
+		<method name="query(Landroid/content/ContentResolver;[Ljava/lang/String;JJLjava/lang/String;)Landroid/database/Cursor;" />
+		<field name="BEGIN" />
+		<field name="CONTENT_BY_DAY_URI" />
+		<field name="CONTENT_SEARCH_BY_DAY_URI" />
+		<field name="CONTENT_SEARCH_URI" />
+		<field name="CONTENT_URI" />
+		<field name="END" />
+		<field name="END_DAY" />
+		<field name="END_MINUTE" />
+		<field name="EVENT_ID" />
+		<field name="START_DAY" />
+		<field name="START_MINUTE" />
+	</class>
+	<class name="android/provider/CalendarContract$Reminders" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/CalendarContract$EventsColumns" />
+		<implements name="android/provider/CalendarContract$RemindersColumns" />
+		<method name="query(Landroid/content/ContentResolver;J[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CalendarContract$RemindersColumns" since="14">
+		<field name="EVENT_ID" />
+		<field name="METHOD" />
+		<field name="METHOD_ALERT" />
+		<field name="METHOD_DEFAULT" />
+		<field name="METHOD_EMAIL" />
+		<field name="METHOD_SMS" />
+		<field name="MINUTES" />
+		<field name="MINUTES_DEFAULT" />
+	</class>
+	<class name="android/provider/CalendarContract$SyncColumns" since="14">
+		<implements name="android/provider/CalendarContract$CalendarSyncColumns" />
+		<field name="ACCOUNT_NAME" />
+		<field name="ACCOUNT_TYPE" />
+		<field name="CAN_PARTIALLY_UPDATE" />
+		<field name="DELETED" />
+		<field name="DIRTY" />
+		<field name="_SYNC_ID" />
+	</class>
+	<class name="android/provider/CalendarContract$SyncState" since="14">
+		<implements name="android/provider/SyncStateContract$Columns" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CallLog" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="AUTHORITY" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/CallLog$Calls" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getLastOutgoingCall(Landroid/content/Context;)Ljava/lang/String;" since="8" />
+		<field name="CACHED_NAME" />
+		<field name="CACHED_NUMBER_LABEL" />
+		<field name="CACHED_NUMBER_TYPE" />
+		<field name="CONTENT_FILTER_URI" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DATE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="DURATION" />
+		<field name="INCOMING_TYPE" />
+		<field name="IS_READ" since="14" />
+		<field name="MISSED_TYPE" />
+		<field name="NEW" />
+		<field name="NUMBER" />
+		<field name="OUTGOING_TYPE" />
+		<field name="TYPE" />
+	</class>
+	<class name="android/provider/Contacts" since="1">
+		<extends name="java/lang/Object" />
+		<field name="AUTHORITY" />
+		<field name="CONTENT_URI" />
+		<field name="KIND_EMAIL" />
+		<field name="KIND_IM" />
+		<field name="KIND_ORGANIZATION" />
+		<field name="KIND_PHONE" />
+		<field name="KIND_POSTAL" />
+	</class>
+	<class name="android/provider/Contacts$ContactMethods" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$ContactMethodsColumns" />
+		<implements name="android/provider/Contacts$PeopleColumns" />
+		<method name="addPostalLocation(Landroid/content/Context;JDD)V" />
+		<method name="decodeImProtocol(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="encodeCustomImProtocol(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="encodePredefinedImProtocol(I)Ljava/lang/String;" />
+		<method name="getDisplayLabel(Landroid/content/Context;IILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<field name="CONTENT_EMAIL_ITEM_TYPE" />
+		<field name="CONTENT_EMAIL_TYPE" />
+		<field name="CONTENT_EMAIL_URI" />
+		<field name="CONTENT_IM_ITEM_TYPE" />
+		<field name="CONTENT_POSTAL_ITEM_TYPE" />
+		<field name="CONTENT_POSTAL_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="PERSON_ID" />
+		<field name="POSTAL_LOCATION_LATITUDE" />
+		<field name="POSTAL_LOCATION_LONGITUDE" />
+		<field name="PROTOCOL_AIM" />
+		<field name="PROTOCOL_GOOGLE_TALK" />
+		<field name="PROTOCOL_ICQ" />
+		<field name="PROTOCOL_JABBER" />
+		<field name="PROTOCOL_MSN" />
+		<field name="PROTOCOL_QQ" />
+		<field name="PROTOCOL_SKYPE" />
+		<field name="PROTOCOL_YAHOO" />
+	</class>
+	<class name="android/provider/Contacts$ContactMethodsColumns" since="1">
+		<field name="AUX_DATA" />
+		<field name="DATA" />
+		<field name="ISPRIMARY" />
+		<field name="KIND" />
+		<field name="LABEL" />
+		<field name="TYPE" />
+		<field name="TYPE_CUSTOM" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/Contacts$Extensions" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$ExtensionsColumns" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="PERSON_ID" />
+	</class>
+	<class name="android/provider/Contacts$ExtensionsColumns" since="1">
+		<field name="NAME" />
+		<field name="VALUE" />
+	</class>
+	<class name="android/provider/Contacts$GroupMembership" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$GroupsColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="GROUP_ID" />
+		<field name="GROUP_SYNC_ACCOUNT" />
+		<field name="GROUP_SYNC_ACCOUNT_TYPE" since="5" />
+		<field name="GROUP_SYNC_ID" />
+		<field name="PERSON_ID" />
+		<field name="RAW_CONTENT_URI" />
+	</class>
+	<class name="android/provider/Contacts$Groups" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$GroupsColumns" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="DELETED_CONTENT_URI" />
+		<field name="GROUP_ANDROID_STARRED" />
+		<field name="GROUP_MY_CONTACTS" />
+	</class>
+	<class name="android/provider/Contacts$GroupsColumns" since="1">
+		<field name="NAME" />
+		<field name="NOTES" />
+		<field name="SHOULD_SYNC" />
+		<field name="SYSTEM_ID" />
+	</class>
+	<class name="android/provider/Contacts$Intents" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ATTACH_IMAGE" />
+		<field name="EXTRA_CREATE_DESCRIPTION" since="3" />
+		<field name="EXTRA_FORCE_CREATE" since="3" />
+		<field name="SEARCH_SUGGESTION_CLICKED" />
+		<field name="SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED" />
+		<field name="SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED" />
+		<field name="SHOW_OR_CREATE_CONTACT" since="3" />
+	</class>
+	<class name="android/provider/Contacts$Intents$Insert" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACTION" />
+		<field name="COMPANY" />
+		<field name="EMAIL" />
+		<field name="EMAIL_ISPRIMARY" />
+		<field name="EMAIL_TYPE" />
+		<field name="FULL_MODE" />
+		<field name="IM_HANDLE" />
+		<field name="IM_ISPRIMARY" />
+		<field name="IM_PROTOCOL" />
+		<field name="JOB_TITLE" />
+		<field name="NAME" />
+		<field name="NOTES" />
+		<field name="PHONE" />
+		<field name="PHONETIC_NAME" since="3" />
+		<field name="PHONE_ISPRIMARY" />
+		<field name="PHONE_TYPE" />
+		<field name="POSTAL" />
+		<field name="POSTAL_ISPRIMARY" />
+		<field name="POSTAL_TYPE" />
+		<field name="SECONDARY_EMAIL" since="3" />
+		<field name="SECONDARY_EMAIL_TYPE" since="3" />
+		<field name="SECONDARY_PHONE" since="3" />
+		<field name="SECONDARY_PHONE_TYPE" since="3" />
+		<field name="TERTIARY_EMAIL" since="3" />
+		<field name="TERTIARY_EMAIL_TYPE" since="3" />
+		<field name="TERTIARY_PHONE" since="3" />
+		<field name="TERTIARY_PHONE_TYPE" since="3" />
+	</class>
+	<class name="android/provider/Contacts$Intents$UI" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="FILTER_CONTACTS_ACTION" />
+		<field name="FILTER_TEXT_EXTRA_KEY" />
+		<field name="GROUP_NAME_EXTRA_KEY" />
+		<field name="LIST_ALL_CONTACTS_ACTION" />
+		<field name="LIST_CONTACTS_WITH_PHONES_ACTION" />
+		<field name="LIST_DEFAULT" />
+		<field name="LIST_FREQUENT_ACTION" />
+		<field name="LIST_GROUP_ACTION" />
+		<field name="LIST_STARRED_ACTION" />
+		<field name="LIST_STREQUENT_ACTION" />
+		<field name="TITLE_EXTRA_KEY" />
+	</class>
+	<class name="android/provider/Contacts$OrganizationColumns" since="1">
+		<field name="COMPANY" />
+		<field name="ISPRIMARY" />
+		<field name="LABEL" />
+		<field name="PERSON_ID" />
+		<field name="TITLE" />
+		<field name="TYPE" />
+		<field name="TYPE_CUSTOM" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/Contacts$Organizations" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$OrganizationColumns" />
+		<method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+	</class>
+	<class name="android/provider/Contacts$People" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$PeopleColumns" />
+		<implements name="android/provider/Contacts$PhonesColumns" />
+		<implements name="android/provider/Contacts$PresenceColumns" />
+		<method name="addToGroup(Landroid/content/ContentResolver;JJ)Landroid/net/Uri;" />
+		<method name="addToGroup(Landroid/content/ContentResolver;JLjava/lang/String;)Landroid/net/Uri;" />
+		<method name="addToMyContactsGroup(Landroid/content/ContentResolver;J)Landroid/net/Uri;" />
+		<method name="createPersonInMyContactsGroup(Landroid/content/ContentResolver;Landroid/content/ContentValues;)Landroid/net/Uri;" />
+		<method name="loadContactPhoto(Landroid/content/Context;Landroid/net/Uri;ILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="markAsContacted(Landroid/content/ContentResolver;J)V" />
+		<method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;" />
+		<method name="queryGroups(Landroid/content/ContentResolver;J)Landroid/database/Cursor;" />
+		<method name="setPhotoData(Landroid/content/ContentResolver;Landroid/net/Uri;[B)V" />
+		<field name="CONTENT_FILTER_URI" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="DELETED_CONTENT_URI" />
+		<field name="PRIMARY_EMAIL_ID" />
+		<field name="PRIMARY_ORGANIZATION_ID" />
+		<field name="PRIMARY_PHONE_ID" />
+	</class>
+	<class name="android/provider/Contacts$People$ContactMethods" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$ContactMethodsColumns" />
+		<implements name="android/provider/Contacts$PeopleColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DEFAULT_SORT_ORDER" />
+	</class>
+	<class name="android/provider/Contacts$People$Extensions" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$ExtensionsColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="PERSON_ID" />
+	</class>
+	<class name="android/provider/Contacts$People$Phones" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$PeopleColumns" />
+		<implements name="android/provider/Contacts$PhonesColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DEFAULT_SORT_ORDER" />
+	</class>
+	<class name="android/provider/Contacts$PeopleColumns" since="1">
+		<field name="CUSTOM_RINGTONE" />
+		<field name="DISPLAY_NAME" />
+		<field name="LAST_TIME_CONTACTED" />
+		<field name="NAME" />
+		<field name="NOTES" />
+		<field name="PHONETIC_NAME" since="3" />
+		<field name="PHOTO_VERSION" />
+		<field name="SEND_TO_VOICEMAIL" />
+		<field name="STARRED" />
+		<field name="TIMES_CONTACTED" />
+	</class>
+	<class name="android/provider/Contacts$Phones" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$PeopleColumns" />
+		<implements name="android/provider/Contacts$PhonesColumns" />
+		<method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getDisplayLabel(Landroid/content/Context;ILjava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<field name="CONTENT_FILTER_URL" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="PERSON_ID" />
+	</class>
+	<class name="android/provider/Contacts$PhonesColumns" since="1">
+		<field name="ISPRIMARY" />
+		<field name="LABEL" />
+		<field name="NUMBER" />
+		<field name="NUMBER_KEY" />
+		<field name="TYPE" />
+		<field name="TYPE_CUSTOM" />
+		<field name="TYPE_FAX_HOME" />
+		<field name="TYPE_FAX_WORK" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_MOBILE" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_PAGER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/Contacts$Photos" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$PhotosColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+	</class>
+	<class name="android/provider/Contacts$PhotosColumns" since="1">
+		<field name="DATA" />
+		<field name="DOWNLOAD_REQUIRED" />
+		<field name="EXISTS_ON_SERVER" />
+		<field name="LOCAL_VERSION" />
+		<field name="PERSON_ID" />
+		<field name="SYNC_ERROR" />
+	</class>
+	<class name="android/provider/Contacts$PresenceColumns" since="1">
+		<field name="AVAILABLE" since="8" />
+		<field name="AWAY" since="8" />
+		<field name="DO_NOT_DISTURB" since="8" />
+		<field name="IDLE" since="8" />
+		<field name="IM_ACCOUNT" />
+		<field name="IM_HANDLE" />
+		<field name="IM_PROTOCOL" />
+		<field name="INVISIBLE" since="8" />
+		<field name="OFFLINE" since="8" />
+		<field name="PRESENCE_CUSTOM_STATUS" since="8" />
+		<field name="PRESENCE_STATUS" since="8" />
+		<field name="PRIORITY" since="8" />
+	</class>
+	<class name="android/provider/Contacts$Settings" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/Contacts$SettingsColumns" />
+		<method name="getSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="setSetting(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="SYNC_EVERYTHING" />
+	</class>
+	<class name="android/provider/Contacts$SettingsColumns" since="1">
+		<field name="KEY" />
+		<field name="VALUE" />
+		<field name="_SYNC_ACCOUNT" />
+		<field name="_SYNC_ACCOUNT_TYPE" since="5" />
+	</class>
+	<class name="android/provider/ContactsContract" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="isProfileId(J)Z" since="14" />
+		<field name="AUTHORITY" />
+		<field name="AUTHORITY_URI" />
+		<field name="CALLER_IS_SYNCADAPTER" />
+		<field name="DIRECTORY_PARAM_KEY" since="11" />
+		<field name="LIMIT_PARAM_KEY" since="11" />
+		<field name="PRIMARY_ACCOUNT_NAME" since="14" />
+		<field name="PRIMARY_ACCOUNT_TYPE" since="14" />
+	</class>
+	<class name="android/provider/ContactsContract$AggregationExceptions" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="RAW_CONTACT_ID1" />
+		<field name="RAW_CONTACT_ID2" />
+		<field name="TYPE" />
+		<field name="TYPE_AUTOMATIC" />
+		<field name="TYPE_KEEP_SEPARATE" />
+		<field name="TYPE_KEEP_TOGETHER" />
+	</class>
+	<class name="android/provider/ContactsContract$BaseSyncColumns" since="5">
+		<field name="SYNC1" />
+		<field name="SYNC2" />
+		<field name="SYNC3" />
+		<field name="SYNC4" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds" since="5">
+		<extends name="java/lang/Object" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$BaseTypes" since="5">
+		<field name="TYPE_CUSTOM" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" since="5">
+		<implements name="android/provider/ContactsContract$CommonDataKinds$BaseTypes" />
+		<field name="DATA" />
+		<field name="LABEL" />
+		<field name="TYPE" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Email" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTypeLabelResource(I)I" />
+		<field name="ADDRESS" since="11" />
+		<field name="CONTENT_FILTER_URI" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_LOOKUP_URI" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DISPLAY_NAME" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_MOBILE" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Event" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeResource(Ljava/lang/Integer;)I" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="START_DATE" />
+		<field name="TYPE_ANNIVERSARY" />
+		<field name="TYPE_BIRTHDAY" />
+		<field name="TYPE_OTHER" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$GroupMembership" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="GROUP_ROW_ID" />
+		<field name="GROUP_SOURCE_ID" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Identity" since="14">
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="IDENTITY" />
+		<field name="NAMESPACE" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Im" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getProtocolLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getProtocolLabelResource(I)I" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTypeLabelResource(I)I" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CUSTOM_PROTOCOL" />
+		<field name="PROTOCOL" />
+		<field name="PROTOCOL_AIM" />
+		<field name="PROTOCOL_CUSTOM" />
+		<field name="PROTOCOL_GOOGLE_TALK" />
+		<field name="PROTOCOL_ICQ" />
+		<field name="PROTOCOL_JABBER" />
+		<field name="PROTOCOL_MSN" />
+		<field name="PROTOCOL_NETMEETING" />
+		<field name="PROTOCOL_QQ" />
+		<field name="PROTOCOL_SKYPE" />
+		<field name="PROTOCOL_YAHOO" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Nickname" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="NAME" />
+		<field name="TYPE_DEFAULT" />
+		<field name="TYPE_INITIALS" />
+		<field name="TYPE_MAIDEN_NAME" since="9" />
+		<field name="TYPE_MAINDEN_NAME" />
+		<field name="TYPE_OTHER_NAME" />
+		<field name="TYPE_SHORT_NAME" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Note" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="NOTE" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Organization" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTypeLabelResource(I)I" />
+		<field name="COMPANY" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="DEPARTMENT" />
+		<field name="JOB_DESCRIPTION" />
+		<field name="OFFICE_LOCATION" />
+		<field name="PHONETIC_NAME" />
+		<field name="SYMBOL" />
+		<field name="TITLE" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Phone" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTypeLabelResource(I)I" />
+		<field name="CONTENT_FILTER_URI" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="NUMBER" />
+		<field name="TYPE_ASSISTANT" />
+		<field name="TYPE_CALLBACK" />
+		<field name="TYPE_CAR" />
+		<field name="TYPE_COMPANY_MAIN" />
+		<field name="TYPE_FAX_HOME" />
+		<field name="TYPE_FAX_WORK" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_ISDN" />
+		<field name="TYPE_MAIN" />
+		<field name="TYPE_MMS" />
+		<field name="TYPE_MOBILE" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_OTHER_FAX" />
+		<field name="TYPE_PAGER" />
+		<field name="TYPE_RADIO" />
+		<field name="TYPE_TELEX" />
+		<field name="TYPE_TTY_TDD" />
+		<field name="TYPE_WORK" />
+		<field name="TYPE_WORK_MOBILE" />
+		<field name="TYPE_WORK_PAGER" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Photo" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="PHOTO" />
+		<field name="PHOTO_FILE_ID" since="14" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Relation" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" since="11" />
+		<method name="getTypeLabelResource(I)I" since="11" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="NAME" />
+		<field name="TYPE_ASSISTANT" />
+		<field name="TYPE_BROTHER" />
+		<field name="TYPE_CHILD" />
+		<field name="TYPE_DOMESTIC_PARTNER" />
+		<field name="TYPE_FATHER" />
+		<field name="TYPE_FRIEND" />
+		<field name="TYPE_MANAGER" />
+		<field name="TYPE_MOTHER" />
+		<field name="TYPE_PARENT" />
+		<field name="TYPE_PARTNER" />
+		<field name="TYPE_REFERRED_BY" />
+		<field name="TYPE_RELATIVE" />
+		<field name="TYPE_SISTER" />
+		<field name="TYPE_SPOUSE" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$SipAddress" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTypeLabelResource(I)I" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="SIP_ADDRESS" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$StructuredName" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="DISPLAY_NAME" />
+		<field name="FAMILY_NAME" />
+		<field name="GIVEN_NAME" />
+		<field name="MIDDLE_NAME" />
+		<field name="PHONETIC_FAMILY_NAME" />
+		<field name="PHONETIC_GIVEN_NAME" />
+		<field name="PHONETIC_MIDDLE_NAME" />
+		<field name="PREFIX" />
+		<field name="SUFFIX" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$StructuredPostal" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getTypeLabel(Landroid/content/res/Resources;ILjava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getTypeLabelResource(I)I" />
+		<field name="CITY" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="COUNTRY" />
+		<field name="FORMATTED_ADDRESS" />
+		<field name="NEIGHBORHOOD" />
+		<field name="POBOX" />
+		<field name="POSTCODE" />
+		<field name="REGION" />
+		<field name="STREET" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_WORK" />
+	</class>
+	<class name="android/provider/ContactsContract$CommonDataKinds$Website" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$CommonDataKinds$CommonColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="TYPE_BLOG" />
+		<field name="TYPE_FTP" />
+		<field name="TYPE_HOME" />
+		<field name="TYPE_HOMEPAGE" />
+		<field name="TYPE_OTHER" />
+		<field name="TYPE_PROFILE" />
+		<field name="TYPE_WORK" />
+		<field name="URL" />
+	</class>
+	<class name="android/provider/ContactsContract$ContactNameColumns" since="11">
+		<field name="DISPLAY_NAME_ALTERNATIVE" />
+		<field name="DISPLAY_NAME_PRIMARY" />
+		<field name="DISPLAY_NAME_SOURCE" />
+		<field name="PHONETIC_NAME" />
+		<field name="PHONETIC_NAME_STYLE" />
+		<field name="SORT_KEY_ALTERNATIVE" />
+		<field name="SORT_KEY_PRIMARY" />
+	</class>
+	<class name="android/provider/ContactsContract$ContactOptionsColumns" since="5">
+		<field name="CUSTOM_RINGTONE" />
+		<field name="LAST_TIME_CONTACTED" />
+		<field name="SEND_TO_VOICEMAIL" />
+		<field name="STARRED" />
+		<field name="TIMES_CONTACTED" />
+	</class>
+	<class name="android/provider/ContactsContract$ContactStatusColumns" since="5">
+		<field name="CONTACT_CHAT_CAPABILITY" since="11" />
+		<field name="CONTACT_PRESENCE" />
+		<field name="CONTACT_STATUS" />
+		<field name="CONTACT_STATUS_ICON" />
+		<field name="CONTACT_STATUS_LABEL" />
+		<field name="CONTACT_STATUS_RES_PACKAGE" />
+		<field name="CONTACT_STATUS_TIMESTAMP" />
+	</class>
+	<class name="android/provider/ContactsContract$Contacts" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
+		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
+		<implements name="android/provider/ContactsContract$ContactsColumns" />
+		<implements name="android/provider/ContactsContract$ContactNameColumns" since="11" />
+		<method name="getLookupUri(JLjava/lang/String;)Landroid/net/Uri;" />
+		<method name="getLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
+		<method name="lookupContact(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
+		<method name="markAsContacted(Landroid/content/ContentResolver;J)V" />
+		<method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;)Ljava/io/InputStream;" />
+		<method name="openContactPhotoInputStream(Landroid/content/ContentResolver;Landroid/net/Uri;Z)Ljava/io/InputStream;" since="14" />
+		<field name="CONTENT_FILTER_URI" />
+		<field name="CONTENT_GROUP_URI" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_LOOKUP_URI" />
+		<field name="CONTENT_STREQUENT_FILTER_URI" />
+		<field name="CONTENT_STREQUENT_URI" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="CONTENT_VCARD_TYPE" />
+		<field name="CONTENT_VCARD_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$Contacts$AggregationSuggestions" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$ContactsColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" since="11" />
+		<implements name="android/provider/ContactsContract$ContactStatusColumns" since="11" />
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/ContactsContract$Contacts$Data" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/ContactsContract$Contacts$Entity" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$BaseSyncColumns" />
+		<implements name="android/provider/ContactsContract$ContactNameColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
+		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
+		<implements name="android/provider/ContactsContract$ContactsColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<implements name="android/provider/ContactsContract$RawContactsColumns" />
+		<implements name="android/provider/ContactsContract$StatusColumns" />
+		<implements name="android/provider/ContactsContract$SyncColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DATA_ID" />
+		<field name="RAW_CONTACT_ID" />
+	</class>
+	<class name="android/provider/ContactsContract$Contacts$Photo" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" since="11" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DISPLAY_PHOTO" since="14" />
+		<field name="PHOTO" since="11" />
+		<field name="PHOTO_FILE_ID" since="14" />
+	</class>
+	<class name="android/provider/ContactsContract$Contacts$StreamItems" since="15">
+		<implements name="android/provider/ContactsContract$StreamItemsColumns" />
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/ContactsContract$ContactsColumns" since="5">
+		<field name="DISPLAY_NAME" />
+		<field name="HAS_PHONE_NUMBER" />
+		<field name="IN_VISIBLE_GROUP" />
+		<field name="IS_USER_PROFILE" since="14" />
+		<field name="LOOKUP_KEY" />
+		<field name="PHOTO_FILE_ID" since="14" />
+		<field name="PHOTO_ID" />
+		<field name="PHOTO_THUMBNAIL_URI" since="11" />
+		<field name="PHOTO_URI" since="11" />
+	</class>
+	<class name="android/provider/ContactsContract$Data" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$DataColumnsWithJoins" />
+		<method name="getContactLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$DataColumns" since="5">
+		<field name="DATA1" />
+		<field name="DATA10" />
+		<field name="DATA11" />
+		<field name="DATA12" />
+		<field name="DATA13" />
+		<field name="DATA14" />
+		<field name="DATA15" />
+		<field name="DATA2" />
+		<field name="DATA3" />
+		<field name="DATA4" />
+		<field name="DATA5" />
+		<field name="DATA6" />
+		<field name="DATA7" />
+		<field name="DATA8" />
+		<field name="DATA9" />
+		<field name="DATA_VERSION" />
+		<field name="IS_PRIMARY" />
+		<field name="IS_READ_ONLY" since="11" />
+		<field name="IS_SUPER_PRIMARY" />
+		<field name="MIMETYPE" />
+		<field name="RAW_CONTACT_ID" />
+		<field name="SYNC1" />
+		<field name="SYNC2" />
+		<field name="SYNC3" />
+		<field name="SYNC4" />
+	</class>
+	<class name="android/provider/ContactsContract$DataColumnsWithJoins" since="5">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
+		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
+		<implements name="android/provider/ContactsContract$ContactsColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<implements name="android/provider/ContactsContract$RawContactsColumns" />
+		<implements name="android/provider/ContactsContract$StatusColumns" />
+		<implements name="android/provider/ContactsContract$ContactNameColumns" since="11" />
+	</class>
+	<class name="android/provider/ContactsContract$DataUsageFeedback" since="14">
+		<method name="&lt;init>()V" />
+		<field name="FEEDBACK_URI" />
+		<field name="USAGE_TYPE" />
+		<field name="USAGE_TYPE_CALL" />
+		<field name="USAGE_TYPE_LONG_TEXT" />
+		<field name="USAGE_TYPE_SHORT_TEXT" />
+	</class>
+	<class name="android/provider/ContactsContract$Directory" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="notifyDirectoryChange(Landroid/content/ContentResolver;)V" />
+		<field name="ACCOUNT_NAME" />
+		<field name="ACCOUNT_TYPE" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT" />
+		<field name="DIRECTORY_AUTHORITY" />
+		<field name="DISPLAY_NAME" />
+		<field name="EXPORT_SUPPORT" />
+		<field name="EXPORT_SUPPORT_ANY_ACCOUNT" />
+		<field name="EXPORT_SUPPORT_NONE" />
+		<field name="EXPORT_SUPPORT_SAME_ACCOUNT_ONLY" />
+		<field name="LOCAL_INVISIBLE" />
+		<field name="PACKAGE_NAME" />
+		<field name="PHOTO_SUPPORT" />
+		<field name="PHOTO_SUPPORT_FULL" />
+		<field name="PHOTO_SUPPORT_FULL_SIZE_ONLY" />
+		<field name="PHOTO_SUPPORT_NONE" />
+		<field name="PHOTO_SUPPORT_THUMBNAIL_ONLY" />
+		<field name="SHORTCUT_SUPPORT" />
+		<field name="SHORTCUT_SUPPORT_DATA_ITEMS_ONLY" />
+		<field name="SHORTCUT_SUPPORT_FULL" />
+		<field name="SHORTCUT_SUPPORT_NONE" />
+		<field name="TYPE_RESOURCE_ID" />
+	</class>
+	<class name="android/provider/ContactsContract$DisplayNameSources" since="11">
+		<field name="EMAIL" />
+		<field name="NICKNAME" />
+		<field name="ORGANIZATION" />
+		<field name="PHONE" />
+		<field name="STRUCTURED_NAME" />
+		<field name="UNDEFINED" />
+	</class>
+	<class name="android/provider/ContactsContract$DisplayPhoto" since="14">
+		<field name="CONTENT_MAX_DIMENSIONS_URI" />
+		<field name="CONTENT_URI" />
+		<field name="DISPLAY_MAX_DIM" />
+		<field name="THUMBNAIL_MAX_DIM" />
+	</class>
+	<class name="android/provider/ContactsContract$FullNameStyle" since="11">
+		<field name="CHINESE" />
+		<field name="CJK" />
+		<field name="JAPANESE" />
+		<field name="KOREAN" />
+		<field name="UNDEFINED" />
+		<field name="WESTERN" />
+	</class>
+	<class name="android/provider/ContactsContract$Groups" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$GroupsColumns" />
+		<implements name="android/provider/ContactsContract$SyncColumns" />
+		<method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" since="8" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_SUMMARY_URI" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$GroupsColumns" since="5">
+		<field name="AUTO_ADD" since="11" />
+		<field name="DATA_SET" since="14" />
+		<field name="DELETED" />
+		<field name="FAVORITES" since="11" />
+		<field name="GROUP_IS_READ_ONLY" since="11" />
+		<field name="GROUP_VISIBLE" />
+		<field name="NOTES" />
+		<field name="SHOULD_SYNC" />
+		<field name="SUMMARY_COUNT" />
+		<field name="SUMMARY_WITH_PHONES" />
+		<field name="SYSTEM_ID" />
+		<field name="TITLE" />
+	</class>
+	<class name="android/provider/ContactsContract$Intents" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ATTACH_IMAGE" />
+		<field name="EXTRA_CREATE_DESCRIPTION" />
+		<field name="EXTRA_FORCE_CREATE" />
+		<field name="INVITE_CONTACT" since="14" />
+		<field name="SEARCH_SUGGESTION_CLICKED" />
+		<field name="SEARCH_SUGGESTION_CREATE_CONTACT_CLICKED" />
+		<field name="SEARCH_SUGGESTION_DIAL_NUMBER_CLICKED" />
+		<field name="SHOW_OR_CREATE_CONTACT" />
+	</class>
+	<class name="android/provider/ContactsContract$Intents$Insert" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACTION" />
+		<field name="COMPANY" />
+		<field name="DATA" since="11" />
+		<field name="EMAIL" />
+		<field name="EMAIL_ISPRIMARY" />
+		<field name="EMAIL_TYPE" />
+		<field name="FULL_MODE" />
+		<field name="IM_HANDLE" />
+		<field name="IM_ISPRIMARY" />
+		<field name="IM_PROTOCOL" />
+		<field name="JOB_TITLE" />
+		<field name="NAME" />
+		<field name="NOTES" />
+		<field name="PHONE" />
+		<field name="PHONETIC_NAME" />
+		<field name="PHONE_ISPRIMARY" />
+		<field name="PHONE_TYPE" />
+		<field name="POSTAL" />
+		<field name="POSTAL_ISPRIMARY" />
+		<field name="POSTAL_TYPE" />
+		<field name="SECONDARY_EMAIL" />
+		<field name="SECONDARY_EMAIL_TYPE" />
+		<field name="SECONDARY_PHONE" />
+		<field name="SECONDARY_PHONE_TYPE" />
+		<field name="TERTIARY_EMAIL" />
+		<field name="TERTIARY_EMAIL_TYPE" />
+		<field name="TERTIARY_PHONE" />
+		<field name="TERTIARY_PHONE_TYPE" />
+	</class>
+	<class name="android/provider/ContactsContract$PhoneLookup" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
+		<implements name="android/provider/ContactsContract$ContactsColumns" />
+		<implements name="android/provider/ContactsContract$PhoneLookupColumns" />
+		<field name="CONTENT_FILTER_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$PhoneLookupColumns" since="5">
+		<field name="LABEL" />
+		<field name="NUMBER" />
+		<field name="TYPE" />
+	</class>
+	<class name="android/provider/ContactsContract$PhoneticNameStyle" since="11">
+		<field name="JAPANESE" />
+		<field name="KOREAN" />
+		<field name="PINYIN" />
+		<field name="UNDEFINED" />
+	</class>
+	<class name="android/provider/ContactsContract$Presence" since="5">
+		<extends name="android/provider/ContactsContract$StatusUpdates" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/provider/ContactsContract$PresenceColumns" since="5">
+		<field name="CUSTOM_PROTOCOL" />
+		<field name="DATA_ID" />
+		<field name="IM_ACCOUNT" />
+		<field name="IM_HANDLE" />
+		<field name="PROTOCOL" />
+	</class>
+	<class name="android/provider/ContactsContract$Profile" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$ContactNameColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
+		<implements name="android/provider/ContactsContract$ContactStatusColumns" />
+		<implements name="android/provider/ContactsContract$ContactsColumns" />
+		<field name="CONTENT_RAW_CONTACTS_URI" />
+		<field name="CONTENT_URI" />
+		<field name="CONTENT_VCARD_URI" />
+		<field name="MIN_ID" />
+	</class>
+	<class name="android/provider/ContactsContract$ProfileSyncState" since="14">
+		<implements name="android/provider/SyncStateContract$Columns" />
+		<method name="get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B" />
+		<method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;" />
+		<method name="newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;" />
+		<method name="set(Landroid/content/ContentProviderClient;Landroid/accounts/Account;[B)V" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$QuickContact" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="showQuickContact(Landroid/content/Context;Landroid/graphics/Rect;Landroid/net/Uri;I[Ljava/lang/String;)V" />
+		<method name="showQuickContact(Landroid/content/Context;Landroid/view/View;Landroid/net/Uri;I[Ljava/lang/String;)V" />
+		<field name="MODE_LARGE" />
+		<field name="MODE_MEDIUM" />
+		<field name="MODE_SMALL" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContacts" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$ContactOptionsColumns" />
+		<implements name="android/provider/ContactsContract$RawContactsColumns" />
+		<implements name="android/provider/ContactsContract$SyncColumns" />
+		<implements name="android/provider/ContactsContract$ContactNameColumns" since="11" />
+		<method name="getContactLookupUri(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/net/Uri;" />
+		<method name="newEntityIterator(Landroid/database/Cursor;)Landroid/content/EntityIterator;" since="8" />
+		<field name="AGGREGATION_MODE_DEFAULT" />
+		<field name="AGGREGATION_MODE_DISABLED" />
+		<field name="AGGREGATION_MODE_IMMEDIATE" />
+		<field name="AGGREGATION_MODE_SUSPENDED" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContacts$Data" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContacts$DisplayPhoto" since="14">
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContacts$Entity" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DATA_ID" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContacts$StreamItems" since="15">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$StreamItemsColumns" />
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContactsColumns" since="5">
+		<field name="AGGREGATION_MODE" />
+		<field name="CONTACT_ID" />
+		<field name="DATA_SET" since="14" />
+		<field name="DELETED" />
+		<field name="RAW_CONTACT_IS_READ_ONLY" since="11" />
+		<field name="RAW_CONTACT_IS_USER_PROFILE" since="14" />
+	</class>
+	<class name="android/provider/ContactsContract$RawContactsEntity" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$DataColumns" />
+		<implements name="android/provider/ContactsContract$RawContactsColumns" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DATA_ID" />
+		<field name="PROFILE_CONTENT_URI" since="14" />
+	</class>
+	<class name="android/provider/ContactsContract$Settings" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$SettingsColumns" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/ContactsContract$SettingsColumns" since="5">
+		<field name="ACCOUNT_NAME" />
+		<field name="ACCOUNT_TYPE" />
+		<field name="ANY_UNSYNCED" />
+		<field name="DATA_SET" since="14" />
+		<field name="SHOULD_SYNC" />
+		<field name="UNGROUPED_COUNT" />
+		<field name="UNGROUPED_VISIBLE" />
+		<field name="UNGROUPED_WITH_PHONES" />
+	</class>
+	<class name="android/provider/ContactsContract$StatusColumns" since="5">
+		<field name="AVAILABLE" since="8" />
+		<field name="AWAY" since="8" />
+		<field name="CAPABILITY_HAS_CAMERA" since="11" />
+		<field name="CAPABILITY_HAS_VIDEO" since="11" />
+		<field name="CAPABILITY_HAS_VOICE" since="11" />
+		<field name="CHAT_CAPABILITY" since="11" />
+		<field name="DO_NOT_DISTURB" since="8" />
+		<field name="IDLE" since="8" />
+		<field name="INVISIBLE" since="8" />
+		<field name="OFFLINE" since="8" />
+		<field name="PRESENCE" />
+		<field name="PRESENCE_CUSTOM_STATUS" since="8" />
+		<field name="PRESENCE_STATUS" since="8" />
+		<field name="STATUS" />
+		<field name="STATUS_ICON" />
+		<field name="STATUS_LABEL" />
+		<field name="STATUS_RES_PACKAGE" />
+		<field name="STATUS_TIMESTAMP" />
+	</class>
+	<class name="android/provider/ContactsContract$StatusUpdates" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/ContactsContract$PresenceColumns" />
+		<implements name="android/provider/ContactsContract$StatusColumns" />
+		<method name="getPresenceIconResourceId(I)I" />
+		<method name="getPresencePrecedence(I)I" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="PROFILE_CONTENT_URI" since="14" />
+	</class>
+	<class name="android/provider/ContactsContract$StreamItemPhotos" since="15">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$StreamItemPhotosColumns" />
+		<field name="PHOTO" />
+	</class>
+	<class name="android/provider/ContactsContract$StreamItemPhotosColumns" since="15">
+		<field name="PHOTO_FILE_ID" />
+		<field name="PHOTO_URI" />
+		<field name="SORT_INDEX" />
+		<field name="STREAM_ITEM_ID" />
+		<field name="SYNC1" />
+		<field name="SYNC2" />
+		<field name="SYNC3" />
+		<field name="SYNC4" />
+	</class>
+	<class name="android/provider/ContactsContract$StreamItems" since="15">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$StreamItemsColumns" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_LIMIT_URI" />
+		<field name="CONTENT_PHOTO_URI" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="MAX_ITEMS" />
+	</class>
+	<class name="android/provider/ContactsContract$StreamItems$StreamItemPhotos" since="15">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/ContactsContract$StreamItemPhotosColumns" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+	</class>
+	<class name="android/provider/ContactsContract$StreamItemsColumns" since="15">
+		<field name="ACCOUNT_NAME" />
+		<field name="ACCOUNT_TYPE" />
+		<field name="COMMENTS" />
+		<field name="CONTACT_ID" />
+		<field name="CONTACT_LOOKUP_KEY" />
+		<field name="DATA_SET" />
+		<field name="RAW_CONTACT_ID" />
+		<field name="RAW_CONTACT_SOURCE_ID" />
+		<field name="RES_ICON" />
+		<field name="RES_LABEL" />
+		<field name="RES_PACKAGE" />
+		<field name="SYNC1" />
+		<field name="SYNC2" />
+		<field name="SYNC3" />
+		<field name="SYNC4" />
+		<field name="TEXT" />
+		<field name="TIMESTAMP" />
+	</class>
+	<class name="android/provider/ContactsContract$SyncColumns" since="5">
+		<implements name="android/provider/ContactsContract$BaseSyncColumns" />
+		<field name="ACCOUNT_NAME" />
+		<field name="ACCOUNT_TYPE" />
+		<field name="DIRTY" />
+		<field name="SOURCE_ID" />
+		<field name="VERSION" />
+	</class>
+	<class name="android/provider/ContactsContract$SyncState" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/SyncStateContract$Columns" />
+		<method name="get(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)[B" />
+		<method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/accounts/Account;)Landroid/util/Pair;" />
+		<method name="newSetOperation(Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;" />
+		<method name="set(Landroid/content/ContentProviderClient;Landroid/accounts/Account;[B)V" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/LiveFolders" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<field name="ACTION_CREATE_LIVE_FOLDER" />
+		<field name="DESCRIPTION" />
+		<field name="DISPLAY_MODE_GRID" />
+		<field name="DISPLAY_MODE_LIST" />
+		<field name="EXTRA_LIVE_FOLDER_BASE_INTENT" />
+		<field name="EXTRA_LIVE_FOLDER_DISPLAY_MODE" />
+		<field name="EXTRA_LIVE_FOLDER_ICON" />
+		<field name="EXTRA_LIVE_FOLDER_NAME" />
+		<field name="ICON_BITMAP" />
+		<field name="ICON_PACKAGE" />
+		<field name="ICON_RESOURCE" />
+		<field name="INTENT" />
+		<field name="NAME" />
+	</class>
+	<class name="android/provider/MediaStore" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getMediaScannerUri()Landroid/net/Uri;" />
+		<method name="getVersion(Landroid/content/Context;)Ljava/lang/String;" since="12" />
+		<field name="ACTION_IMAGE_CAPTURE" since="3" />
+		<field name="ACTION_VIDEO_CAPTURE" since="3" />
+		<field name="AUTHORITY" />
+		<field name="EXTRA_DURATION_LIMIT" since="8" />
+		<field name="EXTRA_FINISH_ON_COMPLETION" since="3" />
+		<field name="EXTRA_FULL_SCREEN" since="8" />
+		<field name="EXTRA_MEDIA_ALBUM" since="3" />
+		<field name="EXTRA_MEDIA_ARTIST" since="3" />
+		<field name="EXTRA_MEDIA_FOCUS" since="3" />
+		<field name="EXTRA_MEDIA_TITLE" since="3" />
+		<field name="EXTRA_OUTPUT" since="3" />
+		<field name="EXTRA_SCREEN_ORIENTATION" since="3" />
+		<field name="EXTRA_SHOW_ACTION_ICONS" since="8" />
+		<field name="EXTRA_SIZE_LIMIT" since="8" />
+		<field name="EXTRA_VIDEO_QUALITY" since="3" />
+		<field name="INTENT_ACTION_MEDIA_PLAY_FROM_SEARCH" since="9" />
+		<field name="INTENT_ACTION_MEDIA_SEARCH" since="3" />
+		<field name="INTENT_ACTION_MUSIC_PLAYER" since="8" />
+		<field name="INTENT_ACTION_STILL_IMAGE_CAMERA" since="3" />
+		<field name="INTENT_ACTION_VIDEO_CAMERA" since="3" />
+		<field name="MEDIA_IGNORE_FILENAME" since="9" />
+		<field name="MEDIA_SCANNER_VOLUME" />
+		<field name="UNKNOWN_STRING" since="8" />
+	</class>
+	<class name="android/provider/MediaStore$Audio" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="keyFor(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$AlbumColumns" since="1">
+		<field name="ALBUM" />
+		<field name="ALBUM_ART" />
+		<field name="ALBUM_ID" />
+		<field name="ALBUM_KEY" />
+		<field name="ARTIST" />
+		<field name="FIRST_YEAR" />
+		<field name="LAST_YEAR" />
+		<field name="NUMBER_OF_SONGS" />
+		<field name="NUMBER_OF_SONGS_FOR_ARTIST" since="3" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Albums" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/MediaStore$Audio$AlbumColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="ENTRY_CONTENT_TYPE" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="INTERNAL_CONTENT_URI" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$ArtistColumns" since="1">
+		<field name="ARTIST" />
+		<field name="ARTIST_KEY" />
+		<field name="NUMBER_OF_ALBUMS" />
+		<field name="NUMBER_OF_TRACKS" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Artists" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/MediaStore$Audio$ArtistColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="ENTRY_CONTENT_TYPE" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="INTERNAL_CONTENT_URI" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Artists$Albums" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/MediaStore$Audio$AlbumColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$AudioColumns" since="1">
+		<implements name="android/provider/MediaStore$MediaColumns" />
+		<field name="ALBUM" />
+		<field name="ALBUM_ART" />
+		<field name="ALBUM_ID" />
+		<field name="ALBUM_KEY" />
+		<field name="ARTIST" />
+		<field name="ARTIST_ID" />
+		<field name="ARTIST_KEY" />
+		<field name="BOOKMARK" since="8" />
+		<field name="COMPOSER" />
+		<field name="DURATION" />
+		<field name="IS_ALARM" />
+		<field name="IS_MUSIC" />
+		<field name="IS_NOTIFICATION" />
+		<field name="IS_PODCAST" since="8" />
+		<field name="IS_RINGTONE" />
+		<field name="TITLE_KEY" />
+		<field name="TRACK" />
+		<field name="YEAR" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Genres" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/MediaStore$Audio$GenresColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="getContentUriForAudioId(Ljava/lang/String;I)Landroid/net/Uri;" since="11" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="ENTRY_CONTENT_TYPE" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="INTERNAL_CONTENT_URI" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Genres$Members" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/MediaStore$Audio$AudioColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
+		<field name="AUDIO_ID" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="GENRE_ID" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$GenresColumns" since="1">
+		<field name="NAME" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Media" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/MediaStore$Audio$AudioColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="getContentUriForPath(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="EXTRA_MAX_BYTES" since="3" />
+		<field name="INTERNAL_CONTENT_URI" />
+		<field name="RECORD_SOUND_ACTION" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Playlists" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/MediaStore$Audio$PlaylistsColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="ENTRY_CONTENT_TYPE" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="INTERNAL_CONTENT_URI" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$Playlists$Members" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/MediaStore$Audio$AudioColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
+		<method name="moveItem(Landroid/content/ContentResolver;JII)Z" since="8" />
+		<field name="AUDIO_ID" />
+		<field name="CONTENT_DIRECTORY" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="PLAYLIST_ID" />
+		<field name="PLAY_ORDER" />
+		<field name="_ID" />
+	</class>
+	<class name="android/provider/MediaStore$Audio$PlaylistsColumns" since="1">
+		<field name="DATA" />
+		<field name="DATE_ADDED" />
+		<field name="DATE_MODIFIED" />
+		<field name="NAME" />
+	</class>
+	<class name="android/provider/MediaStore$Files" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="getContentUri(Ljava/lang/String;J)Landroid/net/Uri;" />
+	</class>
+	<class name="android/provider/MediaStore$Files$FileColumns" since="11">
+		<implements name="android/provider/MediaStore$MediaColumns" />
+		<field name="MEDIA_TYPE" />
+		<field name="MEDIA_TYPE_AUDIO" />
+		<field name="MEDIA_TYPE_IMAGE" />
+		<field name="MEDIA_TYPE_NONE" />
+		<field name="MEDIA_TYPE_PLAYLIST" />
+		<field name="MEDIA_TYPE_VIDEO" />
+		<field name="MIME_TYPE" />
+		<field name="PARENT" />
+		<field name="TITLE" />
+	</class>
+	<class name="android/provider/MediaStore$Images" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/provider/MediaStore$Images$ImageColumns" since="1">
+		<implements name="android/provider/MediaStore$MediaColumns" />
+		<field name="BUCKET_DISPLAY_NAME" />
+		<field name="BUCKET_ID" />
+		<field name="DATE_TAKEN" />
+		<field name="DESCRIPTION" />
+		<field name="IS_PRIVATE" />
+		<field name="LATITUDE" />
+		<field name="LONGITUDE" />
+		<field name="MINI_THUMB_MAGIC" />
+		<field name="ORIENTATION" />
+		<field name="PICASA_ID" />
+	</class>
+	<class name="android/provider/MediaStore$Images$Media" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/MediaStore$Images$ImageColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getBitmap(Landroid/content/ContentResolver;Landroid/net/Uri;)Landroid/graphics/Bitmap;" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="insertImage(Landroid/content/ContentResolver;Landroid/graphics/Bitmap;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="insertImage(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="INTERNAL_CONTENT_URI" />
+	</class>
+	<class name="android/provider/MediaStore$Images$Thumbnails" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" since="5" />
+		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="5" />
+		<method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8" />
+		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="queryMiniThumbnail(Landroid/content/ContentResolver;JI[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="queryMiniThumbnails(Landroid/content/ContentResolver;Landroid/net/Uri;I[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<field name="DATA" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="FULL_SCREEN_KIND" />
+		<field name="HEIGHT" />
+		<field name="IMAGE_ID" />
+		<field name="INTERNAL_CONTENT_URI" />
+		<field name="KIND" />
+		<field name="MICRO_KIND" />
+		<field name="MINI_KIND" />
+		<field name="THUMB_DATA" since="5" />
+		<field name="WIDTH" />
+	</class>
+	<class name="android/provider/MediaStore$MediaColumns" since="1">
+		<implements name="android/provider/BaseColumns" />
+		<field name="DATA" />
+		<field name="DATE_ADDED" />
+		<field name="DATE_MODIFIED" />
+		<field name="DISPLAY_NAME" />
+		<field name="MIME_TYPE" />
+		<field name="SIZE" />
+		<field name="TITLE" />
+	</class>
+	<class name="android/provider/MediaStore$Video" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="query(Landroid/content/ContentResolver;Landroid/net/Uri;[Ljava/lang/String;)Landroid/database/Cursor;" />
+		<field name="DEFAULT_SORT_ORDER" />
+	</class>
+	<class name="android/provider/MediaStore$Video$Media" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/MediaStore$Video$VideoColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONTENT_TYPE" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="INTERNAL_CONTENT_URI" />
+	</class>
+	<class name="android/provider/MediaStore$Video$Thumbnails" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;J)V" />
+		<method name="cancelThumbnailRequest(Landroid/content/ContentResolver;JJ)V" since="8" />
+		<method name="getContentUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="getThumbnail(Landroid/content/ContentResolver;JILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" />
+		<method name="getThumbnail(Landroid/content/ContentResolver;JJILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;" since="8" />
+		<field name="DATA" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="EXTERNAL_CONTENT_URI" />
+		<field name="FULL_SCREEN_KIND" />
+		<field name="HEIGHT" />
+		<field name="INTERNAL_CONTENT_URI" />
+		<field name="KIND" />
+		<field name="MICRO_KIND" />
+		<field name="MINI_KIND" />
+		<field name="VIDEO_ID" />
+		<field name="WIDTH" />
+	</class>
+	<class name="android/provider/MediaStore$Video$VideoColumns" since="1">
+		<implements name="android/provider/MediaStore$MediaColumns" />
+		<field name="ALBUM" />
+		<field name="ARTIST" />
+		<field name="BOOKMARK" since="3" />
+		<field name="BUCKET_DISPLAY_NAME" since="3" />
+		<field name="BUCKET_ID" since="3" />
+		<field name="CATEGORY" />
+		<field name="DATE_TAKEN" />
+		<field name="DESCRIPTION" />
+		<field name="DURATION" />
+		<field name="IS_PRIVATE" />
+		<field name="LANGUAGE" />
+		<field name="LATITUDE" />
+		<field name="LONGITUDE" />
+		<field name="MINI_THUMB_MAGIC" />
+		<field name="RESOLUTION" />
+		<field name="TAGS" />
+	</class>
+	<class name="android/provider/OpenableColumns" since="1">
+		<field name="DISPLAY_NAME" />
+		<field name="SIZE" />
+	</class>
+	<class name="android/provider/SearchRecentSuggestions" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;I)V" />
+		<method name="clearHistory()V" />
+		<method name="saveRecentQuery(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="truncateHistory(Landroid/content/ContentResolver;I)V" />
+		<field name="QUERIES_PROJECTION_1LINE" />
+		<field name="QUERIES_PROJECTION_2LINE" />
+		<field name="QUERIES_PROJECTION_DATE_INDEX" />
+		<field name="QUERIES_PROJECTION_DISPLAY1_INDEX" />
+		<field name="QUERIES_PROJECTION_DISPLAY2_INDEX" />
+		<field name="QUERIES_PROJECTION_QUERY_INDEX" />
+	</class>
+	<class name="android/provider/Settings" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACTION_ACCESSIBILITY_SETTINGS" since="5" />
+		<field name="ACTION_ADD_ACCOUNT" since="8" />
+		<field name="ACTION_AIRPLANE_MODE_SETTINGS" since="3" />
+		<field name="ACTION_APN_SETTINGS" />
+		<field name="ACTION_APPLICATION_DETAILS_SETTINGS" since="9" />
+		<field name="ACTION_APPLICATION_DEVELOPMENT_SETTINGS" since="3" />
+		<field name="ACTION_APPLICATION_SETTINGS" />
+		<field name="ACTION_BLUETOOTH_SETTINGS" />
+		<field name="ACTION_DATA_ROAMING_SETTINGS" since="3" />
+		<field name="ACTION_DATE_SETTINGS" />
+		<field name="ACTION_DEVICE_INFO_SETTINGS" since="8" />
+		<field name="ACTION_DISPLAY_SETTINGS" />
+		<field name="ACTION_INPUT_METHOD_SETTINGS" since="3" />
+		<field name="ACTION_INPUT_METHOD_SUBTYPE_SETTINGS" since="11" />
+		<field name="ACTION_INTERNAL_STORAGE_SETTINGS" since="3" />
+		<field name="ACTION_LOCALE_SETTINGS" />
+		<field name="ACTION_LOCATION_SOURCE_SETTINGS" />
+		<field name="ACTION_MANAGE_ALL_APPLICATIONS_SETTINGS" since="9" />
+		<field name="ACTION_MANAGE_APPLICATIONS_SETTINGS" since="3" />
+		<field name="ACTION_MEMORY_CARD_SETTINGS" since="3" />
+		<field name="ACTION_NETWORK_OPERATOR_SETTINGS" since="3" />
+		<field name="ACTION_NFCSHARING_SETTINGS" since="14" />
+		<field name="ACTION_PRIVACY_SETTINGS" since="5" />
+		<field name="ACTION_QUICK_LAUNCH_SETTINGS" since="3" />
+		<field name="ACTION_SEARCH_SETTINGS" since="8" />
+		<field name="ACTION_SECURITY_SETTINGS" />
+		<field name="ACTION_SETTINGS" />
+		<field name="ACTION_SOUND_SETTINGS" />
+		<field name="ACTION_SYNC_SETTINGS" since="3" />
+		<field name="ACTION_USER_DICTIONARY_SETTINGS" since="3" />
+		<field name="ACTION_WIFI_IP_SETTINGS" since="3" />
+		<field name="ACTION_WIFI_SETTINGS" />
+		<field name="ACTION_WIRELESS_SETTINGS" />
+		<field name="AUTHORITY" />
+		<field name="EXTRA_AUTHORITIES" since="8" />
+		<field name="EXTRA_INPUT_METHOD_ID" since="11" />
+	</class>
+	<class name="android/provider/Settings$NameValueTable" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<method name="getUriFor(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="putString(Landroid/content/ContentResolver;Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)Z" />
+		<field name="NAME" />
+		<field name="VALUE" />
+	</class>
+	<class name="android/provider/Settings$Secure" since="3">
+		<extends name="android/provider/Settings$NameValueTable" />
+		<method name="&lt;init>()V" />
+		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F" />
+		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F" />
+		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I" />
+		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I" />
+		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J" />
+		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J" />
+		<method name="getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getUriFor(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="isLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;)Z" since="8" />
+		<method name="putFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)Z" />
+		<method name="putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z" />
+		<method name="putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z" />
+		<method name="putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="setLocationProviderEnabled(Landroid/content/ContentResolver;Ljava/lang/String;Z)V" since="8" />
+		<field name="ACCESSIBILITY_ENABLED" since="4" />
+		<field name="ACCESSIBILITY_SPEAK_PASSWORD" since="15" />
+		<field name="ADB_ENABLED" />
+		<field name="ALLOWED_GEOLOCATION_ORIGINS" since="8" />
+		<field name="ALLOW_MOCK_LOCATION" />
+		<field name="ANDROID_ID" />
+		<field name="BACKGROUND_DATA" />
+		<field name="BLUETOOTH_ON" />
+		<field name="CONTENT_URI" />
+		<field name="DATA_ROAMING" />
+		<field name="DEFAULT_INPUT_METHOD" />
+		<field name="DEVICE_PROVISIONED" />
+		<field name="ENABLED_ACCESSIBILITY_SERVICES" since="4" />
+		<field name="ENABLED_INPUT_METHODS" />
+		<field name="HTTP_PROXY" />
+		<field name="INPUT_METHOD_SELECTOR_VISIBILITY" since="11" />
+		<field name="INSTALL_NON_MARKET_APPS" />
+		<field name="LOCATION_PROVIDERS_ALLOWED" />
+		<field name="LOCK_PATTERN_ENABLED" since="8" />
+		<field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="8" />
+		<field name="LOCK_PATTERN_VISIBLE" since="8" />
+		<field name="LOGGING_ID" />
+		<field name="NETWORK_PREFERENCE" />
+		<field name="PARENTAL_CONTROL_ENABLED" />
+		<field name="PARENTAL_CONTROL_LAST_UPDATE" />
+		<field name="PARENTAL_CONTROL_REDIRECT_URL" />
+		<field name="SELECTED_INPUT_METHOD_SUBTYPE" since="11" />
+		<field name="SETTINGS_CLASSNAME" />
+		<field name="SYS_PROP_SETTING_VERSION" />
+		<field name="TOUCH_EXPLORATION_ENABLED" since="14" />
+		<field name="TTS_DEFAULT_COUNTRY" since="4" />
+		<field name="TTS_DEFAULT_LANG" since="4" />
+		<field name="TTS_DEFAULT_PITCH" since="4" />
+		<field name="TTS_DEFAULT_RATE" since="4" />
+		<field name="TTS_DEFAULT_SYNTH" since="4" />
+		<field name="TTS_DEFAULT_VARIANT" since="4" />
+		<field name="TTS_ENABLED_PLUGINS" since="8" />
+		<field name="TTS_USE_DEFAULTS" since="4" />
+		<field name="USB_MASS_STORAGE_ENABLED" />
+		<field name="USE_GOOGLE_MAIL" />
+		<field name="WIFI_MAX_DHCP_RETRY_COUNT" />
+		<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" />
+		<field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" />
+		<field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" />
+		<field name="WIFI_NUM_OPEN_NETWORKS_KEPT" />
+		<field name="WIFI_ON" />
+		<field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" />
+		<field name="WIFI_WATCHDOG_AP_COUNT" />
+		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" />
+		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" />
+		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" />
+		<field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" />
+		<field name="WIFI_WATCHDOG_MAX_AP_CHECKS" />
+		<field name="WIFI_WATCHDOG_ON" />
+		<field name="WIFI_WATCHDOG_PING_COUNT" />
+		<field name="WIFI_WATCHDOG_PING_DELAY_MS" />
+		<field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" />
+		<field name="WIFI_WATCHDOG_WATCH_LIST" />
+	</class>
+	<class name="android/provider/Settings$SettingNotFoundException" since="1">
+		<extends name="android/util/AndroidException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/provider/Settings$System" since="1">
+		<extends name="android/provider/Settings$NameValueTable" />
+		<method name="&lt;init>()V" />
+		<method name="getConfiguration(Landroid/content/ContentResolver;Landroid/content/res/Configuration;)V" />
+		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;)F" />
+		<method name="getFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)F" />
+		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;)I" />
+		<method name="getInt(Landroid/content/ContentResolver;Ljava/lang/String;I)I" />
+		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;)J" since="3" />
+		<method name="getLong(Landroid/content/ContentResolver;Ljava/lang/String;J)J" since="3" />
+		<method name="getShowGTalkServiceStatus(Landroid/content/ContentResolver;)Z" />
+		<method name="getString(Landroid/content/ContentResolver;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getUriFor(Ljava/lang/String;)Landroid/net/Uri;" />
+		<method name="putConfiguration(Landroid/content/ContentResolver;Landroid/content/res/Configuration;)Z" />
+		<method name="putFloat(Landroid/content/ContentResolver;Ljava/lang/String;F)Z" />
+		<method name="putInt(Landroid/content/ContentResolver;Ljava/lang/String;I)Z" />
+		<method name="putLong(Landroid/content/ContentResolver;Ljava/lang/String;J)Z" since="3" />
+		<method name="putString(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="setShowGTalkServiceStatus(Landroid/content/ContentResolver;Z)V" />
+		<field name="ACCELEROMETER_ROTATION" since="3" />
+		<field name="ADB_ENABLED" />
+		<field name="AIRPLANE_MODE_ON" />
+		<field name="AIRPLANE_MODE_RADIOS" />
+		<field name="ALARM_ALERT" since="5" />
+		<field name="ALWAYS_FINISH_ACTIVITIES" />
+		<field name="ANDROID_ID" />
+		<field name="APPEND_FOR_LAST_AUDIBLE" />
+		<field name="AUTO_TIME" />
+		<field name="AUTO_TIME_ZONE" since="11" />
+		<field name="BLUETOOTH_DISCOVERABILITY" />
+		<field name="BLUETOOTH_DISCOVERABILITY_TIMEOUT" />
+		<field name="BLUETOOTH_ON" />
+		<field name="CONTENT_URI" />
+		<field name="DATA_ROAMING" />
+		<field name="DATE_FORMAT" />
+		<field name="DEBUG_APP" />
+		<field name="DEFAULT_ALARM_ALERT_URI" since="5" />
+		<field name="DEFAULT_NOTIFICATION_URI" />
+		<field name="DEFAULT_RINGTONE_URI" />
+		<field name="DEVICE_PROVISIONED" />
+		<field name="DIM_SCREEN" />
+		<field name="DTMF_TONE_WHEN_DIALING" />
+		<field name="END_BUTTON_BEHAVIOR" />
+		<field name="FONT_SCALE" />
+		<field name="HAPTIC_FEEDBACK_ENABLED" since="3" />
+		<field name="HTTP_PROXY" />
+		<field name="INSTALL_NON_MARKET_APPS" />
+		<field name="LOCATION_PROVIDERS_ALLOWED" />
+		<field name="LOCK_PATTERN_ENABLED" />
+		<field name="LOCK_PATTERN_TACTILE_FEEDBACK_ENABLED" since="3" />
+		<field name="LOCK_PATTERN_VISIBLE" />
+		<field name="LOGGING_ID" />
+		<field name="MODE_RINGER" />
+		<field name="MODE_RINGER_STREAMS_AFFECTED" />
+		<field name="MUTE_STREAMS_AFFECTED" />
+		<field name="NETWORK_PREFERENCE" />
+		<field name="NEXT_ALARM_FORMATTED" />
+		<field name="NOTIFICATION_SOUND" />
+		<field name="PARENTAL_CONTROL_ENABLED" />
+		<field name="PARENTAL_CONTROL_LAST_UPDATE" />
+		<field name="PARENTAL_CONTROL_REDIRECT_URL" />
+		<field name="RADIO_BLUETOOTH" />
+		<field name="RADIO_CELL" />
+		<field name="RADIO_NFC" since="14" />
+		<field name="RADIO_WIFI" />
+		<field name="RINGTONE" />
+		<field name="SCREEN_BRIGHTNESS" />
+		<field name="SCREEN_BRIGHTNESS_MODE" since="8" />
+		<field name="SCREEN_BRIGHTNESS_MODE_AUTOMATIC" since="8" />
+		<field name="SCREEN_BRIGHTNESS_MODE_MANUAL" since="8" />
+		<field name="SCREEN_OFF_TIMEOUT" />
+		<field name="SETTINGS_CLASSNAME" />
+		<field name="SETUP_WIZARD_HAS_RUN" />
+		<field name="SHOW_GTALK_SERVICE_STATUS" />
+		<field name="SHOW_PROCESSES" />
+		<field name="SHOW_WEB_SUGGESTIONS" since="4" />
+		<field name="SOUND_EFFECTS_ENABLED" />
+		<field name="STAY_ON_WHILE_PLUGGED_IN" />
+		<field name="SYS_PROP_SETTING_VERSION" />
+		<field name="TEXT_AUTO_CAPS" />
+		<field name="TEXT_AUTO_PUNCTUATE" />
+		<field name="TEXT_AUTO_REPLACE" />
+		<field name="TEXT_SHOW_PASSWORD" />
+		<field name="TIME_12_24" />
+		<field name="TRANSITION_ANIMATION_SCALE" />
+		<field name="USB_MASS_STORAGE_ENABLED" />
+		<field name="USER_ROTATION" since="11" />
+		<field name="USE_GOOGLE_MAIL" />
+		<field name="VIBRATE_ON" />
+		<field name="VOLUME_ALARM" />
+		<field name="VOLUME_BLUETOOTH_SCO" since="8" />
+		<field name="VOLUME_MUSIC" />
+		<field name="VOLUME_NOTIFICATION" since="3" />
+		<field name="VOLUME_RING" />
+		<field name="VOLUME_SETTINGS" />
+		<field name="VOLUME_SYSTEM" />
+		<field name="VOLUME_VOICE" />
+		<field name="WAIT_FOR_DEBUGGER" />
+		<field name="WALLPAPER_ACTIVITY" />
+		<field name="WIFI_MAX_DHCP_RETRY_COUNT" since="3" />
+		<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS" since="3" />
+		<field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON" />
+		<field name="WIFI_NETWORKS_AVAILABLE_REPEAT_DELAY" />
+		<field name="WIFI_NUM_OPEN_NETWORKS_KEPT" />
+		<field name="WIFI_ON" />
+		<field name="WIFI_SLEEP_POLICY" since="3" />
+		<field name="WIFI_SLEEP_POLICY_DEFAULT" since="3" />
+		<field name="WIFI_SLEEP_POLICY_NEVER" since="3" />
+		<field name="WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED" since="3" />
+		<field name="WIFI_STATIC_DNS1" />
+		<field name="WIFI_STATIC_DNS2" />
+		<field name="WIFI_STATIC_GATEWAY" />
+		<field name="WIFI_STATIC_IP" />
+		<field name="WIFI_STATIC_NETMASK" />
+		<field name="WIFI_USE_STATIC_IP" />
+		<field name="WIFI_WATCHDOG_ACCEPTABLE_PACKET_LOSS_PERCENTAGE" />
+		<field name="WIFI_WATCHDOG_AP_COUNT" />
+		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_DELAY_MS" />
+		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_ENABLED" />
+		<field name="WIFI_WATCHDOG_BACKGROUND_CHECK_TIMEOUT_MS" />
+		<field name="WIFI_WATCHDOG_INITIAL_IGNORED_PING_COUNT" />
+		<field name="WIFI_WATCHDOG_MAX_AP_CHECKS" />
+		<field name="WIFI_WATCHDOG_ON" />
+		<field name="WIFI_WATCHDOG_PING_COUNT" />
+		<field name="WIFI_WATCHDOG_PING_DELAY_MS" />
+		<field name="WIFI_WATCHDOG_PING_TIMEOUT_MS" />
+		<field name="WINDOW_ANIMATION_SCALE" />
+	</class>
+	<class name="android/provider/SyncStateContract" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/provider/SyncStateContract$Columns" since="5">
+		<implements name="android/provider/BaseColumns" />
+		<field name="ACCOUNT_NAME" />
+		<field name="ACCOUNT_TYPE" />
+		<field name="DATA" />
+	</class>
+	<class name="android/provider/SyncStateContract$Constants" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/SyncStateContract$Columns" />
+		<method name="&lt;init>()V" />
+		<field name="CONTENT_DIRECTORY" />
+	</class>
+	<class name="android/provider/SyncStateContract$Helpers" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="get(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;)[B" />
+		<method name="getWithUri(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;)Landroid/util/Pair;" />
+		<method name="insert(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;[B)Landroid/net/Uri;" />
+		<method name="newSetOperation(Landroid/net/Uri;Landroid/accounts/Account;[B)Landroid/content/ContentProviderOperation;" />
+		<method name="newUpdateOperation(Landroid/net/Uri;[B)Landroid/content/ContentProviderOperation;" />
+		<method name="set(Landroid/content/ContentProviderClient;Landroid/net/Uri;Landroid/accounts/Account;[B)V" />
+		<method name="update(Landroid/content/ContentProviderClient;Landroid/net/Uri;[B)V" />
+	</class>
+	<class name="android/provider/UserDictionary" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="AUTHORITY" />
+		<field name="CONTENT_URI" />
+	</class>
+	<class name="android/provider/UserDictionary$Words" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/provider/BaseColumns" />
+		<method name="&lt;init>()V" />
+		<method name="addWord(Landroid/content/Context;Ljava/lang/String;II)V" />
+		<field name="APP_ID" />
+		<field name="CONTENT_ITEM_TYPE" />
+		<field name="CONTENT_TYPE" />
+		<field name="CONTENT_URI" />
+		<field name="DEFAULT_SORT_ORDER" />
+		<field name="FREQUENCY" />
+		<field name="LOCALE" />
+		<field name="LOCALE_TYPE_ALL" />
+		<field name="LOCALE_TYPE_CURRENT" />
+		<field name="WORD" />
+		<field name="_ID" />
+	</class>
+	<class name="android/provider/VoicemailContract" since="14">
+		<field name="ACTION_FETCH_VOICEMAIL" />
+		<field name="ACTION_NEW_VOICEMAIL" />
+		<field name="AUTHORITY" />
+		<field name="EXTRA_SELF_CHANGE" />
+		<field name="PARAM_KEY_SOURCE_PACKAGE" />
+	</class>
+	<class name="android/provider/VoicemailContract$Status" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<method name="buildSourceUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONFIGURATION_STATE" />
+		<field name="CONFIGURATION_STATE_CAN_BE_CONFIGURED" />
+		<field name="CONFIGURATION_STATE_NOT_CONFIGURED" />
+		<field name="CONFIGURATION_STATE_OK" />
+		<field name="CONTENT_URI" />
+		<field name="DATA_CHANNEL_STATE" />
+		<field name="DATA_CHANNEL_STATE_NO_CONNECTION" />
+		<field name="DATA_CHANNEL_STATE_OK" />
+		<field name="DIR_TYPE" />
+		<field name="ITEM_TYPE" />
+		<field name="NOTIFICATION_CHANNEL_STATE" />
+		<field name="NOTIFICATION_CHANNEL_STATE_MESSAGE_WAITING" />
+		<field name="NOTIFICATION_CHANNEL_STATE_NO_CONNECTION" />
+		<field name="NOTIFICATION_CHANNEL_STATE_OK" />
+		<field name="SETTINGS_URI" />
+		<field name="SOURCE_PACKAGE" />
+		<field name="VOICEMAIL_ACCESS_URI" />
+	</class>
+	<class name="android/provider/VoicemailContract$Voicemails" since="14">
+		<implements name="android/provider/BaseColumns" />
+		<implements name="android/provider/OpenableColumns" />
+		<method name="buildSourceUri(Ljava/lang/String;)Landroid/net/Uri;" />
+		<field name="CONTENT_URI" />
+		<field name="DATE" />
+		<field name="DIR_TYPE" />
+		<field name="DURATION" />
+		<field name="HAS_CONTENT" />
+		<field name="IS_READ" />
+		<field name="ITEM_TYPE" />
+		<field name="MIME_TYPE" />
+		<field name="NUMBER" />
+		<field name="SOURCE_DATA" />
+		<field name="SOURCE_PACKAGE" />
+	</class>
+	<class name="android/renderscript/Allocation" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="copy1DRangeFrom(IILandroid/renderscript/Allocation;I)V" since="14" />
+		<method name="copy1DRangeFrom(II[B)V" />
+		<method name="copy1DRangeFrom(II[F)V" />
+		<method name="copy1DRangeFrom(II[I)V" />
+		<method name="copy1DRangeFrom(II[S)V" />
+		<method name="copy1DRangeFromUnchecked(II[B)V" />
+		<method name="copy1DRangeFromUnchecked(II[F)V" />
+		<method name="copy1DRangeFromUnchecked(II[I)V" />
+		<method name="copy1DRangeFromUnchecked(II[S)V" />
+		<method name="copy2DRangeFrom(IIIILandroid/renderscript/Allocation;II)V" since="14" />
+		<method name="copy2DRangeFrom(IIII[B)V" />
+		<method name="copy2DRangeFrom(IIII[F)V" />
+		<method name="copy2DRangeFrom(IIII[I)V" />
+		<method name="copy2DRangeFrom(IIII[S)V" />
+		<method name="copy2DRangeFrom(IILandroid/graphics/Bitmap;)V" />
+		<method name="copyFrom(Landroid/graphics/Bitmap;)V" />
+		<method name="copyFrom([B)V" />
+		<method name="copyFrom([F)V" />
+		<method name="copyFrom([I)V" />
+		<method name="copyFrom([Landroid/renderscript/BaseObj;)V" />
+		<method name="copyFrom([S)V" />
+		<method name="copyFromUnchecked([B)V" />
+		<method name="copyFromUnchecked([F)V" />
+		<method name="copyFromUnchecked([I)V" />
+		<method name="copyFromUnchecked([S)V" />
+		<method name="copyTo(Landroid/graphics/Bitmap;)V" />
+		<method name="copyTo([B)V" />
+		<method name="copyTo([F)V" />
+		<method name="copyTo([I)V" />
+		<method name="copyTo([S)V" />
+		<method name="createCubemapFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;" />
+		<method name="createCubemapFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
+		<method name="createCubemapFromCubeFaces(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;" />
+		<method name="createCubemapFromCubeFaces(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
+		<method name="createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;)Landroid/renderscript/Allocation;" />
+		<method name="createFromBitmap(Landroid/renderscript/RenderScript;Landroid/graphics/Bitmap;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
+		<method name="createFromBitmapResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)Landroid/renderscript/Allocation;" />
+		<method name="createFromBitmapResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;ILandroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
+		<method name="createFromString(Landroid/renderscript/RenderScript;Ljava/lang/String;I)Landroid/renderscript/Allocation;" />
+		<method name="createSized(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;I)Landroid/renderscript/Allocation;" />
+		<method name="createSized(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;II)Landroid/renderscript/Allocation;" />
+		<method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;)Landroid/renderscript/Allocation;" />
+		<method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;I)Landroid/renderscript/Allocation;" />
+		<method name="createTyped(Landroid/renderscript/RenderScript;Landroid/renderscript/Type;Landroid/renderscript/Allocation$MipmapControl;I)Landroid/renderscript/Allocation;" />
+		<method name="generateMipmaps()V" />
+		<method name="getType()Landroid/renderscript/Type;" />
+		<method name="resize(I)V" />
+		<method name="setFromFieldPacker(IILandroid/renderscript/FieldPacker;)V" />
+		<method name="setFromFieldPacker(ILandroid/renderscript/FieldPacker;)V" />
+		<method name="syncAll(I)V" />
+		<field name="USAGE_GRAPHICS_CONSTANTS" />
+		<field name="USAGE_GRAPHICS_RENDER_TARGET" since="14" />
+		<field name="USAGE_GRAPHICS_TEXTURE" />
+		<field name="USAGE_GRAPHICS_VERTEX" />
+		<field name="USAGE_SCRIPT" />
+	</class>
+	<class name="android/renderscript/Allocation$MipmapControl" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Allocation$MipmapControl;" />
+		<method name="values()[Landroid/renderscript/Allocation$MipmapControl;" />
+		<field name="MIPMAP_FULL" />
+		<field name="MIPMAP_NONE" />
+		<field name="MIPMAP_ON_SYNC_TO_TEXTURE" />
+	</class>
+	<class name="android/renderscript/AllocationAdapter" since="11">
+		<extends name="android/renderscript/Allocation" />
+		<method name="create1D(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/AllocationAdapter;" since="14" />
+		<method name="create2D(Landroid/renderscript/RenderScript;Landroid/renderscript/Allocation;)Landroid/renderscript/AllocationAdapter;" />
+		<method name="readData([F)V" />
+		<method name="readData([I)V" />
+		<method name="setFace(Landroid/renderscript/Type$CubemapFace;)V" />
+		<method name="setLOD(I)V" />
+		<method name="setY(I)V" />
+		<method name="setZ(I)V" />
+		<method name="subData(ILandroid/renderscript/FieldPacker;)V" />
+		<method name="subData1D(II[B)V" />
+		<method name="subData1D(II[F)V" />
+		<method name="subData1D(II[I)V" />
+		<method name="subData1D(II[S)V" />
+		<method name="subData2D(IIII[F)V" />
+		<method name="subData2D(IIII[I)V" />
+		<method name="subElementData(IILandroid/renderscript/FieldPacker;)V" />
+	</class>
+	<class name="android/renderscript/BaseObj" since="11">
+		<extends name="java/lang/Object" />
+		<method name="destroy()V" />
+		<method name="getName()Ljava/lang/String;" since="14" />
+		<method name="setName(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/renderscript/Byte2" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(BB)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/renderscript/Byte3" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(BBB)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Byte4" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(BBBB)V" since="14" />
+		<field name="w" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Double2" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(DD)V" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/renderscript/Double3" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(DDD)V" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Double4" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(DDDD)V" />
+		<field name="w" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Element" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="ALLOCATION(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="A_8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="BOOLEAN(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="ELEMENT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="F32(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="F32_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="F32_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="F32_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="F64(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="F64_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="F64_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="F64_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I16(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="I16_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I16_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I16_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I32(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="I32_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I32_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I32_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I64(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="I64_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I64_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I64_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="I8_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I8_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="I8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="MATRIX4X4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="MATRIX_2X2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="MATRIX_3X3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="MATRIX_4X4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="MESH(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="PROGRAM_FRAGMENT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="PROGRAM_RASTER(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="PROGRAM_STORE(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="PROGRAM_VERTEX(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="RGBA_4444(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="RGBA_5551(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="RGBA_8888(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="RGB_565(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="RGB_888(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="SAMPLER(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="SCRIPT(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="TYPE(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="U16(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="U16_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U16_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U16_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U32(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="U32_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U32_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U32_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U64(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="U64_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U64_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U64_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U8(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="U8_2(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U8_3(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" since="14" />
+		<method name="U8_4(Landroid/renderscript/RenderScript;)Landroid/renderscript/Element;" />
+		<method name="createPixel(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;Landroid/renderscript/Element$DataKind;)Landroid/renderscript/Element;" />
+		<method name="createVector(Landroid/renderscript/RenderScript;Landroid/renderscript/Element$DataType;I)Landroid/renderscript/Element;" />
+		<method name="isCompatible(Landroid/renderscript/Element;)Z" since="14" />
+		<method name="isComplex()Z" />
+	</class>
+	<class name="android/renderscript/Element$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="add(Landroid/renderscript/Element;Ljava/lang/String;)Landroid/renderscript/Element$Builder;" />
+		<method name="add(Landroid/renderscript/Element;Ljava/lang/String;I)Landroid/renderscript/Element$Builder;" />
+		<method name="create()Landroid/renderscript/Element;" />
+	</class>
+	<class name="android/renderscript/Element$DataKind" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Element$DataKind;" />
+		<method name="values()[Landroid/renderscript/Element$DataKind;" />
+		<field name="PIXEL_A" />
+		<field name="PIXEL_DEPTH" since="14" />
+		<field name="PIXEL_L" />
+		<field name="PIXEL_LA" />
+		<field name="PIXEL_RGB" />
+		<field name="PIXEL_RGBA" />
+		<field name="USER" />
+	</class>
+	<class name="android/renderscript/Element$DataType" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Element$DataType;" />
+		<method name="values()[Landroid/renderscript/Element$DataType;" />
+		<field name="BOOLEAN" />
+		<field name="FLOAT_32" />
+		<field name="FLOAT_64" />
+		<field name="MATRIX_2X2" />
+		<field name="MATRIX_3X3" />
+		<field name="MATRIX_4X4" />
+		<field name="RS_ALLOCATION" />
+		<field name="RS_ELEMENT" />
+		<field name="RS_MESH" />
+		<field name="RS_PROGRAM_FRAGMENT" />
+		<field name="RS_PROGRAM_RASTER" />
+		<field name="RS_PROGRAM_STORE" />
+		<field name="RS_PROGRAM_VERTEX" />
+		<field name="RS_SAMPLER" />
+		<field name="RS_SCRIPT" />
+		<field name="RS_TYPE" />
+		<field name="SIGNED_16" />
+		<field name="SIGNED_32" />
+		<field name="SIGNED_64" />
+		<field name="SIGNED_8" />
+		<field name="UNSIGNED_16" />
+		<field name="UNSIGNED_32" />
+		<field name="UNSIGNED_4_4_4_4" />
+		<field name="UNSIGNED_5_5_5_1" />
+		<field name="UNSIGNED_5_6_5" />
+		<field name="UNSIGNED_64" />
+		<field name="UNSIGNED_8" />
+	</class>
+	<class name="android/renderscript/FieldPacker" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="addBoolean(Z)V" />
+		<method name="addF32(F)V" />
+		<method name="addF32(Landroid/renderscript/Float2;)V" />
+		<method name="addF32(Landroid/renderscript/Float3;)V" />
+		<method name="addF32(Landroid/renderscript/Float4;)V" />
+		<method name="addF64(D)V" />
+		<method name="addF64(Landroid/renderscript/Double2;)V" since="14" />
+		<method name="addF64(Landroid/renderscript/Double3;)V" since="14" />
+		<method name="addF64(Landroid/renderscript/Double4;)V" since="14" />
+		<method name="addI16(Landroid/renderscript/Short2;)V" />
+		<method name="addI16(Landroid/renderscript/Short3;)V" />
+		<method name="addI16(Landroid/renderscript/Short4;)V" />
+		<method name="addI16(S)V" />
+		<method name="addI32(I)V" />
+		<method name="addI32(Landroid/renderscript/Int2;)V" />
+		<method name="addI32(Landroid/renderscript/Int3;)V" />
+		<method name="addI32(Landroid/renderscript/Int4;)V" />
+		<method name="addI64(J)V" />
+		<method name="addI64(Landroid/renderscript/Long2;)V" since="14" />
+		<method name="addI64(Landroid/renderscript/Long3;)V" since="14" />
+		<method name="addI64(Landroid/renderscript/Long4;)V" since="14" />
+		<method name="addI8(B)V" />
+		<method name="addI8(Landroid/renderscript/Byte2;)V" />
+		<method name="addI8(Landroid/renderscript/Byte3;)V" />
+		<method name="addI8(Landroid/renderscript/Byte4;)V" />
+		<method name="addMatrix(Landroid/renderscript/Matrix2f;)V" />
+		<method name="addMatrix(Landroid/renderscript/Matrix3f;)V" />
+		<method name="addMatrix(Landroid/renderscript/Matrix4f;)V" />
+		<method name="addObj(Landroid/renderscript/BaseObj;)V" />
+		<method name="addU16(I)V" />
+		<method name="addU16(Landroid/renderscript/Int2;)V" />
+		<method name="addU16(Landroid/renderscript/Int3;)V" />
+		<method name="addU16(Landroid/renderscript/Int4;)V" />
+		<method name="addU32(J)V" />
+		<method name="addU32(Landroid/renderscript/Long2;)V" />
+		<method name="addU32(Landroid/renderscript/Long3;)V" />
+		<method name="addU32(Landroid/renderscript/Long4;)V" />
+		<method name="addU64(J)V" />
+		<method name="addU64(Landroid/renderscript/Long2;)V" since="14" />
+		<method name="addU64(Landroid/renderscript/Long3;)V" since="14" />
+		<method name="addU64(Landroid/renderscript/Long4;)V" since="14" />
+		<method name="addU8(Landroid/renderscript/Short2;)V" />
+		<method name="addU8(Landroid/renderscript/Short3;)V" />
+		<method name="addU8(Landroid/renderscript/Short4;)V" />
+		<method name="addU8(S)V" />
+		<method name="align(I)V" />
+		<method name="getData()[B" />
+		<method name="reset()V" />
+		<method name="reset(I)V" />
+		<method name="skip(I)V" />
+	</class>
+	<class name="android/renderscript/FileA3D" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/AssetManager;Ljava/lang/String;)Landroid/renderscript/FileA3D;" />
+		<method name="createFromFile(Landroid/renderscript/RenderScript;Ljava/io/File;)Landroid/renderscript/FileA3D;" />
+		<method name="createFromFile(Landroid/renderscript/RenderScript;Ljava/lang/String;)Landroid/renderscript/FileA3D;" />
+		<method name="createFromResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)Landroid/renderscript/FileA3D;" />
+		<method name="getIndexEntry(I)Landroid/renderscript/FileA3D$IndexEntry;" />
+		<method name="getIndexEntryCount()I" />
+	</class>
+	<class name="android/renderscript/FileA3D$EntryType" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/FileA3D$EntryType;" />
+		<method name="values()[Landroid/renderscript/FileA3D$EntryType;" />
+		<field name="MESH" />
+		<field name="UNKNOWN" />
+	</class>
+	<class name="android/renderscript/FileA3D$IndexEntry" since="11">
+		<extends name="java/lang/Object" />
+		<method name="getEntryType()Landroid/renderscript/FileA3D$EntryType;" />
+		<method name="getMesh()Landroid/renderscript/Mesh;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getObject()Landroid/renderscript/BaseObj;" />
+	</class>
+	<class name="android/renderscript/Float2" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(FF)V" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/renderscript/Float3" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(FFF)V" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Float4" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(FFFF)V" />
+		<field name="w" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Font" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="create(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;Landroid/renderscript/Font$Style;F)Landroid/renderscript/Font;" />
+		<method name="createFromAsset(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;" />
+		<method name="createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/io/File;F)Landroid/renderscript/Font;" />
+		<method name="createFromFile(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;Ljava/lang/String;F)Landroid/renderscript/Font;" />
+		<method name="createFromResource(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;IF)Landroid/renderscript/Font;" />
+	</class>
+	<class name="android/renderscript/Font$Style" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Font$Style;" />
+		<method name="values()[Landroid/renderscript/Font$Style;" />
+		<field name="BOLD" />
+		<field name="BOLD_ITALIC" />
+		<field name="ITALIC" />
+		<field name="NORMAL" />
+	</class>
+	<class name="android/renderscript/Int2" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(II)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/renderscript/Int3" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(III)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Int4" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(IIII)V" since="14" />
+		<field name="w" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Long2" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(JJ)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/renderscript/Long3" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(JJJ)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Long4" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(JJJJ)V" since="14" />
+		<field name="w" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Matrix2f" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([F)V" />
+		<method name="get(II)F" />
+		<method name="getArray()[F" />
+		<method name="load(Landroid/renderscript/Matrix2f;)V" />
+		<method name="loadIdentity()V" />
+		<method name="loadMultiply(Landroid/renderscript/Matrix2f;Landroid/renderscript/Matrix2f;)V" />
+		<method name="loadRotate(F)V" />
+		<method name="loadScale(FF)V" />
+		<method name="multiply(Landroid/renderscript/Matrix2f;)V" />
+		<method name="rotate(F)V" />
+		<method name="scale(FF)V" />
+		<method name="set(IIF)V" />
+		<method name="transpose()V" />
+	</class>
+	<class name="android/renderscript/Matrix3f" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([F)V" />
+		<method name="get(II)F" />
+		<method name="getArray()[F" />
+		<method name="load(Landroid/renderscript/Matrix3f;)V" />
+		<method name="loadIdentity()V" />
+		<method name="loadMultiply(Landroid/renderscript/Matrix3f;Landroid/renderscript/Matrix3f;)V" />
+		<method name="loadRotate(F)V" />
+		<method name="loadRotate(FFFF)V" />
+		<method name="loadScale(FF)V" />
+		<method name="loadScale(FFF)V" />
+		<method name="loadTranslate(FF)V" />
+		<method name="multiply(Landroid/renderscript/Matrix3f;)V" />
+		<method name="rotate(F)V" />
+		<method name="rotate(FFFF)V" />
+		<method name="scale(FF)V" />
+		<method name="scale(FFF)V" />
+		<method name="set(IIF)V" />
+		<method name="translate(FF)V" />
+		<method name="transpose()V" />
+	</class>
+	<class name="android/renderscript/Matrix4f" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([F)V" />
+		<method name="get(II)F" />
+		<method name="getArray()[F" />
+		<method name="inverse()Z" />
+		<method name="inverseTranspose()Z" />
+		<method name="load(Landroid/renderscript/Matrix4f;)V" />
+		<method name="loadFrustum(FFFFFF)V" />
+		<method name="loadIdentity()V" />
+		<method name="loadMultiply(Landroid/renderscript/Matrix4f;Landroid/renderscript/Matrix4f;)V" />
+		<method name="loadOrtho(FFFFFF)V" />
+		<method name="loadOrthoWindow(II)V" />
+		<method name="loadPerspective(FFFF)V" />
+		<method name="loadProjectionNormalized(II)V" />
+		<method name="loadRotate(FFFF)V" />
+		<method name="loadScale(FFF)V" />
+		<method name="loadTranslate(FFF)V" />
+		<method name="multiply(Landroid/renderscript/Matrix4f;)V" />
+		<method name="rotate(FFFF)V" />
+		<method name="scale(FFF)V" />
+		<method name="set(IIF)V" />
+		<method name="translate(FFF)V" />
+		<method name="transpose()V" />
+	</class>
+	<class name="android/renderscript/Mesh" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="getIndexSetAllocation(I)Landroid/renderscript/Allocation;" />
+		<method name="getPrimitive(I)Landroid/renderscript/Mesh$Primitive;" />
+		<method name="getPrimitiveCount()I" />
+		<method name="getVertexAllocation(I)Landroid/renderscript/Allocation;" />
+		<method name="getVertexAllocationCount()I" />
+	</class>
+	<class name="android/renderscript/Mesh$AllocationBuilder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="addIndexSetAllocation(Landroid/renderscript/Allocation;Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$AllocationBuilder;" />
+		<method name="addIndexSetType(Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$AllocationBuilder;" />
+		<method name="addVertexAllocation(Landroid/renderscript/Allocation;)Landroid/renderscript/Mesh$AllocationBuilder;" />
+		<method name="create()Landroid/renderscript/Mesh;" />
+		<method name="getCurrentIndexSetIndex()I" />
+		<method name="getCurrentVertexTypeIndex()I" />
+	</class>
+	<class name="android/renderscript/Mesh$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;I)V" />
+		<method name="addIndexSetType(Landroid/renderscript/Element;ILandroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;" />
+		<method name="addIndexSetType(Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;" />
+		<method name="addIndexSetType(Landroid/renderscript/Type;Landroid/renderscript/Mesh$Primitive;)Landroid/renderscript/Mesh$Builder;" />
+		<method name="addVertexType(Landroid/renderscript/Element;I)Landroid/renderscript/Mesh$Builder;" />
+		<method name="addVertexType(Landroid/renderscript/Type;)Landroid/renderscript/Mesh$Builder;" />
+		<method name="create()Landroid/renderscript/Mesh;" />
+		<method name="getCurrentIndexSetIndex()I" />
+		<method name="getCurrentVertexTypeIndex()I" />
+	</class>
+	<class name="android/renderscript/Mesh$Primitive" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Mesh$Primitive;" />
+		<method name="values()[Landroid/renderscript/Mesh$Primitive;" />
+		<field name="LINE" />
+		<field name="LINE_STRIP" />
+		<field name="POINT" />
+		<field name="TRIANGLE" />
+		<field name="TRIANGLE_FAN" />
+		<field name="TRIANGLE_STRIP" />
+	</class>
+	<class name="android/renderscript/Mesh$TriangleMeshBuilder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;II)V" />
+		<method name="addTriangle(III)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
+		<method name="addVertex(FF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
+		<method name="addVertex(FFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
+		<method name="create(Z)Landroid/renderscript/Mesh;" />
+		<method name="setColor(FFFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
+		<method name="setNormal(FFF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
+		<method name="setTexture(FF)Landroid/renderscript/Mesh$TriangleMeshBuilder;" />
+		<field name="COLOR" />
+		<field name="NORMAL" />
+		<field name="TEXTURE_0" />
+	</class>
+	<class name="android/renderscript/Program" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="bindConstants(Landroid/renderscript/Allocation;I)V" />
+		<method name="bindSampler(Landroid/renderscript/Sampler;I)V" />
+		<method name="bindTexture(Landroid/renderscript/Allocation;I)V" />
+	</class>
+	<class name="android/renderscript/Program$BaseProgramBuilder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="addConstant(Landroid/renderscript/Type;)Landroid/renderscript/Program$BaseProgramBuilder;" />
+		<method name="addTexture(Landroid/renderscript/Program$TextureType;)Landroid/renderscript/Program$BaseProgramBuilder;" />
+		<method name="getCurrentConstantIndex()I" />
+		<method name="getCurrentTextureIndex()I" />
+		<method name="initProgram(Landroid/renderscript/Program;)V" />
+		<method name="setShader(Landroid/content/res/Resources;I)Landroid/renderscript/Program$BaseProgramBuilder;" />
+		<method name="setShader(Ljava/lang/String;)Landroid/renderscript/Program$BaseProgramBuilder;" />
+	</class>
+	<class name="android/renderscript/Program$TextureType" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Program$TextureType;" />
+		<method name="values()[Landroid/renderscript/Program$TextureType;" />
+		<field name="TEXTURE_2D" />
+		<field name="TEXTURE_CUBE" />
+	</class>
+	<class name="android/renderscript/ProgramFragment" since="11">
+		<extends name="android/renderscript/Program" />
+	</class>
+	<class name="android/renderscript/ProgramFragment$Builder" since="11">
+		<extends name="android/renderscript/Program$BaseProgramBuilder" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="create()Landroid/renderscript/ProgramFragment;" />
+	</class>
+	<class name="android/renderscript/ProgramFragmentFixedFunction" since="11">
+		<extends name="android/renderscript/ProgramFragment" />
+	</class>
+	<class name="android/renderscript/ProgramFragmentFixedFunction$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="create()Landroid/renderscript/ProgramFragmentFixedFunction;" />
+		<method name="setPointSpriteTexCoordinateReplacement(Z)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;" />
+		<method name="setTexture(Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;I)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;" />
+		<method name="setVaryingColor(Z)Landroid/renderscript/ProgramFragmentFixedFunction$Builder;" />
+		<field name="MAX_TEXTURE" />
+	</class>
+	<class name="android/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;" />
+		<method name="values()[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$EnvMode;" />
+		<field name="DECAL" />
+		<field name="MODULATE" />
+		<field name="REPLACE" />
+	</class>
+	<class name="android/renderscript/ProgramFragmentFixedFunction$Builder$Format" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;" />
+		<method name="values()[Landroid/renderscript/ProgramFragmentFixedFunction$Builder$Format;" />
+		<field name="ALPHA" />
+		<field name="LUMINANCE_ALPHA" />
+		<field name="RGB" />
+		<field name="RGBA" />
+	</class>
+	<class name="android/renderscript/ProgramRaster" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="CULL_BACK(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" />
+		<method name="CULL_FRONT(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" />
+		<method name="CULL_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramRaster;" />
+	</class>
+	<class name="android/renderscript/ProgramRaster$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="create()Landroid/renderscript/ProgramRaster;" />
+		<method name="setCullMode(Landroid/renderscript/ProgramRaster$CullMode;)Landroid/renderscript/ProgramRaster$Builder;" />
+		<method name="setPointSpriteEnabled(Z)Landroid/renderscript/ProgramRaster$Builder;" />
+	</class>
+	<class name="android/renderscript/ProgramRaster$CullMode" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramRaster$CullMode;" />
+		<method name="values()[Landroid/renderscript/ProgramRaster$CullMode;" />
+		<field name="BACK" />
+		<field name="FRONT" />
+		<field name="NONE" />
+	</class>
+	<class name="android/renderscript/ProgramStore" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="BLEND_ALPHA_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
+		<method name="BLEND_ALPHA_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
+		<method name="BLEND_NONE_DEPTH_NONE(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
+		<method name="BLEND_NONE_DEPTH_TEST(Landroid/renderscript/RenderScript;)Landroid/renderscript/ProgramStore;" />
+	</class>
+	<class name="android/renderscript/ProgramStore$BlendDstFunc" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$BlendDstFunc;" />
+		<method name="values()[Landroid/renderscript/ProgramStore$BlendDstFunc;" />
+		<field name="DST_ALPHA" />
+		<field name="ONE" />
+		<field name="ONE_MINUS_DST_ALPHA" />
+		<field name="ONE_MINUS_SRC_ALPHA" />
+		<field name="ONE_MINUS_SRC_COLOR" />
+		<field name="SRC_ALPHA" />
+		<field name="SRC_COLOR" />
+		<field name="ZERO" />
+	</class>
+	<class name="android/renderscript/ProgramStore$BlendSrcFunc" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$BlendSrcFunc;" />
+		<method name="values()[Landroid/renderscript/ProgramStore$BlendSrcFunc;" />
+		<field name="DST_ALPHA" />
+		<field name="DST_COLOR" />
+		<field name="ONE" />
+		<field name="ONE_MINUS_DST_ALPHA" />
+		<field name="ONE_MINUS_DST_COLOR" />
+		<field name="ONE_MINUS_SRC_ALPHA" />
+		<field name="SRC_ALPHA" />
+		<field name="SRC_ALPHA_SATURATE" />
+		<field name="ZERO" />
+	</class>
+	<class name="android/renderscript/ProgramStore$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="create()Landroid/renderscript/ProgramStore;" />
+		<method name="setBlendFunc(Landroid/renderscript/ProgramStore$BlendSrcFunc;Landroid/renderscript/ProgramStore$BlendDstFunc;)Landroid/renderscript/ProgramStore$Builder;" />
+		<method name="setColorMaskEnabled(ZZZZ)Landroid/renderscript/ProgramStore$Builder;" />
+		<method name="setDepthFunc(Landroid/renderscript/ProgramStore$DepthFunc;)Landroid/renderscript/ProgramStore$Builder;" />
+		<method name="setDepthMaskEnabled(Z)Landroid/renderscript/ProgramStore$Builder;" />
+		<method name="setDitherEnabled(Z)Landroid/renderscript/ProgramStore$Builder;" />
+	</class>
+	<class name="android/renderscript/ProgramStore$DepthFunc" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/ProgramStore$DepthFunc;" />
+		<method name="values()[Landroid/renderscript/ProgramStore$DepthFunc;" />
+		<field name="ALWAYS" />
+		<field name="EQUAL" />
+		<field name="GREATER" />
+		<field name="GREATER_OR_EQUAL" />
+		<field name="LESS" />
+		<field name="LESS_OR_EQUAL" />
+		<field name="NOT_EQUAL" />
+	</class>
+	<class name="android/renderscript/ProgramVertex" since="11">
+		<extends name="android/renderscript/Program" />
+	</class>
+	<class name="android/renderscript/ProgramVertex$Builder" since="11">
+		<extends name="android/renderscript/Program$BaseProgramBuilder" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="addInput(Landroid/renderscript/Element;)Landroid/renderscript/ProgramVertex$Builder;" />
+		<method name="create()Landroid/renderscript/ProgramVertex;" />
+	</class>
+	<class name="android/renderscript/ProgramVertexFixedFunction" since="11">
+		<extends name="android/renderscript/ProgramVertex" />
+		<method name="bindConstants(Landroid/renderscript/ProgramVertexFixedFunction$Constants;)V" />
+	</class>
+	<class name="android/renderscript/ProgramVertexFixedFunction$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="create()Landroid/renderscript/ProgramVertexFixedFunction;" />
+		<method name="setTextureMatrixEnable(Z)Landroid/renderscript/ProgramVertexFixedFunction$Builder;" />
+	</class>
+	<class name="android/renderscript/ProgramVertexFixedFunction$Constants" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="destroy()V" />
+		<method name="setModelview(Landroid/renderscript/Matrix4f;)V" />
+		<method name="setProjection(Landroid/renderscript/Matrix4f;)V" />
+		<method name="setTexture(Landroid/renderscript/Matrix4f;)V" />
+	</class>
+	<class name="android/renderscript/RSDriverException" since="11">
+		<extends name="android/renderscript/RSRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/renderscript/RSIllegalArgumentException" since="11">
+		<extends name="android/renderscript/RSRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/renderscript/RSInvalidStateException" since="11">
+		<extends name="android/renderscript/RSRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/renderscript/RSRuntimeException" since="11">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/renderscript/RSSurfaceView" since="11">
+		<extends name="android/view/SurfaceView" />
+		<implements name="android/view/SurfaceHolder$Callback" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="createRenderScriptGL(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)Landroid/renderscript/RenderScriptGL;" />
+		<method name="destroyRenderScriptGL()V" />
+		<method name="getRenderScriptGL()Landroid/renderscript/RenderScriptGL;" />
+		<method name="pause()V" />
+		<method name="resume()V" />
+		<method name="setRenderScriptGL(Landroid/renderscript/RenderScriptGL;)V" />
+		<method name="surfaceChanged(Landroid/view/SurfaceHolder;III)V" />
+		<method name="surfaceCreated(Landroid/view/SurfaceHolder;)V" />
+		<method name="surfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
+	</class>
+	<class name="android/renderscript/RSTextureView" since="14">
+		<extends name="android/view/TextureView" />
+		<implements name="android/view/TextureView$SurfaceTextureListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="createRenderScriptGL(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)Landroid/renderscript/RenderScriptGL;" />
+		<method name="destroyRenderScriptGL()V" />
+		<method name="getRenderScriptGL()Landroid/renderscript/RenderScriptGL;" />
+		<method name="onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V" />
+		<method name="onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)Z" />
+		<method name="onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V" />
+		<method name="onSurfaceTextureUpdated(Landroid/graphics/SurfaceTexture;)V" />
+		<method name="pause()V" />
+		<method name="resume()V" />
+		<method name="setRenderScriptGL(Landroid/renderscript/RenderScriptGL;)V" />
+	</class>
+	<class name="android/renderscript/RenderScript" since="11">
+		<extends name="java/lang/Object" />
+		<method name="contextDump()V" />
+		<method name="create(Landroid/content/Context;)Landroid/renderscript/RenderScript;" />
+		<method name="destroy()V" />
+		<method name="finish()V" />
+		<method name="getApplicationContext()Landroid/content/Context;" />
+		<method name="getErrorHandler()Landroid/renderscript/RenderScript$RSErrorHandler;" />
+		<method name="getMessageHandler()Landroid/renderscript/RenderScript$RSMessageHandler;" />
+		<method name="setErrorHandler(Landroid/renderscript/RenderScript$RSErrorHandler;)V" />
+		<method name="setMessageHandler(Landroid/renderscript/RenderScript$RSMessageHandler;)V" />
+		<method name="setPriority(Landroid/renderscript/RenderScript$Priority;)V" />
+	</class>
+	<class name="android/renderscript/RenderScript$Priority" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/RenderScript$Priority;" />
+		<method name="values()[Landroid/renderscript/RenderScript$Priority;" />
+		<field name="LOW" />
+		<field name="NORMAL" />
+	</class>
+	<class name="android/renderscript/RenderScript$RSErrorHandler" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Runnable" />
+		<method name="&lt;init>()V" />
+		<method name="run()V" />
+		<field name="mErrorMessage" />
+		<field name="mErrorNum" />
+	</class>
+	<class name="android/renderscript/RenderScript$RSMessageHandler" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Runnable" />
+		<method name="&lt;init>()V" />
+		<method name="run()V" />
+		<field name="mData" />
+		<field name="mID" />
+		<field name="mLength" />
+	</class>
+	<class name="android/renderscript/RenderScriptGL" since="11">
+		<extends name="android/renderscript/RenderScript" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/renderscript/RenderScriptGL$SurfaceConfig;)V" />
+		<method name="bindProgramFragment(Landroid/renderscript/ProgramFragment;)V" />
+		<method name="bindProgramRaster(Landroid/renderscript/ProgramRaster;)V" />
+		<method name="bindProgramStore(Landroid/renderscript/ProgramStore;)V" />
+		<method name="bindProgramVertex(Landroid/renderscript/ProgramVertex;)V" />
+		<method name="bindRootScript(Landroid/renderscript/Script;)V" />
+		<method name="getHeight()I" />
+		<method name="getWidth()I" />
+		<method name="pause()V" />
+		<method name="resume()V" />
+		<method name="setSurface(Landroid/view/SurfaceHolder;II)V" />
+		<method name="setSurfaceTexture(Landroid/graphics/SurfaceTexture;II)V" since="14" />
+	</class>
+	<class name="android/renderscript/RenderScriptGL$SurfaceConfig" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScriptGL$SurfaceConfig;)V" />
+		<method name="setAlpha(II)V" />
+		<method name="setColor(II)V" />
+		<method name="setDepth(II)V" />
+		<method name="setSamples(IIF)V" />
+	</class>
+	<class name="android/renderscript/Sampler" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="CLAMP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
+		<method name="CLAMP_LINEAR_MIP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
+		<method name="CLAMP_NEAREST(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
+		<method name="WRAP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
+		<method name="WRAP_LINEAR_MIP_LINEAR(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
+		<method name="WRAP_NEAREST(Landroid/renderscript/RenderScript;)Landroid/renderscript/Sampler;" />
+	</class>
+	<class name="android/renderscript/Sampler$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;)V" />
+		<method name="create()Landroid/renderscript/Sampler;" />
+		<method name="setAnisotropy(F)V" />
+		<method name="setMagnification(Landroid/renderscript/Sampler$Value;)V" />
+		<method name="setMinification(Landroid/renderscript/Sampler$Value;)V" />
+		<method name="setWrapS(Landroid/renderscript/Sampler$Value;)V" />
+		<method name="setWrapT(Landroid/renderscript/Sampler$Value;)V" />
+	</class>
+	<class name="android/renderscript/Sampler$Value" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Sampler$Value;" />
+		<method name="values()[Landroid/renderscript/Sampler$Value;" />
+		<field name="CLAMP" />
+		<field name="LINEAR" />
+		<field name="LINEAR_MIP_LINEAR" />
+		<field name="LINEAR_MIP_NEAREST" />
+		<field name="NEAREST" />
+		<field name="WRAP" />
+	</class>
+	<class name="android/renderscript/Script" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="bindAllocation(Landroid/renderscript/Allocation;I)V" />
+		<method name="forEach(ILandroid/renderscript/Allocation;Landroid/renderscript/Allocation;Landroid/renderscript/FieldPacker;)V" since="14" />
+		<method name="invoke(I)V" />
+		<method name="invoke(ILandroid/renderscript/FieldPacker;)V" />
+		<method name="setTimeZone(Ljava/lang/String;)V" />
+		<method name="setVar(ID)V" />
+		<method name="setVar(IF)V" />
+		<method name="setVar(II)V" />
+		<method name="setVar(IJ)V" />
+		<method name="setVar(ILandroid/renderscript/BaseObj;)V" />
+		<method name="setVar(ILandroid/renderscript/FieldPacker;)V" />
+		<method name="setVar(IZ)V" />
+	</class>
+	<class name="android/renderscript/Script$Builder" since="11">
+		<extends name="java/lang/Object" />
+	</class>
+	<class name="android/renderscript/Script$FieldBase" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAllocation()Landroid/renderscript/Allocation;" />
+		<method name="getElement()Landroid/renderscript/Element;" />
+		<method name="getType()Landroid/renderscript/Type;" />
+		<method name="init(Landroid/renderscript/RenderScript;I)V" />
+		<method name="init(Landroid/renderscript/RenderScript;II)V" />
+		<method name="updateAllocation()V" />
+		<field name="mAllocation" />
+		<field name="mElement" />
+	</class>
+	<class name="android/renderscript/ScriptC" since="11">
+		<extends name="android/renderscript/Script" />
+		<method name="&lt;init>(ILandroid/renderscript/RenderScript;)V" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;Landroid/content/res/Resources;I)V" />
+	</class>
+	<class name="android/renderscript/Short2" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(SS)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/renderscript/Short3" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(SSS)V" since="14" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Short4" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(SSSS)V" since="14" />
+		<field name="w" />
+		<field name="x" />
+		<field name="y" />
+		<field name="z" />
+	</class>
+	<class name="android/renderscript/Type" since="11">
+		<extends name="android/renderscript/BaseObj" />
+		<method name="getCount()I" />
+		<method name="getElement()Landroid/renderscript/Element;" />
+		<method name="getX()I" />
+		<method name="getY()I" />
+		<method name="getZ()I" />
+		<method name="hasFaces()Z" />
+		<method name="hasMipmaps()Z" />
+	</class>
+	<class name="android/renderscript/Type$Builder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/renderscript/RenderScript;Landroid/renderscript/Element;)V" />
+		<method name="create()Landroid/renderscript/Type;" />
+		<method name="setFaces(Z)Landroid/renderscript/Type$Builder;" />
+		<method name="setMipmaps(Z)Landroid/renderscript/Type$Builder;" />
+		<method name="setX(I)Landroid/renderscript/Type$Builder;" />
+		<method name="setY(I)Landroid/renderscript/Type$Builder;" />
+	</class>
+	<class name="android/renderscript/Type$CubemapFace" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/renderscript/Type$CubemapFace;" />
+		<method name="values()[Landroid/renderscript/Type$CubemapFace;" />
+		<field name="NEGATIVE_X" />
+		<field name="NEGATIVE_Y" />
+		<field name="NEGATIVE_Z" />
+		<field name="POSITIVE_X" since="14" />
+		<field name="POSITIVE_Y" since="14" />
+		<field name="POSITIVE_Z" since="14" />
+		<field name="POSITVE_X" />
+		<field name="POSITVE_Y" />
+		<field name="POSITVE_Z" />
+	</class>
+	<class name="android/sax/Element" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getChild(Ljava/lang/String;)Landroid/sax/Element;" />
+		<method name="getChild(Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;" />
+		<method name="requireChild(Ljava/lang/String;)Landroid/sax/Element;" />
+		<method name="requireChild(Ljava/lang/String;Ljava/lang/String;)Landroid/sax/Element;" />
+		<method name="setElementListener(Landroid/sax/ElementListener;)V" />
+		<method name="setEndElementListener(Landroid/sax/EndElementListener;)V" />
+		<method name="setEndTextElementListener(Landroid/sax/EndTextElementListener;)V" />
+		<method name="setStartElementListener(Landroid/sax/StartElementListener;)V" />
+		<method name="setTextElementListener(Landroid/sax/TextElementListener;)V" />
+	</class>
+	<class name="android/sax/ElementListener" since="1">
+		<implements name="android/sax/EndElementListener" />
+		<implements name="android/sax/StartElementListener" />
+	</class>
+	<class name="android/sax/EndElementListener" since="1">
+		<method name="end()V" />
+	</class>
+	<class name="android/sax/EndTextElementListener" since="1">
+		<method name="end(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/sax/RootElement" since="1">
+		<extends name="android/sax/Element" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
+	</class>
+	<class name="android/sax/StartElementListener" since="1">
+		<method name="start(Lorg/xml/sax/Attributes;)V" />
+	</class>
+	<class name="android/sax/TextElementListener" since="1">
+		<implements name="android/sax/EndTextElementListener" />
+		<implements name="android/sax/StartElementListener" />
+	</class>
+	<class name="android/security/KeyChain" since="14">
+		<method name="&lt;init>()V" />
+		<method name="choosePrivateKeyAlias(Landroid/app/Activity;Landroid/security/KeyChainAliasCallback;[Ljava/lang/String;[Ljava/security/Principal;Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="createInstallIntent()Landroid/content/Intent;" />
+		<method name="getCertificateChain(Landroid/content/Context;Ljava/lang/String;)[Ljava/security/cert/X509Certificate;" />
+		<method name="getPrivateKey(Landroid/content/Context;Ljava/lang/String;)Ljava/security/PrivateKey;" />
+		<field name="EXTRA_CERTIFICATE" />
+		<field name="EXTRA_NAME" />
+		<field name="EXTRA_PKCS12" />
+	</class>
+	<class name="android/security/KeyChainAliasCallback" since="14">
+		<method name="alias(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/security/KeyChainException" since="14">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/service/textservice/SpellCheckerService" since="14">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="createSession()Landroid/service/textservice/SpellCheckerService$Session;" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<field name="SERVICE_INTERFACE" />
+	</class>
+	<class name="android/service/textservice/SpellCheckerService$Session" since="14">
+		<method name="&lt;init>()V" />
+		<method name="getBundle()Landroid/os/Bundle;" />
+		<method name="getLocale()Ljava/lang/String;" />
+		<method name="onCancel()V" />
+		<method name="onClose()V" since="15" />
+		<method name="onCreate()V" />
+		<method name="onGetSuggestions(Landroid/view/textservice/TextInfo;I)Landroid/view/textservice/SuggestionsInfo;" />
+		<method name="onGetSuggestionsMultiple([Landroid/view/textservice/TextInfo;IZ)[Landroid/view/textservice/SuggestionsInfo;" />
+	</class>
+	<class name="android/service/wallpaper/WallpaperService" since="7">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onCreateEngine()Landroid/service/wallpaper/WallpaperService$Engine;" />
+		<field name="SERVICE_INTERFACE" />
+		<field name="SERVICE_META_DATA" />
+	</class>
+	<class name="android/service/wallpaper/WallpaperService$Engine" since="7">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="dump(Ljava/lang/String;Ljava/io/FileDescriptor;Ljava/io/PrintWriter;[Ljava/lang/String;)V" since="14" />
+		<method name="getDesiredMinimumHeight()I" />
+		<method name="getDesiredMinimumWidth()I" />
+		<method name="getSurfaceHolder()Landroid/view/SurfaceHolder;" />
+		<method name="isPreview()Z" />
+		<method name="isVisible()Z" />
+		<method name="onCommand(Ljava/lang/String;IIILandroid/os/Bundle;Z)Landroid/os/Bundle;" />
+		<method name="onCreate(Landroid/view/SurfaceHolder;)V" />
+		<method name="onDesiredSizeChanged(II)V" />
+		<method name="onDestroy()V" />
+		<method name="onOffsetsChanged(FFFFII)V" />
+		<method name="onSurfaceChanged(Landroid/view/SurfaceHolder;III)V" />
+		<method name="onSurfaceCreated(Landroid/view/SurfaceHolder;)V" />
+		<method name="onSurfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
+		<method name="onSurfaceRedrawNeeded(Landroid/view/SurfaceHolder;)V" since="9" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)V" />
+		<method name="onVisibilityChanged(Z)V" />
+		<method name="setOffsetNotificationsEnabled(Z)V" since="15" />
+		<method name="setTouchEventsEnabled(Z)V" />
+	</class>
+	<class name="android/speech/RecognitionListener" since="8">
+		<method name="onBeginningOfSpeech()V" />
+		<method name="onBufferReceived([B)V" />
+		<method name="onEndOfSpeech()V" />
+		<method name="onError(I)V" />
+		<method name="onEvent(ILandroid/os/Bundle;)V" />
+		<method name="onPartialResults(Landroid/os/Bundle;)V" />
+		<method name="onReadyForSpeech(Landroid/os/Bundle;)V" />
+		<method name="onResults(Landroid/os/Bundle;)V" />
+		<method name="onRmsChanged(F)V" />
+	</class>
+	<class name="android/speech/RecognitionService" since="8">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onCancel(Landroid/speech/RecognitionService$Callback;)V" />
+		<method name="onStartListening(Landroid/content/Intent;Landroid/speech/RecognitionService$Callback;)V" />
+		<method name="onStopListening(Landroid/speech/RecognitionService$Callback;)V" />
+		<field name="SERVICE_INTERFACE" />
+		<field name="SERVICE_META_DATA" />
+	</class>
+	<class name="android/speech/RecognitionService$Callback" since="8">
+		<extends name="java/lang/Object" />
+		<method name="beginningOfSpeech()V" />
+		<method name="bufferReceived([B)V" />
+		<method name="endOfSpeech()V" />
+		<method name="error(I)V" />
+		<method name="partialResults(Landroid/os/Bundle;)V" />
+		<method name="readyForSpeech(Landroid/os/Bundle;)V" />
+		<method name="results(Landroid/os/Bundle;)V" />
+		<method name="rmsChanged(F)V" />
+	</class>
+	<class name="android/speech/RecognizerIntent" since="3">
+		<extends name="java/lang/Object" />
+		<method name="getVoiceDetailsIntent(Landroid/content/Context;)Landroid/content/Intent;" since="8" />
+		<field name="ACTION_GET_LANGUAGE_DETAILS" since="8" />
+		<field name="ACTION_RECOGNIZE_SPEECH" />
+		<field name="ACTION_WEB_SEARCH" />
+		<field name="DETAILS_META_DATA" since="8" />
+		<field name="EXTRA_CALLING_PACKAGE" since="8" />
+		<field name="EXTRA_CONFIDENCE_SCORES" since="14" />
+		<field name="EXTRA_LANGUAGE" />
+		<field name="EXTRA_LANGUAGE_MODEL" />
+		<field name="EXTRA_LANGUAGE_PREFERENCE" since="8" />
+		<field name="EXTRA_MAX_RESULTS" />
+		<field name="EXTRA_ONLY_RETURN_LANGUAGE_PREFERENCE" since="8" />
+		<field name="EXTRA_ORIGIN" since="14" />
+		<field name="EXTRA_PARTIAL_RESULTS" since="8" />
+		<field name="EXTRA_PROMPT" />
+		<field name="EXTRA_RESULTS" />
+		<field name="EXTRA_RESULTS_PENDINGINTENT" />
+		<field name="EXTRA_RESULTS_PENDINGINTENT_BUNDLE" />
+		<field name="EXTRA_SPEECH_INPUT_COMPLETE_SILENCE_LENGTH_MILLIS" since="8" />
+		<field name="EXTRA_SPEECH_INPUT_MINIMUM_LENGTH_MILLIS" since="8" />
+		<field name="EXTRA_SPEECH_INPUT_POSSIBLY_COMPLETE_SILENCE_LENGTH_MILLIS" since="8" />
+		<field name="EXTRA_SUPPORTED_LANGUAGES" since="8" />
+		<field name="EXTRA_WEB_SEARCH_ONLY" since="11" />
+		<field name="LANGUAGE_MODEL_FREE_FORM" />
+		<field name="LANGUAGE_MODEL_WEB_SEARCH" />
+		<field name="RESULT_AUDIO_ERROR" />
+		<field name="RESULT_CLIENT_ERROR" />
+		<field name="RESULT_NETWORK_ERROR" />
+		<field name="RESULT_NO_MATCH" />
+		<field name="RESULT_SERVER_ERROR" />
+	</class>
+	<class name="android/speech/RecognizerResultsIntent" since="10">
+		<extends name="java/lang/Object" />
+		<field name="ACTION_VOICE_SEARCH_RESULTS" />
+		<field name="EXTRA_VOICE_SEARCH_RESULT_HTML" />
+		<field name="EXTRA_VOICE_SEARCH_RESULT_HTML_BASE_URLS" />
+		<field name="EXTRA_VOICE_SEARCH_RESULT_HTTP_HEADERS" />
+		<field name="EXTRA_VOICE_SEARCH_RESULT_STRINGS" />
+		<field name="EXTRA_VOICE_SEARCH_RESULT_URLS" />
+		<field name="URI_SCHEME_INLINE" />
+	</class>
+	<class name="android/speech/SpeechRecognizer" since="8">
+		<extends name="java/lang/Object" />
+		<method name="cancel()V" />
+		<method name="createSpeechRecognizer(Landroid/content/Context;)Landroid/speech/SpeechRecognizer;" />
+		<method name="createSpeechRecognizer(Landroid/content/Context;Landroid/content/ComponentName;)Landroid/speech/SpeechRecognizer;" />
+		<method name="destroy()V" />
+		<method name="isRecognitionAvailable(Landroid/content/Context;)Z" />
+		<method name="setRecognitionListener(Landroid/speech/RecognitionListener;)V" />
+		<method name="startListening(Landroid/content/Intent;)V" />
+		<method name="stopListening()V" />
+		<field name="CONFIDENCE_SCORES" since="14" />
+		<field name="ERROR_AUDIO" />
+		<field name="ERROR_CLIENT" />
+		<field name="ERROR_INSUFFICIENT_PERMISSIONS" />
+		<field name="ERROR_NETWORK" />
+		<field name="ERROR_NETWORK_TIMEOUT" />
+		<field name="ERROR_NO_MATCH" />
+		<field name="ERROR_RECOGNIZER_BUSY" />
+		<field name="ERROR_SERVER" />
+		<field name="ERROR_SPEECH_TIMEOUT" />
+		<field name="RESULTS_RECOGNITION" />
+	</class>
+	<class name="android/speech/tts/SynthesisCallback" since="14">
+		<method name="audioAvailable([BII)I" />
+		<method name="done()I" />
+		<method name="error()V" />
+		<method name="getMaxBufferSize()I" />
+		<method name="start(III)I" />
+	</class>
+	<class name="android/speech/tts/SynthesisRequest" since="14">
+		<method name="&lt;init>(Ljava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="getCountry()Ljava/lang/String;" />
+		<method name="getLanguage()Ljava/lang/String;" />
+		<method name="getParams()Landroid/os/Bundle;" />
+		<method name="getPitch()I" />
+		<method name="getSpeechRate()I" />
+		<method name="getText()Ljava/lang/String;" />
+		<method name="getVariant()Ljava/lang/String;" />
+	</class>
+	<class name="android/speech/tts/TextToSpeech" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/speech/tts/TextToSpeech$OnInitListener;Ljava/lang/String;)V" since="14" />
+		<method name="addEarcon(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="addEarcon(Ljava/lang/String;Ljava/lang/String;I)I" />
+		<method name="addSpeech(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="addSpeech(Ljava/lang/String;Ljava/lang/String;I)I" />
+		<method name="areDefaultsEnforced()Z" since="8" />
+		<method name="getDefaultEngine()Ljava/lang/String;" since="8" />
+		<method name="getEngines()Ljava/util/List;" since="14" />
+		<method name="getFeatures(Ljava/util/Locale;)Ljava/util/Set;" since="15" />
+		<method name="getLanguage()Ljava/util/Locale;" />
+		<method name="isLanguageAvailable(Ljava/util/Locale;)I" />
+		<method name="isSpeaking()Z" />
+		<method name="playEarcon(Ljava/lang/String;ILjava/util/HashMap;)I" />
+		<method name="playSilence(JILjava/util/HashMap;)I" />
+		<method name="setEngineByPackageName(Ljava/lang/String;)I" since="8" />
+		<method name="setLanguage(Ljava/util/Locale;)I" />
+		<method name="setOnUtteranceCompletedListener(Landroid/speech/tts/TextToSpeech$OnUtteranceCompletedListener;)I" />
+		<method name="setOnUtteranceProgressListener(Landroid/speech/tts/UtteranceProgressListener;)I" since="15" />
+		<method name="setPitch(F)I" />
+		<method name="setSpeechRate(F)I" />
+		<method name="shutdown()V" />
+		<method name="speak(Ljava/lang/String;ILjava/util/HashMap;)I" />
+		<method name="stop()I" />
+		<method name="synthesizeToFile(Ljava/lang/String;Ljava/util/HashMap;Ljava/lang/String;)I" />
+		<field name="ACTION_TTS_QUEUE_PROCESSING_COMPLETED" />
+		<field name="ERROR" />
+		<field name="LANG_AVAILABLE" />
+		<field name="LANG_COUNTRY_AVAILABLE" />
+		<field name="LANG_COUNTRY_VAR_AVAILABLE" />
+		<field name="LANG_MISSING_DATA" />
+		<field name="LANG_NOT_SUPPORTED" />
+		<field name="QUEUE_ADD" />
+		<field name="QUEUE_FLUSH" />
+		<field name="SUCCESS" />
+	</class>
+	<class name="android/speech/tts/TextToSpeech$Engine" since="4">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="ACTION_CHECK_TTS_DATA" />
+		<field name="ACTION_INSTALL_TTS_DATA" />
+		<field name="ACTION_TTS_DATA_INSTALLED" />
+		<field name="CHECK_VOICE_DATA_BAD_DATA" />
+		<field name="CHECK_VOICE_DATA_FAIL" />
+		<field name="CHECK_VOICE_DATA_MISSING_DATA" />
+		<field name="CHECK_VOICE_DATA_MISSING_VOLUME" />
+		<field name="CHECK_VOICE_DATA_PASS" />
+		<field name="DEFAULT_STREAM" />
+		<field name="EXTRA_AVAILABLE_VOICES" since="8" />
+		<field name="EXTRA_CHECK_VOICE_DATA_FOR" since="8" />
+		<field name="EXTRA_TTS_DATA_INSTALLED" />
+		<field name="EXTRA_UNAVAILABLE_VOICES" since="8" />
+		<field name="EXTRA_VOICE_DATA_FILES" />
+		<field name="EXTRA_VOICE_DATA_FILES_INFO" />
+		<field name="EXTRA_VOICE_DATA_ROOT_DIRECTORY" />
+		<field name="INTENT_ACTION_TTS_SERVICE" since="14" />
+		<field name="KEY_FEATURE_EMBEDDED_SYNTHESIS" since="15" />
+		<field name="KEY_FEATURE_NETWORK_SYNTHESIS" since="15" />
+		<field name="KEY_PARAM_PAN" since="11" />
+		<field name="KEY_PARAM_STREAM" />
+		<field name="KEY_PARAM_UTTERANCE_ID" />
+		<field name="KEY_PARAM_VOLUME" since="11" />
+		<field name="SERVICE_META_DATA" since="14" />
+	</class>
+	<class name="android/speech/tts/TextToSpeech$EngineInfo" since="14">
+		<method name="&lt;init>()V" />
+		<field name="icon" />
+		<field name="label" />
+		<field name="name" />
+	</class>
+	<class name="android/speech/tts/TextToSpeech$OnInitListener" since="4">
+		<method name="onInit(I)V" />
+	</class>
+	<class name="android/speech/tts/TextToSpeech$OnUtteranceCompletedListener" since="4">
+		<method name="onUtteranceCompleted(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/speech/tts/TextToSpeechService" since="14">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onGetFeaturesForLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;" since="15" />
+		<method name="onGetLanguage()[Ljava/lang/String;" />
+		<method name="onIsLanguageAvailable(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="onLoadLanguage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="onStop()V" />
+		<method name="onSynthesizeText(Landroid/speech/tts/SynthesisRequest;Landroid/speech/tts/SynthesisCallback;)V" />
+	</class>
+	<class name="android/speech/tts/UtteranceProgressListener" since="15">
+		<method name="&lt;init>()V" />
+		<method name="onDone(Ljava/lang/String;)V" />
+		<method name="onError(Ljava/lang/String;)V" />
+		<method name="onStart(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/telephony/CellLocation" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getEmpty()Landroid/telephony/CellLocation;" />
+		<method name="requestLocationUpdate()V" />
+	</class>
+	<class name="android/telephony/NeighboringCellInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(ILjava/lang/String;I)V" since="7" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="describeContents()I" />
+		<method name="getCid()I" />
+		<method name="getLac()I" since="5" />
+		<method name="getNetworkType()I" since="5" />
+		<method name="getPsc()I" since="5" />
+		<method name="getRssi()I" />
+		<method name="setCid(I)V" />
+		<method name="setRssi(I)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="UNKNOWN_CID" />
+		<field name="UNKNOWN_RSSI" />
+	</class>
+	<class name="android/telephony/PhoneNumberFormattingTextWatcher" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/TextWatcher" />
+		<method name="&lt;init>()V" />
+		<method name="afterTextChanged(Landroid/text/Editable;)V" />
+		<method name="beforeTextChanged(Ljava/lang/CharSequence;III)V" />
+		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
+	</class>
+	<class name="android/telephony/PhoneNumberUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="calledPartyBCDFragmentToString([BII)Ljava/lang/String;" />
+		<method name="calledPartyBCDToString([BII)Ljava/lang/String;" />
+		<method name="compare(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Z" since="5" />
+		<method name="compare(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="convertKeypadLettersToDigits(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="extractNetworkPortion(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="extractPostDialPortion(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="formatJapaneseNumber(Landroid/text/Editable;)V" since="3" />
+		<method name="formatNanpNumber(Landroid/text/Editable;)V" />
+		<method name="formatNumber(Landroid/text/Editable;I)V" />
+		<method name="formatNumber(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getFormatTypeForLocale(Ljava/util/Locale;)I" />
+		<method name="getNumberFromIntent(Landroid/content/Intent;Landroid/content/Context;)Ljava/lang/String;" />
+		<method name="getStrippedReversed(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="is12Key(C)Z" />
+		<method name="isDialable(C)Z" />
+		<method name="isEmergencyNumber(Ljava/lang/String;)Z" />
+		<method name="isGlobalPhoneNumber(Ljava/lang/String;)Z" />
+		<method name="isISODigit(C)Z" />
+		<method name="isNonSeparator(C)Z" />
+		<method name="isReallyDialable(C)Z" />
+		<method name="isStartsPostDial(C)Z" />
+		<method name="isWellFormedSmsAddress(Ljava/lang/String;)Z" />
+		<method name="networkPortionToCalledPartyBCD(Ljava/lang/String;)[B" />
+		<method name="networkPortionToCalledPartyBCDWithLength(Ljava/lang/String;)[B" />
+		<method name="numberToCalledPartyBCD(Ljava/lang/String;)[B" />
+		<method name="stringFromStringAndTOA(Ljava/lang/String;I)Ljava/lang/String;" />
+		<method name="stripSeparators(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="toCallerIDMinMatch(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="toaFromString(Ljava/lang/String;)I" />
+		<field name="FORMAT_JAPAN" since="3" />
+		<field name="FORMAT_NANP" />
+		<field name="FORMAT_UNKNOWN" />
+		<field name="PAUSE" />
+		<field name="TOA_International" />
+		<field name="TOA_Unknown" />
+		<field name="WAIT" />
+		<field name="WILD" />
+	</class>
+	<class name="android/telephony/PhoneStateListener" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="onCallForwardingIndicatorChanged(Z)V" />
+		<method name="onCallStateChanged(ILjava/lang/String;)V" />
+		<method name="onCellLocationChanged(Landroid/telephony/CellLocation;)V" />
+		<method name="onDataActivity(I)V" />
+		<method name="onDataConnectionStateChanged(I)V" />
+		<method name="onDataConnectionStateChanged(II)V" since="7" />
+		<method name="onMessageWaitingIndicatorChanged(Z)V" />
+		<method name="onServiceStateChanged(Landroid/telephony/ServiceState;)V" />
+		<method name="onSignalStrengthChanged(I)V" />
+		<method name="onSignalStrengthsChanged(Landroid/telephony/SignalStrength;)V" since="7" />
+		<field name="LISTEN_CALL_FORWARDING_INDICATOR" />
+		<field name="LISTEN_CALL_STATE" />
+		<field name="LISTEN_CELL_LOCATION" />
+		<field name="LISTEN_DATA_ACTIVITY" />
+		<field name="LISTEN_DATA_CONNECTION_STATE" />
+		<field name="LISTEN_MESSAGE_WAITING_INDICATOR" />
+		<field name="LISTEN_NONE" />
+		<field name="LISTEN_SERVICE_STATE" />
+		<field name="LISTEN_SIGNAL_STRENGTH" />
+		<field name="LISTEN_SIGNAL_STRENGTHS" since="7" />
+	</class>
+	<class name="android/telephony/ServiceState" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Landroid/telephony/ServiceState;)V" />
+		<method name="copyFrom(Landroid/telephony/ServiceState;)V" />
+		<method name="describeContents()I" />
+		<method name="getIsManualSelection()Z" />
+		<method name="getOperatorAlphaLong()Ljava/lang/String;" />
+		<method name="getOperatorAlphaShort()Ljava/lang/String;" />
+		<method name="getOperatorNumeric()Ljava/lang/String;" />
+		<method name="getRoaming()Z" />
+		<method name="getState()I" />
+		<method name="setIsManualSelection(Z)V" />
+		<method name="setOperatorName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setRoaming(Z)V" />
+		<method name="setState(I)V" />
+		<method name="setStateOff()V" />
+		<method name="setStateOutOfService()V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="STATE_EMERGENCY_ONLY" />
+		<field name="STATE_IN_SERVICE" />
+		<field name="STATE_OUT_OF_SERVICE" />
+		<field name="STATE_POWER_OFF" />
+	</class>
+	<class name="android/telephony/SignalStrength" since="7">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getCdmaDbm()I" />
+		<method name="getCdmaEcio()I" />
+		<method name="getEvdoDbm()I" />
+		<method name="getEvdoEcio()I" />
+		<method name="getEvdoSnr()I" />
+		<method name="getGsmBitErrorRate()I" />
+		<method name="getGsmSignalStrength()I" />
+		<method name="isGsm()Z" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+	</class>
+	<class name="android/telephony/SmsManager" since="4">
+		<extends name="java/lang/Object" />
+		<method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getDefault()Landroid/telephony/SmsManager;" />
+		<method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
+		<method name="sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V" />
+		<method name="sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
+		<field name="RESULT_ERROR_GENERIC_FAILURE" />
+		<field name="RESULT_ERROR_NO_SERVICE" />
+		<field name="RESULT_ERROR_NULL_PDU" />
+		<field name="RESULT_ERROR_RADIO_OFF" />
+		<field name="STATUS_ON_ICC_FREE" />
+		<field name="STATUS_ON_ICC_READ" />
+		<field name="STATUS_ON_ICC_SENT" />
+		<field name="STATUS_ON_ICC_UNREAD" />
+		<field name="STATUS_ON_ICC_UNSENT" />
+	</class>
+	<class name="android/telephony/SmsMessage" since="4">
+		<extends name="java/lang/Object" />
+		<method name="calculateLength(Ljava/lang/CharSequence;Z)[I" />
+		<method name="calculateLength(Ljava/lang/String;Z)[I" />
+		<method name="createFromPdu([B)Landroid/telephony/SmsMessage;" />
+		<method name="getDisplayMessageBody()Ljava/lang/String;" />
+		<method name="getDisplayOriginatingAddress()Ljava/lang/String;" />
+		<method name="getEmailBody()Ljava/lang/String;" />
+		<method name="getEmailFrom()Ljava/lang/String;" />
+		<method name="getIndexOnIcc()I" />
+		<method name="getIndexOnSim()I" />
+		<method name="getMessageBody()Ljava/lang/String;" />
+		<method name="getMessageClass()Landroid/telephony/SmsMessage$MessageClass;" />
+		<method name="getOriginatingAddress()Ljava/lang/String;" />
+		<method name="getPdu()[B" />
+		<method name="getProtocolIdentifier()I" />
+		<method name="getPseudoSubject()Ljava/lang/String;" />
+		<method name="getServiceCenterAddress()Ljava/lang/String;" />
+		<method name="getStatus()I" />
+		<method name="getStatusOnIcc()I" />
+		<method name="getStatusOnSim()I" />
+		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/SmsMessage$SubmitPdu;" />
+		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/SmsMessage$SubmitPdu;" />
+		<method name="getTPLayerLengthForPDU(Ljava/lang/String;)I" />
+		<method name="getTimestampMillis()J" />
+		<method name="getUserData()[B" />
+		<method name="isCphsMwiMessage()Z" />
+		<method name="isEmail()Z" />
+		<method name="isMWIClearMessage()Z" />
+		<method name="isMWISetMessage()Z" />
+		<method name="isMwiDontStore()Z" />
+		<method name="isReplace()Z" />
+		<method name="isReplyPathPresent()Z" />
+		<method name="isStatusReportMessage()Z" />
+		<field name="ENCODING_16BIT" />
+		<field name="ENCODING_7BIT" />
+		<field name="ENCODING_8BIT" />
+		<field name="ENCODING_UNKNOWN" />
+		<field name="MAX_USER_DATA_BYTES" />
+		<field name="MAX_USER_DATA_BYTES_WITH_HEADER" />
+		<field name="MAX_USER_DATA_SEPTETS" />
+		<field name="MAX_USER_DATA_SEPTETS_WITH_HEADER" />
+	</class>
+	<class name="android/telephony/SmsMessage$MessageClass" since="4">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/telephony/SmsMessage$MessageClass;" />
+		<method name="values()[Landroid/telephony/SmsMessage$MessageClass;" />
+		<field name="CLASS_0" />
+		<field name="CLASS_1" />
+		<field name="CLASS_2" />
+		<field name="CLASS_3" />
+		<field name="UNKNOWN" />
+	</class>
+	<class name="android/telephony/SmsMessage$SubmitPdu" since="4">
+		<extends name="java/lang/Object" />
+		<field name="encodedMessage" />
+		<field name="encodedScAddress" />
+	</class>
+	<class name="android/telephony/TelephonyManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getCallState()I" />
+		<method name="getCellLocation()Landroid/telephony/CellLocation;" />
+		<method name="getDataActivity()I" />
+		<method name="getDataState()I" />
+		<method name="getDeviceId()Ljava/lang/String;" />
+		<method name="getDeviceSoftwareVersion()Ljava/lang/String;" />
+		<method name="getLine1Number()Ljava/lang/String;" />
+		<method name="getNeighboringCellInfo()Ljava/util/List;" since="3" />
+		<method name="getNetworkCountryIso()Ljava/lang/String;" />
+		<method name="getNetworkOperator()Ljava/lang/String;" />
+		<method name="getNetworkOperatorName()Ljava/lang/String;" />
+		<method name="getNetworkType()I" />
+		<method name="getPhoneType()I" />
+		<method name="getSimCountryIso()Ljava/lang/String;" />
+		<method name="getSimOperator()Ljava/lang/String;" />
+		<method name="getSimOperatorName()Ljava/lang/String;" />
+		<method name="getSimSerialNumber()Ljava/lang/String;" />
+		<method name="getSimState()I" />
+		<method name="getSubscriberId()Ljava/lang/String;" />
+		<method name="getVoiceMailAlphaTag()Ljava/lang/String;" />
+		<method name="getVoiceMailNumber()Ljava/lang/String;" />
+		<method name="hasIccCard()Z" since="5" />
+		<method name="isNetworkRoaming()Z" />
+		<method name="listen(Landroid/telephony/PhoneStateListener;I)V" />
+		<field name="ACTION_PHONE_STATE_CHANGED" since="3" />
+		<field name="CALL_STATE_IDLE" />
+		<field name="CALL_STATE_OFFHOOK" />
+		<field name="CALL_STATE_RINGING" />
+		<field name="DATA_ACTIVITY_DORMANT" since="4" />
+		<field name="DATA_ACTIVITY_IN" />
+		<field name="DATA_ACTIVITY_INOUT" />
+		<field name="DATA_ACTIVITY_NONE" />
+		<field name="DATA_ACTIVITY_OUT" />
+		<field name="DATA_CONNECTED" />
+		<field name="DATA_CONNECTING" />
+		<field name="DATA_DISCONNECTED" />
+		<field name="DATA_SUSPENDED" />
+		<field name="EXTRA_INCOMING_NUMBER" since="3" />
+		<field name="EXTRA_STATE" since="3" />
+		<field name="EXTRA_STATE_IDLE" since="3" />
+		<field name="EXTRA_STATE_OFFHOOK" since="3" />
+		<field name="EXTRA_STATE_RINGING" since="3" />
+		<field name="NETWORK_TYPE_1xRTT" since="4" />
+		<field name="NETWORK_TYPE_CDMA" since="4" />
+		<field name="NETWORK_TYPE_EDGE" />
+		<field name="NETWORK_TYPE_EHRPD" since="11" />
+		<field name="NETWORK_TYPE_EVDO_0" since="4" />
+		<field name="NETWORK_TYPE_EVDO_A" since="4" />
+		<field name="NETWORK_TYPE_EVDO_B" since="9" />
+		<field name="NETWORK_TYPE_GPRS" />
+		<field name="NETWORK_TYPE_HSDPA" since="5" />
+		<field name="NETWORK_TYPE_HSPA" since="5" />
+		<field name="NETWORK_TYPE_HSPAP" since="13" />
+		<field name="NETWORK_TYPE_HSUPA" since="5" />
+		<field name="NETWORK_TYPE_IDEN" since="8" />
+		<field name="NETWORK_TYPE_LTE" since="11" />
+		<field name="NETWORK_TYPE_UMTS" />
+		<field name="NETWORK_TYPE_UNKNOWN" />
+		<field name="PHONE_TYPE_CDMA" since="4" />
+		<field name="PHONE_TYPE_GSM" />
+		<field name="PHONE_TYPE_NONE" />
+		<field name="PHONE_TYPE_SIP" since="11" />
+		<field name="SIM_STATE_ABSENT" />
+		<field name="SIM_STATE_NETWORK_LOCKED" />
+		<field name="SIM_STATE_PIN_REQUIRED" />
+		<field name="SIM_STATE_PUK_REQUIRED" />
+		<field name="SIM_STATE_READY" />
+		<field name="SIM_STATE_UNKNOWN" />
+	</class>
+	<class name="android/telephony/cdma/CdmaCellLocation" since="5">
+		<extends name="android/telephony/CellLocation" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Bundle;)V" />
+		<method name="fillInNotifierBundle(Landroid/os/Bundle;)V" />
+		<method name="getBaseStationId()I" />
+		<method name="getBaseStationLatitude()I" />
+		<method name="getBaseStationLongitude()I" />
+		<method name="getNetworkId()I" />
+		<method name="getSystemId()I" />
+		<method name="setCellLocationData(III)V" />
+		<method name="setCellLocationData(IIIII)V" />
+		<method name="setStateInvalid()V" />
+	</class>
+	<class name="android/telephony/gsm/GsmCellLocation" since="1">
+		<extends name="android/telephony/CellLocation" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Bundle;)V" />
+		<method name="fillInNotifierBundle(Landroid/os/Bundle;)V" />
+		<method name="getCid()I" />
+		<method name="getLac()I" />
+		<method name="getPsc()I" since="9" />
+		<method name="setLacAndCid(II)V" />
+		<method name="setStateInvalid()V" />
+	</class>
+	<class name="android/telephony/gsm/SmsManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="divideMessage(Ljava/lang/String;)Ljava/util/ArrayList;" />
+		<method name="getDefault()Landroid/telephony/gsm/SmsManager;" />
+		<method name="sendDataMessage(Ljava/lang/String;Ljava/lang/String;S[BLandroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
+		<method name="sendMultipartTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)V" />
+		<method name="sendTextMessage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/app/PendingIntent;Landroid/app/PendingIntent;)V" />
+		<field name="RESULT_ERROR_GENERIC_FAILURE" />
+		<field name="RESULT_ERROR_NO_SERVICE" />
+		<field name="RESULT_ERROR_NULL_PDU" />
+		<field name="RESULT_ERROR_RADIO_OFF" />
+		<field name="STATUS_ON_SIM_FREE" />
+		<field name="STATUS_ON_SIM_READ" />
+		<field name="STATUS_ON_SIM_SENT" />
+		<field name="STATUS_ON_SIM_UNREAD" />
+		<field name="STATUS_ON_SIM_UNSENT" />
+	</class>
+	<class name="android/telephony/gsm/SmsMessage" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="calculateLength(Ljava/lang/CharSequence;Z)[I" since="3" />
+		<method name="calculateLength(Ljava/lang/String;Z)[I" />
+		<method name="createFromPdu([B)Landroid/telephony/gsm/SmsMessage;" />
+		<method name="getDisplayMessageBody()Ljava/lang/String;" />
+		<method name="getDisplayOriginatingAddress()Ljava/lang/String;" />
+		<method name="getEmailBody()Ljava/lang/String;" />
+		<method name="getEmailFrom()Ljava/lang/String;" />
+		<method name="getIndexOnSim()I" />
+		<method name="getMessageBody()Ljava/lang/String;" />
+		<method name="getMessageClass()Landroid/telephony/gsm/SmsMessage$MessageClass;" />
+		<method name="getOriginatingAddress()Ljava/lang/String;" />
+		<method name="getPdu()[B" />
+		<method name="getProtocolIdentifier()I" />
+		<method name="getPseudoSubject()Ljava/lang/String;" />
+		<method name="getServiceCenterAddress()Ljava/lang/String;" />
+		<method name="getStatus()I" />
+		<method name="getStatusOnSim()I" />
+		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" />
+		<method name="getSubmitPdu(Ljava/lang/String;Ljava/lang/String;S[BZ)Landroid/telephony/gsm/SmsMessage$SubmitPdu;" />
+		<method name="getTPLayerLengthForPDU(Ljava/lang/String;)I" />
+		<method name="getTimestampMillis()J" />
+		<method name="getUserData()[B" />
+		<method name="isCphsMwiMessage()Z" />
+		<method name="isEmail()Z" />
+		<method name="isMWIClearMessage()Z" />
+		<method name="isMWISetMessage()Z" />
+		<method name="isMwiDontStore()Z" />
+		<method name="isReplace()Z" />
+		<method name="isReplyPathPresent()Z" />
+		<method name="isStatusReportMessage()Z" />
+		<field name="ENCODING_16BIT" />
+		<field name="ENCODING_7BIT" />
+		<field name="ENCODING_8BIT" />
+		<field name="ENCODING_UNKNOWN" />
+		<field name="MAX_USER_DATA_BYTES" />
+		<field name="MAX_USER_DATA_SEPTETS" />
+		<field name="MAX_USER_DATA_SEPTETS_WITH_HEADER" />
+	</class>
+	<class name="android/telephony/gsm/SmsMessage$MessageClass" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/telephony/gsm/SmsMessage$MessageClass;" />
+		<method name="values()[Landroid/telephony/gsm/SmsMessage$MessageClass;" />
+		<field name="CLASS_0" />
+		<field name="CLASS_1" />
+		<field name="CLASS_2" />
+		<field name="CLASS_3" />
+		<field name="UNKNOWN" />
+	</class>
+	<class name="android/telephony/gsm/SmsMessage$SubmitPdu" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="encodedMessage" />
+		<field name="encodedScAddress" />
+	</class>
+	<class name="android/test/ActivityInstrumentationTestCase" since="1">
+		<extends name="android/test/ActivityTestCase" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;Z)V" />
+		<method name="getActivity()LT;" />
+		<method name="testActivityTestCaseSetUpProperly()V" />
+	</class>
+	<class name="android/test/ActivityInstrumentationTestCase2" since="3">
+		<extends name="android/test/ActivityTestCase" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" since="8" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
+		<method name="getActivity()LT;" />
+		<method name="setActivityInitialTouchMode(Z)V" />
+		<method name="setActivityIntent(Landroid/content/Intent;)V" />
+	</class>
+	<class name="android/test/ActivityTestCase" since="1">
+		<extends name="android/test/InstrumentationTestCase" />
+		<method name="&lt;init>()V" />
+		<method name="getActivity()Landroid/app/Activity;" />
+		<method name="scrubClass(Ljava/lang/Class;)V" />
+		<method name="setActivity(Landroid/app/Activity;)V" />
+	</class>
+	<class name="android/test/ActivityUnitTestCase" since="1">
+		<extends name="android/test/ActivityTestCase" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" />
+		<method name="getActivity()LT;" />
+		<method name="getFinishedActivityRequest()I" />
+		<method name="getRequestedOrientation()I" />
+		<method name="getStartedActivityIntent()Landroid/content/Intent;" />
+		<method name="getStartedActivityRequest()I" />
+		<method name="isFinishCalled()Z" />
+		<method name="setActivityContext(Landroid/content/Context;)V" />
+		<method name="setApplication(Landroid/app/Application;)V" />
+		<method name="startActivity(Landroid/content/Intent;Landroid/os/Bundle;Ljava/lang/Object;)LT;" />
+	</class>
+	<class name="android/test/AndroidTestCase" since="1">
+		<extends name="junit/framework/TestCase" />
+		<method name="&lt;init>()V" />
+		<method name="assertActivityRequiresPermission(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" since="4" />
+		<method name="assertReadingContentUriRequiresPermission(Landroid/net/Uri;Ljava/lang/String;)V" since="4" />
+		<method name="assertWritingContentUriRequiresPermission(Landroid/net/Uri;Ljava/lang/String;)V" since="4" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="scrubClass(Ljava/lang/Class;)V" />
+		<method name="setContext(Landroid/content/Context;)V" />
+		<method name="testAndroidTestCaseSetupProperly()V" />
+		<field name="mContext" />
+	</class>
+	<class name="android/test/AndroidTestRunner" since="1">
+		<extends name="junit/runner/BaseTestRunner" />
+		<method name="&lt;init>()V" />
+		<method name="addTestListener(Ljunit/framework/TestListener;)V" />
+		<method name="clearTestListeners()V" />
+		<method name="createTestResult()Ljunit/framework/TestResult;" />
+		<method name="getTestCases()Ljava/util/List;" />
+		<method name="getTestClassName()Ljava/lang/String;" />
+		<method name="getTestResult()Ljunit/framework/TestResult;" />
+		<method name="runFailed(Ljava/lang/String;)V" />
+		<method name="runTest()V" />
+		<method name="runTest(Ljunit/framework/TestResult;)V" />
+		<method name="setContext(Landroid/content/Context;)V" />
+		<method name="setInstrumentaiton(Landroid/app/Instrumentation;)V" />
+		<method name="setInstrumentation(Landroid/app/Instrumentation;)V" since="5" />
+		<method name="setTest(Ljunit/framework/Test;)V" />
+		<method name="setTestClassName(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="testEnded(Ljava/lang/String;)V" />
+		<method name="testFailed(ILjunit/framework/Test;Ljava/lang/Throwable;)V" />
+		<method name="testStarted(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/test/ApplicationTestCase" since="1">
+		<extends name="android/test/AndroidTestCase" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" />
+		<method name="createApplication()V" />
+		<method name="getApplication()LT;" />
+		<method name="getSystemContext()Landroid/content/Context;" />
+		<method name="terminateApplication()V" />
+		<method name="testApplicationTestCaseSetUpProperly()V" />
+	</class>
+	<class name="android/test/AssertionFailedError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/test/ComparisonFailure" since="1">
+		<extends name="android/test/AssertionFailedError" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/test/FlakyTest" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/test/InstrumentationTestCase" since="1">
+		<extends name="junit/framework/TestCase" />
+		<method name="&lt;init>()V" />
+		<method name="getInstrumentation()Landroid/app/Instrumentation;" />
+		<method name="injectInsrumentation(Landroid/app/Instrumentation;)V" />
+		<method name="injectInstrumentation(Landroid/app/Instrumentation;)V" since="5" />
+		<method name="launchActivity(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Bundle;)LT;" />
+		<method name="launchActivityWithIntent(Ljava/lang/String;Ljava/lang/Class;Landroid/content/Intent;)LT;" since="3" />
+		<method name="runTestOnUiThread(Ljava/lang/Runnable;)V" since="3" />
+		<method name="sendKeys(Ljava/lang/String;)V" />
+		<method name="sendKeys([I)V" />
+		<method name="sendRepeatedKeys([I)V" />
+	</class>
+	<class name="android/test/InstrumentationTestRunner" since="1">
+		<extends name="android/app/Instrumentation" />
+		<implements name="android/test/TestSuiteProvider" />
+		<method name="&lt;init>()V" />
+		<method name="getAllTests()Ljunit/framework/TestSuite;" />
+		<method name="getAndroidTestRunner()Landroid/test/AndroidTestRunner;" />
+		<method name="getLoader()Ljava/lang/ClassLoader;" />
+		<method name="getTestSuite()Ljunit/framework/TestSuite;" />
+		<field name="REPORT_KEY_NAME_CLASS" />
+		<field name="REPORT_KEY_NAME_TEST" />
+		<field name="REPORT_KEY_NUM_CURRENT" />
+		<field name="REPORT_KEY_NUM_TOTAL" />
+		<field name="REPORT_KEY_STACK" />
+		<field name="REPORT_VALUE_ID" />
+		<field name="REPORT_VALUE_RESULT_ERROR" />
+		<field name="REPORT_VALUE_RESULT_FAILURE" />
+		<field name="REPORT_VALUE_RESULT_OK" />
+		<field name="REPORT_VALUE_RESULT_START" />
+	</class>
+	<class name="android/test/InstrumentationTestSuite" since="1">
+		<extends name="junit/framework/TestSuite" />
+		<method name="&lt;init>(Landroid/app/Instrumentation;)V" />
+		<method name="&lt;init>(Ljava/lang/Class;Landroid/app/Instrumentation;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Landroid/app/Instrumentation;)V" />
+	</class>
+	<class name="android/test/IsolatedContext" since="1">
+		<extends name="android/content/ContextWrapper" />
+		<method name="&lt;init>(Landroid/content/ContentResolver;Landroid/content/Context;)V" />
+		<method name="getAndClearBroadcastIntents()Ljava/util/List;" />
+	</class>
+	<class name="android/test/LoaderTestCase" since="11">
+		<extends name="android/test/AndroidTestCase" />
+		<method name="&lt;init>()V" />
+		<method name="getLoaderResultSynchronously(Landroid/content/Loader;)LT;" />
+	</class>
+	<class name="android/test/MoreAsserts" since="1">
+		<extends name="java/lang/Object" />
+		<method name="assertAssignableFrom(Ljava/lang/Class;Ljava/lang/Class;)V" />
+		<method name="assertAssignableFrom(Ljava/lang/Class;Ljava/lang/Object;)V" />
+		<method name="assertContainsRegex(Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
+		<method name="assertContainsRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
+		<method name="assertContentsInAnyOrder(Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
+		<method name="assertContentsInAnyOrder(Ljava/lang/String;Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
+		<method name="assertContentsInOrder(Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
+		<method name="assertContentsInOrder(Ljava/lang/String;Ljava/lang/Iterable;[Ljava/lang/Object;)V" />
+		<method name="assertEmpty(Ljava/lang/Iterable;)V" />
+		<method name="assertEmpty(Ljava/lang/String;Ljava/lang/Iterable;)V" />
+		<method name="assertEmpty(Ljava/lang/String;Ljava/util/Map;)V" />
+		<method name="assertEmpty(Ljava/util/Map;)V" />
+		<method name="assertEquals(Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)V" />
+		<method name="assertEquals(Ljava/lang/String;[B[B)V" />
+		<method name="assertEquals(Ljava/lang/String;[D[D)V" />
+		<method name="assertEquals(Ljava/lang/String;[I[I)V" />
+		<method name="assertEquals(Ljava/lang/String;[Ljava/lang/Object;[Ljava/lang/Object;)V" />
+		<method name="assertEquals(Ljava/util/Set;Ljava/util/Set;)V" />
+		<method name="assertEquals([B[B)V" />
+		<method name="assertEquals([D[D)V" />
+		<method name="assertEquals([I[I)V" />
+		<method name="assertEquals([Ljava/lang/Object;[Ljava/lang/Object;)V" />
+		<method name="assertMatchesRegex(Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
+		<method name="assertMatchesRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/regex/MatchResult;" />
+		<method name="assertNotContainsRegex(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="assertNotContainsRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="assertNotEmpty(Ljava/lang/Iterable;)V" />
+		<method name="assertNotEmpty(Ljava/lang/String;Ljava/lang/Iterable;)V" />
+		<method name="assertNotEmpty(Ljava/lang/String;Ljava/util/Map;)V" />
+		<method name="assertNotEmpty(Ljava/util/Map;)V" />
+		<method name="assertNotEqual(Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertNotEqual(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertNotMatchesRegex(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="assertNotMatchesRegex(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="checkEqualsAndHashCodeMethods(Ljava/lang/Object;Ljava/lang/Object;Z)V" />
+		<method name="checkEqualsAndHashCodeMethods(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;Z)V" />
+	</class>
+	<class name="android/test/PerformanceTestCase" since="1">
+		<method name="isPerformanceOnly()Z" />
+		<method name="startPerformance(Landroid/test/PerformanceTestCase$Intermediates;)I" />
+	</class>
+	<class name="android/test/PerformanceTestCase$Intermediates" since="1">
+		<method name="addIntermediate(Ljava/lang/String;)V" />
+		<method name="addIntermediate(Ljava/lang/String;J)V" />
+		<method name="finishTiming(Z)V" />
+		<method name="setInternalIterations(I)V" />
+		<method name="startTiming(Z)V" />
+	</class>
+	<class name="android/test/ProviderTestCase" since="1">
+		<extends name="android/test/InstrumentationTestCase" />
+		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
+		<method name="getMockContentResolver()Landroid/test/mock/MockContentResolver;" />
+		<method name="getMockContext()Landroid/test/IsolatedContext;" />
+		<method name="getProvider()LT;" />
+		<method name="newResolverWithContentProviderFromSql(Landroid/content/Context;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/content/ContentResolver;" />
+	</class>
+	<class name="android/test/ProviderTestCase2" since="3">
+		<extends name="android/test/AndroidTestCase" />
+		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
+		<method name="getMockContentResolver()Landroid/test/mock/MockContentResolver;" />
+		<method name="getMockContext()Landroid/test/IsolatedContext;" />
+		<method name="getProvider()LT;" />
+		<method name="newResolverWithContentProviderFromSql(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)Landroid/content/ContentResolver;" />
+	</class>
+	<class name="android/test/RenamingDelegatingContext" since="1">
+		<extends name="android/content/ContextWrapper" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/content/Context;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
+		<method name="getDatabasePrefix()Ljava/lang/String;" />
+		<method name="makeExistingFilesAndDbsAccessible()V" />
+		<method name="providerWithRenamedContext(Ljava/lang/Class;Landroid/content/Context;Ljava/lang/String;)LT;" />
+		<method name="providerWithRenamedContext(Ljava/lang/Class;Landroid/content/Context;Ljava/lang/String;Z)LT;" />
+	</class>
+	<class name="android/test/ServiceTestCase" since="1">
+		<extends name="android/test/AndroidTestCase" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" />
+		<method name="bindService(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="getApplication()Landroid/app/Application;" />
+		<method name="getService()LT;" />
+		<method name="getSystemContext()Landroid/content/Context;" />
+		<method name="setApplication(Landroid/app/Application;)V" />
+		<method name="setupService()V" />
+		<method name="shutdownService()V" />
+		<method name="startService(Landroid/content/Intent;)V" />
+		<method name="testServiceTestCaseSetUpProperly()V" />
+	</class>
+	<class name="android/test/SingleLaunchActivityTestCase" since="1">
+		<extends name="android/test/InstrumentationTestCase" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
+		<method name="getActivity()LT;" />
+		<method name="testActivityTestCaseSetUpProperly()V" />
+	</class>
+	<class name="android/test/SyncBaseInstrumentation" since="1">
+		<extends name="android/test/InstrumentationTestCase" />
+		<method name="&lt;init>()V" />
+		<method name="cancelSyncsandDisableAutoSync()V" />
+		<method name="syncProvider(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/test/TestSuiteProvider" since="1">
+		<method name="getTestSuite()Ljunit/framework/TestSuite;" />
+	</class>
+	<class name="android/test/TouchUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clickView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" />
+		<method name="drag(Landroid/test/ActivityInstrumentationTestCase;FFFFI)V" />
+		<method name="drag(Landroid/test/InstrumentationTestCase;FFFFI)V" since="3" />
+		<method name="dragQuarterScreenDown(Landroid/test/ActivityInstrumentationTestCase;)V" />
+		<method name="dragQuarterScreenDown(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;)V" since="3" />
+		<method name="dragQuarterScreenUp(Landroid/test/ActivityInstrumentationTestCase;)V" />
+		<method name="dragQuarterScreenUp(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;)V" since="3" />
+		<method name="dragViewBy(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" />
+		<method name="dragViewBy(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3" />
+		<method name="dragViewTo(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;III)I" />
+		<method name="dragViewTo(Landroid/test/InstrumentationTestCase;Landroid/view/View;III)I" since="3" />
+		<method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" />
+		<method name="dragViewToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" />
+		<method name="dragViewToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/View;)V" since="3" />
+		<method name="dragViewToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/View;I)V" since="3" />
+		<method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" />
+		<method name="dragViewToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;I)V" />
+		<method name="dragViewToTop(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" since="3" />
+		<method name="dragViewToTop(Landroid/test/InstrumentationTestCase;Landroid/view/View;I)V" since="3" />
+		<method name="dragViewToX(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" />
+		<method name="dragViewToX(Landroid/test/InstrumentationTestCase;Landroid/view/View;II)I" since="3" />
+		<method name="dragViewToY(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;II)I" />
+		<method name="dragViewToY(Landroid/test/InstrumentationTestCase;Landroid/view/View;II)I" since="3" />
+		<method name="longClickView(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/View;)V" />
+		<method name="longClickView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" since="3" />
+		<method name="scrollToBottom(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" />
+		<method name="scrollToBottom(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/ViewGroup;)V" since="3" />
+		<method name="scrollToTop(Landroid/test/ActivityInstrumentationTestCase;Landroid/view/ViewGroup;)V" />
+		<method name="scrollToTop(Landroid/test/InstrumentationTestCase;Landroid/app/Activity;Landroid/view/ViewGroup;)V" since="3" />
+		<method name="tapView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" />
+		<method name="touchAndCancelView(Landroid/test/InstrumentationTestCase;Landroid/view/View;)V" />
+	</class>
+	<class name="android/test/UiThreadTest" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/test/ViewAsserts" since="1">
+		<extends name="java/lang/Object" />
+		<method name="assertBaselineAligned(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertBottomAligned(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertBottomAligned(Landroid/view/View;Landroid/view/View;I)V" />
+		<method name="assertGroupContains(Landroid/view/ViewGroup;Landroid/view/View;)V" />
+		<method name="assertGroupIntegrity(Landroid/view/ViewGroup;)V" />
+		<method name="assertGroupNotContains(Landroid/view/ViewGroup;Landroid/view/View;)V" />
+		<method name="assertHasScreenCoordinates(Landroid/view/View;Landroid/view/View;II)V" />
+		<method name="assertHorizontalCenterAligned(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertLeftAligned(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertLeftAligned(Landroid/view/View;Landroid/view/View;I)V" />
+		<method name="assertOffScreenAbove(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertOffScreenBelow(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertOnScreen(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertRightAligned(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertRightAligned(Landroid/view/View;Landroid/view/View;I)V" />
+		<method name="assertTopAligned(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="assertTopAligned(Landroid/view/View;Landroid/view/View;I)V" />
+		<method name="assertVerticalCenterAligned(Landroid/view/View;Landroid/view/View;)V" />
+	</class>
+	<class name="android/test/mock/MockApplication" since="1">
+		<extends name="android/app/Application" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/test/mock/MockContentProvider" since="8">
+		<extends name="android/content/ContentProvider" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;[Landroid/content/pm/PathPermission;)V" />
+		<method name="delete(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="getType(Landroid/net/Uri;)Ljava/lang/String;" />
+		<method name="insert(Landroid/net/Uri;Landroid/content/ContentValues;)Landroid/net/Uri;" />
+		<method name="onCreate()Z" />
+		<method name="query(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;" />
+		<method name="update(Landroid/net/Uri;Landroid/content/ContentValues;Ljava/lang/String;[Ljava/lang/String;)I" />
+	</class>
+	<class name="android/test/mock/MockContentResolver" since="1">
+		<extends name="android/content/ContentResolver" />
+		<method name="&lt;init>()V" />
+		<method name="addProvider(Ljava/lang/String;Landroid/content/ContentProvider;)V" />
+	</class>
+	<class name="android/test/mock/MockContext" since="1">
+		<extends name="android/content/Context" />
+		<method name="&lt;init>()V" />
+		<method name="bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z" />
+		<method name="checkCallingOrSelfPermission(Ljava/lang/String;)I" />
+		<method name="checkCallingOrSelfUriPermission(Landroid/net/Uri;I)I" />
+		<method name="checkCallingPermission(Ljava/lang/String;)I" />
+		<method name="checkCallingUriPermission(Landroid/net/Uri;I)I" />
+		<method name="checkPermission(Ljava/lang/String;II)I" />
+		<method name="checkUriPermission(Landroid/net/Uri;III)I" />
+		<method name="checkUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;III)I" />
+		<method name="clearWallpaper()V" />
+		<method name="createPackageContext(Ljava/lang/String;I)Landroid/content/Context;" />
+		<method name="databaseList()[Ljava/lang/String;" />
+		<method name="deleteDatabase(Ljava/lang/String;)Z" />
+		<method name="deleteFile(Ljava/lang/String;)Z" />
+		<method name="enforceCallingOrSelfPermission(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="enforceCallingOrSelfUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
+		<method name="enforceCallingPermission(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="enforceCallingUriPermission(Landroid/net/Uri;ILjava/lang/String;)V" />
+		<method name="enforcePermission(Ljava/lang/String;IILjava/lang/String;)V" />
+		<method name="enforceUriPermission(Landroid/net/Uri;IIILjava/lang/String;)V" />
+		<method name="enforceUriPermission(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;IIILjava/lang/String;)V" />
+		<method name="fileList()[Ljava/lang/String;" />
+		<method name="getApplicationContext()Landroid/content/Context;" />
+		<method name="getApplicationInfo()Landroid/content/pm/ApplicationInfo;" since="4" />
+		<method name="getAssets()Landroid/content/res/AssetManager;" />
+		<method name="getCacheDir()Ljava/io/File;" />
+		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getContentResolver()Landroid/content/ContentResolver;" />
+		<method name="getDatabasePath(Ljava/lang/String;)Ljava/io/File;" />
+		<method name="getDir(Ljava/lang/String;I)Ljava/io/File;" />
+		<method name="getExternalCacheDir()Ljava/io/File;" since="8" />
+		<method name="getExternalFilesDir(Ljava/lang/String;)Ljava/io/File;" since="8" />
+		<method name="getFileStreamPath(Ljava/lang/String;)Ljava/io/File;" />
+		<method name="getFilesDir()Ljava/io/File;" />
+		<method name="getMainLooper()Landroid/os/Looper;" />
+		<method name="getObbDir()Ljava/io/File;" since="11" />
+		<method name="getPackageCodePath()Ljava/lang/String;" />
+		<method name="getPackageManager()Landroid/content/pm/PackageManager;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getPackageResourcePath()Ljava/lang/String;" />
+		<method name="getResources()Landroid/content/res/Resources;" />
+		<method name="getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;" />
+		<method name="getSystemService(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getTheme()Landroid/content/res/Resources$Theme;" />
+		<method name="getWallpaper()Landroid/graphics/drawable/Drawable;" />
+		<method name="getWallpaperDesiredMinimumHeight()I" />
+		<method name="getWallpaperDesiredMinimumWidth()I" />
+		<method name="grantUriPermission(Ljava/lang/String;Landroid/net/Uri;I)V" />
+		<method name="openFileInput(Ljava/lang/String;)Ljava/io/FileInputStream;" />
+		<method name="openFileOutput(Ljava/lang/String;I)Ljava/io/FileOutputStream;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;)Landroid/database/sqlite/SQLiteDatabase;" />
+		<method name="openOrCreateDatabase(Ljava/lang/String;ILandroid/database/sqlite/SQLiteDatabase$CursorFactory;Landroid/database/DatabaseErrorHandler;)Landroid/database/sqlite/SQLiteDatabase;" since="11" />
+		<method name="peekWallpaper()Landroid/graphics/drawable/Drawable;" />
+		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;" />
+		<method name="registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;Ljava/lang/String;Landroid/os/Handler;)Landroid/content/Intent;" />
+		<method name="removeStickyBroadcast(Landroid/content/Intent;)V" />
+		<method name="revokeUriPermission(Landroid/net/Uri;I)V" />
+		<method name="sendBroadcast(Landroid/content/Intent;)V" />
+		<method name="sendBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
+		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;)V" />
+		<method name="sendOrderedBroadcast(Landroid/content/Intent;Ljava/lang/String;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="sendStickyBroadcast(Landroid/content/Intent;)V" />
+		<method name="sendStickyOrderedBroadcast(Landroid/content/Intent;Landroid/content/BroadcastReceiver;Landroid/os/Handler;ILjava/lang/String;Landroid/os/Bundle;)V" since="5" />
+		<method name="setTheme(I)V" />
+		<method name="setWallpaper(Landroid/graphics/Bitmap;)V" />
+		<method name="setWallpaper(Ljava/io/InputStream;)V" />
+		<method name="startActivities([Landroid/content/Intent;)V" since="11" />
+		<method name="startActivity(Landroid/content/Intent;)V" />
+		<method name="startInstrumentation(Landroid/content/ComponentName;Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="startIntentSender(Landroid/content/IntentSender;Landroid/content/Intent;III)V" since="5" />
+		<method name="startService(Landroid/content/Intent;)Landroid/content/ComponentName;" />
+		<method name="stopService(Landroid/content/Intent;)Z" />
+		<method name="unbindService(Landroid/content/ServiceConnection;)V" />
+		<method name="unregisterReceiver(Landroid/content/BroadcastReceiver;)V" />
+	</class>
+	<class name="android/test/mock/MockCursor" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/database/Cursor" />
+		<method name="&lt;init>()V" />
+		<method name="abortUpdates()V" />
+		<method name="close()V" />
+		<method name="commitUpdates()Z" />
+		<method name="commitUpdates(Ljava/util/Map;)Z" />
+		<method name="copyStringToBuffer(ILandroid/database/CharArrayBuffer;)V" />
+		<method name="deactivate()V" />
+		<method name="deleteRow()Z" />
+		<method name="getBlob(I)[B" />
+		<method name="getColumnCount()I" />
+		<method name="getColumnIndex(Ljava/lang/String;)I" />
+		<method name="getColumnIndexOrThrow(Ljava/lang/String;)I" />
+		<method name="getColumnName(I)Ljava/lang/String;" />
+		<method name="getColumnNames()[Ljava/lang/String;" />
+		<method name="getCount()I" />
+		<method name="getDouble(I)D" />
+		<method name="getExtras()Landroid/os/Bundle;" />
+		<method name="getFloat(I)F" />
+		<method name="getInt(I)I" />
+		<method name="getLong(I)J" />
+		<method name="getPosition()I" />
+		<method name="getShort(I)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getType(I)I" since="11" />
+		<method name="getWantsAllOnMoveCalls()Z" />
+		<method name="hasUpdates()Z" />
+		<method name="isAfterLast()Z" />
+		<method name="isBeforeFirst()Z" />
+		<method name="isClosed()Z" />
+		<method name="isFirst()Z" />
+		<method name="isLast()Z" />
+		<method name="isNull(I)Z" />
+		<method name="move(I)Z" />
+		<method name="moveToFirst()Z" />
+		<method name="moveToLast()Z" />
+		<method name="moveToNext()Z" />
+		<method name="moveToPosition(I)Z" />
+		<method name="moveToPrevious()Z" />
+		<method name="registerContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="requery()Z" />
+		<method name="respond(Landroid/os/Bundle;)Landroid/os/Bundle;" />
+		<method name="setNotificationUri(Landroid/content/ContentResolver;Landroid/net/Uri;)V" />
+		<method name="supportsUpdates()Z" />
+		<method name="unregisterContentObserver(Landroid/database/ContentObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="updateBlob(I[B)Z" />
+		<method name="updateDouble(ID)Z" />
+		<method name="updateFloat(IF)Z" />
+		<method name="updateInt(II)Z" />
+		<method name="updateLong(IJ)Z" />
+		<method name="updateShort(IS)Z" />
+		<method name="updateString(ILjava/lang/String;)Z" />
+		<method name="updateToNull(I)Z" />
+	</class>
+	<class name="android/test/mock/MockDialogInterface" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/content/DialogInterface" />
+		<method name="&lt;init>()V" />
+		<method name="cancel()V" />
+		<method name="dismiss()V" />
+	</class>
+	<class name="android/test/mock/MockPackageManager" since="1">
+		<extends name="android/content/pm/PackageManager" />
+		<method name="&lt;init>()V" />
+		<method name="addPackageToPreferred(Ljava/lang/String;)V" />
+		<method name="addPermission(Landroid/content/pm/PermissionInfo;)Z" />
+		<method name="addPermissionAsync(Landroid/content/pm/PermissionInfo;)Z" since="8" />
+		<method name="addPreferredActivity(Landroid/content/IntentFilter;I[Landroid/content/ComponentName;Landroid/content/ComponentName;)V" />
+		<method name="canonicalToCurrentPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8" />
+		<method name="checkPermission(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="checkSignatures(II)I" since="5" />
+		<method name="checkSignatures(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="clearPackagePreferredActivities(Ljava/lang/String;)V" />
+		<method name="currentToCanonicalPackageNames([Ljava/lang/String;)[Ljava/lang/String;" since="8" />
+		<method name="getActivityIcon(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getActivityIcon(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getActivityInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;" />
+		<method name="getActivityLogo(Landroid/content/ComponentName;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getActivityLogo(Landroid/content/Intent;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getAllPermissionGroups(I)Ljava/util/List;" />
+		<method name="getApplicationEnabledSetting(Ljava/lang/String;)I" />
+		<method name="getApplicationIcon(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getApplicationIcon(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getApplicationInfo(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;" />
+		<method name="getApplicationLabel(Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
+		<method name="getApplicationLogo(Landroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getApplicationLogo(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getComponentEnabledSetting(Landroid/content/ComponentName;)I" />
+		<method name="getDefaultActivityIcon()Landroid/graphics/drawable/Drawable;" />
+		<method name="getDrawable(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/graphics/drawable/Drawable;" />
+		<method name="getInstalledApplications(I)Ljava/util/List;" />
+		<method name="getInstalledPackages(I)Ljava/util/List;" />
+		<method name="getInstallerPackageName(Ljava/lang/String;)Ljava/lang/String;" since="5" />
+		<method name="getInstrumentationInfo(Landroid/content/ComponentName;I)Landroid/content/pm/InstrumentationInfo;" />
+		<method name="getLaunchIntentForPackage(Ljava/lang/String;)Landroid/content/Intent;" since="3" />
+		<method name="getNameForUid(I)Ljava/lang/String;" />
+		<method name="getPackageGids(Ljava/lang/String;)[I" />
+		<method name="getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;" />
+		<method name="getPackagesForUid(I)[Ljava/lang/String;" />
+		<method name="getPermissionGroupInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionGroupInfo;" />
+		<method name="getPermissionInfo(Ljava/lang/String;I)Landroid/content/pm/PermissionInfo;" />
+		<method name="getPreferredActivities(Ljava/util/List;Ljava/util/List;Ljava/lang/String;)I" />
+		<method name="getPreferredPackages(I)Ljava/util/List;" />
+		<method name="getProviderInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ProviderInfo;" since="9" />
+		<method name="getReceiverInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ActivityInfo;" />
+		<method name="getResourcesForActivity(Landroid/content/ComponentName;)Landroid/content/res/Resources;" />
+		<method name="getResourcesForApplication(Landroid/content/pm/ApplicationInfo;)Landroid/content/res/Resources;" />
+		<method name="getResourcesForApplication(Ljava/lang/String;)Landroid/content/res/Resources;" />
+		<method name="getServiceInfo(Landroid/content/ComponentName;I)Landroid/content/pm/ServiceInfo;" />
+		<method name="getSystemAvailableFeatures()[Landroid/content/pm/FeatureInfo;" since="5" />
+		<method name="getSystemSharedLibraryNames()[Ljava/lang/String;" since="3" />
+		<method name="getText(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
+		<method name="getXml(Ljava/lang/String;ILandroid/content/pm/ApplicationInfo;)Landroid/content/res/XmlResourceParser;" />
+		<method name="hasSystemFeature(Ljava/lang/String;)Z" since="5" />
+		<method name="installPackage(Landroid/net/Uri;Landroid/content/pm/IPackageInstallObserver;I)V" />
+		<method name="isSafeMode()Z" since="3" />
+		<method name="queryBroadcastReceivers(Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryContentProviders(Ljava/lang/String;II)Ljava/util/List;" />
+		<method name="queryInstrumentation(Ljava/lang/String;I)Ljava/util/List;" />
+		<method name="queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryIntentActivityOptions(Landroid/content/ComponentName;[Landroid/content/Intent;Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;" />
+		<method name="queryPermissionsByGroup(Ljava/lang/String;I)Ljava/util/List;" />
+		<method name="removePackageFromPreferred(Ljava/lang/String;)V" />
+		<method name="removePermission(Ljava/lang/String;)V" />
+		<method name="resolveActivity(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;" />
+		<method name="resolveContentProvider(Ljava/lang/String;I)Landroid/content/pm/ProviderInfo;" />
+		<method name="resolveService(Landroid/content/Intent;I)Landroid/content/pm/ResolveInfo;" />
+		<method name="setApplicationEnabledSetting(Ljava/lang/String;II)V" />
+		<method name="setComponentEnabledSetting(Landroid/content/ComponentName;II)V" />
+		<method name="setInstallerPackageName(Ljava/lang/String;Ljava/lang/String;)V" since="11" />
+		<method name="verifyPendingInstall(II)V" since="14" />
+	</class>
+	<class name="android/test/mock/MockResources" since="1">
+		<extends name="android/content/res/Resources" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/test/suitebuilder/TestMethod" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" since="3" />
+		<method name="&lt;init>(Ljava/lang/reflect/Method;Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Ljunit/framework/TestCase;)V" since="3" />
+		<method name="createTest()Ljunit/framework/TestCase;" />
+		<method name="getAnnotation(Ljava/lang/Class;)LT;" />
+		<method name="getEnclosingClass()Ljava/lang/Class;" />
+		<method name="getEnclosingClassname()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+	</class>
+	<class name="android/test/suitebuilder/TestSuiteBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
+		<method name="addRequirements(Ljava/util/List;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
+		<method name="addRequirements([Lcom/android/internal/util/Predicate;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
+		<method name="build()Ljunit/framework/TestSuite;" />
+		<method name="excludePackages([Ljava/lang/String;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
+		<method name="getSuiteName()Ljava/lang/String;" />
+		<method name="includeAllPackagesUnderHere()Landroid/test/suitebuilder/TestSuiteBuilder;" />
+		<method name="includePackages([Ljava/lang/String;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
+		<method name="named(Ljava/lang/String;)Landroid/test/suitebuilder/TestSuiteBuilder;" />
+	</class>
+	<class name="android/test/suitebuilder/TestSuiteBuilder$FailedToCreateTests" since="1">
+		<extends name="junit/framework/TestCase" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="testSuiteConstructionFailed()V" />
+	</class>
+	<class name="android/test/suitebuilder/annotation/LargeTest" since="2">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/test/suitebuilder/annotation/MediumTest" since="2">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/test/suitebuilder/annotation/SmallTest" since="2">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/test/suitebuilder/annotation/Smoke" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/test/suitebuilder/annotation/Suppress" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/text/AlteredCharSequence" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="android/text/GetChars" />
+		<method name="charAt(I)C" />
+		<method name="getChars(II[CI)V" />
+		<method name="length()I" />
+		<method name="make(Ljava/lang/CharSequence;[CII)Landroid/text/AlteredCharSequence;" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/text/AndroidCharacter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getDirectionalities([C[BI)V" />
+		<method name="getEastAsianWidth(C)I" since="8" />
+		<method name="getEastAsianWidths([CII[B)V" since="8" />
+		<method name="getMirror(C)C" />
+		<method name="mirror([CII)Z" />
+		<field name="EAST_ASIAN_WIDTH_AMBIGUOUS" since="8" />
+		<field name="EAST_ASIAN_WIDTH_FULL_WIDTH" since="8" />
+		<field name="EAST_ASIAN_WIDTH_HALF_WIDTH" since="8" />
+		<field name="EAST_ASIAN_WIDTH_NARROW" since="8" />
+		<field name="EAST_ASIAN_WIDTH_NEUTRAL" since="8" />
+		<field name="EAST_ASIAN_WIDTH_WIDE" since="8" />
+	</class>
+	<class name="android/text/Annotation" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="describeContents()I" since="3" />
+		<method name="getKey()Ljava/lang/String;" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/AutoText" since="1">
+		<extends name="java/lang/Object" />
+		<method name="get(Ljava/lang/CharSequence;IILandroid/view/View;)Ljava/lang/String;" />
+		<method name="getSize(Landroid/view/View;)I" since="3" />
+	</class>
+	<class name="android/text/BoringLayout" since="1">
+		<extends name="android/text/Layout" />
+		<implements name="android/text/TextUtils$EllipsizeCallback" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)V" />
+		<method name="ellipsized(II)V" />
+		<method name="getBottomPadding()I" />
+		<method name="getEllipsisCount(I)I" />
+		<method name="getEllipsisStart(I)I" />
+		<method name="getLineContainsTab(I)Z" />
+		<method name="getLineCount()I" />
+		<method name="getLineDescent(I)I" />
+		<method name="getLineDirections(I)Landroid/text/Layout$Directions;" />
+		<method name="getLineStart(I)I" />
+		<method name="getLineTop(I)I" />
+		<method name="getParagraphDirection(I)I" />
+		<method name="getTopPadding()I" />
+		<method name="isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;)Landroid/text/BoringLayout$Metrics;" />
+		<method name="isBoring(Ljava/lang/CharSequence;Landroid/text/TextPaint;Landroid/text/BoringLayout$Metrics;)Landroid/text/BoringLayout$Metrics;" />
+		<method name="make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;" />
+		<method name="make(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;" />
+		<method name="replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;Z)Landroid/text/BoringLayout;" />
+		<method name="replaceOrMake(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFLandroid/text/BoringLayout$Metrics;ZLandroid/text/TextUtils$TruncateAt;I)Landroid/text/BoringLayout;" />
+	</class>
+	<class name="android/text/BoringLayout$Metrics" since="1">
+		<extends name="android/graphics/Paint$FontMetricsInt" />
+		<method name="&lt;init>()V" />
+		<field name="width" />
+	</class>
+	<class name="android/text/ClipboardManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" since="11" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="hasText()Z" />
+		<method name="setText(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/text/DynamicLayout" since="1">
+		<extends name="android/text/Layout" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V" />
+		<method name="getBottomPadding()I" />
+		<method name="getEllipsisCount(I)I" />
+		<method name="getEllipsisStart(I)I" />
+		<method name="getLineContainsTab(I)Z" />
+		<method name="getLineCount()I" />
+		<method name="getLineDescent(I)I" />
+		<method name="getLineDirections(I)Landroid/text/Layout$Directions;" />
+		<method name="getLineStart(I)I" />
+		<method name="getLineTop(I)I" />
+		<method name="getParagraphDirection(I)I" />
+		<method name="getTopPadding()I" />
+	</class>
+	<class name="android/text/Editable" since="1">
+		<implements name="java/lang/Appendable" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="android/text/GetChars" />
+		<implements name="android/text/Spannable" />
+		<method name="append(C)Landroid/text/Editable;" />
+		<method name="append(Ljava/lang/CharSequence;)Landroid/text/Editable;" />
+		<method name="append(Ljava/lang/CharSequence;II)Landroid/text/Editable;" />
+		<method name="clear()V" />
+		<method name="clearSpans()V" />
+		<method name="delete(II)Landroid/text/Editable;" />
+		<method name="getFilters()[Landroid/text/InputFilter;" />
+		<method name="insert(ILjava/lang/CharSequence;)Landroid/text/Editable;" />
+		<method name="insert(ILjava/lang/CharSequence;II)Landroid/text/Editable;" />
+		<method name="replace(IILjava/lang/CharSequence;)Landroid/text/Editable;" />
+		<method name="replace(IILjava/lang/CharSequence;II)Landroid/text/Editable;" />
+		<method name="setFilters([Landroid/text/InputFilter;)V" />
+	</class>
+	<class name="android/text/Editable$Factory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getInstance()Landroid/text/Editable$Factory;" />
+		<method name="newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;" />
+	</class>
+	<class name="android/text/GetChars" since="1">
+		<implements name="java/lang/CharSequence" />
+		<method name="getChars(II[CI)V" />
+	</class>
+	<class name="android/text/Html" since="1">
+		<extends name="java/lang/Object" />
+		<method name="fromHtml(Ljava/lang/String;)Landroid/text/Spanned;" />
+		<method name="fromHtml(Ljava/lang/String;Landroid/text/Html$ImageGetter;Landroid/text/Html$TagHandler;)Landroid/text/Spanned;" />
+		<method name="toHtml(Landroid/text/Spanned;)Ljava/lang/String;" />
+	</class>
+	<class name="android/text/Html$ImageGetter" since="1">
+		<method name="getDrawable(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;" />
+	</class>
+	<class name="android/text/Html$TagHandler" since="1">
+		<method name="handleTag(ZLjava/lang/String;Landroid/text/Editable;Lorg/xml/sax/XMLReader;)V" />
+	</class>
+	<class name="android/text/InputFilter" since="1">
+		<method name="filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/text/InputFilter$AllCaps" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/InputFilter" />
+		<method name="&lt;init>()V" />
+		<method name="filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/text/InputFilter$LengthFilter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/InputFilter" />
+		<method name="&lt;init>(I)V" />
+		<method name="filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/text/InputType" since="3">
+		<field name="TYPE_CLASS_DATETIME" />
+		<field name="TYPE_CLASS_NUMBER" />
+		<field name="TYPE_CLASS_PHONE" />
+		<field name="TYPE_CLASS_TEXT" />
+		<field name="TYPE_DATETIME_VARIATION_DATE" />
+		<field name="TYPE_DATETIME_VARIATION_NORMAL" />
+		<field name="TYPE_DATETIME_VARIATION_TIME" />
+		<field name="TYPE_MASK_CLASS" />
+		<field name="TYPE_MASK_FLAGS" />
+		<field name="TYPE_MASK_VARIATION" />
+		<field name="TYPE_NULL" />
+		<field name="TYPE_NUMBER_FLAG_DECIMAL" />
+		<field name="TYPE_NUMBER_FLAG_SIGNED" />
+		<field name="TYPE_NUMBER_VARIATION_NORMAL" since="11" />
+		<field name="TYPE_NUMBER_VARIATION_PASSWORD" since="11" />
+		<field name="TYPE_TEXT_FLAG_AUTO_COMPLETE" />
+		<field name="TYPE_TEXT_FLAG_AUTO_CORRECT" />
+		<field name="TYPE_TEXT_FLAG_CAP_CHARACTERS" />
+		<field name="TYPE_TEXT_FLAG_CAP_SENTENCES" />
+		<field name="TYPE_TEXT_FLAG_CAP_WORDS" />
+		<field name="TYPE_TEXT_FLAG_IME_MULTI_LINE" />
+		<field name="TYPE_TEXT_FLAG_MULTI_LINE" />
+		<field name="TYPE_TEXT_FLAG_NO_SUGGESTIONS" since="5" />
+		<field name="TYPE_TEXT_VARIATION_EMAIL_ADDRESS" />
+		<field name="TYPE_TEXT_VARIATION_EMAIL_SUBJECT" />
+		<field name="TYPE_TEXT_VARIATION_FILTER" />
+		<field name="TYPE_TEXT_VARIATION_LONG_MESSAGE" />
+		<field name="TYPE_TEXT_VARIATION_NORMAL" />
+		<field name="TYPE_TEXT_VARIATION_PASSWORD" />
+		<field name="TYPE_TEXT_VARIATION_PERSON_NAME" />
+		<field name="TYPE_TEXT_VARIATION_PHONETIC" />
+		<field name="TYPE_TEXT_VARIATION_POSTAL_ADDRESS" />
+		<field name="TYPE_TEXT_VARIATION_SHORT_MESSAGE" />
+		<field name="TYPE_TEXT_VARIATION_URI" />
+		<field name="TYPE_TEXT_VARIATION_VISIBLE_PASSWORD" />
+		<field name="TYPE_TEXT_VARIATION_WEB_EDIT_TEXT" />
+		<field name="TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS" since="11" />
+		<field name="TYPE_TEXT_VARIATION_WEB_PASSWORD" since="11" />
+	</class>
+	<class name="android/text/Layout" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="draw(Landroid/graphics/Canvas;Landroid/graphics/Path;Landroid/graphics/Paint;I)V" />
+		<method name="getAlignment()Landroid/text/Layout$Alignment;" />
+		<method name="getBottomPadding()I" />
+		<method name="getCursorPath(ILandroid/graphics/Path;Ljava/lang/CharSequence;)V" />
+		<method name="getDesiredWidth(Ljava/lang/CharSequence;IILandroid/text/TextPaint;)F" />
+		<method name="getDesiredWidth(Ljava/lang/CharSequence;Landroid/text/TextPaint;)F" />
+		<method name="getEllipsisCount(I)I" />
+		<method name="getEllipsisStart(I)I" />
+		<method name="getEllipsizedWidth()I" />
+		<method name="getHeight()I" />
+		<method name="getLineAscent(I)I" />
+		<method name="getLineBaseline(I)I" />
+		<method name="getLineBottom(I)I" />
+		<method name="getLineBounds(ILandroid/graphics/Rect;)I" />
+		<method name="getLineContainsTab(I)Z" />
+		<method name="getLineCount()I" />
+		<method name="getLineDescent(I)I" />
+		<method name="getLineDirections(I)Landroid/text/Layout$Directions;" />
+		<method name="getLineEnd(I)I" />
+		<method name="getLineForOffset(I)I" />
+		<method name="getLineForVertical(I)I" />
+		<method name="getLineLeft(I)F" />
+		<method name="getLineMax(I)F" />
+		<method name="getLineRight(I)F" />
+		<method name="getLineStart(I)I" />
+		<method name="getLineTop(I)I" />
+		<method name="getLineVisibleEnd(I)I" />
+		<method name="getLineWidth(I)F" />
+		<method name="getOffsetForHorizontal(IF)I" />
+		<method name="getOffsetToLeftOf(I)I" />
+		<method name="getOffsetToRightOf(I)I" />
+		<method name="getPaint()Landroid/text/TextPaint;" />
+		<method name="getParagraphAlignment(I)Landroid/text/Layout$Alignment;" />
+		<method name="getParagraphDirection(I)I" />
+		<method name="getParagraphLeft(I)I" />
+		<method name="getParagraphRight(I)I" />
+		<method name="getPrimaryHorizontal(I)F" />
+		<method name="getSecondaryHorizontal(I)F" />
+		<method name="getSelectionPath(IILandroid/graphics/Path;)V" />
+		<method name="getSpacingAdd()F" />
+		<method name="getSpacingMultiplier()F" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="getTopPadding()I" />
+		<method name="getWidth()I" />
+		<method name="increaseWidthTo(I)V" />
+		<method name="isRtlCharAt(I)Z" since="14" />
+		<method name="isSpanned()Z" />
+		<field name="DIR_LEFT_TO_RIGHT" />
+		<field name="DIR_RIGHT_TO_LEFT" />
+	</class>
+	<class name="android/text/Layout$Alignment" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/text/Layout$Alignment;" />
+		<method name="values()[Landroid/text/Layout$Alignment;" />
+		<field name="ALIGN_CENTER" />
+		<field name="ALIGN_NORMAL" />
+		<field name="ALIGN_OPPOSITE" />
+	</class>
+	<class name="android/text/Layout$Directions" since="1">
+		<extends name="java/lang/Object" />
+	</class>
+	<class name="android/text/LoginFilter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/InputFilter" />
+		<method name="filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;" />
+		<method name="isAllowed(C)Z" />
+		<method name="onInvalidCharacter(C)V" />
+		<method name="onStart()V" />
+		<method name="onStop()V" />
+	</class>
+	<class name="android/text/LoginFilter$PasswordFilterGMail" since="1">
+		<extends name="android/text/LoginFilter" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="isAllowed(C)Z" />
+	</class>
+	<class name="android/text/LoginFilter$UsernameFilterGMail" since="1">
+		<extends name="android/text/LoginFilter" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="isAllowed(C)Z" />
+	</class>
+	<class name="android/text/LoginFilter$UsernameFilterGeneric" since="1">
+		<extends name="android/text/LoginFilter" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="isAllowed(C)Z" />
+	</class>
+	<class name="android/text/NoCopySpan" since="3">
+	</class>
+	<class name="android/text/NoCopySpan$Concrete" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/NoCopySpan" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="android/text/ParcelableSpan" since="3">
+		<implements name="android/os/Parcelable" />
+		<method name="getSpanTypeId()I" />
+	</class>
+	<class name="android/text/Selection" since="1">
+		<extends name="java/lang/Object" />
+		<method name="extendDown(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="extendLeft(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="extendRight(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="extendSelection(Landroid/text/Spannable;I)V" />
+		<method name="extendToLeftEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="extendToRightEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="extendUp(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="getSelectionEnd(Ljava/lang/CharSequence;)I" />
+		<method name="getSelectionStart(Ljava/lang/CharSequence;)I" />
+		<method name="moveDown(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="moveLeft(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="moveRight(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="moveToLeftEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="moveToRightEdge(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="moveUp(Landroid/text/Spannable;Landroid/text/Layout;)Z" />
+		<method name="removeSelection(Landroid/text/Spannable;)V" />
+		<method name="selectAll(Landroid/text/Spannable;)V" />
+		<method name="setSelection(Landroid/text/Spannable;I)V" />
+		<method name="setSelection(Landroid/text/Spannable;II)V" />
+		<field name="SELECTION_END" />
+		<field name="SELECTION_START" />
+	</class>
+	<class name="android/text/SpanWatcher" since="1">
+		<implements name="android/text/NoCopySpan" since="3" />
+		<method name="onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
+		<method name="onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V" />
+		<method name="onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
+	</class>
+	<class name="android/text/Spannable" since="1">
+		<implements name="android/text/Spanned" />
+		<method name="removeSpan(Ljava/lang/Object;)V" />
+		<method name="setSpan(Ljava/lang/Object;III)V" />
+	</class>
+	<class name="android/text/Spannable$Factory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getInstance()Landroid/text/Spannable$Factory;" />
+		<method name="newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable;" />
+	</class>
+	<class name="android/text/SpannableString" since="1">
+		<extends name="android/text/SpannableStringInternal" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="android/text/GetChars" />
+		<implements name="android/text/Spannable" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
+		<method name="removeSpan(Ljava/lang/Object;)V" />
+		<method name="setSpan(Ljava/lang/Object;III)V" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableString;" />
+	</class>
+	<class name="android/text/SpannableStringBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Appendable" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="android/text/Editable" />
+		<implements name="android/text/GetChars" />
+		<implements name="android/text/Spannable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;II)V" />
+		<method name="append(C)Landroid/text/SpannableStringBuilder;" />
+		<method name="append(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
+		<method name="append(Ljava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;" />
+		<method name="charAt(I)C" />
+		<method name="clear()V" />
+		<method name="clearSpans()V" />
+		<method name="delete(II)Landroid/text/SpannableStringBuilder;" />
+		<method name="getChars(II[CI)V" />
+		<method name="getFilters()[Landroid/text/InputFilter;" />
+		<method name="getSpanEnd(Ljava/lang/Object;)I" />
+		<method name="getSpanFlags(Ljava/lang/Object;)I" />
+		<method name="getSpanStart(Ljava/lang/Object;)I" />
+		<method name="getSpans(IILjava/lang/Class;)[LT;" />
+		<method name="getTextRunCursor(IIIIILandroid/graphics/Paint;)I" since="11" />
+		<method name="insert(ILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
+		<method name="insert(ILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;" />
+		<method name="length()I" />
+		<method name="nextSpanTransition(IILjava/lang/Class;)I" />
+		<method name="removeSpan(Ljava/lang/Object;)V" />
+		<method name="replace(IILjava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
+		<method name="replace(IILjava/lang/CharSequence;II)Landroid/text/SpannableStringBuilder;" />
+		<method name="setFilters([Landroid/text/InputFilter;)V" />
+		<method name="setSpan(Ljava/lang/Object;III)V" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannableStringBuilder;" />
+	</class>
+	<class name="android/text/SpannableStringInternal" since="1">
+		<extends name="java/lang/Object" />
+		<method name="charAt(I)C" />
+		<method name="getChars(II[CI)V" />
+		<method name="getSpanEnd(Ljava/lang/Object;)I" />
+		<method name="getSpanFlags(Ljava/lang/Object;)I" />
+		<method name="getSpanStart(Ljava/lang/Object;)I" />
+		<method name="getSpans(IILjava/lang/Class;)[LT;" />
+		<method name="length()I" />
+		<method name="nextSpanTransition(IILjava/lang/Class;)I" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="android/text/Spanned" since="1">
+		<implements name="java/lang/CharSequence" />
+		<method name="getSpanEnd(Ljava/lang/Object;)I" />
+		<method name="getSpanFlags(Ljava/lang/Object;)I" />
+		<method name="getSpanStart(Ljava/lang/Object;)I" />
+		<method name="getSpans(IILjava/lang/Class;)[LT;" />
+		<method name="nextSpanTransition(IILjava/lang/Class;)I" />
+		<field name="SPAN_COMPOSING" since="3" />
+		<field name="SPAN_EXCLUSIVE_EXCLUSIVE" />
+		<field name="SPAN_EXCLUSIVE_INCLUSIVE" />
+		<field name="SPAN_INCLUSIVE_EXCLUSIVE" />
+		<field name="SPAN_INCLUSIVE_INCLUSIVE" />
+		<field name="SPAN_INTERMEDIATE" since="3" />
+		<field name="SPAN_MARK_MARK" />
+		<field name="SPAN_MARK_POINT" />
+		<field name="SPAN_PARAGRAPH" />
+		<field name="SPAN_POINT_MARK" />
+		<field name="SPAN_POINT_MARK_MASK" since="3" />
+		<field name="SPAN_POINT_POINT" />
+		<field name="SPAN_PRIORITY" />
+		<field name="SPAN_PRIORITY_SHIFT" />
+		<field name="SPAN_USER" />
+		<field name="SPAN_USER_SHIFT" />
+	</class>
+	<class name="android/text/SpannedString" since="1">
+		<extends name="android/text/SpannableStringInternal" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="android/text/GetChars" />
+		<implements name="android/text/Spanned" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="valueOf(Ljava/lang/CharSequence;)Landroid/text/SpannedString;" />
+	</class>
+	<class name="android/text/StaticLayout" since="1">
+		<extends name="android/text/Layout" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V" />
+		<method name="getBottomPadding()I" />
+		<method name="getEllipsisCount(I)I" />
+		<method name="getEllipsisStart(I)I" />
+		<method name="getLineContainsTab(I)Z" />
+		<method name="getLineCount()I" />
+		<method name="getLineDescent(I)I" />
+		<method name="getLineDirections(I)Landroid/text/Layout$Directions;" />
+		<method name="getLineStart(I)I" />
+		<method name="getLineTop(I)I" />
+		<method name="getParagraphDirection(I)I" />
+		<method name="getTopPadding()I" />
+	</class>
+	<class name="android/text/TextPaint" since="1">
+		<extends name="android/graphics/Paint" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/graphics/Paint;)V" />
+		<method name="set(Landroid/text/TextPaint;)V" />
+		<field name="baselineShift" />
+		<field name="bgColor" />
+		<field name="density" since="5" />
+		<field name="drawableState" />
+		<field name="linkColor" />
+	</class>
+	<class name="android/text/TextUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="commaEllipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLjava/lang/String;Ljava/lang/String;)Ljava/lang/CharSequence;" />
+		<method name="concat([Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="copySpansFrom(Landroid/text/Spanned;IILjava/lang/Class;Landroid/text/Spannable;I)V" />
+		<method name="dumpSpans(Ljava/lang/CharSequence;Landroid/util/Printer;Ljava/lang/String;)V" since="3" />
+		<method name="ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;)Ljava/lang/CharSequence;" />
+		<method name="ellipsize(Ljava/lang/CharSequence;Landroid/text/TextPaint;FLandroid/text/TextUtils$TruncateAt;ZLandroid/text/TextUtils$EllipsizeCallback;)Ljava/lang/CharSequence;" />
+		<method name="equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z" />
+		<method name="expandTemplate(Ljava/lang/CharSequence;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="getCapsMode(Ljava/lang/CharSequence;II)I" since="3" />
+		<method name="getChars(Ljava/lang/CharSequence;II[CI)V" />
+		<method name="getOffsetAfter(Ljava/lang/CharSequence;I)I" />
+		<method name="getOffsetBefore(Ljava/lang/CharSequence;I)I" />
+		<method name="getReverse(Ljava/lang/CharSequence;II)Ljava/lang/CharSequence;" />
+		<method name="getTrimmedLength(Ljava/lang/CharSequence;)I" />
+		<method name="htmlEncode(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="indexOf(Ljava/lang/CharSequence;C)I" />
+		<method name="indexOf(Ljava/lang/CharSequence;CI)I" />
+		<method name="indexOf(Ljava/lang/CharSequence;CII)I" />
+		<method name="indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)I" />
+		<method name="indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;I)I" />
+		<method name="indexOf(Ljava/lang/CharSequence;Ljava/lang/CharSequence;II)I" />
+		<method name="isDigitsOnly(Ljava/lang/CharSequence;)Z" />
+		<method name="isEmpty(Ljava/lang/CharSequence;)Z" />
+		<method name="isGraphic(C)Z" />
+		<method name="isGraphic(Ljava/lang/CharSequence;)Z" />
+		<method name="join(Ljava/lang/CharSequence;Ljava/lang/Iterable;)Ljava/lang/String;" />
+		<method name="join(Ljava/lang/CharSequence;[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="lastIndexOf(Ljava/lang/CharSequence;C)I" />
+		<method name="lastIndexOf(Ljava/lang/CharSequence;CI)I" />
+		<method name="lastIndexOf(Ljava/lang/CharSequence;CII)I" />
+		<method name="regionMatches(Ljava/lang/CharSequence;ILjava/lang/CharSequence;II)Z" />
+		<method name="replace(Ljava/lang/CharSequence;[Ljava/lang/String;[Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="split(Ljava/lang/String;Ljava/util/regex/Pattern;)[Ljava/lang/String;" />
+		<method name="stringOrSpannedString(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="substring(Ljava/lang/CharSequence;II)Ljava/lang/String;" />
+		<method name="writeToParcel(Ljava/lang/CharSequence;Landroid/os/Parcel;I)V" />
+		<field name="CAP_MODE_CHARACTERS" since="3" />
+		<field name="CAP_MODE_SENTENCES" since="3" />
+		<field name="CAP_MODE_WORDS" since="3" />
+		<field name="CHAR_SEQUENCE_CREATOR" />
+	</class>
+	<class name="android/text/TextUtils$EllipsizeCallback" since="1">
+		<method name="ellipsized(II)V" />
+	</class>
+	<class name="android/text/TextUtils$SimpleStringSplitter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Iterator" />
+		<implements name="android/text/TextUtils$StringSplitter" />
+		<method name="&lt;init>(C)V" />
+		<method name="hasNext()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="next()Ljava/lang/String;" />
+		<method name="remove()V" />
+		<method name="setString(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/text/TextUtils$StringSplitter" since="1">
+		<implements name="java/lang/Iterable" />
+		<method name="setString(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/text/TextUtils$TruncateAt" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/text/TextUtils$TruncateAt;" />
+		<method name="values()[Landroid/text/TextUtils$TruncateAt;" />
+		<field name="END" />
+		<field name="MARQUEE" since="2" />
+		<field name="MIDDLE" />
+		<field name="START" />
+	</class>
+	<class name="android/text/TextWatcher" since="1">
+		<implements name="android/text/NoCopySpan" since="3" />
+		<method name="afterTextChanged(Landroid/text/Editable;)V" />
+		<method name="beforeTextChanged(Ljava/lang/CharSequence;III)V" />
+		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
+	</class>
+	<class name="android/text/format/DateFormat" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="format(Ljava/lang/CharSequence;J)Ljava/lang/CharSequence;" />
+		<method name="format(Ljava/lang/CharSequence;Ljava/util/Calendar;)Ljava/lang/CharSequence;" />
+		<method name="format(Ljava/lang/CharSequence;Ljava/util/Date;)Ljava/lang/CharSequence;" />
+		<method name="getDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
+		<method name="getDateFormatOrder(Landroid/content/Context;)[C" />
+		<method name="getLongDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
+		<method name="getMediumDateFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
+		<method name="getTimeFormat(Landroid/content/Context;)Ljava/text/DateFormat;" />
+		<method name="is24HourFormat(Landroid/content/Context;)Z" />
+		<field name="AM_PM" />
+		<field name="CAPITAL_AM_PM" />
+		<field name="DATE" />
+		<field name="DAY" />
+		<field name="HOUR" />
+		<field name="HOUR_OF_DAY" />
+		<field name="MINUTE" />
+		<field name="MONTH" />
+		<field name="QUOTE" />
+		<field name="SECONDS" />
+		<field name="TIME_ZONE" />
+		<field name="YEAR" />
+	</class>
+	<class name="android/text/format/DateUtils" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="formatDateRange(Landroid/content/Context;JJI)Ljava/lang/String;" />
+		<method name="formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJI)Ljava/util/Formatter;" since="5" />
+		<method name="formatDateRange(Landroid/content/Context;Ljava/util/Formatter;JJILjava/lang/String;)Ljava/util/Formatter;" since="9" />
+		<method name="formatDateTime(Landroid/content/Context;JI)Ljava/lang/String;" />
+		<method name="formatElapsedTime(J)Ljava/lang/String;" />
+		<method name="formatElapsedTime(Ljava/lang/StringBuilder;J)Ljava/lang/String;" />
+		<method name="formatSameDayTime(JJII)Ljava/lang/CharSequence;" />
+		<method name="getAMPMString(I)Ljava/lang/String;" />
+		<method name="getDayOfWeekString(II)Ljava/lang/String;" />
+		<method name="getMonthString(II)Ljava/lang/String;" />
+		<method name="getRelativeDateTimeString(Landroid/content/Context;JJJI)Ljava/lang/CharSequence;" />
+		<method name="getRelativeTimeSpanString(J)Ljava/lang/CharSequence;" />
+		<method name="getRelativeTimeSpanString(JJJ)Ljava/lang/CharSequence;" />
+		<method name="getRelativeTimeSpanString(JJJI)Ljava/lang/CharSequence;" />
+		<method name="getRelativeTimeSpanString(Landroid/content/Context;J)Ljava/lang/CharSequence;" />
+		<method name="getRelativeTimeSpanString(Landroid/content/Context;JZ)Ljava/lang/CharSequence;" />
+		<method name="isToday(J)Z" />
+		<field name="ABBREV_MONTH_FORMAT" />
+		<field name="ABBREV_WEEKDAY_FORMAT" />
+		<field name="DAY_IN_MILLIS" />
+		<field name="FORMAT_12HOUR" />
+		<field name="FORMAT_24HOUR" />
+		<field name="FORMAT_ABBREV_ALL" />
+		<field name="FORMAT_ABBREV_MONTH" />
+		<field name="FORMAT_ABBREV_RELATIVE" />
+		<field name="FORMAT_ABBREV_TIME" />
+		<field name="FORMAT_ABBREV_WEEKDAY" />
+		<field name="FORMAT_CAP_AMPM" />
+		<field name="FORMAT_CAP_MIDNIGHT" />
+		<field name="FORMAT_CAP_NOON" />
+		<field name="FORMAT_CAP_NOON_MIDNIGHT" />
+		<field name="FORMAT_NO_MIDNIGHT" />
+		<field name="FORMAT_NO_MONTH_DAY" />
+		<field name="FORMAT_NO_NOON" />
+		<field name="FORMAT_NO_NOON_MIDNIGHT" />
+		<field name="FORMAT_NO_YEAR" />
+		<field name="FORMAT_NUMERIC_DATE" />
+		<field name="FORMAT_SHOW_DATE" />
+		<field name="FORMAT_SHOW_TIME" />
+		<field name="FORMAT_SHOW_WEEKDAY" />
+		<field name="FORMAT_SHOW_YEAR" />
+		<field name="FORMAT_UTC" />
+		<field name="HOUR_IN_MILLIS" />
+		<field name="HOUR_MINUTE_24" />
+		<field name="LENGTH_LONG" />
+		<field name="LENGTH_MEDIUM" />
+		<field name="LENGTH_SHORT" />
+		<field name="LENGTH_SHORTER" />
+		<field name="LENGTH_SHORTEST" />
+		<field name="MINUTE_IN_MILLIS" />
+		<field name="MONTH_DAY_FORMAT" />
+		<field name="MONTH_FORMAT" />
+		<field name="NUMERIC_MONTH_FORMAT" />
+		<field name="SECOND_IN_MILLIS" />
+		<field name="WEEKDAY_FORMAT" />
+		<field name="WEEK_IN_MILLIS" />
+		<field name="YEAR_FORMAT" />
+		<field name="YEAR_FORMAT_TWO_DIGITS" />
+		<field name="YEAR_IN_MILLIS" />
+		<field name="sameMonthTable" />
+		<field name="sameYearTable" />
+	</class>
+	<class name="android/text/format/Formatter" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="formatFileSize(Landroid/content/Context;J)Ljava/lang/String;" />
+		<method name="formatIpAddress(I)Ljava/lang/String;" />
+		<method name="formatShortFileSize(Landroid/content/Context;J)Ljava/lang/String;" since="5" />
+	</class>
+	<class name="android/text/format/Time" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/text/format/Time;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="after(Landroid/text/format/Time;)Z" />
+		<method name="before(Landroid/text/format/Time;)Z" />
+		<method name="clear(Ljava/lang/String;)V" />
+		<method name="compare(Landroid/text/format/Time;Landroid/text/format/Time;)I" />
+		<method name="format(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="format2445()Ljava/lang/String;" />
+		<method name="format3339(Z)Ljava/lang/String;" />
+		<method name="getActualMaximum(I)I" />
+		<method name="getCurrentTimezone()Ljava/lang/String;" />
+		<method name="getJulianDay(JJ)I" />
+		<method name="getJulianMondayFromWeeksSinceEpoch(I)I" since="11" />
+		<method name="getWeekNumber()I" />
+		<method name="getWeeksSinceEpochFromJulianDay(II)I" since="11" />
+		<method name="isEpoch(Landroid/text/format/Time;)Z" />
+		<method name="normalize(Z)J" />
+		<method name="parse(Ljava/lang/String;)Z" />
+		<method name="parse3339(Ljava/lang/String;)Z" />
+		<method name="set(III)V" />
+		<method name="set(IIIIII)V" />
+		<method name="set(J)V" />
+		<method name="set(Landroid/text/format/Time;)V" />
+		<method name="setJulianDay(I)J" />
+		<method name="setToNow()V" />
+		<method name="switchTimezone(Ljava/lang/String;)V" />
+		<method name="toMillis(Z)J" />
+		<field name="EPOCH_JULIAN_DAY" />
+		<field name="FRIDAY" />
+		<field name="HOUR" />
+		<field name="MINUTE" />
+		<field name="MONDAY" />
+		<field name="MONDAY_BEFORE_JULIAN_EPOCH" since="11" />
+		<field name="MONTH" />
+		<field name="MONTH_DAY" />
+		<field name="SATURDAY" />
+		<field name="SECOND" />
+		<field name="SUNDAY" />
+		<field name="THURSDAY" />
+		<field name="TIMEZONE_UTC" />
+		<field name="TUESDAY" />
+		<field name="WEDNESDAY" />
+		<field name="WEEK_DAY" />
+		<field name="WEEK_NUM" />
+		<field name="YEAR" />
+		<field name="YEAR_DAY" />
+		<field name="allDay" />
+		<field name="gmtoff" />
+		<field name="hour" />
+		<field name="isDst" />
+		<field name="minute" />
+		<field name="month" />
+		<field name="monthDay" />
+		<field name="second" />
+		<field name="timezone" />
+		<field name="weekDay" />
+		<field name="year" />
+		<field name="yearDay" />
+	</class>
+	<class name="android/text/method/ArrowKeyMovementMethod" since="1">
+		<extends name="java/lang/Object" />
+		<extends name="android/text/method/BaseMovementMethod" since="11" />
+		<implements name="android/text/method/MovementMethod" />
+		<method name="&lt;init>()V" />
+		<method name="canSelectArbitrarily()Z" />
+		<method name="getInstance()Landroid/text/method/MovementMethod;" />
+		<method name="initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V" />
+		<method name="onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyOther(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/KeyEvent;)Z" since="3" />
+		<method name="onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V" />
+		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/text/method/BaseKeyListener" since="1">
+		<extends name="android/text/method/MetaKeyKeyListener" />
+		<implements name="android/text/method/KeyListener" />
+		<method name="&lt;init>()V" />
+		<method name="backspace(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
+		<method name="forwardDelete(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" since="11" />
+		<method name="onKeyOther(Landroid/view/View;Landroid/text/Editable;Landroid/view/KeyEvent;)Z" since="3" />
+	</class>
+	<class name="android/text/method/BaseMovementMethod" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/method/MovementMethod" />
+		<method name="&lt;init>()V" />
+		<method name="bottom(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="canSelectArbitrarily()Z" />
+		<method name="down(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="end(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="getMovementMetaState(Landroid/text/Spannable;Landroid/view/KeyEvent;)I" />
+		<method name="handleMovementKey(Landroid/widget/TextView;Landroid/text/Spannable;IILandroid/view/KeyEvent;)Z" />
+		<method name="home(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V" />
+		<method name="left(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="lineEnd(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="lineStart(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="onGenericMotionEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyOther(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/KeyEvent;)Z" />
+		<method name="onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V" />
+		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="pageDown(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="pageUp(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="right(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="top(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="up(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+	</class>
+	<class name="android/text/method/CharacterPickerDialog" since="1">
+		<extends name="android/app/Dialog" />
+		<implements name="android/widget/AdapterView$OnItemClickListener" />
+		<implements name="android/view/View$OnClickListener" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/View;Landroid/text/Editable;Ljava/lang/String;Z)V" />
+		<method name="onClick(Landroid/view/View;)V" />
+		<method name="onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V" />
+	</class>
+	<class name="android/text/method/DateKeyListener" since="1">
+		<extends name="android/text/method/NumberKeyListener" />
+		<method name="&lt;init>()V" />
+		<method name="getAcceptedChars()[C" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance()Landroid/text/method/DateKeyListener;" />
+		<field name="CHARACTERS" />
+	</class>
+	<class name="android/text/method/DateTimeKeyListener" since="1">
+		<extends name="android/text/method/NumberKeyListener" />
+		<method name="&lt;init>()V" />
+		<method name="getAcceptedChars()[C" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance()Landroid/text/method/DateTimeKeyListener;" />
+		<field name="CHARACTERS" />
+	</class>
+	<class name="android/text/method/DialerKeyListener" since="1">
+		<extends name="android/text/method/NumberKeyListener" />
+		<method name="&lt;init>()V" />
+		<method name="getAcceptedChars()[C" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance()Landroid/text/method/DialerKeyListener;" />
+		<field name="CHARACTERS" />
+	</class>
+	<class name="android/text/method/DigitsKeyListener" since="1">
+		<extends name="android/text/method/NumberKeyListener" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(ZZ)V" />
+		<method name="getAcceptedChars()[C" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance()Landroid/text/method/DigitsKeyListener;" />
+		<method name="getInstance(Ljava/lang/String;)Landroid/text/method/DigitsKeyListener;" />
+		<method name="getInstance(ZZ)Landroid/text/method/DigitsKeyListener;" />
+	</class>
+	<class name="android/text/method/HideReturnsTransformationMethod" since="1">
+		<extends name="android/text/method/ReplacementTransformationMethod" />
+		<method name="&lt;init>()V" />
+		<method name="getInstance()Landroid/text/method/HideReturnsTransformationMethod;" />
+		<method name="getOriginal()[C" />
+		<method name="getReplacement()[C" />
+	</class>
+	<class name="android/text/method/KeyListener" since="1">
+		<method name="clearMetaKeyState(Landroid/view/View;Landroid/text/Editable;I)V" since="3" />
+		<method name="getInputType()I" since="3" />
+		<method name="onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyOther(Landroid/view/View;Landroid/text/Editable;Landroid/view/KeyEvent;)Z" since="3" />
+		<method name="onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
+	</class>
+	<class name="android/text/method/LinkMovementMethod" since="1">
+		<extends name="android/text/method/ScrollingMovementMethod" />
+		<method name="&lt;init>()V" />
+		<method name="getInstance()Landroid/text/method/MovementMethod;" />
+	</class>
+	<class name="android/text/method/MetaKeyKeyListener" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="adjustMetaAfterKeypress(J)J" since="3" />
+		<method name="adjustMetaAfterKeypress(Landroid/text/Spannable;)V" />
+		<method name="clearMetaKeyState(JI)J" since="3" />
+		<method name="clearMetaKeyState(Landroid/text/Editable;I)V" since="3" />
+		<method name="clearMetaKeyState(Landroid/view/View;Landroid/text/Editable;I)V" since="3" />
+		<method name="getMetaState(J)I" since="3" />
+		<method name="getMetaState(JI)I" since="3" />
+		<method name="getMetaState(Ljava/lang/CharSequence;)I" />
+		<method name="getMetaState(Ljava/lang/CharSequence;I)I" />
+		<method name="handleKeyDown(JILandroid/view/KeyEvent;)J" since="3" />
+		<method name="handleKeyUp(JILandroid/view/KeyEvent;)J" since="3" />
+		<method name="isMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z" />
+		<method name="isSelectingMetaTracker(Ljava/lang/CharSequence;Ljava/lang/Object;)Z" since="3" />
+		<method name="onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z" />
+		<method name="resetLockedMeta(J)J" since="3" />
+		<method name="resetLockedMeta(Landroid/text/Spannable;)V" />
+		<method name="resetMetaState(Landroid/text/Spannable;)V" />
+		<field name="META_ALT_LOCKED" />
+		<field name="META_ALT_ON" />
+		<field name="META_CAP_LOCKED" />
+		<field name="META_SHIFT_ON" />
+		<field name="META_SYM_LOCKED" />
+		<field name="META_SYM_ON" />
+	</class>
+	<class name="android/text/method/MovementMethod" since="1">
+		<method name="canSelectArbitrarily()Z" />
+		<method name="initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V" />
+		<method name="onGenericMotionEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyOther(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/KeyEvent;)Z" since="3" />
+		<method name="onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V" />
+		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/text/method/MultiTapKeyListener" since="1">
+		<extends name="android/text/method/BaseKeyListener" />
+		<implements name="android/text/SpanWatcher" />
+		<method name="&lt;init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/MultiTapKeyListener;" />
+		<method name="onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
+		<method name="onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V" />
+		<method name="onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
+	</class>
+	<class name="android/text/method/NumberKeyListener" since="1">
+		<extends name="android/text/method/BaseKeyListener" />
+		<implements name="android/text/InputFilter" />
+		<method name="&lt;init>()V" />
+		<method name="filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;" />
+		<method name="getAcceptedChars()[C" />
+		<method name="lookup(Landroid/view/KeyEvent;Landroid/text/Spannable;)I" />
+		<method name="ok([CC)Z" />
+	</class>
+	<class name="android/text/method/PasswordTransformationMethod" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/TextWatcher" />
+		<implements name="android/text/method/TransformationMethod" />
+		<method name="&lt;init>()V" />
+		<method name="afterTextChanged(Landroid/text/Editable;)V" />
+		<method name="beforeTextChanged(Ljava/lang/CharSequence;III)V" />
+		<method name="getInstance()Landroid/text/method/PasswordTransformationMethod;" />
+		<method name="getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;" />
+		<method name="onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V" />
+		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
+	</class>
+	<class name="android/text/method/QwertyKeyListener" since="1">
+		<extends name="android/text/method/BaseKeyListener" />
+		<method name="&lt;init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/QwertyKeyListener;" />
+		<method name="getInstanceForFullKeyboard()Landroid/text/method/QwertyKeyListener;" since="11" />
+		<method name="markAsReplaced(Landroid/text/Spannable;IILjava/lang/String;)V" />
+	</class>
+	<class name="android/text/method/ReplacementTransformationMethod" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/method/TransformationMethod" />
+		<method name="&lt;init>()V" />
+		<method name="getOriginal()[C" />
+		<method name="getReplacement()[C" />
+		<method name="getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;" />
+		<method name="onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V" />
+	</class>
+	<class name="android/text/method/ScrollingMovementMethod" since="1">
+		<extends name="java/lang/Object" />
+		<extends name="android/text/method/BaseMovementMethod" since="11" />
+		<implements name="android/text/method/MovementMethod" />
+		<method name="&lt;init>()V" />
+		<method name="canSelectArbitrarily()Z" />
+		<method name="down(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="getInstance()Landroid/text/method/MovementMethod;" />
+		<method name="initialize(Landroid/widget/TextView;Landroid/text/Spannable;)V" />
+		<method name="left(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="onKeyDown(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyOther(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/KeyEvent;)Z" since="3" />
+		<method name="onKeyUp(Landroid/widget/TextView;Landroid/text/Spannable;ILandroid/view/KeyEvent;)Z" />
+		<method name="onTakeFocus(Landroid/widget/TextView;Landroid/text/Spannable;I)V" />
+		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="right(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+		<method name="up(Landroid/widget/TextView;Landroid/text/Spannable;)Z" />
+	</class>
+	<class name="android/text/method/SingleLineTransformationMethod" since="1">
+		<extends name="android/text/method/ReplacementTransformationMethod" />
+		<method name="&lt;init>()V" />
+		<method name="getInstance()Landroid/text/method/SingleLineTransformationMethod;" />
+		<method name="getOriginal()[C" />
+		<method name="getReplacement()[C" />
+	</class>
+	<class name="android/text/method/TextKeyListener" since="1">
+		<extends name="android/text/method/BaseKeyListener" />
+		<implements name="android/text/SpanWatcher" />
+		<method name="&lt;init>(Landroid/text/method/TextKeyListener$Capitalize;Z)V" />
+		<method name="clear(Landroid/text/Editable;)V" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance()Landroid/text/method/TextKeyListener;" />
+		<method name="getInstance(ZLandroid/text/method/TextKeyListener$Capitalize;)Landroid/text/method/TextKeyListener;" />
+		<method name="onSpanAdded(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
+		<method name="onSpanChanged(Landroid/text/Spannable;Ljava/lang/Object;IIII)V" />
+		<method name="onSpanRemoved(Landroid/text/Spannable;Ljava/lang/Object;II)V" />
+		<method name="release()V" />
+		<method name="shouldCap(Landroid/text/method/TextKeyListener$Capitalize;Ljava/lang/CharSequence;I)Z" />
+	</class>
+	<class name="android/text/method/TextKeyListener$Capitalize" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/text/method/TextKeyListener$Capitalize;" />
+		<method name="values()[Landroid/text/method/TextKeyListener$Capitalize;" />
+		<field name="CHARACTERS" />
+		<field name="NONE" />
+		<field name="SENTENCES" />
+		<field name="WORDS" />
+	</class>
+	<class name="android/text/method/TimeKeyListener" since="1">
+		<extends name="android/text/method/NumberKeyListener" />
+		<method name="&lt;init>()V" />
+		<method name="getAcceptedChars()[C" />
+		<method name="getInputType()I" since="3" />
+		<method name="getInstance()Landroid/text/method/TimeKeyListener;" />
+		<field name="CHARACTERS" />
+	</class>
+	<class name="android/text/method/Touch" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getInitialScrollX(Landroid/widget/TextView;Landroid/text/Spannable;)I" since="3" />
+		<method name="getInitialScrollY(Landroid/widget/TextView;Landroid/text/Spannable;)I" since="3" />
+		<method name="onTouchEvent(Landroid/widget/TextView;Landroid/text/Spannable;Landroid/view/MotionEvent;)Z" />
+		<method name="scrollTo(Landroid/widget/TextView;Landroid/text/Layout;II)V" />
+	</class>
+	<class name="android/text/method/TransformationMethod" since="1">
+		<method name="getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;" />
+		<method name="onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V" />
+	</class>
+	<class name="android/text/style/AbsoluteSizeSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IZ)V" since="5" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getDip()Z" since="5" />
+		<method name="getSize()I" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/AlignmentSpan" since="1">
+		<implements name="android/text/style/ParagraphStyle" />
+		<method name="getAlignment()Landroid/text/Layout$Alignment;" />
+	</class>
+	<class name="android/text/style/AlignmentSpan$Standard" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/AlignmentSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="&lt;init>(Landroid/text/Layout$Alignment;)V" />
+		<method name="describeContents()I" since="3" />
+		<method name="getAlignment()Landroid/text/Layout$Alignment;" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/BackgroundColorSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getBackgroundColor()I" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/BulletSpan" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/LeadingMarginSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
+		<method name="getLeadingMargin(Z)I" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+		<field name="STANDARD_GAP_WIDTH" />
+	</class>
+	<class name="android/text/style/CharacterStyle" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getUnderlying()Landroid/text/style/CharacterStyle;" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="wrap(Landroid/text/style/CharacterStyle;)Landroid/text/style/CharacterStyle;" />
+	</class>
+	<class name="android/text/style/ClickableSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="onClick(Landroid/view/View;)V" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+	</class>
+	<class name="android/text/style/DrawableMarginSpan" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/LeadingMarginSpan" />
+		<implements name="android/text/style/LineHeightSpan" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;I)V" />
+		<method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V" />
+		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
+		<method name="getLeadingMargin(Z)I" />
+	</class>
+	<class name="android/text/style/DynamicDrawableSpan" since="1">
+		<extends name="android/text/style/ReplacementSpan" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" since="3" />
+		<method name="draw(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIFIIILandroid/graphics/Paint;)V" />
+		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getSize(Landroid/graphics/Paint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)I" />
+		<method name="getVerticalAlignment()I" since="3" />
+		<field name="ALIGN_BASELINE" since="3" />
+		<field name="ALIGN_BOTTOM" since="3" />
+		<field name="mVerticalAlignment" since="3" />
+	</class>
+	<class name="android/text/style/EasyEditSpan" since="14">
+		<implements name="android/text/ParcelableSpan" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="getSpanTypeId()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+	</class>
+	<class name="android/text/style/ForegroundColorSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getForegroundColor()I" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/IconMarginSpan" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/LeadingMarginSpan" />
+		<implements name="android/text/style/LineHeightSpan" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;I)V" />
+		<method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V" />
+		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
+		<method name="getLeadingMargin(Z)I" />
+	</class>
+	<class name="android/text/style/ImageSpan" since="1">
+		<extends name="android/text/style/DynamicDrawableSpan" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;II)V" since="3" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/graphics/Bitmap;)V" since="4" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/graphics/Bitmap;I)V" since="4" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/net/Uri;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/net/Uri;I)V" since="3" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;)V" />
+		<method name="&lt;init>(Landroid/graphics/Bitmap;I)V" since="3" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;I)V" since="3" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Landroid/graphics/drawable/Drawable;Ljava/lang/String;I)V" since="3" />
+		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getSource()Ljava/lang/String;" />
+	</class>
+	<class name="android/text/style/LeadingMarginSpan" since="1">
+		<implements name="android/text/style/ParagraphStyle" />
+		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
+		<method name="getLeadingMargin(Z)I" />
+	</class>
+	<class name="android/text/style/LeadingMarginSpan$LeadingMarginSpan2" since="8">
+		<implements name="android/text/style/LeadingMarginSpan" />
+		<implements name="android/text/style/WrapTogetherSpan" />
+		<method name="getLeadingMarginLineCount()I" />
+	</class>
+	<class name="android/text/style/LeadingMarginSpan$Standard" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/LeadingMarginSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
+		<method name="getLeadingMargin(Z)I" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/LineBackgroundSpan" since="1">
+		<implements name="android/text/style/ParagraphStyle" />
+		<method name="drawBackground(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;III)V" />
+	</class>
+	<class name="android/text/style/LineHeightSpan" since="1">
+		<implements name="android/text/style/ParagraphStyle" />
+		<implements name="android/text/style/WrapTogetherSpan" />
+		<method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V" />
+	</class>
+	<class name="android/text/style/LineHeightSpan$WithDensity" since="5">
+		<implements name="android/text/style/LineHeightSpan" />
+		<method name="chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V" />
+	</class>
+	<class name="android/text/style/MaskFilterSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>(Landroid/graphics/MaskFilter;)V" />
+		<method name="getMaskFilter()Landroid/graphics/MaskFilter;" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+	</class>
+	<class name="android/text/style/MetricAffectingSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/style/UpdateLayout" />
+		<method name="&lt;init>()V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+	</class>
+	<class name="android/text/style/ParagraphStyle" since="1">
+	</class>
+	<class name="android/text/style/QuoteSpan" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/LeadingMarginSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="drawLeadingMargin(Landroid/graphics/Canvas;Landroid/graphics/Paint;IIIIILjava/lang/CharSequence;IIZLandroid/text/Layout;)V" />
+		<method name="getColor()I" />
+		<method name="getLeadingMargin(Z)I" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/RasterizerSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>(Landroid/graphics/Rasterizer;)V" />
+		<method name="getRasterizer()Landroid/graphics/Rasterizer;" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+	</class>
+	<class name="android/text/style/RelativeSizeSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSizeChange()F" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/ReplacementSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<method name="&lt;init>()V" />
+		<method name="draw(Landroid/graphics/Canvas;Ljava/lang/CharSequence;IIFIIILandroid/graphics/Paint;)V" />
+		<method name="getSize(Landroid/graphics/Paint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;)I" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+	</class>
+	<class name="android/text/style/ScaleXSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getScaleX()F" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/StrikethroughSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/StyleSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="getStyle()I" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/SubscriptSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/SuggestionSpan" since="14">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/ParcelableSpan" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/util/Locale;[Ljava/lang/String;ILjava/lang/Class;)V" />
+		<method name="&lt;init>(Landroid/content/Context;[Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/util/Locale;[Ljava/lang/String;I)V" />
+		<method name="describeContents()I" />
+		<method name="getFlags()I" />
+		<method name="getLocale()Ljava/lang/String;" />
+		<method name="getSpanTypeId()I" />
+		<method name="getSuggestions()[Ljava/lang/String;" />
+		<method name="setFlags(I)V" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_SUGGESTION_PICKED" />
+		<field name="CREATOR" />
+		<field name="FLAG_AUTO_CORRECTION" since="15" />
+		<field name="FLAG_EASY_CORRECT" />
+		<field name="FLAG_MISSPELLED" />
+		<field name="SUGGESTIONS_MAX_SIZE" />
+		<field name="SUGGESTION_SPAN_PICKED_AFTER" />
+		<field name="SUGGESTION_SPAN_PICKED_BEFORE" />
+		<field name="SUGGESTION_SPAN_PICKED_HASHCODE" />
+	</class>
+	<class name="android/text/style/SuperscriptSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/TabStopSpan" since="1">
+		<implements name="android/text/style/ParagraphStyle" />
+		<method name="getTabStop()I" />
+	</class>
+	<class name="android/text/style/TabStopSpan$Standard" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/style/TabStopSpan" />
+		<method name="&lt;init>(I)V" />
+		<method name="getTabStop()I" />
+	</class>
+	<class name="android/text/style/TextAppearanceSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;II)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="&lt;init>(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V" />
+		<method name="describeContents()I" since="3" />
+		<method name="getFamily()Ljava/lang/String;" />
+		<method name="getLinkTextColor()Landroid/content/res/ColorStateList;" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="getTextColor()Landroid/content/res/ColorStateList;" />
+		<method name="getTextSize()I" />
+		<method name="getTextStyle()I" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/TypefaceSpan" since="1">
+		<extends name="android/text/style/MetricAffectingSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="describeContents()I" since="3" />
+		<method name="getFamily()Ljava/lang/String;" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="updateMeasureState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/URLSpan" since="1">
+		<extends name="android/text/style/ClickableSpan" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="getURL()Ljava/lang/String;" />
+		<method name="onClick(Landroid/view/View;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/UnderlineSpan" since="1">
+		<extends name="android/text/style/CharacterStyle" />
+		<implements name="android/text/ParcelableSpan" since="3" />
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" since="3" />
+		<method name="describeContents()I" since="3" />
+		<method name="getSpanTypeId()I" since="3" />
+		<method name="updateDrawState(Landroid/text/TextPaint;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" since="3" />
+	</class>
+	<class name="android/text/style/UpdateAppearance" since="3">
+	</class>
+	<class name="android/text/style/UpdateLayout" since="1">
+		<implements name="android/text/style/UpdateAppearance" since="3" />
+	</class>
+	<class name="android/text/style/WrapTogetherSpan" since="1">
+		<implements name="android/text/style/ParagraphStyle" />
+	</class>
+	<class name="android/text/util/Linkify" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addLinks(Landroid/text/Spannable;I)Z" />
+		<method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;)Z" />
+		<method name="addLinks(Landroid/text/Spannable;Ljava/util/regex/Pattern;Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)Z" />
+		<method name="addLinks(Landroid/widget/TextView;I)Z" />
+		<method name="addLinks(Landroid/widget/TextView;Ljava/util/regex/Pattern;Ljava/lang/String;)V" />
+		<method name="addLinks(Landroid/widget/TextView;Ljava/util/regex/Pattern;Ljava/lang/String;Landroid/text/util/Linkify$MatchFilter;Landroid/text/util/Linkify$TransformFilter;)V" />
+		<field name="ALL" />
+		<field name="EMAIL_ADDRESSES" />
+		<field name="MAP_ADDRESSES" />
+		<field name="PHONE_NUMBERS" />
+		<field name="WEB_URLS" />
+		<field name="sPhoneNumberMatchFilter" />
+		<field name="sPhoneNumberTransformFilter" />
+		<field name="sUrlMatchFilter" />
+	</class>
+	<class name="android/text/util/Linkify$MatchFilter" since="1">
+		<method name="acceptMatch(Ljava/lang/CharSequence;II)Z" />
+	</class>
+	<class name="android/text/util/Linkify$TransformFilter" since="1">
+		<method name="transformUrl(Ljava/util/regex/Matcher;Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="android/text/util/Rfc822Token" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getAddress()Ljava/lang/String;" />
+		<method name="getComment()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="quoteComment(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="quoteName(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="quoteNameIfNecessary(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="setAddress(Ljava/lang/String;)V" />
+		<method name="setComment(Ljava/lang/String;)V" />
+		<method name="setName(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/text/util/Rfc822Tokenizer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/widget/MultiAutoCompleteTextView$Tokenizer" />
+		<method name="&lt;init>()V" />
+		<method name="findTokenEnd(Ljava/lang/CharSequence;I)I" />
+		<method name="findTokenStart(Ljava/lang/CharSequence;I)I" />
+		<method name="terminateToken(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="tokenize(Ljava/lang/CharSequence;)[Landroid/text/util/Rfc822Token;" />
+		<method name="tokenize(Ljava/lang/CharSequence;Ljava/util/Collection;)V" since="8" />
+	</class>
+	<class name="android/util/AndroidException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="11" />
+	</class>
+	<class name="android/util/AndroidRuntimeException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="11" />
+	</class>
+	<class name="android/util/AttributeSet" since="1">
+		<method name="getAttributeBooleanValue(IZ)Z" />
+		<method name="getAttributeBooleanValue(Ljava/lang/String;Ljava/lang/String;Z)Z" />
+		<method name="getAttributeCount()I" />
+		<method name="getAttributeFloatValue(IF)F" />
+		<method name="getAttributeFloatValue(Ljava/lang/String;Ljava/lang/String;F)F" />
+		<method name="getAttributeIntValue(II)I" />
+		<method name="getAttributeIntValue(Ljava/lang/String;Ljava/lang/String;I)I" />
+		<method name="getAttributeListValue(I[Ljava/lang/String;I)I" />
+		<method name="getAttributeListValue(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;I)I" />
+		<method name="getAttributeName(I)Ljava/lang/String;" />
+		<method name="getAttributeNameResource(I)I" />
+		<method name="getAttributeResourceValue(II)I" />
+		<method name="getAttributeResourceValue(Ljava/lang/String;Ljava/lang/String;I)I" />
+		<method name="getAttributeUnsignedIntValue(II)I" />
+		<method name="getAttributeUnsignedIntValue(Ljava/lang/String;Ljava/lang/String;I)I" />
+		<method name="getAttributeValue(I)Ljava/lang/String;" />
+		<method name="getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getClassAttribute()Ljava/lang/String;" />
+		<method name="getIdAttribute()Ljava/lang/String;" />
+		<method name="getIdAttributeResourceValue(I)I" />
+		<method name="getPositionDescription()Ljava/lang/String;" />
+		<method name="getStyleAttribute()I" />
+	</class>
+	<class name="android/util/Base64" since="8">
+		<extends name="java/lang/Object" />
+		<method name="decode(Ljava/lang/String;I)[B" />
+		<method name="decode([BI)[B" />
+		<method name="decode([BIII)[B" />
+		<method name="encode([BI)[B" />
+		<method name="encode([BIII)[B" />
+		<method name="encodeToString([BI)Ljava/lang/String;" />
+		<method name="encodeToString([BIII)Ljava/lang/String;" />
+		<field name="CRLF" />
+		<field name="DEFAULT" />
+		<field name="NO_CLOSE" />
+		<field name="NO_PADDING" />
+		<field name="NO_WRAP" />
+		<field name="URL_SAFE" />
+	</class>
+	<class name="android/util/Base64DataException" since="11">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/Base64InputStream" since="8">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
+	</class>
+	<class name="android/util/Base64OutputStream" since="8">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;I)V" />
+	</class>
+	<class name="android/util/Config" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="DEBUG" />
+		<field name="LOGD" />
+		<field name="LOGV" />
+		<field name="PROFILE" />
+		<field name="RELEASE" />
+	</class>
+	<class name="android/util/DebugUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="isObjectSelected(Ljava/lang/Object;)Z" />
+	</class>
+	<class name="android/util/DisplayMetrics" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="setTo(Landroid/util/DisplayMetrics;)V" />
+		<method name="setToDefaults()V" />
+		<field name="DENSITY_DEFAULT" since="4" />
+		<field name="DENSITY_HIGH" since="4" />
+		<field name="DENSITY_LOW" since="4" />
+		<field name="DENSITY_MEDIUM" since="4" />
+		<field name="DENSITY_TV" since="13" />
+		<field name="DENSITY_XHIGH" since="9" />
+		<field name="density" />
+		<field name="densityDpi" since="4" />
+		<field name="heightPixels" />
+		<field name="scaledDensity" />
+		<field name="widthPixels" />
+		<field name="xdpi" />
+		<field name="ydpi" />
+	</class>
+	<class name="android/util/EventLog" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getTagCode(Ljava/lang/String;)I" />
+		<method name="getTagName(I)Ljava/lang/String;" />
+		<method name="readEvents([ILjava/util/Collection;)V" />
+		<method name="writeEvent(II)I" />
+		<method name="writeEvent(IJ)I" />
+		<method name="writeEvent(ILjava/lang/String;)I" />
+		<method name="writeEvent(I[Ljava/lang/Object;)I" />
+	</class>
+	<class name="android/util/EventLog$Event" since="8">
+		<extends name="java/lang/Object" />
+		<method name="getData()Ljava/lang/Object;" />
+		<method name="getProcessId()I" />
+		<method name="getTag()I" />
+		<method name="getThreadId()I" />
+		<method name="getTimeNanos()J" />
+	</class>
+	<class name="android/util/EventLogTags" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/BufferedReader;)V" />
+		<method name="get(I)Landroid/util/EventLogTags$Description;" />
+		<method name="get(Ljava/lang/String;)Landroid/util/EventLogTags$Description;" />
+	</class>
+	<class name="android/util/EventLogTags$Description" since="1">
+		<extends name="java/lang/Object" />
+		<field name="mName" />
+		<field name="mTag" />
+	</class>
+	<class name="android/util/FloatMath" since="1">
+		<extends name="java/lang/Object" />
+		<method name="ceil(F)F" />
+		<method name="cos(F)F" />
+		<method name="floor(F)F" />
+		<method name="sin(F)F" />
+		<method name="sqrt(F)F" />
+	</class>
+	<class name="android/util/JsonReader" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="beginArray()V" />
+		<method name="beginObject()V" />
+		<method name="close()V" />
+		<method name="endArray()V" />
+		<method name="endObject()V" />
+		<method name="hasNext()Z" />
+		<method name="isLenient()Z" />
+		<method name="nextBoolean()Z" />
+		<method name="nextDouble()D" />
+		<method name="nextInt()I" />
+		<method name="nextLong()J" />
+		<method name="nextName()Ljava/lang/String;" />
+		<method name="nextNull()V" />
+		<method name="nextString()Ljava/lang/String;" />
+		<method name="peek()Landroid/util/JsonToken;" />
+		<method name="setLenient(Z)V" />
+		<method name="skipValue()V" />
+	</class>
+	<class name="android/util/JsonToken" since="11">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/util/JsonToken;" />
+		<method name="values()[Landroid/util/JsonToken;" />
+		<field name="BEGIN_ARRAY" />
+		<field name="BEGIN_OBJECT" />
+		<field name="BOOLEAN" />
+		<field name="END_ARRAY" />
+		<field name="END_DOCUMENT" />
+		<field name="END_OBJECT" />
+		<field name="NAME" />
+		<field name="NULL" />
+		<field name="NUMBER" />
+		<field name="STRING" />
+	</class>
+	<class name="android/util/JsonWriter" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<method name="&lt;init>(Ljava/io/Writer;)V" />
+		<method name="beginArray()Landroid/util/JsonWriter;" />
+		<method name="beginObject()Landroid/util/JsonWriter;" />
+		<method name="close()V" />
+		<method name="endArray()Landroid/util/JsonWriter;" />
+		<method name="endObject()Landroid/util/JsonWriter;" />
+		<method name="flush()V" />
+		<method name="isLenient()Z" />
+		<method name="name(Ljava/lang/String;)Landroid/util/JsonWriter;" />
+		<method name="nullValue()Landroid/util/JsonWriter;" />
+		<method name="setIndent(Ljava/lang/String;)V" />
+		<method name="setLenient(Z)V" />
+		<method name="value(D)Landroid/util/JsonWriter;" />
+		<method name="value(J)Landroid/util/JsonWriter;" />
+		<method name="value(Ljava/lang/Number;)Landroid/util/JsonWriter;" />
+		<method name="value(Ljava/lang/String;)Landroid/util/JsonWriter;" />
+		<method name="value(Z)Landroid/util/JsonWriter;" />
+	</class>
+	<class name="android/util/Log" since="1">
+		<extends name="java/lang/Object" />
+		<method name="d(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="d(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
+		<method name="e(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
+		<method name="getStackTraceString(Ljava/lang/Throwable;)Ljava/lang/String;" />
+		<method name="i(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="i(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
+		<method name="isLoggable(Ljava/lang/String;I)Z" />
+		<method name="println(ILjava/lang/String;Ljava/lang/String;)I" />
+		<method name="v(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="v(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
+		<method name="w(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="w(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" />
+		<method name="w(Ljava/lang/String;Ljava/lang/Throwable;)I" />
+		<method name="wtf(Ljava/lang/String;Ljava/lang/String;)I" since="8" />
+		<method name="wtf(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I" since="8" />
+		<method name="wtf(Ljava/lang/String;Ljava/lang/Throwable;)I" since="8" />
+		<field name="ASSERT" />
+		<field name="DEBUG" />
+		<field name="ERROR" />
+		<field name="INFO" />
+		<field name="VERBOSE" />
+		<field name="WARN" />
+	</class>
+	<class name="android/util/LogPrinter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/util/Printer" />
+		<method name="&lt;init>(ILjava/lang/String;)V" />
+		<method name="println(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/LruCache" since="12">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="create(LK;)LV;" />
+		<method name="createCount()I" />
+		<method name="entryRemoved(ZLK;LV;LV;)V" />
+		<method name="evictAll()V" />
+		<method name="evictionCount()I" />
+		<method name="get(LK;)LV;" />
+		<method name="hitCount()I" />
+		<method name="maxSize()I" />
+		<method name="missCount()I" />
+		<method name="put(LK;LV;)LV;" />
+		<method name="putCount()I" />
+		<method name="remove(LK;)LV;" />
+		<method name="size()I" />
+		<method name="sizeOf(LK;LV;)I" />
+		<method name="snapshot()Ljava/util/Map;" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="android/util/MalformedJsonException" since="11">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/MonthDisplayHelper" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(III)V" />
+		<method name="getColumnOf(I)I" />
+		<method name="getDayAt(II)I" />
+		<method name="getDigitsForRow(I)[I" />
+		<method name="getFirstDayOfMonth()I" />
+		<method name="getMonth()I" />
+		<method name="getNumberOfDaysInMonth()I" />
+		<method name="getOffset()I" />
+		<method name="getRowOf(I)I" />
+		<method name="getWeekStartDay()I" />
+		<method name="getYear()I" />
+		<method name="isWithinCurrentMonth(II)Z" />
+		<method name="nextMonth()V" />
+		<method name="previousMonth()V" />
+	</class>
+	<class name="android/util/NoSuchPropertyException" since="14">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/Pair" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(LF;LS;)V" />
+		<method name="create(LA;LB;)Landroid/util/Pair;" />
+		<field name="first" />
+		<field name="second" />
+	</class>
+	<class name="android/util/Patterns" since="8">
+		<extends name="java/lang/Object" />
+		<method name="concatGroups(Ljava/util/regex/Matcher;)Ljava/lang/String;" />
+		<method name="digitsAndPlusOnly(Ljava/util/regex/Matcher;)Ljava/lang/String;" />
+		<field name="DOMAIN_NAME" />
+		<field name="EMAIL_ADDRESS" />
+		<field name="GOOD_IRI_CHAR" />
+		<field name="IP_ADDRESS" />
+		<field name="PHONE" />
+		<field name="TOP_LEVEL_DOMAIN" />
+		<field name="TOP_LEVEL_DOMAIN_STR" />
+		<field name="TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL" />
+		<field name="WEB_URL" />
+	</class>
+	<class name="android/util/PrintStreamPrinter" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/util/Printer" />
+		<method name="&lt;init>(Ljava/io/PrintStream;)V" />
+		<method name="println(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/PrintWriterPrinter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/util/Printer" />
+		<method name="&lt;init>(Ljava/io/PrintWriter;)V" />
+		<method name="println(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/Printer" since="1">
+		<method name="println(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/Property" since="14">
+		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
+		<method name="get(LT;)LV;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getType()Ljava/lang/Class;" />
+		<method name="isReadOnly()Z" />
+		<method name="of(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Landroid/util/Property;" />
+		<method name="set(LT;LV;)V" />
+	</class>
+	<class name="android/util/SparseArray" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="append(ILE;)V" />
+		<method name="clear()V" />
+		<method name="clone()Landroid/util/SparseArray;" since="14" />
+		<method name="delete(I)V" />
+		<method name="get(I)LE;" />
+		<method name="get(ILE;)LE;" />
+		<method name="indexOfKey(I)I" />
+		<method name="indexOfValue(LE;)I" />
+		<method name="keyAt(I)I" />
+		<method name="put(ILE;)V" />
+		<method name="remove(I)V" />
+		<method name="removeAt(I)V" since="11" />
+		<method name="setValueAt(ILE;)V" />
+		<method name="size()I" />
+		<method name="valueAt(I)LE;" />
+	</class>
+	<class name="android/util/SparseBooleanArray" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="append(IZ)V" />
+		<method name="clear()V" />
+		<method name="clone()Landroid/util/SparseBooleanArray;" since="14" />
+		<method name="delete(I)V" />
+		<method name="get(I)Z" />
+		<method name="get(IZ)Z" />
+		<method name="indexOfKey(I)I" />
+		<method name="indexOfValue(Z)I" />
+		<method name="keyAt(I)I" />
+		<method name="put(IZ)V" />
+		<method name="size()I" />
+		<method name="valueAt(I)Z" />
+	</class>
+	<class name="android/util/SparseIntArray" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" since="14" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="append(II)V" />
+		<method name="clear()V" />
+		<method name="clone()Landroid/util/SparseIntArray;" since="14" />
+		<method name="delete(I)V" />
+		<method name="get(I)I" />
+		<method name="get(II)I" />
+		<method name="indexOfKey(I)I" />
+		<method name="indexOfValue(I)I" />
+		<method name="keyAt(I)I" />
+		<method name="put(II)V" />
+		<method name="removeAt(I)V" since="3" />
+		<method name="size()I" />
+		<method name="valueAt(I)I" />
+	</class>
+	<class name="android/util/StateSet" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="dump([I)Ljava/lang/String;" />
+		<method name="isWildCard([I)Z" />
+		<method name="stateSetMatches([II)Z" />
+		<method name="stateSetMatches([I[I)Z" />
+		<method name="trimStateSet([II)[I" />
+		<field name="NOTHING" since="11" />
+		<field name="WILD_CARD" />
+	</class>
+	<class name="android/util/StringBuilderPrinter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/util/Printer" />
+		<method name="&lt;init>(Ljava/lang/StringBuilder;)V" />
+		<method name="println(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/TimeFormatException" since="1">
+		<extends name="java/lang/RuntimeException" />
+	</class>
+	<class name="android/util/TimeUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getTimeZone(IZJLjava/lang/String;)Ljava/util/TimeZone;" />
+		<method name="getTimeZoneDatabaseVersion()Ljava/lang/String;" since="3" />
+	</class>
+	<class name="android/util/TimingLogger" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="addSplit(Ljava/lang/String;)V" />
+		<method name="dumpToLog()V" />
+		<method name="reset()V" />
+		<method name="reset(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/util/TypedValue" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="applyDimension(IFLandroid/util/DisplayMetrics;)F" />
+		<method name="coerceToString()Ljava/lang/CharSequence;" />
+		<method name="coerceToString(II)Ljava/lang/String;" />
+		<method name="complexToDimension(ILandroid/util/DisplayMetrics;)F" />
+		<method name="complexToDimensionNoisy(ILandroid/util/DisplayMetrics;)F" />
+		<method name="complexToDimensionPixelOffset(ILandroid/util/DisplayMetrics;)I" />
+		<method name="complexToDimensionPixelSize(ILandroid/util/DisplayMetrics;)I" />
+		<method name="complexToFloat(I)F" />
+		<method name="complexToFraction(IFF)F" />
+		<method name="getDimension(Landroid/util/DisplayMetrics;)F" />
+		<method name="getFloat()F" />
+		<method name="getFraction(FF)F" />
+		<method name="setTo(Landroid/util/TypedValue;)V" />
+		<field name="COMPLEX_MANTISSA_MASK" />
+		<field name="COMPLEX_MANTISSA_SHIFT" />
+		<field name="COMPLEX_RADIX_0p23" />
+		<field name="COMPLEX_RADIX_16p7" />
+		<field name="COMPLEX_RADIX_23p0" />
+		<field name="COMPLEX_RADIX_8p15" />
+		<field name="COMPLEX_RADIX_MASK" />
+		<field name="COMPLEX_RADIX_SHIFT" />
+		<field name="COMPLEX_UNIT_DIP" />
+		<field name="COMPLEX_UNIT_FRACTION" />
+		<field name="COMPLEX_UNIT_FRACTION_PARENT" />
+		<field name="COMPLEX_UNIT_IN" />
+		<field name="COMPLEX_UNIT_MASK" />
+		<field name="COMPLEX_UNIT_MM" />
+		<field name="COMPLEX_UNIT_PT" />
+		<field name="COMPLEX_UNIT_PX" />
+		<field name="COMPLEX_UNIT_SHIFT" />
+		<field name="COMPLEX_UNIT_SP" />
+		<field name="DENSITY_DEFAULT" since="4" />
+		<field name="DENSITY_NONE" since="4" />
+		<field name="TYPE_ATTRIBUTE" />
+		<field name="TYPE_DIMENSION" />
+		<field name="TYPE_FIRST_COLOR_INT" />
+		<field name="TYPE_FIRST_INT" />
+		<field name="TYPE_FLOAT" />
+		<field name="TYPE_FRACTION" />
+		<field name="TYPE_INT_BOOLEAN" />
+		<field name="TYPE_INT_COLOR_ARGB4" />
+		<field name="TYPE_INT_COLOR_ARGB8" />
+		<field name="TYPE_INT_COLOR_RGB4" />
+		<field name="TYPE_INT_COLOR_RGB8" />
+		<field name="TYPE_INT_DEC" />
+		<field name="TYPE_INT_HEX" />
+		<field name="TYPE_LAST_COLOR_INT" />
+		<field name="TYPE_LAST_INT" />
+		<field name="TYPE_NULL" />
+		<field name="TYPE_REFERENCE" />
+		<field name="TYPE_STRING" />
+		<field name="assetCookie" />
+		<field name="changingConfigurations" />
+		<field name="data" />
+		<field name="density" since="4" />
+		<field name="resourceId" />
+		<field name="string" />
+		<field name="type" />
+	</class>
+	<class name="android/util/Xml" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="asAttributeSet(Lorg/xmlpull/v1/XmlPullParser;)Landroid/util/AttributeSet;" />
+		<method name="findEncodingByName(Ljava/lang/String;)Landroid/util/Xml$Encoding;" />
+		<method name="newPullParser()Lorg/xmlpull/v1/XmlPullParser;" />
+		<method name="newSerializer()Lorg/xmlpull/v1/XmlSerializer;" />
+		<method name="parse(Ljava/io/InputStream;Landroid/util/Xml$Encoding;Lorg/xml/sax/ContentHandler;)V" />
+		<method name="parse(Ljava/io/Reader;Lorg/xml/sax/ContentHandler;)V" />
+		<method name="parse(Ljava/lang/String;Lorg/xml/sax/ContentHandler;)V" />
+		<field name="FEATURE_RELAXED" />
+	</class>
+	<class name="android/util/Xml$Encoding" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/util/Xml$Encoding;" />
+		<method name="values()[Landroid/util/Xml$Encoding;" />
+		<field name="ISO_8859_1" />
+		<field name="US_ASCII" />
+		<field name="UTF_16" />
+		<field name="UTF_8" />
+	</class>
+	<class name="android/view/AbsSavedState" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Landroid/os/Parcelable;)V" />
+		<method name="describeContents()I" />
+		<method name="getSuperState()Landroid/os/Parcelable;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="EMPTY_STATE" />
+	</class>
+	<class name="android/view/ActionMode" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="finish()V" />
+		<method name="getCustomView()Landroid/view/View;" />
+		<method name="getMenu()Landroid/view/Menu;" />
+		<method name="getMenuInflater()Landroid/view/MenuInflater;" />
+		<method name="getSubtitle()Ljava/lang/CharSequence;" />
+		<method name="getTag()Ljava/lang/Object;" since="14" />
+		<method name="getTitle()Ljava/lang/CharSequence;" />
+		<method name="invalidate()V" />
+		<method name="setCustomView(Landroid/view/View;)V" />
+		<method name="setSubtitle(I)V" />
+		<method name="setSubtitle(Ljava/lang/CharSequence;)V" />
+		<method name="setTag(Ljava/lang/Object;)V" since="14" />
+		<method name="setTitle(I)V" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/view/ActionMode$Callback" since="11">
+		<method name="onActionItemClicked(Landroid/view/ActionMode;Landroid/view/MenuItem;)Z" />
+		<method name="onCreateActionMode(Landroid/view/ActionMode;Landroid/view/Menu;)Z" />
+		<method name="onDestroyActionMode(Landroid/view/ActionMode;)V" />
+		<method name="onPrepareActionMode(Landroid/view/ActionMode;Landroid/view/Menu;)Z" />
+	</class>
+	<class name="android/view/ActionProvider" since="14">
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="hasSubMenu()Z" />
+		<method name="onCreateActionView()Landroid/view/View;" />
+		<method name="onPerformDefaultAction()Z" />
+		<method name="onPrepareSubMenu(Landroid/view/SubMenu;)V" />
+	</class>
+	<class name="android/view/CollapsibleActionView" since="14">
+		<method name="onActionViewCollapsed()V" />
+		<method name="onActionViewExpanded()V" />
+	</class>
+	<class name="android/view/ContextMenu" since="1">
+		<implements name="android/view/Menu" />
+		<method name="clearHeader()V" />
+		<method name="setHeaderIcon(I)Landroid/view/ContextMenu;" />
+		<method name="setHeaderIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/ContextMenu;" />
+		<method name="setHeaderTitle(I)Landroid/view/ContextMenu;" />
+		<method name="setHeaderTitle(Ljava/lang/CharSequence;)Landroid/view/ContextMenu;" />
+		<method name="setHeaderView(Landroid/view/View;)Landroid/view/ContextMenu;" />
+	</class>
+	<class name="android/view/ContextMenu$ContextMenuInfo" since="1">
+	</class>
+	<class name="android/view/ContextThemeWrapper" since="1">
+		<extends name="android/content/ContextWrapper" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="onApplyThemeResource(Landroid/content/res/Resources$Theme;IZ)V" />
+	</class>
+	<class name="android/view/Display" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getDisplayId()I" />
+		<method name="getHeight()I" />
+		<method name="getMetrics(Landroid/util/DisplayMetrics;)V" />
+		<method name="getOrientation()I" />
+		<method name="getPixelFormat()I" />
+		<method name="getRectSize(Landroid/graphics/Rect;)V" since="13" />
+		<method name="getRefreshRate()F" />
+		<method name="getRotation()I" since="8" />
+		<method name="getSize(Landroid/graphics/Point;)V" since="13" />
+		<method name="getWidth()I" />
+		<field name="DEFAULT_DISPLAY" />
+	</class>
+	<class name="android/view/DragEvent" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getAction()I" />
+		<method name="getClipData()Landroid/content/ClipData;" />
+		<method name="getClipDescription()Landroid/content/ClipDescription;" />
+		<method name="getLocalState()Ljava/lang/Object;" />
+		<method name="getResult()Z" />
+		<method name="getX()F" />
+		<method name="getY()F" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_DRAG_ENDED" />
+		<field name="ACTION_DRAG_ENTERED" />
+		<field name="ACTION_DRAG_EXITED" />
+		<field name="ACTION_DRAG_LOCATION" />
+		<field name="ACTION_DRAG_STARTED" />
+		<field name="ACTION_DROP" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/FocusFinder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="findNearestTouchable(Landroid/view/ViewGroup;III[I)Landroid/view/View;" />
+		<method name="findNextFocus(Landroid/view/ViewGroup;Landroid/view/View;I)Landroid/view/View;" />
+		<method name="findNextFocusFromRect(Landroid/view/ViewGroup;Landroid/graphics/Rect;I)Landroid/view/View;" />
+		<method name="getInstance()Landroid/view/FocusFinder;" />
+	</class>
+	<class name="android/view/GestureDetector" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;)V" since="3" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" since="3" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;Z)V" since="8" />
+		<method name="&lt;init>(Landroid/view/GestureDetector$OnGestureListener;)V" />
+		<method name="&lt;init>(Landroid/view/GestureDetector$OnGestureListener;Landroid/os/Handler;)V" />
+		<method name="isLongpressEnabled()Z" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="setIsLongpressEnabled(Z)V" />
+		<method name="setOnDoubleTapListener(Landroid/view/GestureDetector$OnDoubleTapListener;)V" since="3" />
+	</class>
+	<class name="android/view/GestureDetector$OnDoubleTapListener" since="3">
+		<method name="onDoubleTap(Landroid/view/MotionEvent;)Z" />
+		<method name="onDoubleTapEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onSingleTapConfirmed(Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/GestureDetector$OnGestureListener" since="1">
+		<method name="onDown(Landroid/view/MotionEvent;)Z" />
+		<method name="onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
+		<method name="onLongPress(Landroid/view/MotionEvent;)V" />
+		<method name="onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
+		<method name="onShowPress(Landroid/view/MotionEvent;)V" />
+		<method name="onSingleTapUp(Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/GestureDetector$SimpleOnGestureListener" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/GestureDetector$OnGestureListener" />
+		<implements name="android/view/GestureDetector$OnDoubleTapListener" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="onDoubleTap(Landroid/view/MotionEvent;)Z" since="3" />
+		<method name="onDoubleTapEvent(Landroid/view/MotionEvent;)Z" since="3" />
+		<method name="onDown(Landroid/view/MotionEvent;)Z" />
+		<method name="onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
+		<method name="onLongPress(Landroid/view/MotionEvent;)V" />
+		<method name="onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
+		<method name="onShowPress(Landroid/view/MotionEvent;)V" />
+		<method name="onSingleTapConfirmed(Landroid/view/MotionEvent;)Z" since="3" />
+		<method name="onSingleTapUp(Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/Gravity" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="apply(IIILandroid/graphics/Rect;IILandroid/graphics/Rect;)V" />
+		<method name="apply(IIILandroid/graphics/Rect;Landroid/graphics/Rect;)V" />
+		<method name="applyDisplay(ILandroid/graphics/Rect;Landroid/graphics/Rect;)V" since="3" />
+		<method name="getAbsoluteGravity(II)I" since="14" />
+		<method name="isHorizontal(I)Z" />
+		<method name="isVertical(I)Z" />
+		<field name="AXIS_CLIP" since="3" />
+		<field name="AXIS_PULL_AFTER" />
+		<field name="AXIS_PULL_BEFORE" />
+		<field name="AXIS_SPECIFIED" />
+		<field name="AXIS_X_SHIFT" />
+		<field name="AXIS_Y_SHIFT" />
+		<field name="BOTTOM" />
+		<field name="CENTER" />
+		<field name="CENTER_HORIZONTAL" />
+		<field name="CENTER_VERTICAL" />
+		<field name="CLIP_HORIZONTAL" since="3" />
+		<field name="CLIP_VERTICAL" since="3" />
+		<field name="DISPLAY_CLIP_HORIZONTAL" since="3" />
+		<field name="DISPLAY_CLIP_VERTICAL" since="3" />
+		<field name="END" since="14" />
+		<field name="FILL" />
+		<field name="FILL_HORIZONTAL" />
+		<field name="FILL_VERTICAL" />
+		<field name="HORIZONTAL_GRAVITY_MASK" />
+		<field name="LEFT" />
+		<field name="NO_GRAVITY" />
+		<field name="RELATIVE_HORIZONTAL_GRAVITY_MASK" since="14" />
+		<field name="RELATIVE_LAYOUT_DIRECTION" since="14" />
+		<field name="RIGHT" />
+		<field name="START" since="14" />
+		<field name="TOP" />
+		<field name="VERTICAL_GRAVITY_MASK" />
+	</class>
+	<class name="android/view/HapticFeedbackConstants" since="3">
+		<extends name="java/lang/Object" />
+		<field name="FLAG_IGNORE_GLOBAL_SETTING" />
+		<field name="FLAG_IGNORE_VIEW_SETTING" />
+		<field name="KEYBOARD_TAP" since="8" />
+		<field name="LONG_PRESS" />
+		<field name="VIRTUAL_KEY" since="5" />
+	</class>
+	<class name="android/view/InflateException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="android/view/InputDevice" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getDevice(I)Landroid/view/InputDevice;" />
+		<method name="getDeviceIds()[I" />
+		<method name="getId()I" />
+		<method name="getKeyCharacterMap()Landroid/view/KeyCharacterMap;" />
+		<method name="getKeyboardType()I" />
+		<method name="getMotionRange(I)Landroid/view/InputDevice$MotionRange;" />
+		<method name="getMotionRange(II)Landroid/view/InputDevice$MotionRange;" since="12" />
+		<method name="getMotionRanges()Ljava/util/List;" since="12" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getSources()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="KEYBOARD_TYPE_ALPHABETIC" />
+		<field name="KEYBOARD_TYPE_NONE" />
+		<field name="KEYBOARD_TYPE_NON_ALPHABETIC" />
+		<field name="MOTION_RANGE_ORIENTATION" />
+		<field name="MOTION_RANGE_PRESSURE" />
+		<field name="MOTION_RANGE_SIZE" />
+		<field name="MOTION_RANGE_TOOL_MAJOR" />
+		<field name="MOTION_RANGE_TOOL_MINOR" />
+		<field name="MOTION_RANGE_TOUCH_MAJOR" />
+		<field name="MOTION_RANGE_TOUCH_MINOR" />
+		<field name="MOTION_RANGE_X" />
+		<field name="MOTION_RANGE_Y" />
+		<field name="SOURCE_ANY" />
+		<field name="SOURCE_CLASS_BUTTON" />
+		<field name="SOURCE_CLASS_JOYSTICK" since="12" />
+		<field name="SOURCE_CLASS_MASK" />
+		<field name="SOURCE_CLASS_POINTER" />
+		<field name="SOURCE_CLASS_POSITION" />
+		<field name="SOURCE_CLASS_TRACKBALL" />
+		<field name="SOURCE_DPAD" />
+		<field name="SOURCE_GAMEPAD" since="12" />
+		<field name="SOURCE_JOYSTICK" since="12" />
+		<field name="SOURCE_KEYBOARD" />
+		<field name="SOURCE_MOUSE" />
+		<field name="SOURCE_STYLUS" since="14" />
+		<field name="SOURCE_TOUCHPAD" />
+		<field name="SOURCE_TOUCHSCREEN" />
+		<field name="SOURCE_TRACKBALL" />
+		<field name="SOURCE_UNKNOWN" />
+	</class>
+	<class name="android/view/InputDevice$MotionRange" since="9">
+		<extends name="java/lang/Object" />
+		<method name="getAxis()I" since="12" />
+		<method name="getFlat()F" />
+		<method name="getFuzz()F" />
+		<method name="getMax()F" />
+		<method name="getMin()F" />
+		<method name="getRange()F" />
+		<method name="getSource()I" since="12" />
+	</class>
+	<class name="android/view/InputEvent" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getDevice()Landroid/view/InputDevice;" />
+		<method name="getDeviceId()I" />
+		<method name="getSource()I" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/InputQueue" since="9">
+		<extends name="java/lang/Object" />
+	</class>
+	<class name="android/view/InputQueue$Callback" since="9">
+		<method name="onInputQueueCreated(Landroid/view/InputQueue;)V" />
+		<method name="onInputQueueDestroyed(Landroid/view/InputQueue;)V" />
+	</class>
+	<class name="android/view/KeyCharacterMap" since="1">
+		<extends name="java/lang/Object" />
+		<method name="deviceHasKey(I)Z" since="3" />
+		<method name="deviceHasKeys([I)[Z" since="3" />
+		<method name="get(II)I" />
+		<method name="getDeadChar(II)I" />
+		<method name="getDisplayLabel(I)C" />
+		<method name="getEvents([C)[Landroid/view/KeyEvent;" />
+		<method name="getKeyData(ILandroid/view/KeyCharacterMap$KeyData;)Z" />
+		<method name="getKeyboardType()I" />
+		<method name="getMatch(I[C)C" />
+		<method name="getMatch(I[CI)C" />
+		<method name="getModifierBehavior()I" since="11" />
+		<method name="getNumber(I)C" />
+		<method name="isPrintingKey(I)Z" />
+		<method name="load(I)Landroid/view/KeyCharacterMap;" />
+		<field name="ALPHA" />
+		<field name="BUILT_IN_KEYBOARD" />
+		<field name="COMBINING_ACCENT" />
+		<field name="COMBINING_ACCENT_MASK" />
+		<field name="FULL" since="11" />
+		<field name="HEX_INPUT" />
+		<field name="MODIFIER_BEHAVIOR_CHORDED" since="11" />
+		<field name="MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED" since="11" />
+		<field name="NUMERIC" />
+		<field name="PICKER_DIALOG_INPUT" />
+		<field name="PREDICTIVE" />
+		<field name="SPECIAL_FUNCTION" since="11" />
+		<field name="VIRTUAL_KEYBOARD" since="11" />
+	</class>
+	<class name="android/view/KeyCharacterMap$KeyData" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="META_LENGTH" />
+		<field name="displayLabel" />
+		<field name="meta" />
+		<field name="number" />
+	</class>
+	<class name="android/view/KeyCharacterMap$UnavailableException" since="11">
+		<extends name="android/util/AndroidRuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/view/KeyEvent" since="1">
+		<extends name="java/lang/Object" />
+		<extends name="android/view/InputEvent" since="9" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(JJIII)V" />
+		<method name="&lt;init>(JJIIII)V" />
+		<method name="&lt;init>(JJIIIIII)V" />
+		<method name="&lt;init>(JJIIIIIII)V" />
+		<method name="&lt;init>(JJIIIIIIII)V" since="9" />
+		<method name="&lt;init>(JLjava/lang/String;II)V" since="3" />
+		<method name="&lt;init>(Landroid/view/KeyEvent;)V" since="3" />
+		<method name="&lt;init>(Landroid/view/KeyEvent;JI)V" />
+		<method name="changeAction(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;" since="3" />
+		<method name="changeFlags(Landroid/view/KeyEvent;I)Landroid/view/KeyEvent;" since="3" />
+		<method name="changeTimeRepeat(Landroid/view/KeyEvent;JI)Landroid/view/KeyEvent;" since="3" />
+		<method name="changeTimeRepeat(Landroid/view/KeyEvent;JII)Landroid/view/KeyEvent;" since="5" />
+		<method name="describeContents()I" />
+		<method name="dispatch(Landroid/view/KeyEvent$Callback;)Z" />
+		<method name="dispatch(Landroid/view/KeyEvent$Callback;Landroid/view/KeyEvent$DispatcherState;Ljava/lang/Object;)Z" since="5" />
+		<method name="getAction()I" />
+		<method name="getCharacters()Ljava/lang/String;" since="3" />
+		<method name="getDeadChar(II)I" />
+		<method name="getDeviceId()I" />
+		<method name="getDisplayLabel()C" />
+		<method name="getDownTime()J" />
+		<method name="getEventTime()J" />
+		<method name="getFlags()I" />
+		<method name="getKeyCharacterMap()Landroid/view/KeyCharacterMap;" since="11" />
+		<method name="getKeyCode()I" />
+		<method name="getKeyData(Landroid/view/KeyCharacterMap$KeyData;)Z" />
+		<method name="getMatch([C)C" />
+		<method name="getMatch([CI)C" />
+		<method name="getMaxKeyCode()I" since="3" />
+		<method name="getMetaState()I" />
+		<method name="getModifierMetaStateMask()I" since="11" />
+		<method name="getModifiers()I" since="13" />
+		<method name="getNumber()C" />
+		<method name="getRepeatCount()I" />
+		<method name="getScanCode()I" />
+		<method name="getSource()I" since="12" />
+		<method name="getUnicodeChar()I" />
+		<method name="getUnicodeChar(I)I" />
+		<method name="hasModifiers(I)Z" since="11" />
+		<method name="hasNoModifiers()Z" since="11" />
+		<method name="isAltPressed()Z" />
+		<method name="isCanceled()Z" since="5" />
+		<method name="isCapsLockOn()Z" since="11" />
+		<method name="isCtrlPressed()Z" since="11" />
+		<method name="isFunctionPressed()Z" since="11" />
+		<method name="isGamepadButton(I)Z" since="12" />
+		<method name="isLongPress()Z" since="5" />
+		<method name="isMetaPressed()Z" since="11" />
+		<method name="isModifierKey(I)Z" />
+		<method name="isNumLockOn()Z" since="11" />
+		<method name="isPrintingKey()Z" />
+		<method name="isScrollLockOn()Z" since="11" />
+		<method name="isShiftPressed()Z" />
+		<method name="isSymPressed()Z" />
+		<method name="isSystem()Z" />
+		<method name="isTracking()Z" since="5" />
+		<method name="keyCodeFromString(Ljava/lang/String;)I" since="12" />
+		<method name="keyCodeToString(I)Ljava/lang/String;" since="12" />
+		<method name="metaStateHasModifiers(II)Z" since="11" />
+		<method name="metaStateHasNoModifiers(I)Z" since="11" />
+		<method name="normalizeMetaState(I)I" since="11" />
+		<method name="setSource(I)V" since="12" />
+		<method name="startTracking()V" since="5" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_DOWN" />
+		<field name="ACTION_MULTIPLE" />
+		<field name="ACTION_UP" />
+		<field name="CREATOR" />
+		<field name="FLAG_CANCELED" since="5" />
+		<field name="FLAG_CANCELED_LONG_PRESS" since="5" />
+		<field name="FLAG_EDITOR_ACTION" since="3" />
+		<field name="FLAG_FALLBACK" since="11" />
+		<field name="FLAG_FROM_SYSTEM" since="3" />
+		<field name="FLAG_KEEP_TOUCH_MODE" since="3" />
+		<field name="FLAG_LONG_PRESS" since="5" />
+		<field name="FLAG_SOFT_KEYBOARD" since="3" />
+		<field name="FLAG_TRACKING" since="5" />
+		<field name="FLAG_VIRTUAL_HARD_KEY" since="5" />
+		<field name="FLAG_WOKE_HERE" />
+		<field name="KEYCODE_0" />
+		<field name="KEYCODE_1" />
+		<field name="KEYCODE_2" />
+		<field name="KEYCODE_3" />
+		<field name="KEYCODE_3D_MODE" since="14" />
+		<field name="KEYCODE_4" />
+		<field name="KEYCODE_5" />
+		<field name="KEYCODE_6" />
+		<field name="KEYCODE_7" />
+		<field name="KEYCODE_8" />
+		<field name="KEYCODE_9" />
+		<field name="KEYCODE_A" />
+		<field name="KEYCODE_ALT_LEFT" />
+		<field name="KEYCODE_ALT_RIGHT" />
+		<field name="KEYCODE_APOSTROPHE" />
+		<field name="KEYCODE_APP_SWITCH" since="11" />
+		<field name="KEYCODE_AT" />
+		<field name="KEYCODE_AVR_INPUT" since="11" />
+		<field name="KEYCODE_AVR_POWER" since="11" />
+		<field name="KEYCODE_B" />
+		<field name="KEYCODE_BACK" />
+		<field name="KEYCODE_BACKSLASH" />
+		<field name="KEYCODE_BOOKMARK" since="11" />
+		<field name="KEYCODE_BREAK" since="11" />
+		<field name="KEYCODE_BUTTON_1" since="12" />
+		<field name="KEYCODE_BUTTON_10" since="12" />
+		<field name="KEYCODE_BUTTON_11" since="12" />
+		<field name="KEYCODE_BUTTON_12" since="12" />
+		<field name="KEYCODE_BUTTON_13" since="12" />
+		<field name="KEYCODE_BUTTON_14" since="12" />
+		<field name="KEYCODE_BUTTON_15" since="12" />
+		<field name="KEYCODE_BUTTON_16" since="12" />
+		<field name="KEYCODE_BUTTON_2" since="12" />
+		<field name="KEYCODE_BUTTON_3" since="12" />
+		<field name="KEYCODE_BUTTON_4" since="12" />
+		<field name="KEYCODE_BUTTON_5" since="12" />
+		<field name="KEYCODE_BUTTON_6" since="12" />
+		<field name="KEYCODE_BUTTON_7" since="12" />
+		<field name="KEYCODE_BUTTON_8" since="12" />
+		<field name="KEYCODE_BUTTON_9" since="12" />
+		<field name="KEYCODE_BUTTON_A" since="9" />
+		<field name="KEYCODE_BUTTON_B" since="9" />
+		<field name="KEYCODE_BUTTON_C" since="9" />
+		<field name="KEYCODE_BUTTON_L1" since="9" />
+		<field name="KEYCODE_BUTTON_L2" since="9" />
+		<field name="KEYCODE_BUTTON_MODE" since="9" />
+		<field name="KEYCODE_BUTTON_R1" since="9" />
+		<field name="KEYCODE_BUTTON_R2" since="9" />
+		<field name="KEYCODE_BUTTON_SELECT" since="9" />
+		<field name="KEYCODE_BUTTON_START" since="9" />
+		<field name="KEYCODE_BUTTON_THUMBL" since="9" />
+		<field name="KEYCODE_BUTTON_THUMBR" since="9" />
+		<field name="KEYCODE_BUTTON_X" since="9" />
+		<field name="KEYCODE_BUTTON_Y" since="9" />
+		<field name="KEYCODE_BUTTON_Z" since="9" />
+		<field name="KEYCODE_C" />
+		<field name="KEYCODE_CALCULATOR" since="15" />
+		<field name="KEYCODE_CALENDAR" since="15" />
+		<field name="KEYCODE_CALL" />
+		<field name="KEYCODE_CAMERA" />
+		<field name="KEYCODE_CAPS_LOCK" since="11" />
+		<field name="KEYCODE_CAPTIONS" since="11" />
+		<field name="KEYCODE_CHANNEL_DOWN" since="11" />
+		<field name="KEYCODE_CHANNEL_UP" since="11" />
+		<field name="KEYCODE_CLEAR" />
+		<field name="KEYCODE_COMMA" />
+		<field name="KEYCODE_CONTACTS" since="15" />
+		<field name="KEYCODE_CTRL_LEFT" since="11" />
+		<field name="KEYCODE_CTRL_RIGHT" since="11" />
+		<field name="KEYCODE_D" />
+		<field name="KEYCODE_DEL" />
+		<field name="KEYCODE_DPAD_CENTER" />
+		<field name="KEYCODE_DPAD_DOWN" />
+		<field name="KEYCODE_DPAD_LEFT" />
+		<field name="KEYCODE_DPAD_RIGHT" />
+		<field name="KEYCODE_DPAD_UP" />
+		<field name="KEYCODE_DVR" since="11" />
+		<field name="KEYCODE_E" />
+		<field name="KEYCODE_ENDCALL" />
+		<field name="KEYCODE_ENTER" />
+		<field name="KEYCODE_ENVELOPE" />
+		<field name="KEYCODE_EQUALS" />
+		<field name="KEYCODE_ESCAPE" since="11" />
+		<field name="KEYCODE_EXPLORER" />
+		<field name="KEYCODE_F" />
+		<field name="KEYCODE_F1" since="11" />
+		<field name="KEYCODE_F10" since="11" />
+		<field name="KEYCODE_F11" since="11" />
+		<field name="KEYCODE_F12" since="11" />
+		<field name="KEYCODE_F2" since="11" />
+		<field name="KEYCODE_F3" since="11" />
+		<field name="KEYCODE_F4" since="11" />
+		<field name="KEYCODE_F5" since="11" />
+		<field name="KEYCODE_F6" since="11" />
+		<field name="KEYCODE_F7" since="11" />
+		<field name="KEYCODE_F8" since="11" />
+		<field name="KEYCODE_F9" since="11" />
+		<field name="KEYCODE_FOCUS" />
+		<field name="KEYCODE_FORWARD" since="11" />
+		<field name="KEYCODE_FORWARD_DEL" since="11" />
+		<field name="KEYCODE_FUNCTION" since="11" />
+		<field name="KEYCODE_G" />
+		<field name="KEYCODE_GRAVE" />
+		<field name="KEYCODE_GUIDE" since="11" />
+		<field name="KEYCODE_H" />
+		<field name="KEYCODE_HEADSETHOOK" />
+		<field name="KEYCODE_HOME" />
+		<field name="KEYCODE_I" />
+		<field name="KEYCODE_INFO" since="11" />
+		<field name="KEYCODE_INSERT" since="11" />
+		<field name="KEYCODE_J" />
+		<field name="KEYCODE_K" />
+		<field name="KEYCODE_L" />
+		<field name="KEYCODE_LANGUAGE_SWITCH" since="14" />
+		<field name="KEYCODE_LEFT_BRACKET" />
+		<field name="KEYCODE_M" />
+		<field name="KEYCODE_MANNER_MODE" since="14" />
+		<field name="KEYCODE_MEDIA_CLOSE" since="11" />
+		<field name="KEYCODE_MEDIA_EJECT" since="11" />
+		<field name="KEYCODE_MEDIA_FAST_FORWARD" since="3" />
+		<field name="KEYCODE_MEDIA_NEXT" since="3" />
+		<field name="KEYCODE_MEDIA_PAUSE" since="11" />
+		<field name="KEYCODE_MEDIA_PLAY" since="11" />
+		<field name="KEYCODE_MEDIA_PLAY_PAUSE" since="3" />
+		<field name="KEYCODE_MEDIA_PREVIOUS" since="3" />
+		<field name="KEYCODE_MEDIA_RECORD" since="11" />
+		<field name="KEYCODE_MEDIA_REWIND" since="3" />
+		<field name="KEYCODE_MEDIA_STOP" since="3" />
+		<field name="KEYCODE_MENU" />
+		<field name="KEYCODE_META_LEFT" since="11" />
+		<field name="KEYCODE_META_RIGHT" since="11" />
+		<field name="KEYCODE_MINUS" />
+		<field name="KEYCODE_MOVE_END" since="11" />
+		<field name="KEYCODE_MOVE_HOME" since="11" />
+		<field name="KEYCODE_MUSIC" since="15" />
+		<field name="KEYCODE_MUTE" since="3" />
+		<field name="KEYCODE_N" />
+		<field name="KEYCODE_NOTIFICATION" />
+		<field name="KEYCODE_NUM" />
+		<field name="KEYCODE_NUMPAD_0" since="11" />
+		<field name="KEYCODE_NUMPAD_1" since="11" />
+		<field name="KEYCODE_NUMPAD_2" since="11" />
+		<field name="KEYCODE_NUMPAD_3" since="11" />
+		<field name="KEYCODE_NUMPAD_4" since="11" />
+		<field name="KEYCODE_NUMPAD_5" since="11" />
+		<field name="KEYCODE_NUMPAD_6" since="11" />
+		<field name="KEYCODE_NUMPAD_7" since="11" />
+		<field name="KEYCODE_NUMPAD_8" since="11" />
+		<field name="KEYCODE_NUMPAD_9" since="11" />
+		<field name="KEYCODE_NUMPAD_ADD" since="11" />
+		<field name="KEYCODE_NUMPAD_COMMA" since="11" />
+		<field name="KEYCODE_NUMPAD_DIVIDE" since="11" />
+		<field name="KEYCODE_NUMPAD_DOT" since="11" />
+		<field name="KEYCODE_NUMPAD_ENTER" since="11" />
+		<field name="KEYCODE_NUMPAD_EQUALS" since="11" />
+		<field name="KEYCODE_NUMPAD_LEFT_PAREN" since="11" />
+		<field name="KEYCODE_NUMPAD_MULTIPLY" since="11" />
+		<field name="KEYCODE_NUMPAD_RIGHT_PAREN" since="11" />
+		<field name="KEYCODE_NUMPAD_SUBTRACT" since="11" />
+		<field name="KEYCODE_NUM_LOCK" since="11" />
+		<field name="KEYCODE_O" />
+		<field name="KEYCODE_P" />
+		<field name="KEYCODE_PAGE_DOWN" since="9" />
+		<field name="KEYCODE_PAGE_UP" since="9" />
+		<field name="KEYCODE_PERIOD" />
+		<field name="KEYCODE_PICTSYMBOLS" since="9" />
+		<field name="KEYCODE_PLUS" />
+		<field name="KEYCODE_POUND" />
+		<field name="KEYCODE_POWER" />
+		<field name="KEYCODE_PROG_BLUE" since="11" />
+		<field name="KEYCODE_PROG_GREEN" since="11" />
+		<field name="KEYCODE_PROG_RED" since="11" />
+		<field name="KEYCODE_PROG_YELLOW" since="11" />
+		<field name="KEYCODE_Q" />
+		<field name="KEYCODE_R" />
+		<field name="KEYCODE_RIGHT_BRACKET" />
+		<field name="KEYCODE_S" />
+		<field name="KEYCODE_SCROLL_LOCK" since="11" />
+		<field name="KEYCODE_SEARCH" />
+		<field name="KEYCODE_SEMICOLON" />
+		<field name="KEYCODE_SETTINGS" since="11" />
+		<field name="KEYCODE_SHIFT_LEFT" />
+		<field name="KEYCODE_SHIFT_RIGHT" />
+		<field name="KEYCODE_SLASH" />
+		<field name="KEYCODE_SOFT_LEFT" />
+		<field name="KEYCODE_SOFT_RIGHT" />
+		<field name="KEYCODE_SPACE" />
+		<field name="KEYCODE_STAR" />
+		<field name="KEYCODE_STB_INPUT" since="11" />
+		<field name="KEYCODE_STB_POWER" since="11" />
+		<field name="KEYCODE_SWITCH_CHARSET" since="9" />
+		<field name="KEYCODE_SYM" />
+		<field name="KEYCODE_SYSRQ" since="11" />
+		<field name="KEYCODE_T" />
+		<field name="KEYCODE_TAB" />
+		<field name="KEYCODE_TV" since="11" />
+		<field name="KEYCODE_TV_INPUT" since="11" />
+		<field name="KEYCODE_TV_POWER" since="11" />
+		<field name="KEYCODE_U" />
+		<field name="KEYCODE_UNKNOWN" />
+		<field name="KEYCODE_V" />
+		<field name="KEYCODE_VOLUME_DOWN" />
+		<field name="KEYCODE_VOLUME_MUTE" since="11" />
+		<field name="KEYCODE_VOLUME_UP" />
+		<field name="KEYCODE_W" />
+		<field name="KEYCODE_WINDOW" since="11" />
+		<field name="KEYCODE_X" />
+		<field name="KEYCODE_Y" />
+		<field name="KEYCODE_Z" />
+		<field name="KEYCODE_ZOOM_IN" since="11" />
+		<field name="KEYCODE_ZOOM_OUT" since="11" />
+		<field name="MAX_KEYCODE" />
+		<field name="META_ALT_LEFT_ON" />
+		<field name="META_ALT_MASK" since="11" />
+		<field name="META_ALT_ON" />
+		<field name="META_ALT_RIGHT_ON" />
+		<field name="META_CAPS_LOCK_ON" since="11" />
+		<field name="META_CTRL_LEFT_ON" since="11" />
+		<field name="META_CTRL_MASK" since="11" />
+		<field name="META_CTRL_ON" since="11" />
+		<field name="META_CTRL_RIGHT_ON" since="11" />
+		<field name="META_FUNCTION_ON" since="11" />
+		<field name="META_META_LEFT_ON" since="11" />
+		<field name="META_META_MASK" since="11" />
+		<field name="META_META_ON" since="11" />
+		<field name="META_META_RIGHT_ON" since="11" />
+		<field name="META_NUM_LOCK_ON" since="11" />
+		<field name="META_SCROLL_LOCK_ON" since="11" />
+		<field name="META_SHIFT_LEFT_ON" />
+		<field name="META_SHIFT_MASK" since="11" />
+		<field name="META_SHIFT_ON" />
+		<field name="META_SHIFT_RIGHT_ON" />
+		<field name="META_SYM_ON" />
+	</class>
+	<class name="android/view/KeyEvent$Callback" since="1">
+		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyLongPress(ILandroid/view/KeyEvent;)Z" since="5" />
+		<method name="onKeyMultiple(IILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
+	</class>
+	<class name="android/view/KeyEvent$DispatcherState" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="handleUpEvent(Landroid/view/KeyEvent;)V" />
+		<method name="isTracking(Landroid/view/KeyEvent;)Z" />
+		<method name="performedLongPress(Landroid/view/KeyEvent;)V" />
+		<method name="reset()V" />
+		<method name="reset(Ljava/lang/Object;)V" />
+		<method name="startTracking(Landroid/view/KeyEvent;Ljava/lang/Object;)V" />
+	</class>
+	<class name="android/view/LayoutInflater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/view/LayoutInflater;Landroid/content/Context;)V" />
+		<method name="cloneInContext(Landroid/content/Context;)Landroid/view/LayoutInflater;" />
+		<method name="createView(Ljava/lang/String;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" />
+		<method name="from(Landroid/content/Context;)Landroid/view/LayoutInflater;" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getFactory()Landroid/view/LayoutInflater$Factory;" />
+		<method name="getFactory2()Landroid/view/LayoutInflater$Factory2;" since="11" />
+		<method name="getFilter()Landroid/view/LayoutInflater$Filter;" />
+		<method name="inflate(ILandroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="inflate(ILandroid/view/ViewGroup;Z)Landroid/view/View;" />
+		<method name="inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="inflate(Lorg/xmlpull/v1/XmlPullParser;Landroid/view/ViewGroup;Z)Landroid/view/View;" />
+		<method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" since="11" />
+		<method name="onCreateView(Ljava/lang/String;Landroid/util/AttributeSet;)Landroid/view/View;" />
+		<method name="setFactory(Landroid/view/LayoutInflater$Factory;)V" />
+		<method name="setFactory2(Landroid/view/LayoutInflater$Factory2;)V" since="11" />
+		<method name="setFilter(Landroid/view/LayoutInflater$Filter;)V" />
+	</class>
+	<class name="android/view/LayoutInflater$Factory" since="1">
+		<method name="onCreateView(Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" />
+	</class>
+	<class name="android/view/LayoutInflater$Factory2" since="11">
+		<implements name="android/view/LayoutInflater$Factory" />
+		<method name="onCreateView(Landroid/view/View;Ljava/lang/String;Landroid/content/Context;Landroid/util/AttributeSet;)Landroid/view/View;" />
+	</class>
+	<class name="android/view/LayoutInflater$Filter" since="1">
+		<method name="onLoadClass(Ljava/lang/Class;)Z" />
+	</class>
+	<class name="android/view/Menu" since="1">
+		<method name="add(I)Landroid/view/MenuItem;" />
+		<method name="add(IIII)Landroid/view/MenuItem;" />
+		<method name="add(IIILjava/lang/CharSequence;)Landroid/view/MenuItem;" />
+		<method name="add(Ljava/lang/CharSequence;)Landroid/view/MenuItem;" />
+		<method name="addIntentOptions(IIILandroid/content/ComponentName;[Landroid/content/Intent;Landroid/content/Intent;I[Landroid/view/MenuItem;)I" />
+		<method name="addSubMenu(I)Landroid/view/SubMenu;" />
+		<method name="addSubMenu(IIII)Landroid/view/SubMenu;" />
+		<method name="addSubMenu(IIILjava/lang/CharSequence;)Landroid/view/SubMenu;" />
+		<method name="addSubMenu(Ljava/lang/CharSequence;)Landroid/view/SubMenu;" />
+		<method name="clear()V" />
+		<method name="close()V" since="3" />
+		<method name="findItem(I)Landroid/view/MenuItem;" />
+		<method name="getItem(I)Landroid/view/MenuItem;" since="3" />
+		<method name="hasVisibleItems()Z" />
+		<method name="isShortcutKey(ILandroid/view/KeyEvent;)Z" />
+		<method name="performIdentifierAction(II)Z" />
+		<method name="performShortcut(ILandroid/view/KeyEvent;I)Z" />
+		<method name="removeGroup(I)V" />
+		<method name="removeItem(I)V" />
+		<method name="setGroupCheckable(IZZ)V" />
+		<method name="setGroupEnabled(IZ)V" />
+		<method name="setGroupVisible(IZ)V" />
+		<method name="setQwertyMode(Z)V" />
+		<method name="size()I" />
+		<field name="CATEGORY_ALTERNATIVE" />
+		<field name="CATEGORY_CONTAINER" />
+		<field name="CATEGORY_SECONDARY" />
+		<field name="CATEGORY_SYSTEM" />
+		<field name="FIRST" />
+		<field name="FLAG_ALWAYS_PERFORM_CLOSE" />
+		<field name="FLAG_APPEND_TO_GROUP" />
+		<field name="FLAG_PERFORM_NO_CLOSE" />
+		<field name="NONE" />
+	</class>
+	<class name="android/view/MenuInflater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="inflate(ILandroid/view/Menu;)V" />
+	</class>
+	<class name="android/view/MenuItem" since="1">
+		<method name="collapseActionView()Z" since="14" />
+		<method name="expandActionView()Z" since="14" />
+		<method name="getActionProvider()Landroid/view/ActionProvider;" since="14" />
+		<method name="getActionView()Landroid/view/View;" since="11" />
+		<method name="getAlphabeticShortcut()C" />
+		<method name="getGroupId()I" />
+		<method name="getIcon()Landroid/graphics/drawable/Drawable;" />
+		<method name="getIntent()Landroid/content/Intent;" />
+		<method name="getItemId()I" />
+		<method name="getMenuInfo()Landroid/view/ContextMenu$ContextMenuInfo;" />
+		<method name="getNumericShortcut()C" />
+		<method name="getOrder()I" />
+		<method name="getSubMenu()Landroid/view/SubMenu;" />
+		<method name="getTitle()Ljava/lang/CharSequence;" />
+		<method name="getTitleCondensed()Ljava/lang/CharSequence;" />
+		<method name="hasSubMenu()Z" />
+		<method name="isActionViewExpanded()Z" since="14" />
+		<method name="isCheckable()Z" />
+		<method name="isChecked()Z" />
+		<method name="isEnabled()Z" />
+		<method name="isVisible()Z" />
+		<method name="setActionProvider(Landroid/view/ActionProvider;)Landroid/view/MenuItem;" since="14" />
+		<method name="setActionView(I)Landroid/view/MenuItem;" since="11" />
+		<method name="setActionView(Landroid/view/View;)Landroid/view/MenuItem;" since="11" />
+		<method name="setAlphabeticShortcut(C)Landroid/view/MenuItem;" />
+		<method name="setCheckable(Z)Landroid/view/MenuItem;" />
+		<method name="setChecked(Z)Landroid/view/MenuItem;" />
+		<method name="setEnabled(Z)Landroid/view/MenuItem;" />
+		<method name="setIcon(I)Landroid/view/MenuItem;" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/MenuItem;" />
+		<method name="setIntent(Landroid/content/Intent;)Landroid/view/MenuItem;" />
+		<method name="setNumericShortcut(C)Landroid/view/MenuItem;" />
+		<method name="setOnActionExpandListener(Landroid/view/MenuItem$OnActionExpandListener;)Landroid/view/MenuItem;" since="14" />
+		<method name="setOnMenuItemClickListener(Landroid/view/MenuItem$OnMenuItemClickListener;)Landroid/view/MenuItem;" />
+		<method name="setShortcut(CC)Landroid/view/MenuItem;" />
+		<method name="setShowAsAction(I)V" since="11" />
+		<method name="setShowAsActionFlags(I)Landroid/view/MenuItem;" since="14" />
+		<method name="setTitle(I)Landroid/view/MenuItem;" />
+		<method name="setTitle(Ljava/lang/CharSequence;)Landroid/view/MenuItem;" />
+		<method name="setTitleCondensed(Ljava/lang/CharSequence;)Landroid/view/MenuItem;" />
+		<method name="setVisible(Z)Landroid/view/MenuItem;" />
+		<field name="SHOW_AS_ACTION_ALWAYS" since="11" />
+		<field name="SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW" since="14" />
+		<field name="SHOW_AS_ACTION_IF_ROOM" since="11" />
+		<field name="SHOW_AS_ACTION_NEVER" since="11" />
+		<field name="SHOW_AS_ACTION_WITH_TEXT" since="11" />
+	</class>
+	<class name="android/view/MenuItem$OnActionExpandListener" since="14">
+		<method name="onMenuItemActionCollapse(Landroid/view/MenuItem;)Z" />
+		<method name="onMenuItemActionExpand(Landroid/view/MenuItem;)Z" />
+	</class>
+	<class name="android/view/MenuItem$OnMenuItemClickListener" since="1">
+		<method name="onMenuItemClick(Landroid/view/MenuItem;)Z" />
+	</class>
+	<class name="android/view/MotionEvent" since="1">
+		<extends name="java/lang/Object" />
+		<extends name="android/view/InputEvent" since="9" />
+		<implements name="android/os/Parcelable" />
+		<method name="addBatch(JFFFFI)V" />
+		<method name="addBatch(J[Landroid/view/MotionEvent$PointerCoords;I)V" since="9" />
+		<method name="axisFromString(Ljava/lang/String;)I" since="12" />
+		<method name="axisToString(I)Ljava/lang/String;" since="12" />
+		<method name="describeContents()I" />
+		<method name="findPointerIndex(I)I" since="5" />
+		<method name="getAction()I" />
+		<method name="getActionIndex()I" since="8" />
+		<method name="getActionMasked()I" since="8" />
+		<method name="getAxisValue(I)F" since="12" />
+		<method name="getAxisValue(II)F" since="12" />
+		<method name="getButtonState()I" since="14" />
+		<method name="getDeviceId()I" />
+		<method name="getDownTime()J" />
+		<method name="getEdgeFlags()I" />
+		<method name="getEventTime()J" />
+		<method name="getFlags()I" since="9" />
+		<method name="getHistoricalAxisValue(II)F" since="12" />
+		<method name="getHistoricalAxisValue(III)F" since="12" />
+		<method name="getHistoricalEventTime(I)J" />
+		<method name="getHistoricalOrientation(I)F" since="9" />
+		<method name="getHistoricalOrientation(II)F" since="9" />
+		<method name="getHistoricalPointerCoords(IILandroid/view/MotionEvent$PointerCoords;)V" since="9" />
+		<method name="getHistoricalPressure(I)F" />
+		<method name="getHistoricalPressure(II)F" since="5" />
+		<method name="getHistoricalSize(I)F" />
+		<method name="getHistoricalSize(II)F" since="5" />
+		<method name="getHistoricalToolMajor(I)F" since="9" />
+		<method name="getHistoricalToolMajor(II)F" since="9" />
+		<method name="getHistoricalToolMinor(I)F" since="9" />
+		<method name="getHistoricalToolMinor(II)F" since="9" />
+		<method name="getHistoricalTouchMajor(I)F" since="9" />
+		<method name="getHistoricalTouchMajor(II)F" since="9" />
+		<method name="getHistoricalTouchMinor(I)F" since="9" />
+		<method name="getHistoricalTouchMinor(II)F" since="9" />
+		<method name="getHistoricalX(I)F" />
+		<method name="getHistoricalX(II)F" since="5" />
+		<method name="getHistoricalY(I)F" />
+		<method name="getHistoricalY(II)F" since="5" />
+		<method name="getHistorySize()I" />
+		<method name="getMetaState()I" />
+		<method name="getOrientation()F" since="9" />
+		<method name="getOrientation(I)F" since="9" />
+		<method name="getPointerCoords(ILandroid/view/MotionEvent$PointerCoords;)V" since="9" />
+		<method name="getPointerCount()I" since="5" />
+		<method name="getPointerId(I)I" since="5" />
+		<method name="getPointerProperties(ILandroid/view/MotionEvent$PointerProperties;)V" since="14" />
+		<method name="getPressure()F" />
+		<method name="getPressure(I)F" since="5" />
+		<method name="getRawX()F" />
+		<method name="getRawY()F" />
+		<method name="getSize()F" />
+		<method name="getSize(I)F" since="5" />
+		<method name="getSource()I" since="12" />
+		<method name="getToolMajor()F" since="9" />
+		<method name="getToolMajor(I)F" since="9" />
+		<method name="getToolMinor()F" since="9" />
+		<method name="getToolMinor(I)F" since="9" />
+		<method name="getToolType(I)I" since="14" />
+		<method name="getTouchMajor()F" since="9" />
+		<method name="getTouchMajor(I)F" since="9" />
+		<method name="getTouchMinor()F" since="9" />
+		<method name="getTouchMinor(I)F" since="9" />
+		<method name="getX()F" />
+		<method name="getX(I)F" since="5" />
+		<method name="getXPrecision()F" />
+		<method name="getY()F" />
+		<method name="getY(I)F" since="5" />
+		<method name="getYPrecision()F" />
+		<method name="obtain(JJIFFFFIFFII)Landroid/view/MotionEvent;" />
+		<method name="obtain(JJIFFI)Landroid/view/MotionEvent;" />
+		<method name="obtain(JJIIFFFFIFFII)Landroid/view/MotionEvent;" since="5" />
+		<method name="obtain(JJII[I[Landroid/view/MotionEvent$PointerCoords;IFFIIII)Landroid/view/MotionEvent;" since="9" />
+		<method name="obtain(JJII[Landroid/view/MotionEvent$PointerProperties;[Landroid/view/MotionEvent$PointerCoords;IIFFIIII)Landroid/view/MotionEvent;" since="14" />
+		<method name="obtain(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;" />
+		<method name="obtainNoHistory(Landroid/view/MotionEvent;)Landroid/view/MotionEvent;" since="5" />
+		<method name="offsetLocation(FF)V" />
+		<method name="recycle()V" />
+		<method name="setAction(I)V" />
+		<method name="setEdgeFlags(I)V" />
+		<method name="setLocation(FF)V" />
+		<method name="setSource(I)V" since="12" />
+		<method name="transform(Landroid/graphics/Matrix;)V" since="11" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_CANCEL" />
+		<field name="ACTION_DOWN" />
+		<field name="ACTION_HOVER_ENTER" since="14" />
+		<field name="ACTION_HOVER_EXIT" since="14" />
+		<field name="ACTION_HOVER_MOVE" since="12" />
+		<field name="ACTION_MASK" since="5" />
+		<field name="ACTION_MOVE" />
+		<field name="ACTION_OUTSIDE" since="3" />
+		<field name="ACTION_POINTER_1_DOWN" since="5" />
+		<field name="ACTION_POINTER_1_UP" since="5" />
+		<field name="ACTION_POINTER_2_DOWN" since="5" />
+		<field name="ACTION_POINTER_2_UP" since="5" />
+		<field name="ACTION_POINTER_3_DOWN" since="5" />
+		<field name="ACTION_POINTER_3_UP" since="5" />
+		<field name="ACTION_POINTER_DOWN" since="5" />
+		<field name="ACTION_POINTER_ID_MASK" since="5" />
+		<field name="ACTION_POINTER_ID_SHIFT" since="5" />
+		<field name="ACTION_POINTER_INDEX_MASK" since="8" />
+		<field name="ACTION_POINTER_INDEX_SHIFT" since="8" />
+		<field name="ACTION_POINTER_UP" since="5" />
+		<field name="ACTION_SCROLL" since="12" />
+		<field name="ACTION_UP" />
+		<field name="AXIS_BRAKE" since="12" />
+		<field name="AXIS_DISTANCE" since="14" />
+		<field name="AXIS_GAS" since="12" />
+		<field name="AXIS_GENERIC_1" since="12" />
+		<field name="AXIS_GENERIC_10" since="12" />
+		<field name="AXIS_GENERIC_11" since="12" />
+		<field name="AXIS_GENERIC_12" since="12" />
+		<field name="AXIS_GENERIC_13" since="12" />
+		<field name="AXIS_GENERIC_14" since="12" />
+		<field name="AXIS_GENERIC_15" since="12" />
+		<field name="AXIS_GENERIC_16" since="12" />
+		<field name="AXIS_GENERIC_2" since="12" />
+		<field name="AXIS_GENERIC_3" since="12" />
+		<field name="AXIS_GENERIC_4" since="12" />
+		<field name="AXIS_GENERIC_5" since="12" />
+		<field name="AXIS_GENERIC_6" since="12" />
+		<field name="AXIS_GENERIC_7" since="12" />
+		<field name="AXIS_GENERIC_8" since="12" />
+		<field name="AXIS_GENERIC_9" since="12" />
+		<field name="AXIS_HAT_X" since="12" />
+		<field name="AXIS_HAT_Y" since="12" />
+		<field name="AXIS_HSCROLL" since="12" />
+		<field name="AXIS_LTRIGGER" since="12" />
+		<field name="AXIS_ORIENTATION" since="12" />
+		<field name="AXIS_PRESSURE" since="12" />
+		<field name="AXIS_RTRIGGER" since="12" />
+		<field name="AXIS_RUDDER" since="12" />
+		<field name="AXIS_RX" since="12" />
+		<field name="AXIS_RY" since="12" />
+		<field name="AXIS_RZ" since="12" />
+		<field name="AXIS_SIZE" since="12" />
+		<field name="AXIS_THROTTLE" since="12" />
+		<field name="AXIS_TILT" since="14" />
+		<field name="AXIS_TOOL_MAJOR" since="12" />
+		<field name="AXIS_TOOL_MINOR" since="12" />
+		<field name="AXIS_TOUCH_MAJOR" since="12" />
+		<field name="AXIS_TOUCH_MINOR" since="12" />
+		<field name="AXIS_VSCROLL" since="12" />
+		<field name="AXIS_WHEEL" since="12" />
+		<field name="AXIS_X" since="12" />
+		<field name="AXIS_Y" since="12" />
+		<field name="AXIS_Z" since="12" />
+		<field name="BUTTON_BACK" since="14" />
+		<field name="BUTTON_FORWARD" since="14" />
+		<field name="BUTTON_PRIMARY" since="14" />
+		<field name="BUTTON_SECONDARY" since="14" />
+		<field name="BUTTON_TERTIARY" since="14" />
+		<field name="CREATOR" />
+		<field name="EDGE_BOTTOM" />
+		<field name="EDGE_LEFT" />
+		<field name="EDGE_RIGHT" />
+		<field name="EDGE_TOP" />
+		<field name="FLAG_WINDOW_IS_OBSCURED" since="9" />
+		<field name="INVALID_POINTER_ID" since="14" />
+		<field name="TOOL_TYPE_ERASER" since="14" />
+		<field name="TOOL_TYPE_FINGER" since="14" />
+		<field name="TOOL_TYPE_MOUSE" since="14" />
+		<field name="TOOL_TYPE_STYLUS" since="14" />
+		<field name="TOOL_TYPE_UNKNOWN" since="14" />
+	</class>
+	<class name="android/view/MotionEvent$PointerCoords" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/view/MotionEvent$PointerCoords;)V" since="12" />
+		<method name="clear()V" since="12" />
+		<method name="copyFrom(Landroid/view/MotionEvent$PointerCoords;)V" since="12" />
+		<method name="getAxisValue(I)F" since="12" />
+		<method name="setAxisValue(IF)V" since="12" />
+		<field name="orientation" />
+		<field name="pressure" />
+		<field name="size" />
+		<field name="toolMajor" />
+		<field name="toolMinor" />
+		<field name="touchMajor" />
+		<field name="touchMinor" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/view/MotionEvent$PointerProperties" since="14">
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/view/MotionEvent$PointerProperties;)V" />
+		<method name="clear()V" />
+		<method name="copyFrom(Landroid/view/MotionEvent$PointerProperties;)V" />
+		<field name="id" />
+		<field name="toolType" />
+	</class>
+	<class name="android/view/OrientationEventListener" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="canDetectOrientation()Z" />
+		<method name="disable()V" />
+		<method name="enable()V" />
+		<method name="onOrientationChanged(I)V" />
+		<field name="ORIENTATION_UNKNOWN" />
+	</class>
+	<class name="android/view/OrientationListener" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/hardware/SensorListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" since="3" />
+		<method name="disable()V" />
+		<method name="enable()V" />
+		<method name="onAccuracyChanged(II)V" />
+		<method name="onOrientationChanged(I)V" />
+		<method name="onSensorChanged(I[F)V" />
+		<field name="ORIENTATION_UNKNOWN" />
+	</class>
+	<class name="android/view/ScaleGestureDetector" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/ScaleGestureDetector$OnScaleGestureListener;)V" />
+		<method name="getCurrentSpan()F" />
+		<method name="getCurrentSpanX()F" since="11" />
+		<method name="getCurrentSpanY()F" since="11" />
+		<method name="getEventTime()J" />
+		<method name="getFocusX()F" />
+		<method name="getFocusY()F" />
+		<method name="getPreviousSpan()F" />
+		<method name="getPreviousSpanX()F" since="11" />
+		<method name="getPreviousSpanY()F" since="11" />
+		<method name="getScaleFactor()F" />
+		<method name="getTimeDelta()J" />
+		<method name="isInProgress()Z" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/ScaleGestureDetector$OnScaleGestureListener" since="8">
+		<method name="onScale(Landroid/view/ScaleGestureDetector;)Z" />
+		<method name="onScaleBegin(Landroid/view/ScaleGestureDetector;)Z" />
+		<method name="onScaleEnd(Landroid/view/ScaleGestureDetector;)V" />
+	</class>
+	<class name="android/view/ScaleGestureDetector$SimpleOnScaleGestureListener" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/ScaleGestureDetector$OnScaleGestureListener" />
+		<method name="&lt;init>()V" />
+		<method name="onScale(Landroid/view/ScaleGestureDetector;)Z" />
+		<method name="onScaleBegin(Landroid/view/ScaleGestureDetector;)Z" />
+		<method name="onScaleEnd(Landroid/view/ScaleGestureDetector;)V" />
+	</class>
+	<class name="android/view/SoundEffectConstants" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getContantForFocusDirection(I)I" />
+		<field name="CLICK" />
+		<field name="NAVIGATION_DOWN" />
+		<field name="NAVIGATION_LEFT" />
+		<field name="NAVIGATION_RIGHT" />
+		<field name="NAVIGATION_UP" />
+	</class>
+	<class name="android/view/SubMenu" since="1">
+		<implements name="android/view/Menu" />
+		<method name="clearHeader()V" />
+		<method name="getItem()Landroid/view/MenuItem;" />
+		<method name="setHeaderIcon(I)Landroid/view/SubMenu;" />
+		<method name="setHeaderIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/SubMenu;" />
+		<method name="setHeaderTitle(I)Landroid/view/SubMenu;" />
+		<method name="setHeaderTitle(Ljava/lang/CharSequence;)Landroid/view/SubMenu;" />
+		<method name="setHeaderView(Landroid/view/View;)Landroid/view/SubMenu;" />
+		<method name="setIcon(I)Landroid/view/SubMenu;" />
+		<method name="setIcon(Landroid/graphics/drawable/Drawable;)Landroid/view/SubMenu;" />
+	</class>
+	<class name="android/view/Surface" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/graphics/SurfaceTexture;)V" since="14" />
+		<method name="describeContents()I" />
+		<method name="freeze()V" />
+		<method name="hide()V" />
+		<method name="isValid()Z" />
+		<method name="lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;" />
+		<method name="readFromParcel(Landroid/os/Parcel;)V" />
+		<method name="release()V" since="14" />
+		<method name="setAlpha(F)V" />
+		<method name="setFlags(II)V" />
+		<method name="setFreezeTint(I)V" />
+		<method name="setLayer(I)V" />
+		<method name="setMatrix(FFFF)V" />
+		<method name="setOrientation(II)V" />
+		<method name="setPosition(II)V" />
+		<method name="setSize(II)V" />
+		<method name="setTransparentRegionHint(Landroid/graphics/Region;)V" />
+		<method name="show()V" />
+		<method name="unfreeze()V" />
+		<method name="unlockCanvas(Landroid/graphics/Canvas;)V" />
+		<method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="FX_SURFACE_BLUR" />
+		<field name="FX_SURFACE_DIM" />
+		<field name="FX_SURFACE_MASK" />
+		<field name="FX_SURFACE_NORMAL" />
+		<field name="GPU" />
+		<field name="HARDWARE" />
+		<field name="HIDDEN" />
+		<field name="NON_PREMULTIPLIED" />
+		<field name="PUSH_BUFFERS" />
+		<field name="ROTATION_0" />
+		<field name="ROTATION_180" />
+		<field name="ROTATION_270" />
+		<field name="ROTATION_90" />
+		<field name="SECURE" />
+		<field name="SURACE_FROZEN" />
+		<field name="SURFACE_BLUR_FREEZE" />
+		<field name="SURFACE_DITHER" />
+		<field name="SURFACE_FROZEN" since="4" />
+		<field name="SURFACE_HIDDEN" />
+	</class>
+	<class name="android/view/Surface$OutOfResourcesException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/view/SurfaceHolder" since="1">
+		<method name="addCallback(Landroid/view/SurfaceHolder$Callback;)V" />
+		<method name="getSurface()Landroid/view/Surface;" />
+		<method name="getSurfaceFrame()Landroid/graphics/Rect;" />
+		<method name="isCreating()Z" />
+		<method name="lockCanvas()Landroid/graphics/Canvas;" />
+		<method name="lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;" />
+		<method name="removeCallback(Landroid/view/SurfaceHolder$Callback;)V" />
+		<method name="setFixedSize(II)V" />
+		<method name="setFormat(I)V" />
+		<method name="setKeepScreenOn(Z)V" />
+		<method name="setSizeFromLayout()V" />
+		<method name="setType(I)V" />
+		<method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V" />
+		<field name="SURFACE_TYPE_GPU" />
+		<field name="SURFACE_TYPE_HARDWARE" />
+		<field name="SURFACE_TYPE_NORMAL" />
+		<field name="SURFACE_TYPE_PUSH_BUFFERS" />
+	</class>
+	<class name="android/view/SurfaceHolder$BadSurfaceTypeException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/view/SurfaceHolder$Callback" since="1">
+		<method name="surfaceChanged(Landroid/view/SurfaceHolder;III)V" />
+		<method name="surfaceCreated(Landroid/view/SurfaceHolder;)V" />
+		<method name="surfaceDestroyed(Landroid/view/SurfaceHolder;)V" />
+	</class>
+	<class name="android/view/SurfaceHolder$Callback2" since="9">
+		<implements name="android/view/SurfaceHolder$Callback" />
+		<method name="surfaceRedrawNeeded(Landroid/view/SurfaceHolder;)V" />
+	</class>
+	<class name="android/view/SurfaceView" since="1">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="gatherTransparentRegion(Landroid/graphics/Region;)Z" />
+		<method name="getHolder()Landroid/view/SurfaceHolder;" />
+		<method name="setZOrderMediaOverlay(Z)V" since="5" />
+		<method name="setZOrderOnTop(Z)V" since="5" />
+	</class>
+	<class name="android/view/TextureView" since="14">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="getBitmap()Landroid/graphics/Bitmap;" />
+		<method name="getBitmap(II)Landroid/graphics/Bitmap;" />
+		<method name="getBitmap(Landroid/graphics/Bitmap;)Landroid/graphics/Bitmap;" />
+		<method name="getSurfaceTexture()Landroid/graphics/SurfaceTexture;" />
+		<method name="getSurfaceTextureListener()Landroid/view/TextureView$SurfaceTextureListener;" />
+		<method name="getTransform(Landroid/graphics/Matrix;)Landroid/graphics/Matrix;" />
+		<method name="isAvailable()Z" />
+		<method name="lockCanvas()Landroid/graphics/Canvas;" />
+		<method name="lockCanvas(Landroid/graphics/Rect;)Landroid/graphics/Canvas;" />
+		<method name="onDraw(Landroid/graphics/Canvas;)V" />
+		<method name="setOpaque(Z)V" />
+		<method name="setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V" />
+		<method name="setTransform(Landroid/graphics/Matrix;)V" />
+		<method name="unlockCanvasAndPost(Landroid/graphics/Canvas;)V" />
+	</class>
+	<class name="android/view/TextureView$SurfaceTextureListener" since="14">
+		<method name="onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V" />
+		<method name="onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)Z" />
+		<method name="onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V" />
+		<method name="onSurfaceTextureUpdated(Landroid/graphics/SurfaceTexture;)V" />
+	</class>
+	<class name="android/view/TouchDelegate" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/graphics/Rect;Landroid/view/View;)V" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<field name="ABOVE" />
+		<field name="BELOW" />
+		<field name="TO_LEFT" />
+		<field name="TO_RIGHT" />
+	</class>
+	<class name="android/view/VelocityTracker" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addMovement(Landroid/view/MotionEvent;)V" />
+		<method name="clear()V" />
+		<method name="computeCurrentVelocity(I)V" />
+		<method name="computeCurrentVelocity(IF)V" since="4" />
+		<method name="getXVelocity()F" />
+		<method name="getXVelocity(I)F" since="8" />
+		<method name="getYVelocity()F" />
+		<method name="getYVelocity(I)F" since="8" />
+		<method name="obtain()Landroid/view/VelocityTracker;" />
+		<method name="recycle()V" />
+	</class>
+	<class name="android/view/View" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/graphics/drawable/Drawable$Callback" />
+		<implements name="android/view/KeyEvent$Callback" />
+		<implements name="android/view/accessibility/AccessibilityEventSource" since="4" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="addFocusables(Ljava/util/ArrayList;I)V" />
+		<method name="addFocusables(Ljava/util/ArrayList;II)V" since="4" />
+		<method name="addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V" since="12" />
+		<method name="addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V" since="11" />
+		<method name="addTouchables(Ljava/util/ArrayList;)V" />
+		<method name="animate()Landroid/view/ViewPropertyAnimator;" since="12" />
+		<method name="awakenScrollBars()Z" since="5" />
+		<method name="awakenScrollBars(I)Z" since="5" />
+		<method name="awakenScrollBars(IZ)Z" since="5" />
+		<method name="bringToFront()V" />
+		<method name="buildDrawingCache()V" />
+		<method name="buildDrawingCache(Z)V" since="4" />
+		<method name="buildLayer()V" since="12" />
+		<method name="callOnClick()Z" since="15" />
+		<method name="canScrollHorizontally(I)Z" since="14" />
+		<method name="canScrollVertically(I)Z" since="14" />
+		<method name="cancelLongPress()V" />
+		<method name="checkInputConnectionProxy(Landroid/view/View;)Z" since="3" />
+		<method name="clearAnimation()V" />
+		<method name="clearFocus()V" />
+		<method name="combineMeasuredStates(II)I" since="11" />
+		<method name="computeHorizontalScrollExtent()I" />
+		<method name="computeHorizontalScrollOffset()I" />
+		<method name="computeHorizontalScrollRange()I" />
+		<method name="computeScroll()V" />
+		<method name="computeVerticalScrollExtent()I" />
+		<method name="computeVerticalScrollOffset()I" />
+		<method name="computeVerticalScrollRange()I" />
+		<method name="createAccessibilityNodeInfo()Landroid/view/accessibility/AccessibilityNodeInfo;" since="14" />
+		<method name="createContextMenu(Landroid/view/ContextMenu;)V" />
+		<method name="destroyDrawingCache()V" />
+		<method name="dispatchConfigurationChanged(Landroid/content/res/Configuration;)V" since="8" />
+		<method name="dispatchDisplayHint(I)V" since="8" />
+		<method name="dispatchDragEvent(Landroid/view/DragEvent;)Z" since="11" />
+		<method name="dispatchDraw(Landroid/graphics/Canvas;)V" />
+		<method name="dispatchGenericFocusedEvent(Landroid/view/MotionEvent;)Z" since="14" />
+		<method name="dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="dispatchGenericPointerEvent(Landroid/view/MotionEvent;)Z" since="14" />
+		<method name="dispatchHoverEvent(Landroid/view/MotionEvent;)Z" since="14" />
+		<method name="dispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="dispatchKeyEventPreIme(Landroid/view/KeyEvent;)Z" since="3" />
+		<method name="dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z" since="4" />
+		<method name="dispatchRestoreInstanceState(Landroid/util/SparseArray;)V" />
+		<method name="dispatchSaveInstanceState(Landroid/util/SparseArray;)V" />
+		<method name="dispatchSetActivated(Z)V" since="11" />
+		<method name="dispatchSetPressed(Z)V" />
+		<method name="dispatchSetSelected(Z)V" />
+		<method name="dispatchSystemUiVisibilityChanged(I)V" since="11" />
+		<method name="dispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="dispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="dispatchUnhandledMove(Landroid/view/View;I)Z" />
+		<method name="dispatchVisibilityChanged(Landroid/view/View;I)V" since="8" />
+		<method name="dispatchWindowFocusChanged(Z)V" />
+		<method name="dispatchWindowVisibilityChanged(I)V" />
+		<method name="draw(Landroid/graphics/Canvas;)V" />
+		<method name="drawableStateChanged()V" />
+		<method name="findFocus()Landroid/view/View;" />
+		<method name="findViewById(I)Landroid/view/View;" />
+		<method name="findViewWithTag(Ljava/lang/Object;)Landroid/view/View;" />
+		<method name="findViewsWithText(Ljava/util/ArrayList;Ljava/lang/CharSequence;I)V" since="14" />
+		<method name="fitSystemWindows(Landroid/graphics/Rect;)Z" />
+		<method name="fitsSystemWindows()Z" since="14" />
+		<method name="focusSearch(I)Landroid/view/View;" />
+		<method name="forceLayout()V" />
+		<method name="getAlpha()F" since="11" />
+		<method name="getAnimation()Landroid/view/animation/Animation;" />
+		<method name="getApplicationWindowToken()Landroid/os/IBinder;" />
+		<method name="getBackground()Landroid/graphics/drawable/Drawable;" />
+		<method name="getBaseline()I" />
+		<method name="getBottom()I" />
+		<method name="getBottomFadingEdgeStrength()F" />
+		<method name="getBottomPaddingOffset()I" since="2" />
+		<method name="getContentDescription()Ljava/lang/CharSequence;" since="4" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getContextMenuInfo()Landroid/view/ContextMenu$ContextMenuInfo;" />
+		<method name="getDefaultSize(II)I" />
+		<method name="getDrawableState()[I" />
+		<method name="getDrawingCache()Landroid/graphics/Bitmap;" />
+		<method name="getDrawingCache(Z)Landroid/graphics/Bitmap;" since="4" />
+		<method name="getDrawingCacheBackgroundColor()I" />
+		<method name="getDrawingCacheQuality()I" />
+		<method name="getDrawingRect(Landroid/graphics/Rect;)V" />
+		<method name="getDrawingTime()J" />
+		<method name="getFilterTouchesWhenObscured()Z" since="9" />
+		<method name="getFocusables(I)Ljava/util/ArrayList;" />
+		<method name="getFocusedRect(Landroid/graphics/Rect;)V" />
+		<method name="getGlobalVisibleRect(Landroid/graphics/Rect;)Z" />
+		<method name="getGlobalVisibleRect(Landroid/graphics/Rect;Landroid/graphics/Point;)Z" />
+		<method name="getHandler()Landroid/os/Handler;" />
+		<method name="getHeight()I" />
+		<method name="getHitRect(Landroid/graphics/Rect;)V" />
+		<method name="getHorizontalFadingEdgeLength()I" />
+		<method name="getHorizontalScrollbarHeight()I" />
+		<method name="getId()I" />
+		<method name="getKeepScreenOn()Z" />
+		<method name="getKeyDispatcherState()Landroid/view/KeyEvent$DispatcherState;" since="5" />
+		<method name="getLayerType()I" since="11" />
+		<method name="getLayoutParams()Landroid/view/ViewGroup$LayoutParams;" />
+		<method name="getLeft()I" />
+		<method name="getLeftFadingEdgeStrength()F" />
+		<method name="getLeftPaddingOffset()I" since="2" />
+		<method name="getLocalVisibleRect(Landroid/graphics/Rect;)Z" />
+		<method name="getLocationInWindow([I)V" />
+		<method name="getLocationOnScreen([I)V" />
+		<method name="getMatrix()Landroid/graphics/Matrix;" since="11" />
+		<method name="getMeasuredHeight()I" />
+		<method name="getMeasuredHeightAndState()I" since="11" />
+		<method name="getMeasuredState()I" since="11" />
+		<method name="getMeasuredWidth()I" />
+		<method name="getMeasuredWidthAndState()I" since="11" />
+		<method name="getNextFocusDownId()I" />
+		<method name="getNextFocusForwardId()I" since="11" />
+		<method name="getNextFocusLeftId()I" />
+		<method name="getNextFocusRightId()I" />
+		<method name="getNextFocusUpId()I" />
+		<method name="getOnFocusChangeListener()Landroid/view/View$OnFocusChangeListener;" />
+		<method name="getOverScrollMode()I" since="9" />
+		<method name="getPaddingBottom()I" />
+		<method name="getPaddingLeft()I" />
+		<method name="getPaddingRight()I" />
+		<method name="getPaddingTop()I" />
+		<method name="getParent()Landroid/view/ViewParent;" />
+		<method name="getPivotX()F" since="11" />
+		<method name="getPivotY()F" since="11" />
+		<method name="getResources()Landroid/content/res/Resources;" />
+		<method name="getRight()I" />
+		<method name="getRightFadingEdgeStrength()F" />
+		<method name="getRightPaddingOffset()I" since="2" />
+		<method name="getRootView()Landroid/view/View;" />
+		<method name="getRotation()F" since="11" />
+		<method name="getRotationX()F" since="11" />
+		<method name="getRotationY()F" since="11" />
+		<method name="getScaleX()F" since="11" />
+		<method name="getScaleY()F" since="11" />
+		<method name="getScrollBarStyle()I" />
+		<method name="getScrollX()I" />
+		<method name="getScrollY()I" />
+		<method name="getSolidColor()I" />
+		<method name="getSuggestedMinimumHeight()I" />
+		<method name="getSuggestedMinimumWidth()I" />
+		<method name="getSystemUiVisibility()I" since="11" />
+		<method name="getTag()Ljava/lang/Object;" />
+		<method name="getTag(I)Ljava/lang/Object;" since="4" />
+		<method name="getTop()I" />
+		<method name="getTopFadingEdgeStrength()F" />
+		<method name="getTopPaddingOffset()I" since="2" />
+		<method name="getTouchDelegate()Landroid/view/TouchDelegate;" />
+		<method name="getTouchables()Ljava/util/ArrayList;" />
+		<method name="getTranslationX()F" since="11" />
+		<method name="getTranslationY()F" since="11" />
+		<method name="getVerticalFadingEdgeLength()I" />
+		<method name="getVerticalScrollbarPosition()I" since="11" />
+		<method name="getVerticalScrollbarWidth()I" />
+		<method name="getViewTreeObserver()Landroid/view/ViewTreeObserver;" />
+		<method name="getVisibility()I" />
+		<method name="getWidth()I" />
+		<method name="getWindowAttachCount()I" />
+		<method name="getWindowToken()Landroid/os/IBinder;" />
+		<method name="getWindowVisibility()I" />
+		<method name="getWindowVisibleDisplayFrame(Landroid/graphics/Rect;)V" since="3" />
+		<method name="getX()F" since="11" />
+		<method name="getY()F" since="11" />
+		<method name="hasFocus()Z" />
+		<method name="hasFocusable()Z" />
+		<method name="hasOnClickListeners()Z" since="15" />
+		<method name="hasWindowFocus()Z" />
+		<method name="inflate(Landroid/content/Context;ILandroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="initializeFadingEdge(Landroid/content/res/TypedArray;)V" />
+		<method name="initializeScrollbars(Landroid/content/res/TypedArray;)V" />
+		<method name="invalidate()V" />
+		<method name="invalidate(IIII)V" />
+		<method name="invalidate(Landroid/graphics/Rect;)V" />
+		<method name="invalidateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="isActivated()Z" since="11" />
+		<method name="isClickable()Z" />
+		<method name="isDirty()Z" since="11" />
+		<method name="isDrawingCacheEnabled()Z" />
+		<method name="isDuplicateParentStateEnabled()Z" />
+		<method name="isEnabled()Z" />
+		<method name="isFocusable()Z" />
+		<method name="isFocusableInTouchMode()Z" />
+		<method name="isFocused()Z" />
+		<method name="isHapticFeedbackEnabled()Z" since="3" />
+		<method name="isHardwareAccelerated()Z" since="11" />
+		<method name="isHorizontalFadingEdgeEnabled()Z" />
+		<method name="isHorizontalScrollBarEnabled()Z" />
+		<method name="isHovered()Z" since="14" />
+		<method name="isInEditMode()Z" since="3" />
+		<method name="isInTouchMode()Z" />
+		<method name="isLayoutRequested()Z" />
+		<method name="isLongClickable()Z" />
+		<method name="isOpaque()Z" since="7" />
+		<method name="isPaddingOffsetRequired()Z" since="2" />
+		<method name="isPressed()Z" />
+		<method name="isSaveEnabled()Z" />
+		<method name="isSaveFromParentEnabled()Z" since="11" />
+		<method name="isScrollbarFadingEnabled()Z" since="5" />
+		<method name="isSelected()Z" />
+		<method name="isShown()Z" />
+		<method name="isSoundEffectsEnabled()Z" />
+		<method name="isVerticalFadingEdgeEnabled()Z" />
+		<method name="isVerticalScrollBarEnabled()Z" />
+		<method name="jumpDrawablesToCurrentState()V" since="11" />
+		<method name="layout(IIII)V" />
+		<method name="measure(II)V" />
+		<method name="mergeDrawableStates([I[I)[I" />
+		<method name="offsetLeftAndRight(I)V" />
+		<method name="offsetTopAndBottom(I)V" />
+		<method name="onAnimationEnd()V" />
+		<method name="onAnimationStart()V" />
+		<method name="onAttachedToWindow()V" />
+		<method name="onCheckIsTextEditor()Z" since="3" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" since="8" />
+		<method name="onCreateContextMenu(Landroid/view/ContextMenu;)V" />
+		<method name="onCreateDrawableState(I)[I" />
+		<method name="onCreateInputConnection(Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;" since="3" />
+		<method name="onDetachedFromWindow()V" />
+		<method name="onDisplayHint(I)V" since="8" />
+		<method name="onDragEvent(Landroid/view/DragEvent;)Z" since="11" />
+		<method name="onDraw(Landroid/graphics/Canvas;)V" />
+		<method name="onDrawScrollBars(Landroid/graphics/Canvas;)V" since="7" />
+		<method name="onFilterTouchEventForSecurity(Landroid/view/MotionEvent;)Z" since="9" />
+		<method name="onFinishInflate()V" />
+		<method name="onFinishTemporaryDetach()V" since="3" />
+		<method name="onFocusChanged(ZILandroid/graphics/Rect;)V" />
+		<method name="onGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="onHoverChanged(Z)V" since="14" />
+		<method name="onHoverEvent(Landroid/view/MotionEvent;)Z" since="14" />
+		<method name="onInitializeAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" since="14" />
+		<method name="onInitializeAccessibilityNodeInfo(Landroid/view/accessibility/AccessibilityNodeInfo;)V" since="14" />
+		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyLongPress(ILandroid/view/KeyEvent;)Z" since="5" />
+		<method name="onKeyMultiple(IILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyPreIme(ILandroid/view/KeyEvent;)Z" since="3" />
+		<method name="onKeyShortcut(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="onMeasure(II)V" />
+		<method name="onOverScrolled(IIZZ)V" since="9" />
+		<method name="onPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" since="14" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
+		<method name="onScrollChanged(IIII)V" />
+		<method name="onSetAlpha(I)Z" />
+		<method name="onSizeChanged(IIII)V" />
+		<method name="onStartTemporaryDetach()V" since="3" />
+		<method name="onTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onVisibilityChanged(Landroid/view/View;I)V" since="8" />
+		<method name="onWindowFocusChanged(Z)V" />
+		<method name="onWindowVisibilityChanged(I)V" />
+		<method name="overScrollBy(IIIIIIIIZ)Z" since="9" />
+		<method name="performClick()Z" />
+		<method name="performHapticFeedback(I)Z" since="3" />
+		<method name="performHapticFeedback(II)Z" since="3" />
+		<method name="performLongClick()Z" />
+		<method name="playSoundEffect(I)V" />
+		<method name="post(Ljava/lang/Runnable;)Z" />
+		<method name="postDelayed(Ljava/lang/Runnable;J)Z" />
+		<method name="postInvalidate()V" />
+		<method name="postInvalidate(IIII)V" />
+		<method name="postInvalidateDelayed(J)V" />
+		<method name="postInvalidateDelayed(JIIII)V" />
+		<method name="refreshDrawableState()V" />
+		<method name="removeCallbacks(Ljava/lang/Runnable;)Z" />
+		<method name="removeOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V" since="12" />
+		<method name="removeOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V" since="11" />
+		<method name="requestFocus()Z" />
+		<method name="requestFocus(I)Z" />
+		<method name="requestFocus(ILandroid/graphics/Rect;)Z" />
+		<method name="requestFocusFromTouch()Z" />
+		<method name="requestLayout()V" />
+		<method name="requestRectangleOnScreen(Landroid/graphics/Rect;)Z" />
+		<method name="requestRectangleOnScreen(Landroid/graphics/Rect;Z)Z" />
+		<method name="resolveSize(II)I" />
+		<method name="resolveSizeAndState(III)I" since="11" />
+		<method name="restoreHierarchyState(Landroid/util/SparseArray;)V" />
+		<method name="saveHierarchyState(Landroid/util/SparseArray;)V" />
+		<method name="scheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;J)V" />
+		<method name="scrollBy(II)V" />
+		<method name="scrollTo(II)V" />
+		<method name="sendAccessibilityEvent(I)V" since="4" />
+		<method name="sendAccessibilityEventUnchecked(Landroid/view/accessibility/AccessibilityEvent;)V" since="4" />
+		<method name="setAccessibilityDelegate(Landroid/view/View$AccessibilityDelegate;)V" since="14" />
+		<method name="setActivated(Z)V" since="11" />
+		<method name="setAlpha(F)V" since="11" />
+		<method name="setAnimation(Landroid/view/animation/Animation;)V" />
+		<method name="setBackgroundColor(I)V" />
+		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setBackgroundResource(I)V" />
+		<method name="setBottom(I)V" since="11" />
+		<method name="setCameraDistance(F)V" since="12" />
+		<method name="setClickable(Z)V" />
+		<method name="setContentDescription(Ljava/lang/CharSequence;)V" since="4" />
+		<method name="setDrawingCacheBackgroundColor(I)V" />
+		<method name="setDrawingCacheEnabled(Z)V" />
+		<method name="setDrawingCacheQuality(I)V" />
+		<method name="setDuplicateParentStateEnabled(Z)V" />
+		<method name="setEnabled(Z)V" />
+		<method name="setFadingEdgeLength(I)V" />
+		<method name="setFilterTouchesWhenObscured(Z)V" since="9" />
+		<method name="setFitsSystemWindows(Z)V" since="14" />
+		<method name="setFocusable(Z)V" />
+		<method name="setFocusableInTouchMode(Z)V" />
+		<method name="setHapticFeedbackEnabled(Z)V" since="3" />
+		<method name="setHorizontalFadingEdgeEnabled(Z)V" />
+		<method name="setHorizontalScrollBarEnabled(Z)V" />
+		<method name="setHovered(Z)V" since="14" />
+		<method name="setId(I)V" />
+		<method name="setKeepScreenOn(Z)V" />
+		<method name="setLayerType(ILandroid/graphics/Paint;)V" since="11" />
+		<method name="setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="setLeft(I)V" since="11" />
+		<method name="setLongClickable(Z)V" />
+		<method name="setMeasuredDimension(II)V" />
+		<method name="setMinimumHeight(I)V" />
+		<method name="setMinimumWidth(I)V" />
+		<method name="setNextFocusDownId(I)V" />
+		<method name="setNextFocusForwardId(I)V" since="11" />
+		<method name="setNextFocusLeftId(I)V" />
+		<method name="setNextFocusRightId(I)V" />
+		<method name="setNextFocusUpId(I)V" />
+		<method name="setOnClickListener(Landroid/view/View$OnClickListener;)V" />
+		<method name="setOnCreateContextMenuListener(Landroid/view/View$OnCreateContextMenuListener;)V" />
+		<method name="setOnDragListener(Landroid/view/View$OnDragListener;)V" since="11" />
+		<method name="setOnFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V" />
+		<method name="setOnGenericMotionListener(Landroid/view/View$OnGenericMotionListener;)V" since="12" />
+		<method name="setOnHoverListener(Landroid/view/View$OnHoverListener;)V" since="14" />
+		<method name="setOnKeyListener(Landroid/view/View$OnKeyListener;)V" />
+		<method name="setOnLongClickListener(Landroid/view/View$OnLongClickListener;)V" />
+		<method name="setOnSystemUiVisibilityChangeListener(Landroid/view/View$OnSystemUiVisibilityChangeListener;)V" since="11" />
+		<method name="setOnTouchListener(Landroid/view/View$OnTouchListener;)V" />
+		<method name="setOverScrollMode(I)V" since="9" />
+		<method name="setPadding(IIII)V" />
+		<method name="setPivotX(F)V" since="11" />
+		<method name="setPivotY(F)V" since="11" />
+		<method name="setPressed(Z)V" />
+		<method name="setRight(I)V" since="11" />
+		<method name="setRotation(F)V" since="11" />
+		<method name="setRotationX(F)V" since="11" />
+		<method name="setRotationY(F)V" since="11" />
+		<method name="setSaveEnabled(Z)V" />
+		<method name="setSaveFromParentEnabled(Z)V" since="11" />
+		<method name="setScaleX(F)V" since="11" />
+		<method name="setScaleY(F)V" since="11" />
+		<method name="setScrollBarStyle(I)V" />
+		<method name="setScrollContainer(Z)V" since="3" />
+		<method name="setScrollX(I)V" since="14" />
+		<method name="setScrollY(I)V" since="14" />
+		<method name="setScrollbarFadingEnabled(Z)V" since="5" />
+		<method name="setSelected(Z)V" />
+		<method name="setSoundEffectsEnabled(Z)V" />
+		<method name="setSystemUiVisibility(I)V" since="11" />
+		<method name="setTag(ILjava/lang/Object;)V" since="4" />
+		<method name="setTag(Ljava/lang/Object;)V" />
+		<method name="setTop(I)V" since="11" />
+		<method name="setTouchDelegate(Landroid/view/TouchDelegate;)V" />
+		<method name="setTranslationX(F)V" since="11" />
+		<method name="setTranslationY(F)V" since="11" />
+		<method name="setVerticalFadingEdgeEnabled(Z)V" />
+		<method name="setVerticalScrollBarEnabled(Z)V" />
+		<method name="setVerticalScrollbarPosition(I)V" since="11" />
+		<method name="setVisibility(I)V" />
+		<method name="setWillNotCacheDrawing(Z)V" />
+		<method name="setWillNotDraw(Z)V" />
+		<method name="setX(F)V" since="11" />
+		<method name="setY(F)V" since="11" />
+		<method name="showContextMenu()Z" />
+		<method name="startActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+		<method name="startAnimation(Landroid/view/animation/Animation;)V" />
+		<method name="startDrag(Landroid/content/ClipData;Landroid/view/View$DragShadowBuilder;Ljava/lang/Object;I)Z" since="11" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="unscheduleDrawable(Landroid/graphics/drawable/Drawable;Ljava/lang/Runnable;)V" />
+		<method name="verifyDrawable(Landroid/graphics/drawable/Drawable;)Z" />
+		<method name="willNotCacheDrawing()Z" />
+		<method name="willNotDraw()Z" />
+		<field name="ALPHA" since="14" />
+		<field name="DRAWING_CACHE_QUALITY_AUTO" />
+		<field name="DRAWING_CACHE_QUALITY_HIGH" />
+		<field name="DRAWING_CACHE_QUALITY_LOW" />
+		<field name="EMPTY_STATE_SET" />
+		<field name="ENABLED_FOCUSED_SELECTED_STATE_SET" />
+		<field name="ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="ENABLED_FOCUSED_STATE_SET" />
+		<field name="ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="ENABLED_SELECTED_STATE_SET" />
+		<field name="ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="ENABLED_STATE_SET" />
+		<field name="ENABLED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="FIND_VIEWS_WITH_CONTENT_DESCRIPTION" since="14" />
+		<field name="FIND_VIEWS_WITH_TEXT" since="14" />
+		<field name="FOCUSABLES_ALL" since="4" />
+		<field name="FOCUSABLES_TOUCH_MODE" since="4" />
+		<field name="FOCUSED_SELECTED_STATE_SET" />
+		<field name="FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="FOCUSED_STATE_SET" />
+		<field name="FOCUSED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="FOCUS_BACKWARD" />
+		<field name="FOCUS_DOWN" />
+		<field name="FOCUS_FORWARD" />
+		<field name="FOCUS_LEFT" />
+		<field name="FOCUS_RIGHT" />
+		<field name="FOCUS_UP" />
+		<field name="GONE" />
+		<field name="HAPTIC_FEEDBACK_ENABLED" since="3" />
+		<field name="INVISIBLE" />
+		<field name="KEEP_SCREEN_ON" />
+		<field name="LAYER_TYPE_HARDWARE" since="11" />
+		<field name="LAYER_TYPE_NONE" since="11" />
+		<field name="LAYER_TYPE_SOFTWARE" since="11" />
+		<field name="MEASURED_HEIGHT_STATE_SHIFT" since="11" />
+		<field name="MEASURED_SIZE_MASK" since="11" />
+		<field name="MEASURED_STATE_MASK" since="11" />
+		<field name="MEASURED_STATE_TOO_SMALL" since="11" />
+		<field name="NO_ID" />
+		<field name="OVER_SCROLL_ALWAYS" since="9" />
+		<field name="OVER_SCROLL_IF_CONTENT_SCROLLS" since="9" />
+		<field name="OVER_SCROLL_NEVER" since="9" />
+		<field name="PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET" />
+		<field name="PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_ENABLED_FOCUSED_STATE_SET" />
+		<field name="PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_ENABLED_SELECTED_STATE_SET" />
+		<field name="PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_ENABLED_STATE_SET" />
+		<field name="PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_FOCUSED_SELECTED_STATE_SET" />
+		<field name="PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_FOCUSED_STATE_SET" />
+		<field name="PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_SELECTED_STATE_SET" />
+		<field name="PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="PRESSED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="ROTATION" since="14" />
+		<field name="ROTATION_X" since="14" />
+		<field name="ROTATION_Y" since="14" />
+		<field name="SCALE_X" since="14" />
+		<field name="SCALE_Y" since="14" />
+		<field name="SCROLLBARS_INSIDE_INSET" />
+		<field name="SCROLLBARS_INSIDE_OVERLAY" />
+		<field name="SCROLLBARS_OUTSIDE_INSET" />
+		<field name="SCROLLBARS_OUTSIDE_OVERLAY" />
+		<field name="SCROLLBAR_POSITION_DEFAULT" since="11" />
+		<field name="SCROLLBAR_POSITION_LEFT" since="11" />
+		<field name="SCROLLBAR_POSITION_RIGHT" since="11" />
+		<field name="SELECTED_STATE_SET" />
+		<field name="SELECTED_WINDOW_FOCUSED_STATE_SET" />
+		<field name="SOUND_EFFECTS_ENABLED" />
+		<field name="STATUS_BAR_HIDDEN" since="11" />
+		<field name="STATUS_BAR_VISIBLE" since="11" />
+		<field name="SYSTEM_UI_FLAG_HIDE_NAVIGATION" since="14" />
+		<field name="SYSTEM_UI_FLAG_LOW_PROFILE" since="14" />
+		<field name="SYSTEM_UI_FLAG_VISIBLE" since="14" />
+		<field name="TRANSLATION_X" since="14" />
+		<field name="TRANSLATION_Y" since="14" />
+		<field name="VIEW_LOG_TAG" />
+		<field name="VISIBLE" />
+		<field name="WINDOW_FOCUSED_STATE_SET" />
+		<field name="X" since="14" />
+		<field name="Y" since="14" />
+	</class>
+	<class name="android/view/View$AccessibilityDelegate" since="14">
+		<method name="&lt;init>()V" />
+		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" />
+		<method name="onInitializeAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V" />
+		<method name="onInitializeAccessibilityNodeInfo(Landroid/view/View;Landroid/view/accessibility/AccessibilityNodeInfo;)V" />
+		<method name="onPopulateAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V" />
+		<method name="onRequestSendAccessibilityEvent(Landroid/view/ViewGroup;Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" />
+		<method name="sendAccessibilityEvent(Landroid/view/View;I)V" />
+		<method name="sendAccessibilityEventUnchecked(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)V" />
+	</class>
+	<class name="android/view/View$BaseSavedState" since="1">
+		<extends name="android/view/AbsSavedState" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Landroid/os/Parcelable;)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/View$DragShadowBuilder" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/view/View;)V" />
+		<method name="getView()Landroid/view/View;" />
+		<method name="onDrawShadow(Landroid/graphics/Canvas;)V" />
+		<method name="onProvideShadowMetrics(Landroid/graphics/Point;Landroid/graphics/Point;)V" />
+	</class>
+	<class name="android/view/View$MeasureSpec" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getMode(I)I" />
+		<method name="getSize(I)I" />
+		<method name="makeMeasureSpec(II)I" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<field name="AT_MOST" />
+		<field name="EXACTLY" />
+		<field name="UNSPECIFIED" />
+	</class>
+	<class name="android/view/View$OnAttachStateChangeListener" since="12">
+		<method name="onViewAttachedToWindow(Landroid/view/View;)V" />
+		<method name="onViewDetachedFromWindow(Landroid/view/View;)V" />
+	</class>
+	<class name="android/view/View$OnClickListener" since="1">
+		<method name="onClick(Landroid/view/View;)V" />
+	</class>
+	<class name="android/view/View$OnCreateContextMenuListener" since="1">
+		<method name="onCreateContextMenu(Landroid/view/ContextMenu;Landroid/view/View;Landroid/view/ContextMenu$ContextMenuInfo;)V" />
+	</class>
+	<class name="android/view/View$OnDragListener" since="11">
+		<method name="onDrag(Landroid/view/View;Landroid/view/DragEvent;)Z" />
+	</class>
+	<class name="android/view/View$OnFocusChangeListener" since="1">
+		<method name="onFocusChange(Landroid/view/View;Z)V" />
+	</class>
+	<class name="android/view/View$OnGenericMotionListener" since="12">
+		<method name="onGenericMotion(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/View$OnHoverListener" since="14">
+		<method name="onHover(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/View$OnKeyListener" since="1">
+		<method name="onKey(Landroid/view/View;ILandroid/view/KeyEvent;)Z" />
+	</class>
+	<class name="android/view/View$OnLayoutChangeListener" since="11">
+		<method name="onLayoutChange(Landroid/view/View;IIIIIIII)V" />
+	</class>
+	<class name="android/view/View$OnLongClickListener" since="1">
+		<method name="onLongClick(Landroid/view/View;)Z" />
+	</class>
+	<class name="android/view/View$OnSystemUiVisibilityChangeListener" since="11">
+		<method name="onSystemUiVisibilityChange(I)V" />
+	</class>
+	<class name="android/view/View$OnTouchListener" since="1">
+		<method name="onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
+	</class>
+	<class name="android/view/ViewConfiguration" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="get(Landroid/content/Context;)Landroid/view/ViewConfiguration;" since="3" />
+		<method name="getDoubleTapTimeout()I" since="3" />
+		<method name="getEdgeSlop()I" />
+		<method name="getFadingEdgeLength()I" />
+		<method name="getGlobalActionKeyTimeout()J" />
+		<method name="getJumpTapTimeout()I" />
+		<method name="getKeyRepeatDelay()I" since="12" />
+		<method name="getKeyRepeatTimeout()I" since="12" />
+		<method name="getLongPressTimeout()I" />
+		<method name="getMaximumDrawingCacheSize()I" />
+		<method name="getMaximumFlingVelocity()I" since="4" />
+		<method name="getMinimumFlingVelocity()I" />
+		<method name="getPressedStateDuration()I" />
+		<method name="getScaledDoubleTapSlop()I" since="3" />
+		<method name="getScaledEdgeSlop()I" since="3" />
+		<method name="getScaledFadingEdgeLength()I" since="3" />
+		<method name="getScaledMaximumDrawingCacheSize()I" since="3" />
+		<method name="getScaledMaximumFlingVelocity()I" since="4" />
+		<method name="getScaledMinimumFlingVelocity()I" since="3" />
+		<method name="getScaledOverflingDistance()I" since="9" />
+		<method name="getScaledOverscrollDistance()I" since="9" />
+		<method name="getScaledPagingTouchSlop()I" since="8" />
+		<method name="getScaledScrollBarSize()I" since="3" />
+		<method name="getScaledTouchSlop()I" since="3" />
+		<method name="getScaledWindowTouchSlop()I" since="3" />
+		<method name="getScrollBarFadeDuration()I" since="5" />
+		<method name="getScrollBarSize()I" />
+		<method name="getScrollDefaultDelay()I" since="5" />
+		<method name="getScrollFriction()F" />
+		<method name="getTapTimeout()I" />
+		<method name="getTouchSlop()I" />
+		<method name="getWindowTouchSlop()I" />
+		<method name="getZoomControlsTimeout()J" />
+		<method name="hasPermanentMenuKey()Z" since="14" />
+	</class>
+	<class name="android/view/ViewDebug" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="dumpCapturedView(Ljava/lang/String;Ljava/lang/Object;)V" since="3" />
+		<method name="startHierarchyTracing(Ljava/lang/String;Landroid/view/View;)V" />
+		<method name="startRecyclerTracing(Ljava/lang/String;Landroid/view/View;)V" />
+		<method name="stopHierarchyTracing()V" />
+		<method name="stopRecyclerTracing()V" />
+		<method name="trace(Landroid/view/View;Landroid/view/ViewDebug$HierarchyTraceType;)V" />
+		<method name="trace(Landroid/view/View;Landroid/view/ViewDebug$RecyclerTraceType;[I)V" />
+		<field name="TRACE_HIERARCHY" />
+		<field name="TRACE_RECYCLER" />
+	</class>
+	<class name="android/view/ViewDebug$CapturedViewProperty" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/view/ViewDebug$ExportedProperty" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/view/ViewDebug$FlagToString" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/view/ViewDebug$HierarchyTraceType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/view/ViewDebug$HierarchyTraceType;" />
+		<method name="values()[Landroid/view/ViewDebug$HierarchyTraceType;" />
+		<field name="BUILD_CACHE" />
+		<field name="DRAW" />
+		<field name="INVALIDATE" />
+		<field name="INVALIDATE_CHILD" />
+		<field name="INVALIDATE_CHILD_IN_PARENT" />
+		<field name="ON_LAYOUT" />
+		<field name="ON_MEASURE" />
+		<field name="REQUEST_LAYOUT" />
+	</class>
+	<class name="android/view/ViewDebug$IntToString" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/view/ViewDebug$RecyclerTraceType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/view/ViewDebug$RecyclerTraceType;" />
+		<method name="values()[Landroid/view/ViewDebug$RecyclerTraceType;" />
+		<field name="BIND_VIEW" />
+		<field name="MOVE_FROM_ACTIVE_TO_SCRAP_HEAP" />
+		<field name="MOVE_TO_ACTIVE_HEAP" />
+		<field name="MOVE_TO_SCRAP_HEAP" />
+		<field name="NEW_VIEW" />
+		<field name="RECYCLE_FROM_ACTIVE_HEAP" />
+		<field name="RECYCLE_FROM_SCRAP_HEAP" />
+	</class>
+	<class name="android/view/ViewGroup" since="1">
+		<extends name="android/view/View" />
+		<implements name="android/view/ViewManager" />
+		<implements name="android/view/ViewParent" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="addStatesFromChildren()Z" />
+		<method name="addView(Landroid/view/View;)V" />
+		<method name="addView(Landroid/view/View;I)V" />
+		<method name="addView(Landroid/view/View;II)V" />
+		<method name="addView(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)Z" />
+		<method name="addViewInLayout(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;Z)Z" />
+		<method name="attachLayoutAnimationParameters(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;II)V" />
+		<method name="attachViewToParent(Landroid/view/View;ILandroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="bringChildToFront(Landroid/view/View;)V" />
+		<method name="canAnimate()Z" />
+		<method name="checkLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Z" />
+		<method name="childDrawableStateChanged(Landroid/view/View;)V" />
+		<method name="cleanupLayoutState(Landroid/view/View;)V" />
+		<method name="clearChildFocus(Landroid/view/View;)V" />
+		<method name="clearDisappearingChildren()V" />
+		<method name="debug(I)V" />
+		<method name="detachAllViewsFromParent()V" />
+		<method name="detachViewFromParent(I)V" />
+		<method name="detachViewFromParent(Landroid/view/View;)V" />
+		<method name="detachViewsFromParent(II)V" />
+		<method name="dispatchFreezeSelfOnly(Landroid/util/SparseArray;)V" />
+		<method name="dispatchSetActivated(Z)V" since="11" />
+		<method name="dispatchSetSelected(Z)V" />
+		<method name="dispatchThawSelfOnly(Landroid/util/SparseArray;)V" />
+		<method name="drawChild(Landroid/graphics/Canvas;Landroid/view/View;J)Z" />
+		<method name="endViewTransition(Landroid/view/View;)V" since="11" />
+		<method name="focusSearch(Landroid/view/View;I)Landroid/view/View;" />
+		<method name="focusableViewAvailable(Landroid/view/View;)V" />
+		<method name="gatherTransparentRegion(Landroid/graphics/Region;)Z" />
+		<method name="generateDefaultLayoutParams()Landroid/view/ViewGroup$LayoutParams;" />
+		<method name="generateLayoutParams(Landroid/util/AttributeSet;)Landroid/view/ViewGroup$LayoutParams;" />
+		<method name="generateLayoutParams(Landroid/view/ViewGroup$LayoutParams;)Landroid/view/ViewGroup$LayoutParams;" />
+		<method name="getChildAt(I)Landroid/view/View;" />
+		<method name="getChildCount()I" />
+		<method name="getChildDrawingOrder(II)I" />
+		<method name="getChildMeasureSpec(III)I" />
+		<method name="getChildStaticTransformation(Landroid/view/View;Landroid/view/animation/Transformation;)Z" />
+		<method name="getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z" />
+		<method name="getDescendantFocusability()I" />
+		<method name="getFocusedChild()Landroid/view/View;" />
+		<method name="getLayoutAnimation()Landroid/view/animation/LayoutAnimationController;" />
+		<method name="getLayoutAnimationListener()Landroid/view/animation/Animation$AnimationListener;" />
+		<method name="getLayoutTransition()Landroid/animation/LayoutTransition;" since="11" />
+		<method name="getPersistentDrawingCache()I" />
+		<method name="indexOfChild(Landroid/view/View;)I" />
+		<method name="invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V" />
+		<method name="invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;" />
+		<method name="isAlwaysDrawnWithCacheEnabled()Z" />
+		<method name="isAnimationCacheEnabled()Z" />
+		<method name="isChildrenDrawingOrderEnabled()Z" since="7" />
+		<method name="isChildrenDrawnWithCacheEnabled()Z" />
+		<method name="isMotionEventSplittingEnabled()Z" since="11" />
+		<method name="layout(IIII)V" since="11" />
+		<method name="measureChild(Landroid/view/View;II)V" />
+		<method name="measureChildWithMargins(Landroid/view/View;IIII)V" />
+		<method name="measureChildren(II)V" />
+		<method name="offsetDescendantRectToMyCoords(Landroid/view/View;Landroid/graphics/Rect;)V" />
+		<method name="offsetRectIntoDescendantCoords(Landroid/view/View;Landroid/graphics/Rect;)V" />
+		<method name="onInterceptHoverEvent(Landroid/view/MotionEvent;)Z" since="14" />
+		<method name="onInterceptTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="onRequestFocusInDescendants(ILandroid/graphics/Rect;)Z" />
+		<method name="onRequestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" since="14" />
+		<method name="recomputeViewAttributes(Landroid/view/View;)V" />
+		<method name="removeAllViews()V" />
+		<method name="removeAllViewsInLayout()V" />
+		<method name="removeDetachedView(Landroid/view/View;Z)V" />
+		<method name="removeView(Landroid/view/View;)V" />
+		<method name="removeViewAt(I)V" />
+		<method name="removeViewInLayout(Landroid/view/View;)V" />
+		<method name="removeViews(II)V" />
+		<method name="removeViewsInLayout(II)V" />
+		<method name="requestChildFocus(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z" />
+		<method name="requestDisallowInterceptTouchEvent(Z)V" />
+		<method name="requestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" since="14" />
+		<method name="requestTransparentRegion(Landroid/view/View;)V" />
+		<method name="resetResolvedLayoutDirection()V" since="14" />
+		<method name="resetResolvedTextDirection()V" since="14" />
+		<method name="scheduleLayoutAnimation()V" />
+		<method name="setAddStatesFromChildren(Z)V" />
+		<method name="setAlwaysDrawnWithCacheEnabled(Z)V" />
+		<method name="setAnimationCacheEnabled(Z)V" />
+		<method name="setChildrenDrawingCacheEnabled(Z)V" />
+		<method name="setChildrenDrawingOrderEnabled(Z)V" since="7" />
+		<method name="setChildrenDrawnWithCacheEnabled(Z)V" />
+		<method name="setClipChildren(Z)V" />
+		<method name="setClipToPadding(Z)V" />
+		<method name="setDescendantFocusability(I)V" />
+		<method name="setLayoutAnimation(Landroid/view/animation/LayoutAnimationController;)V" />
+		<method name="setLayoutAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V" />
+		<method name="setLayoutTransition(Landroid/animation/LayoutTransition;)V" since="11" />
+		<method name="setMotionEventSplittingEnabled(Z)V" since="11" />
+		<method name="setOnHierarchyChangeListener(Landroid/view/ViewGroup$OnHierarchyChangeListener;)V" />
+		<method name="setPersistentDrawingCache(I)V" />
+		<method name="setStaticTransformationsEnabled(Z)V" since="3" />
+		<method name="shouldDelayChildPressedState()Z" since="14" />
+		<method name="showContextMenuForChild(Landroid/view/View;)Z" />
+		<method name="startActionModeForChild(Landroid/view/View;Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+		<method name="startLayoutAnimation()V" />
+		<method name="startViewTransition(Landroid/view/View;)V" since="11" />
+		<method name="updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<field name="CLIP_TO_PADDING_MASK" />
+		<field name="FLAG_USE_CHILD_DRAWING_ORDER" />
+		<field name="FOCUS_AFTER_DESCENDANTS" />
+		<field name="FOCUS_BEFORE_DESCENDANTS" />
+		<field name="FOCUS_BLOCK_DESCENDANTS" />
+		<field name="PERSISTENT_ALL_CACHES" />
+		<field name="PERSISTENT_ANIMATION_CACHE" />
+		<field name="PERSISTENT_NO_CACHE" />
+		<field name="PERSISTENT_SCROLLING_CACHE" />
+	</class>
+	<class name="android/view/ViewGroup$LayoutParams" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="setBaseAttributes(Landroid/content/res/TypedArray;II)V" />
+		<field name="FILL_PARENT" />
+		<field name="MATCH_PARENT" since="8" />
+		<field name="WRAP_CONTENT" />
+		<field name="height" />
+		<field name="layoutAnimationParameters" />
+		<field name="width" />
+	</class>
+	<class name="android/view/ViewGroup$MarginLayoutParams" since="1">
+		<extends name="android/view/ViewGroup$LayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+		<method name="setMargins(IIII)V" />
+		<field name="bottomMargin" />
+		<field name="leftMargin" />
+		<field name="rightMargin" />
+		<field name="topMargin" />
+	</class>
+	<class name="android/view/ViewGroup$OnHierarchyChangeListener" since="1">
+		<method name="onChildViewAdded(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="onChildViewRemoved(Landroid/view/View;Landroid/view/View;)V" />
+	</class>
+	<class name="android/view/ViewManager" since="1">
+		<method name="addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="removeView(Landroid/view/View;)V" />
+		<method name="updateViewLayout(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+	</class>
+	<class name="android/view/ViewParent" since="1">
+		<method name="bringChildToFront(Landroid/view/View;)V" />
+		<method name="childDrawableStateChanged(Landroid/view/View;)V" />
+		<method name="clearChildFocus(Landroid/view/View;)V" />
+		<method name="createContextMenu(Landroid/view/ContextMenu;)V" />
+		<method name="focusSearch(Landroid/view/View;I)Landroid/view/View;" />
+		<method name="focusableViewAvailable(Landroid/view/View;)V" />
+		<method name="getChildVisibleRect(Landroid/view/View;Landroid/graphics/Rect;Landroid/graphics/Point;)Z" />
+		<method name="getParent()Landroid/view/ViewParent;" />
+		<method name="invalidateChild(Landroid/view/View;Landroid/graphics/Rect;)V" />
+		<method name="invalidateChildInParent([ILandroid/graphics/Rect;)Landroid/view/ViewParent;" />
+		<method name="isLayoutRequested()Z" />
+		<method name="recomputeViewAttributes(Landroid/view/View;)V" />
+		<method name="requestChildFocus(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="requestChildRectangleOnScreen(Landroid/view/View;Landroid/graphics/Rect;Z)Z" since="3" />
+		<method name="requestDisallowInterceptTouchEvent(Z)V" />
+		<method name="requestLayout()V" />
+		<method name="requestSendAccessibilityEvent(Landroid/view/View;Landroid/view/accessibility/AccessibilityEvent;)Z" since="14" />
+		<method name="requestTransparentRegion(Landroid/view/View;)V" />
+		<method name="showContextMenuForChild(Landroid/view/View;)Z" />
+		<method name="startActionModeForChild(Landroid/view/View;Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+	</class>
+	<class name="android/view/ViewPropertyAnimator" since="12">
+		<extends name="java/lang/Object" />
+		<method name="alpha(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="alphaBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="cancel()V" since="14" />
+		<method name="getDuration()J" since="14" />
+		<method name="getStartDelay()J" since="14" />
+		<method name="rotation(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="rotationBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="rotationX(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="rotationXBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="rotationY(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="rotationYBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="scaleX(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="scaleXBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="scaleY(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="scaleYBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="setDuration(J)Landroid/view/ViewPropertyAnimator;" />
+		<method name="setInterpolator(Landroid/animation/TimeInterpolator;)Landroid/view/ViewPropertyAnimator;" />
+		<method name="setListener(Landroid/animation/Animator$AnimatorListener;)Landroid/view/ViewPropertyAnimator;" />
+		<method name="setStartDelay(J)Landroid/view/ViewPropertyAnimator;" since="14" />
+		<method name="start()V" since="14" />
+		<method name="translationX(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="translationXBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="translationY(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="translationYBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="x(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="xBy(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="y(F)Landroid/view/ViewPropertyAnimator;" />
+		<method name="yBy(F)Landroid/view/ViewPropertyAnimator;" />
+	</class>
+	<class name="android/view/ViewStub" since="1">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getInflatedId()I" />
+		<method name="getLayoutResource()I" />
+		<method name="inflate()Landroid/view/View;" />
+		<method name="setInflatedId(I)V" />
+		<method name="setLayoutResource(I)V" />
+		<method name="setOnInflateListener(Landroid/view/ViewStub$OnInflateListener;)V" />
+	</class>
+	<class name="android/view/ViewStub$OnInflateListener" since="1">
+		<method name="onInflate(Landroid/view/ViewStub;Landroid/view/View;)V" />
+	</class>
+	<class name="android/view/ViewTreeObserver" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V" />
+		<method name="addOnGlobalLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" />
+		<method name="addOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V" />
+		<method name="addOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V" since="3" />
+		<method name="addOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V" />
+		<method name="dispatchOnGlobalLayout()V" />
+		<method name="dispatchOnPreDraw()Z" />
+		<method name="isAlive()Z" />
+		<method name="removeGlobalOnLayoutListener(Landroid/view/ViewTreeObserver$OnGlobalLayoutListener;)V" />
+		<method name="removeOnGlobalFocusChangeListener(Landroid/view/ViewTreeObserver$OnGlobalFocusChangeListener;)V" />
+		<method name="removeOnPreDrawListener(Landroid/view/ViewTreeObserver$OnPreDrawListener;)V" />
+		<method name="removeOnScrollChangedListener(Landroid/view/ViewTreeObserver$OnScrollChangedListener;)V" since="3" />
+		<method name="removeOnTouchModeChangeListener(Landroid/view/ViewTreeObserver$OnTouchModeChangeListener;)V" />
+	</class>
+	<class name="android/view/ViewTreeObserver$OnGlobalFocusChangeListener" since="1">
+		<method name="onGlobalFocusChanged(Landroid/view/View;Landroid/view/View;)V" />
+	</class>
+	<class name="android/view/ViewTreeObserver$OnGlobalLayoutListener" since="1">
+		<method name="onGlobalLayout()V" />
+	</class>
+	<class name="android/view/ViewTreeObserver$OnPreDrawListener" since="1">
+		<method name="onPreDraw()Z" />
+	</class>
+	<class name="android/view/ViewTreeObserver$OnScrollChangedListener" since="3">
+		<method name="onScrollChanged()V" />
+	</class>
+	<class name="android/view/ViewTreeObserver$OnTouchModeChangeListener" since="1">
+		<method name="onTouchModeChanged(Z)V" />
+	</class>
+	<class name="android/view/Window" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="addContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="addFlags(I)V" />
+		<method name="clearFlags(I)V" />
+		<method name="closeAllPanels()V" />
+		<method name="closePanel(I)V" />
+		<method name="findViewById(I)Landroid/view/View;" />
+		<method name="getAttributes()Landroid/view/WindowManager$LayoutParams;" />
+		<method name="getCallback()Landroid/view/Window$Callback;" />
+		<method name="getContainer()Landroid/view/Window;" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getCurrentFocus()Landroid/view/View;" />
+		<method name="getDecorView()Landroid/view/View;" />
+		<method name="getFeatures()I" />
+		<method name="getForcedWindowFlags()I" />
+		<method name="getLayoutInflater()Landroid/view/LayoutInflater;" />
+		<method name="getLocalFeatures()I" />
+		<method name="getVolumeControlStream()I" />
+		<method name="getWindowManager()Landroid/view/WindowManager;" />
+		<method name="getWindowStyle()Landroid/content/res/TypedArray;" />
+		<method name="hasChildren()Z" />
+		<method name="hasFeature(I)Z" since="11" />
+		<method name="hasSoftInputMode()Z" since="3" />
+		<method name="invalidatePanelMenu(I)V" since="11" />
+		<method name="isActive()Z" />
+		<method name="isFloating()Z" />
+		<method name="isShortcutKey(ILandroid/view/KeyEvent;)Z" />
+		<method name="makeActive()V" />
+		<method name="onActive()V" />
+		<method name="onConfigurationChanged(Landroid/content/res/Configuration;)V" />
+		<method name="openPanel(ILandroid/view/KeyEvent;)V" />
+		<method name="peekDecorView()Landroid/view/View;" />
+		<method name="performContextMenuIdentifierAction(II)Z" />
+		<method name="performPanelIdentifierAction(III)Z" />
+		<method name="performPanelShortcut(IILandroid/view/KeyEvent;I)Z" />
+		<method name="requestFeature(I)Z" />
+		<method name="restoreHierarchyState(Landroid/os/Bundle;)V" />
+		<method name="saveHierarchyState()Landroid/os/Bundle;" />
+		<method name="setAttributes(Landroid/view/WindowManager$LayoutParams;)V" />
+		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setBackgroundDrawableResource(I)V" />
+		<method name="setCallback(Landroid/view/Window$Callback;)V" />
+		<method name="setChildDrawable(ILandroid/graphics/drawable/Drawable;)V" />
+		<method name="setChildInt(II)V" />
+		<method name="setContainer(Landroid/view/Window;)V" />
+		<method name="setContentView(I)V" />
+		<method name="setContentView(Landroid/view/View;)V" />
+		<method name="setContentView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="setDefaultWindowFormat(I)V" />
+		<method name="setDimAmount(F)V" since="14" />
+		<method name="setFeatureDrawable(ILandroid/graphics/drawable/Drawable;)V" />
+		<method name="setFeatureDrawableAlpha(II)V" />
+		<method name="setFeatureDrawableResource(II)V" />
+		<method name="setFeatureDrawableUri(ILandroid/net/Uri;)V" />
+		<method name="setFeatureInt(II)V" />
+		<method name="setFlags(II)V" />
+		<method name="setFormat(I)V" />
+		<method name="setGravity(I)V" />
+		<method name="setLayout(II)V" />
+		<method name="setSoftInputMode(I)V" since="3" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+		<method name="setTitleColor(I)V" />
+		<method name="setType(I)V" />
+		<method name="setUiOptions(I)V" since="14" />
+		<method name="setUiOptions(II)V" since="14" />
+		<method name="setVolumeControlStream(I)V" />
+		<method name="setWindowAnimations(I)V" since="3" />
+		<method name="setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;)V" />
+		<method name="setWindowManager(Landroid/view/WindowManager;Landroid/os/IBinder;Ljava/lang/String;Z)V" since="11" />
+		<method name="superDispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="superDispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="superDispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" since="11" />
+		<method name="superDispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="superDispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="takeInputQueue(Landroid/view/InputQueue$Callback;)V" since="9" />
+		<method name="takeKeyEvents(Z)V" />
+		<method name="takeSurface(Landroid/view/SurfaceHolder$Callback2;)V" since="9" />
+		<method name="togglePanel(ILandroid/view/KeyEvent;)V" />
+		<field name="DEFAULT_FEATURES" />
+		<field name="FEATURE_ACTION_BAR" since="11" />
+		<field name="FEATURE_ACTION_BAR_OVERLAY" since="11" />
+		<field name="FEATURE_ACTION_MODE_OVERLAY" since="11" />
+		<field name="FEATURE_CONTEXT_MENU" />
+		<field name="FEATURE_CUSTOM_TITLE" />
+		<field name="FEATURE_INDETERMINATE_PROGRESS" />
+		<field name="FEATURE_LEFT_ICON" />
+		<field name="FEATURE_NO_TITLE" />
+		<field name="FEATURE_OPTIONS_PANEL" />
+		<field name="FEATURE_PROGRESS" />
+		<field name="FEATURE_RIGHT_ICON" />
+		<field name="ID_ANDROID_CONTENT" />
+		<field name="PROGRESS_END" />
+		<field name="PROGRESS_INDETERMINATE_OFF" />
+		<field name="PROGRESS_INDETERMINATE_ON" />
+		<field name="PROGRESS_SECONDARY_END" />
+		<field name="PROGRESS_SECONDARY_START" />
+		<field name="PROGRESS_START" />
+		<field name="PROGRESS_VISIBILITY_OFF" />
+		<field name="PROGRESS_VISIBILITY_ON" />
+	</class>
+	<class name="android/view/Window$Callback" since="1">
+		<method name="dispatchGenericMotionEvent(Landroid/view/MotionEvent;)Z" since="12" />
+		<method name="dispatchKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="dispatchKeyShortcutEvent(Landroid/view/KeyEvent;)Z" since="11" />
+		<method name="dispatchPopulateAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)Z" since="4" />
+		<method name="dispatchTouchEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="dispatchTrackballEvent(Landroid/view/MotionEvent;)Z" />
+		<method name="onActionModeFinished(Landroid/view/ActionMode;)V" since="11" />
+		<method name="onActionModeStarted(Landroid/view/ActionMode;)V" since="11" />
+		<method name="onAttachedToWindow()V" since="5" />
+		<method name="onContentChanged()V" />
+		<method name="onCreatePanelMenu(ILandroid/view/Menu;)Z" />
+		<method name="onCreatePanelView(I)Landroid/view/View;" />
+		<method name="onDetachedFromWindow()V" since="5" />
+		<method name="onMenuItemSelected(ILandroid/view/MenuItem;)Z" />
+		<method name="onMenuOpened(ILandroid/view/Menu;)Z" />
+		<method name="onPanelClosed(ILandroid/view/Menu;)V" />
+		<method name="onPreparePanel(ILandroid/view/View;Landroid/view/Menu;)Z" />
+		<method name="onSearchRequested()Z" />
+		<method name="onWindowAttributesChanged(Landroid/view/WindowManager$LayoutParams;)V" />
+		<method name="onWindowFocusChanged(Z)V" />
+		<method name="onWindowStartingActionMode(Landroid/view/ActionMode$Callback;)Landroid/view/ActionMode;" since="11" />
+	</class>
+	<class name="android/view/WindowManager" since="1">
+		<implements name="android/view/ViewManager" />
+		<method name="getDefaultDisplay()Landroid/view/Display;" />
+		<method name="removeViewImmediate(Landroid/view/View;)V" />
+	</class>
+	<class name="android/view/WindowManager$BadTokenException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/view/WindowManager$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$LayoutParams" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(IIIII)V" />
+		<method name="&lt;init>(IIIIIII)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="copyFrom(Landroid/view/WindowManager$LayoutParams;)I" />
+		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="describeContents()I" />
+		<method name="getTitle()Ljava/lang/CharSequence;" />
+		<method name="mayUseInputMethod(I)Z" since="3" />
+		<method name="setTitle(Ljava/lang/CharSequence;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ALPHA_CHANGED" />
+		<field name="ANIMATION_CHANGED" />
+		<field name="BRIGHTNESS_OVERRIDE_FULL" since="8" />
+		<field name="BRIGHTNESS_OVERRIDE_NONE" since="8" />
+		<field name="BRIGHTNESS_OVERRIDE_OFF" since="8" />
+		<field name="CREATOR" />
+		<field name="DIM_AMOUNT_CHANGED" />
+		<field name="FIRST_APPLICATION_WINDOW" />
+		<field name="FIRST_SUB_WINDOW" />
+		<field name="FIRST_SYSTEM_WINDOW" />
+		<field name="FLAGS_CHANGED" />
+		<field name="FLAG_ALLOW_LOCK_WHILE_SCREEN_ON" since="8" />
+		<field name="FLAG_ALT_FOCUSABLE_IM" since="3" />
+		<field name="FLAG_BLUR_BEHIND" />
+		<field name="FLAG_DIM_BEHIND" />
+		<field name="FLAG_DISMISS_KEYGUARD" since="5" />
+		<field name="FLAG_DITHER" />
+		<field name="FLAG_FORCE_NOT_FULLSCREEN" />
+		<field name="FLAG_FULLSCREEN" />
+		<field name="FLAG_HARDWARE_ACCELERATED" since="11" />
+		<field name="FLAG_IGNORE_CHEEK_PRESSES" />
+		<field name="FLAG_KEEP_SCREEN_ON" />
+		<field name="FLAG_LAYOUT_INSET_DECOR" />
+		<field name="FLAG_LAYOUT_IN_SCREEN" />
+		<field name="FLAG_LAYOUT_NO_LIMITS" />
+		<field name="FLAG_NOT_FOCUSABLE" />
+		<field name="FLAG_NOT_TOUCHABLE" />
+		<field name="FLAG_NOT_TOUCH_MODAL" />
+		<field name="FLAG_SCALED" />
+		<field name="FLAG_SECURE" />
+		<field name="FLAG_SHOW_WALLPAPER" since="5" />
+		<field name="FLAG_SHOW_WHEN_LOCKED" since="5" />
+		<field name="FLAG_SPLIT_TOUCH" since="11" />
+		<field name="FLAG_TOUCHABLE_WHEN_WAKING" />
+		<field name="FLAG_TURN_SCREEN_ON" since="5" />
+		<field name="FLAG_WATCH_OUTSIDE_TOUCH" since="3" />
+		<field name="FORMAT_CHANGED" />
+		<field name="LAST_APPLICATION_WINDOW" />
+		<field name="LAST_SUB_WINDOW" />
+		<field name="LAST_SYSTEM_WINDOW" />
+		<field name="LAYOUT_CHANGED" />
+		<field name="MEMORY_TYPE_CHANGED" />
+		<field name="MEMORY_TYPE_GPU" />
+		<field name="MEMORY_TYPE_HARDWARE" />
+		<field name="MEMORY_TYPE_NORMAL" />
+		<field name="MEMORY_TYPE_PUSH_BUFFERS" />
+		<field name="SCREEN_BRIGHTNESS_CHANGED" since="3" />
+		<field name="SCREEN_ORIENTATION_CHANGED" since="3" />
+		<field name="SOFT_INPUT_ADJUST_NOTHING" since="11" />
+		<field name="SOFT_INPUT_ADJUST_PAN" since="3" />
+		<field name="SOFT_INPUT_ADJUST_RESIZE" since="3" />
+		<field name="SOFT_INPUT_ADJUST_UNSPECIFIED" since="3" />
+		<field name="SOFT_INPUT_IS_FORWARD_NAVIGATION" since="3" />
+		<field name="SOFT_INPUT_MASK_ADJUST" since="3" />
+		<field name="SOFT_INPUT_MASK_STATE" since="3" />
+		<field name="SOFT_INPUT_MODE_CHANGED" since="3" />
+		<field name="SOFT_INPUT_STATE_ALWAYS_HIDDEN" since="3" />
+		<field name="SOFT_INPUT_STATE_ALWAYS_VISIBLE" since="3" />
+		<field name="SOFT_INPUT_STATE_HIDDEN" since="3" />
+		<field name="SOFT_INPUT_STATE_UNCHANGED" since="3" />
+		<field name="SOFT_INPUT_STATE_UNSPECIFIED" since="3" />
+		<field name="SOFT_INPUT_STATE_VISIBLE" since="3" />
+		<field name="TITLE_CHANGED" />
+		<field name="TYPE_APPLICATION" />
+		<field name="TYPE_APPLICATION_ATTACHED_DIALOG" since="3" />
+		<field name="TYPE_APPLICATION_MEDIA" />
+		<field name="TYPE_APPLICATION_PANEL" />
+		<field name="TYPE_APPLICATION_STARTING" />
+		<field name="TYPE_APPLICATION_SUB_PANEL" />
+		<field name="TYPE_BASE_APPLICATION" />
+		<field name="TYPE_CHANGED" />
+		<field name="TYPE_INPUT_METHOD" since="3" />
+		<field name="TYPE_INPUT_METHOD_DIALOG" since="3" />
+		<field name="TYPE_KEYGUARD" />
+		<field name="TYPE_KEYGUARD_DIALOG" />
+		<field name="TYPE_PHONE" />
+		<field name="TYPE_PRIORITY_PHONE" />
+		<field name="TYPE_SEARCH_BAR" />
+		<field name="TYPE_STATUS_BAR" />
+		<field name="TYPE_STATUS_BAR_PANEL" />
+		<field name="TYPE_SYSTEM_ALERT" />
+		<field name="TYPE_SYSTEM_DIALOG" />
+		<field name="TYPE_SYSTEM_ERROR" />
+		<field name="TYPE_SYSTEM_OVERLAY" />
+		<field name="TYPE_TOAST" />
+		<field name="TYPE_WALLPAPER" since="5" />
+		<field name="alpha" />
+		<field name="buttonBrightness" since="8" />
+		<field name="dimAmount" />
+		<field name="flags" />
+		<field name="format" />
+		<field name="gravity" />
+		<field name="horizontalMargin" />
+		<field name="horizontalWeight" />
+		<field name="memoryType" />
+		<field name="packageName" />
+		<field name="screenBrightness" since="3" />
+		<field name="screenOrientation" since="3" />
+		<field name="softInputMode" since="3" />
+		<field name="systemUiVisibility" since="11" />
+		<field name="token" />
+		<field name="type" />
+		<field name="verticalMargin" />
+		<field name="verticalWeight" />
+		<field name="windowAnimations" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/view/accessibility/AccessibilityEvent" since="4">
+		<extends name="java/lang/Object" />
+		<extends name="android/view/accessibility/AccessibilityRecord" since="14" />
+		<implements name="android/os/Parcelable" />
+		<method name="appendRecord(Landroid/view/accessibility/AccessibilityRecord;)V" since="14" />
+		<method name="describeContents()I" />
+		<method name="eventTypeToString(I)Ljava/lang/String;" since="14" />
+		<method name="getAddedCount()I" />
+		<method name="getBeforeText()Ljava/lang/CharSequence;" />
+		<method name="getClassName()Ljava/lang/CharSequence;" />
+		<method name="getContentDescription()Ljava/lang/CharSequence;" />
+		<method name="getCurrentItemIndex()I" />
+		<method name="getEventTime()J" />
+		<method name="getEventType()I" />
+		<method name="getFromIndex()I" />
+		<method name="getItemCount()I" />
+		<method name="getPackageName()Ljava/lang/CharSequence;" />
+		<method name="getParcelableData()Landroid/os/Parcelable;" />
+		<method name="getRecord(I)Landroid/view/accessibility/AccessibilityRecord;" since="14" />
+		<method name="getRecordCount()I" since="14" />
+		<method name="getRemovedCount()I" />
+		<method name="getText()Ljava/util/List;" />
+		<method name="initFromParcel(Landroid/os/Parcel;)V" />
+		<method name="isChecked()Z" />
+		<method name="isEnabled()Z" />
+		<method name="isFullScreen()Z" />
+		<method name="isPassword()Z" />
+		<method name="obtain()Landroid/view/accessibility/AccessibilityEvent;" />
+		<method name="obtain(I)Landroid/view/accessibility/AccessibilityEvent;" />
+		<method name="obtain(Landroid/view/accessibility/AccessibilityEvent;)Landroid/view/accessibility/AccessibilityEvent;" since="14" />
+		<method name="recycle()V" />
+		<method name="setAddedCount(I)V" />
+		<method name="setBeforeText(Ljava/lang/CharSequence;)V" />
+		<method name="setChecked(Z)V" />
+		<method name="setClassName(Ljava/lang/CharSequence;)V" />
+		<method name="setContentDescription(Ljava/lang/CharSequence;)V" />
+		<method name="setCurrentItemIndex(I)V" />
+		<method name="setEnabled(Z)V" />
+		<method name="setEventTime(J)V" />
+		<method name="setEventType(I)V" />
+		<method name="setFromIndex(I)V" />
+		<method name="setFullScreen(Z)V" />
+		<method name="setItemCount(I)V" />
+		<method name="setPackageName(Ljava/lang/CharSequence;)V" />
+		<method name="setParcelableData(Landroid/os/Parcelable;)V" />
+		<method name="setPassword(Z)V" />
+		<method name="setRemovedCount(I)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="INVALID_POSITION" />
+		<field name="MAX_TEXT_LENGTH" />
+		<field name="TYPES_ALL_MASK" />
+		<field name="TYPE_NOTIFICATION_STATE_CHANGED" />
+		<field name="TYPE_TOUCH_EXPLORATION_GESTURE_END" since="14" />
+		<field name="TYPE_TOUCH_EXPLORATION_GESTURE_START" since="14" />
+		<field name="TYPE_VIEW_CLICKED" />
+		<field name="TYPE_VIEW_FOCUSED" />
+		<field name="TYPE_VIEW_HOVER_ENTER" since="14" />
+		<field name="TYPE_VIEW_HOVER_EXIT" since="14" />
+		<field name="TYPE_VIEW_LONG_CLICKED" />
+		<field name="TYPE_VIEW_SCROLLED" since="14" />
+		<field name="TYPE_VIEW_SELECTED" />
+		<field name="TYPE_VIEW_TEXT_CHANGED" />
+		<field name="TYPE_VIEW_TEXT_SELECTION_CHANGED" since="14" />
+		<field name="TYPE_WINDOW_CONTENT_CHANGED" since="14" />
+		<field name="TYPE_WINDOW_STATE_CHANGED" />
+	</class>
+	<class name="android/view/accessibility/AccessibilityEventSource" since="4">
+		<method name="sendAccessibilityEvent(I)V" />
+		<method name="sendAccessibilityEventUnchecked(Landroid/view/accessibility/AccessibilityEvent;)V" />
+	</class>
+	<class name="android/view/accessibility/AccessibilityManager" since="4">
+		<extends name="java/lang/Object" />
+		<method name="addAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z" since="14" />
+		<method name="getAccessibilityServiceList()Ljava/util/List;" />
+		<method name="getEnabledAccessibilityServiceList(I)Ljava/util/List;" since="14" />
+		<method name="getInstalledAccessibilityServiceList()Ljava/util/List;" since="14" />
+		<method name="interrupt()V" />
+		<method name="isEnabled()Z" />
+		<method name="isTouchExplorationEnabled()Z" since="14" />
+		<method name="removeAccessibilityStateChangeListener(Landroid/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener;)Z" since="14" />
+		<method name="sendAccessibilityEvent(Landroid/view/accessibility/AccessibilityEvent;)V" />
+	</class>
+	<class name="android/view/accessibility/AccessibilityManager$AccessibilityStateChangeListener" since="14">
+		<method name="onAccessibilityStateChanged(Z)V" />
+	</class>
+	<class name="android/view/accessibility/AccessibilityNodeInfo" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="addAction(I)V" />
+		<method name="addChild(Landroid/view/View;)V" />
+		<method name="describeContents()I" />
+		<method name="findAccessibilityNodeInfosByText(Ljava/lang/String;)Ljava/util/List;" />
+		<method name="getActions()I" />
+		<method name="getBoundsInParent(Landroid/graphics/Rect;)V" />
+		<method name="getBoundsInScreen(Landroid/graphics/Rect;)V" />
+		<method name="getChild(I)Landroid/view/accessibility/AccessibilityNodeInfo;" />
+		<method name="getChildCount()I" />
+		<method name="getClassName()Ljava/lang/CharSequence;" />
+		<method name="getContentDescription()Ljava/lang/CharSequence;" />
+		<method name="getPackageName()Ljava/lang/CharSequence;" />
+		<method name="getParent()Landroid/view/accessibility/AccessibilityNodeInfo;" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="getWindowId()I" />
+		<method name="isCheckable()Z" />
+		<method name="isChecked()Z" />
+		<method name="isClickable()Z" />
+		<method name="isEnabled()Z" />
+		<method name="isFocusable()Z" />
+		<method name="isFocused()Z" />
+		<method name="isLongClickable()Z" />
+		<method name="isPassword()Z" />
+		<method name="isScrollable()Z" />
+		<method name="isSelected()Z" />
+		<method name="obtain()Landroid/view/accessibility/AccessibilityNodeInfo;" />
+		<method name="obtain(Landroid/view/View;)Landroid/view/accessibility/AccessibilityNodeInfo;" />
+		<method name="obtain(Landroid/view/accessibility/AccessibilityNodeInfo;)Landroid/view/accessibility/AccessibilityNodeInfo;" />
+		<method name="performAction(I)Z" />
+		<method name="recycle()V" />
+		<method name="setBoundsInParent(Landroid/graphics/Rect;)V" />
+		<method name="setBoundsInScreen(Landroid/graphics/Rect;)V" />
+		<method name="setCheckable(Z)V" />
+		<method name="setChecked(Z)V" />
+		<method name="setClassName(Ljava/lang/CharSequence;)V" />
+		<method name="setClickable(Z)V" />
+		<method name="setContentDescription(Ljava/lang/CharSequence;)V" />
+		<method name="setEnabled(Z)V" />
+		<method name="setFocusable(Z)V" />
+		<method name="setFocused(Z)V" />
+		<method name="setLongClickable(Z)V" />
+		<method name="setPackageName(Ljava/lang/CharSequence;)V" />
+		<method name="setParent(Landroid/view/View;)V" />
+		<method name="setPassword(Z)V" />
+		<method name="setScrollable(Z)V" />
+		<method name="setSelected(Z)V" />
+		<method name="setSource(Landroid/view/View;)V" />
+		<method name="setText(Ljava/lang/CharSequence;)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="ACTION_CLEAR_FOCUS" />
+		<field name="ACTION_CLEAR_SELECTION" />
+		<field name="ACTION_FOCUS" />
+		<field name="ACTION_SELECT" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/accessibility/AccessibilityRecord" since="14">
+		<method name="getAddedCount()I" />
+		<method name="getBeforeText()Ljava/lang/CharSequence;" />
+		<method name="getClassName()Ljava/lang/CharSequence;" />
+		<method name="getContentDescription()Ljava/lang/CharSequence;" />
+		<method name="getCurrentItemIndex()I" />
+		<method name="getFromIndex()I" />
+		<method name="getItemCount()I" />
+		<method name="getMaxScrollX()I" since="15" />
+		<method name="getMaxScrollY()I" since="15" />
+		<method name="getParcelableData()Landroid/os/Parcelable;" />
+		<method name="getRemovedCount()I" />
+		<method name="getScrollX()I" />
+		<method name="getScrollY()I" />
+		<method name="getSource()Landroid/view/accessibility/AccessibilityNodeInfo;" />
+		<method name="getText()Ljava/util/List;" />
+		<method name="getToIndex()I" />
+		<method name="getWindowId()I" />
+		<method name="isChecked()Z" />
+		<method name="isEnabled()Z" />
+		<method name="isFullScreen()Z" />
+		<method name="isPassword()Z" />
+		<method name="isScrollable()Z" />
+		<method name="obtain()Landroid/view/accessibility/AccessibilityRecord;" />
+		<method name="obtain(Landroid/view/accessibility/AccessibilityRecord;)Landroid/view/accessibility/AccessibilityRecord;" />
+		<method name="recycle()V" />
+		<method name="setAddedCount(I)V" />
+		<method name="setBeforeText(Ljava/lang/CharSequence;)V" />
+		<method name="setChecked(Z)V" />
+		<method name="setClassName(Ljava/lang/CharSequence;)V" />
+		<method name="setContentDescription(Ljava/lang/CharSequence;)V" />
+		<method name="setCurrentItemIndex(I)V" />
+		<method name="setEnabled(Z)V" />
+		<method name="setFromIndex(I)V" />
+		<method name="setFullScreen(Z)V" />
+		<method name="setItemCount(I)V" />
+		<method name="setMaxScrollX(I)V" since="15" />
+		<method name="setMaxScrollY(I)V" since="15" />
+		<method name="setParcelableData(Landroid/os/Parcelable;)V" />
+		<method name="setPassword(Z)V" />
+		<method name="setRemovedCount(I)V" />
+		<method name="setScrollX(I)V" />
+		<method name="setScrollY(I)V" />
+		<method name="setScrollable(Z)V" />
+		<method name="setSource(Landroid/view/View;)V" />
+		<method name="setToIndex(I)V" />
+	</class>
+	<class name="android/view/animation/AccelerateDecelerateInterpolator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/AccelerateInterpolator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/AlphaAnimation" since="1">
+		<extends name="android/view/animation/Animation" />
+		<method name="&lt;init>(FF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+	</class>
+	<class name="android/view/animation/Animation" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" since="3" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="applyTransformation(FLandroid/view/animation/Transformation;)V" />
+		<method name="cancel()V" since="8" />
+		<method name="computeDurationHint()J" since="3" />
+		<method name="ensureInterpolator()V" />
+		<method name="getBackgroundColor()I" since="12" />
+		<method name="getDetachWallpaper()Z" since="5" />
+		<method name="getDuration()J" />
+		<method name="getFillAfter()Z" />
+		<method name="getFillBefore()Z" />
+		<method name="getInterpolator()Landroid/view/animation/Interpolator;" />
+		<method name="getRepeatCount()I" />
+		<method name="getRepeatMode()I" />
+		<method name="getScaleFactor()F" since="11" />
+		<method name="getStartOffset()J" />
+		<method name="getStartTime()J" />
+		<method name="getTransformation(JLandroid/view/animation/Transformation;)Z" />
+		<method name="getTransformation(JLandroid/view/animation/Transformation;F)Z" since="11" />
+		<method name="getZAdjustment()I" />
+		<method name="hasEnded()Z" />
+		<method name="hasStarted()Z" />
+		<method name="initialize(IIII)V" />
+		<method name="isFillEnabled()Z" since="3" />
+		<method name="isInitialized()Z" />
+		<method name="reset()V" />
+		<method name="resolveSize(IFII)F" />
+		<method name="restrictDuration(J)V" />
+		<method name="scaleCurrentDuration(F)V" />
+		<method name="setAnimationListener(Landroid/view/animation/Animation$AnimationListener;)V" />
+		<method name="setBackgroundColor(I)V" since="12" />
+		<method name="setDetachWallpaper(Z)V" since="5" />
+		<method name="setDuration(J)V" />
+		<method name="setFillAfter(Z)V" />
+		<method name="setFillBefore(Z)V" />
+		<method name="setFillEnabled(Z)V" since="3" />
+		<method name="setInterpolator(Landroid/content/Context;I)V" />
+		<method name="setInterpolator(Landroid/view/animation/Interpolator;)V" />
+		<method name="setRepeatCount(I)V" />
+		<method name="setRepeatMode(I)V" />
+		<method name="setStartOffset(J)V" />
+		<method name="setStartTime(J)V" />
+		<method name="setZAdjustment(I)V" />
+		<method name="start()V" />
+		<method name="startNow()V" />
+		<method name="willChangeBounds()Z" />
+		<method name="willChangeTransformationMatrix()Z" />
+		<field name="ABSOLUTE" />
+		<field name="INFINITE" />
+		<field name="RELATIVE_TO_PARENT" />
+		<field name="RELATIVE_TO_SELF" />
+		<field name="RESTART" />
+		<field name="REVERSE" />
+		<field name="START_ON_FIRST_FRAME" />
+		<field name="ZORDER_BOTTOM" />
+		<field name="ZORDER_NORMAL" />
+		<field name="ZORDER_TOP" />
+	</class>
+	<class name="android/view/animation/Animation$AnimationListener" since="1">
+		<method name="onAnimationEnd(Landroid/view/animation/Animation;)V" />
+		<method name="onAnimationRepeat(Landroid/view/animation/Animation;)V" />
+		<method name="onAnimationStart(Landroid/view/animation/Animation;)V" />
+	</class>
+	<class name="android/view/animation/Animation$Description" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="type" />
+		<field name="value" />
+	</class>
+	<class name="android/view/animation/AnimationSet" since="1">
+		<extends name="android/view/animation/Animation" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="addAnimation(Landroid/view/animation/Animation;)V" />
+		<method name="getAnimations()Ljava/util/List;" />
+	</class>
+	<class name="android/view/animation/AnimationUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="currentAnimationTimeMillis()J" />
+		<method name="loadAnimation(Landroid/content/Context;I)Landroid/view/animation/Animation;" />
+		<method name="loadInterpolator(Landroid/content/Context;I)Landroid/view/animation/Interpolator;" />
+		<method name="loadLayoutAnimation(Landroid/content/Context;I)Landroid/view/animation/LayoutAnimationController;" />
+		<method name="makeInAnimation(Landroid/content/Context;Z)Landroid/view/animation/Animation;" />
+		<method name="makeInChildBottomAnimation(Landroid/content/Context;)Landroid/view/animation/Animation;" />
+		<method name="makeOutAnimation(Landroid/content/Context;Z)Landroid/view/animation/Animation;" />
+	</class>
+	<class name="android/view/animation/AnticipateInterpolator" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/AnticipateOvershootInterpolator" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(FF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/BounceInterpolator" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/CycleInterpolator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/DecelerateInterpolator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/GridLayoutAnimationController" since="1">
+		<extends name="android/view/animation/LayoutAnimationController" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/animation/Animation;)V" />
+		<method name="&lt;init>(Landroid/view/animation/Animation;FF)V" />
+		<method name="getColumnDelay()F" />
+		<method name="getDirection()I" />
+		<method name="getDirectionPriority()I" />
+		<method name="getRowDelay()F" />
+		<method name="setColumnDelay(F)V" />
+		<method name="setDirection(I)V" />
+		<method name="setDirectionPriority(I)V" />
+		<method name="setRowDelay(F)V" />
+		<field name="DIRECTION_BOTTOM_TO_TOP" />
+		<field name="DIRECTION_HORIZONTAL_MASK" />
+		<field name="DIRECTION_LEFT_TO_RIGHT" />
+		<field name="DIRECTION_RIGHT_TO_LEFT" />
+		<field name="DIRECTION_TOP_TO_BOTTOM" />
+		<field name="DIRECTION_VERTICAL_MASK" />
+		<field name="PRIORITY_COLUMN" />
+		<field name="PRIORITY_NONE" />
+		<field name="PRIORITY_ROW" />
+	</class>
+	<class name="android/view/animation/GridLayoutAnimationController$AnimationParameters" since="1">
+		<extends name="android/view/animation/LayoutAnimationController$AnimationParameters" />
+		<method name="&lt;init>()V" />
+		<field name="column" />
+		<field name="columnsCount" />
+		<field name="row" />
+		<field name="rowsCount" />
+	</class>
+	<class name="android/view/animation/Interpolator" since="1">
+		<implements name="android/animation/TimeInterpolator" since="11" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/LayoutAnimationController" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/animation/Animation;)V" />
+		<method name="&lt;init>(Landroid/view/animation/Animation;F)V" />
+		<method name="getAnimation()Landroid/view/animation/Animation;" />
+		<method name="getAnimationForView(Landroid/view/View;)Landroid/view/animation/Animation;" />
+		<method name="getDelay()F" />
+		<method name="getDelayForView(Landroid/view/View;)J" />
+		<method name="getInterpolator()Landroid/view/animation/Interpolator;" />
+		<method name="getOrder()I" />
+		<method name="getTransformedIndex(Landroid/view/animation/LayoutAnimationController$AnimationParameters;)I" />
+		<method name="isDone()Z" />
+		<method name="setAnimation(Landroid/content/Context;I)V" />
+		<method name="setAnimation(Landroid/view/animation/Animation;)V" />
+		<method name="setDelay(F)V" />
+		<method name="setInterpolator(Landroid/content/Context;I)V" />
+		<method name="setInterpolator(Landroid/view/animation/Interpolator;)V" />
+		<method name="setOrder(I)V" />
+		<method name="start()V" />
+		<method name="willOverlap()Z" />
+		<field name="ORDER_NORMAL" />
+		<field name="ORDER_RANDOM" />
+		<field name="ORDER_REVERSE" />
+		<field name="mAnimation" />
+		<field name="mInterpolator" />
+		<field name="mRandomizer" />
+	</class>
+	<class name="android/view/animation/LayoutAnimationController$AnimationParameters" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="count" />
+		<field name="index" />
+	</class>
+	<class name="android/view/animation/LinearInterpolator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/OvershootInterpolator" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/animation/Interpolator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getInterpolation(F)F" />
+	</class>
+	<class name="android/view/animation/RotateAnimation" since="1">
+		<extends name="android/view/animation/Animation" />
+		<method name="&lt;init>(FF)V" />
+		<method name="&lt;init>(FFFF)V" />
+		<method name="&lt;init>(FFIFIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+	</class>
+	<class name="android/view/animation/ScaleAnimation" since="1">
+		<extends name="android/view/animation/Animation" />
+		<method name="&lt;init>(FFFF)V" />
+		<method name="&lt;init>(FFFFFF)V" />
+		<method name="&lt;init>(FFFFIFIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+	</class>
+	<class name="android/view/animation/Transformation" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clear()V" />
+		<method name="compose(Landroid/view/animation/Transformation;)V" />
+		<method name="getAlpha()F" />
+		<method name="getMatrix()Landroid/graphics/Matrix;" />
+		<method name="getTransformationType()I" />
+		<method name="set(Landroid/view/animation/Transformation;)V" />
+		<method name="setAlpha(F)V" />
+		<method name="setTransformationType(I)V" />
+		<method name="toShortString()Ljava/lang/String;" since="3" />
+		<field name="TYPE_ALPHA" />
+		<field name="TYPE_BOTH" />
+		<field name="TYPE_IDENTITY" />
+		<field name="TYPE_MATRIX" />
+		<field name="mAlpha" />
+		<field name="mMatrix" />
+		<field name="mTransformationType" />
+	</class>
+	<class name="android/view/animation/TranslateAnimation" since="1">
+		<extends name="android/view/animation/Animation" />
+		<method name="&lt;init>(FFFF)V" />
+		<method name="&lt;init>(IFIFIFIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+	</class>
+	<class name="android/view/inputmethod/BaseInputConnection" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/inputmethod/InputConnection" />
+		<method name="&lt;init>(Landroid/view/View;Z)V" />
+		<method name="beginBatchEdit()Z" />
+		<method name="clearMetaKeyStates(I)Z" />
+		<method name="commitCompletion(Landroid/view/inputmethod/CompletionInfo;)Z" />
+		<method name="commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z" since="11" />
+		<method name="commitText(Ljava/lang/CharSequence;I)Z" />
+		<method name="deleteSurroundingText(II)Z" />
+		<method name="endBatchEdit()Z" />
+		<method name="finishComposingText()Z" />
+		<method name="getComposingSpanEnd(Landroid/text/Spannable;)I" />
+		<method name="getComposingSpanStart(Landroid/text/Spannable;)I" />
+		<method name="getCursorCapsMode(I)I" />
+		<method name="getEditable()Landroid/text/Editable;" />
+		<method name="getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;I)Landroid/view/inputmethod/ExtractedText;" />
+		<method name="getSelectedText(I)Ljava/lang/CharSequence;" since="9" />
+		<method name="getTextAfterCursor(II)Ljava/lang/CharSequence;" />
+		<method name="getTextBeforeCursor(II)Ljava/lang/CharSequence;" />
+		<method name="performContextMenuAction(I)Z" />
+		<method name="performEditorAction(I)Z" />
+		<method name="performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="removeComposingSpans(Landroid/text/Spannable;)V" />
+		<method name="reportFullscreenMode(Z)Z" />
+		<method name="sendKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="setComposingRegion(II)Z" since="9" />
+		<method name="setComposingSpans(Landroid/text/Spannable;)V" />
+		<method name="setComposingText(Ljava/lang/CharSequence;I)Z" />
+		<method name="setSelection(II)Z" />
+	</class>
+	<class name="android/view/inputmethod/CompletionInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(JILjava/lang/CharSequence;)V" />
+		<method name="&lt;init>(JILjava/lang/CharSequence;Ljava/lang/CharSequence;)V" />
+		<method name="describeContents()I" />
+		<method name="getId()J" />
+		<method name="getLabel()Ljava/lang/CharSequence;" />
+		<method name="getPosition()I" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/inputmethod/CorrectionInfo" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(ILjava/lang/CharSequence;Ljava/lang/CharSequence;)V" />
+		<method name="describeContents()I" />
+		<method name="getNewText()Ljava/lang/CharSequence;" />
+		<method name="getOffset()I" />
+		<method name="getOldText()Ljava/lang/CharSequence;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/inputmethod/EditorInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/text/InputType" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="makeCompatible(I)V" since="11" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="IME_ACTION_DONE" />
+		<field name="IME_ACTION_GO" />
+		<field name="IME_ACTION_NEXT" />
+		<field name="IME_ACTION_NONE" />
+		<field name="IME_ACTION_PREVIOUS" since="11" />
+		<field name="IME_ACTION_SEARCH" />
+		<field name="IME_ACTION_SEND" />
+		<field name="IME_ACTION_UNSPECIFIED" />
+		<field name="IME_FLAG_NAVIGATE_NEXT" since="11" />
+		<field name="IME_FLAG_NAVIGATE_PREVIOUS" since="11" />
+		<field name="IME_FLAG_NO_ACCESSORY_ACTION" />
+		<field name="IME_FLAG_NO_ENTER_ACTION" />
+		<field name="IME_FLAG_NO_EXTRACT_UI" />
+		<field name="IME_FLAG_NO_FULLSCREEN" since="11" />
+		<field name="IME_MASK_ACTION" />
+		<field name="IME_NULL" />
+		<field name="actionId" />
+		<field name="actionLabel" />
+		<field name="extras" />
+		<field name="fieldId" />
+		<field name="fieldName" />
+		<field name="hintText" />
+		<field name="imeOptions" />
+		<field name="initialCapsMode" />
+		<field name="initialSelEnd" />
+		<field name="initialSelStart" />
+		<field name="inputType" />
+		<field name="label" />
+		<field name="packageName" />
+		<field name="privateImeOptions" />
+	</class>
+	<class name="android/view/inputmethod/ExtractedText" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="FLAG_SELECTING" />
+		<field name="FLAG_SINGLE_LINE" />
+		<field name="flags" />
+		<field name="partialEndOffset" />
+		<field name="partialStartOffset" />
+		<field name="selectionEnd" />
+		<field name="selectionStart" />
+		<field name="startOffset" />
+		<field name="text" />
+	</class>
+	<class name="android/view/inputmethod/ExtractedTextRequest" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>()V" />
+		<method name="describeContents()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="flags" />
+		<field name="hintMaxChars" />
+		<field name="hintMaxLines" />
+		<field name="token" />
+	</class>
+	<class name="android/view/inputmethod/InputBinding" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/view/inputmethod/InputConnection;Landroid/os/IBinder;II)V" />
+		<method name="&lt;init>(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/InputBinding;)V" />
+		<method name="describeContents()I" />
+		<method name="getConnection()Landroid/view/inputmethod/InputConnection;" />
+		<method name="getConnectionToken()Landroid/os/IBinder;" />
+		<method name="getPid()I" />
+		<method name="getUid()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/inputmethod/InputConnection" since="3">
+		<method name="beginBatchEdit()Z" />
+		<method name="clearMetaKeyStates(I)Z" />
+		<method name="commitCompletion(Landroid/view/inputmethod/CompletionInfo;)Z" />
+		<method name="commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z" since="11" />
+		<method name="commitText(Ljava/lang/CharSequence;I)Z" />
+		<method name="deleteSurroundingText(II)Z" />
+		<method name="endBatchEdit()Z" />
+		<method name="finishComposingText()Z" />
+		<method name="getCursorCapsMode(I)I" />
+		<method name="getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;I)Landroid/view/inputmethod/ExtractedText;" />
+		<method name="getSelectedText(I)Ljava/lang/CharSequence;" since="9" />
+		<method name="getTextAfterCursor(II)Ljava/lang/CharSequence;" />
+		<method name="getTextBeforeCursor(II)Ljava/lang/CharSequence;" />
+		<method name="performContextMenuAction(I)Z" />
+		<method name="performEditorAction(I)Z" />
+		<method name="performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="reportFullscreenMode(Z)Z" />
+		<method name="sendKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="setComposingRegion(II)Z" since="9" />
+		<method name="setComposingText(Ljava/lang/CharSequence;I)Z" />
+		<method name="setSelection(II)Z" />
+		<field name="GET_EXTRACTED_TEXT_MONITOR" />
+		<field name="GET_TEXT_WITH_STYLES" />
+	</class>
+	<class name="android/view/inputmethod/InputConnectionWrapper" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/inputmethod/InputConnection" />
+		<method name="&lt;init>(Landroid/view/inputmethod/InputConnection;Z)V" />
+		<method name="beginBatchEdit()Z" />
+		<method name="clearMetaKeyStates(I)Z" />
+		<method name="commitCompletion(Landroid/view/inputmethod/CompletionInfo;)Z" />
+		<method name="commitCorrection(Landroid/view/inputmethod/CorrectionInfo;)Z" since="11" />
+		<method name="commitText(Ljava/lang/CharSequence;I)Z" />
+		<method name="deleteSurroundingText(II)Z" />
+		<method name="endBatchEdit()Z" />
+		<method name="finishComposingText()Z" />
+		<method name="getCursorCapsMode(I)I" />
+		<method name="getExtractedText(Landroid/view/inputmethod/ExtractedTextRequest;I)Landroid/view/inputmethod/ExtractedText;" />
+		<method name="getSelectedText(I)Ljava/lang/CharSequence;" since="9" />
+		<method name="getTextAfterCursor(II)Ljava/lang/CharSequence;" />
+		<method name="getTextBeforeCursor(II)Ljava/lang/CharSequence;" />
+		<method name="performContextMenuAction(I)Z" />
+		<method name="performEditorAction(I)Z" />
+		<method name="performPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)Z" />
+		<method name="reportFullscreenMode(Z)Z" />
+		<method name="sendKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="setComposingRegion(II)Z" since="9" />
+		<method name="setComposingText(Ljava/lang/CharSequence;I)Z" />
+		<method name="setSelection(II)Z" />
+		<method name="setTarget(Landroid/view/inputmethod/InputConnection;)V" />
+	</class>
+	<class name="android/view/inputmethod/InputMethod" since="3">
+		<method name="attachToken(Landroid/os/IBinder;)V" />
+		<method name="bindInput(Landroid/view/inputmethod/InputBinding;)V" />
+		<method name="changeInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
+		<method name="createSession(Landroid/view/inputmethod/InputMethod$SessionCallback;)V" />
+		<method name="hideSoftInput(ILandroid/os/ResultReceiver;)V" />
+		<method name="restartInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="revokeSession(Landroid/view/inputmethod/InputMethodSession;)V" />
+		<method name="setSessionEnabled(Landroid/view/inputmethod/InputMethodSession;Z)V" />
+		<method name="showSoftInput(ILandroid/os/ResultReceiver;)V" />
+		<method name="startInput(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V" />
+		<method name="unbindInput()V" />
+		<field name="SERVICE_INTERFACE" />
+		<field name="SERVICE_META_DATA" />
+		<field name="SHOW_EXPLICIT" />
+		<field name="SHOW_FORCED" />
+	</class>
+	<class name="android/view/inputmethod/InputMethod$SessionCallback" since="3">
+		<method name="sessionCreated(Landroid/view/inputmethod/InputMethodSession;)V" />
+	</class>
+	<class name="android/view/inputmethod/InputMethodInfo" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/content/pm/ResolveInfo;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/CharSequence;Ljava/lang/String;)V" />
+		<method name="describeContents()I" />
+		<method name="dump(Landroid/util/Printer;Ljava/lang/String;)V" />
+		<method name="getComponent()Landroid/content/ComponentName;" />
+		<method name="getId()Ljava/lang/String;" />
+		<method name="getIsDefaultResourceId()I" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
+		<method name="getServiceName()Ljava/lang/String;" />
+		<method name="getSettingsActivity()Ljava/lang/String;" />
+		<method name="getSubtypeAt(I)Landroid/view/inputmethod/InputMethodSubtype;" since="11" />
+		<method name="getSubtypeCount()I" since="11" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/inputmethod/InputMethodManager" since="3">
+		<extends name="java/lang/Object" />
+		<method name="displayCompletions(Landroid/view/View;[Landroid/view/inputmethod/CompletionInfo;)V" />
+		<method name="getCurrentInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;" since="11" />
+		<method name="getEnabledInputMethodList()Ljava/util/List;" />
+		<method name="getEnabledInputMethodSubtypeList(Landroid/view/inputmethod/InputMethodInfo;Z)Ljava/util/List;" since="11" />
+		<method name="getInputMethodList()Ljava/util/List;" />
+		<method name="getLastInputMethodSubtype()Landroid/view/inputmethod/InputMethodSubtype;" since="14" />
+		<method name="getShortcutInputMethodsAndSubtypes()Ljava/util/Map;" since="11" />
+		<method name="hideSoftInputFromInputMethod(Landroid/os/IBinder;I)V" />
+		<method name="hideSoftInputFromWindow(Landroid/os/IBinder;I)Z" />
+		<method name="hideSoftInputFromWindow(Landroid/os/IBinder;ILandroid/os/ResultReceiver;)Z" />
+		<method name="hideStatusIcon(Landroid/os/IBinder;)V" />
+		<method name="isAcceptingText()Z" />
+		<method name="isActive()Z" />
+		<method name="isActive(Landroid/view/View;)Z" />
+		<method name="isFullscreenMode()Z" />
+		<method name="isWatchingCursor(Landroid/view/View;)Z" />
+		<method name="restartInput(Landroid/view/View;)V" />
+		<method name="sendAppPrivateCommand(Landroid/view/View;Ljava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="setAdditionalInputMethodSubtypes(Ljava/lang/String;[Landroid/view/inputmethod/InputMethodSubtype;)V" since="14" />
+		<method name="setCurrentInputMethodSubtype(Landroid/view/inputmethod/InputMethodSubtype;)Z" since="11" />
+		<method name="setInputMethod(Landroid/os/IBinder;Ljava/lang/String;)V" />
+		<method name="setInputMethodAndSubtype(Landroid/os/IBinder;Ljava/lang/String;Landroid/view/inputmethod/InputMethodSubtype;)V" since="11" />
+		<method name="showInputMethodAndSubtypeEnabler(Ljava/lang/String;)V" since="11" />
+		<method name="showInputMethodPicker()V" />
+		<method name="showSoftInput(Landroid/view/View;I)Z" />
+		<method name="showSoftInput(Landroid/view/View;ILandroid/os/ResultReceiver;)Z" />
+		<method name="showSoftInputFromInputMethod(Landroid/os/IBinder;I)V" />
+		<method name="showStatusIcon(Landroid/os/IBinder;Ljava/lang/String;I)V" />
+		<method name="switchToLastInputMethod(Landroid/os/IBinder;)Z" since="11" />
+		<method name="toggleSoftInput(II)V" />
+		<method name="toggleSoftInputFromWindow(Landroid/os/IBinder;II)V" />
+		<method name="updateCursor(Landroid/view/View;IIII)V" />
+		<method name="updateExtractedText(Landroid/view/View;ILandroid/view/inputmethod/ExtractedText;)V" />
+		<method name="updateSelection(Landroid/view/View;IIII)V" />
+		<method name="viewClicked(Landroid/view/View;)V" since="14" />
+		<field name="HIDE_IMPLICIT_ONLY" />
+		<field name="HIDE_NOT_ALWAYS" />
+		<field name="RESULT_HIDDEN" />
+		<field name="RESULT_SHOWN" />
+		<field name="RESULT_UNCHANGED_HIDDEN" />
+		<field name="RESULT_UNCHANGED_SHOWN" />
+		<field name="SHOW_FORCED" />
+		<field name="SHOW_IMPLICIT" />
+	</class>
+	<class name="android/view/inputmethod/InputMethodSession" since="3">
+		<method name="appPrivateCommand(Ljava/lang/String;Landroid/os/Bundle;)V" />
+		<method name="dispatchKeyEvent(ILandroid/view/KeyEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" />
+		<method name="dispatchTrackballEvent(ILandroid/view/MotionEvent;Landroid/view/inputmethod/InputMethodSession$EventCallback;)V" />
+		<method name="displayCompletions([Landroid/view/inputmethod/CompletionInfo;)V" />
+		<method name="finishInput()V" />
+		<method name="toggleSoftInput(II)V" />
+		<method name="updateCursor(Landroid/graphics/Rect;)V" />
+		<method name="updateExtractedText(ILandroid/view/inputmethod/ExtractedText;)V" />
+		<method name="updateSelection(IIIIII)V" />
+		<method name="viewClicked(Z)V" since="14" />
+	</class>
+	<class name="android/view/inputmethod/InputMethodSession$EventCallback" since="3">
+		<method name="finishedEvent(IZ)V" />
+	</class>
+	<class name="android/view/inputmethod/InputMethodSubtype" since="11">
+		<extends name="java/lang/Object" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)V" since="14" />
+		<method name="containsExtraValueKey(Ljava/lang/String;)Z" since="12" />
+		<method name="describeContents()I" />
+		<method name="getDisplayName(Landroid/content/Context;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" since="14" />
+		<method name="getExtraValue()Ljava/lang/String;" />
+		<method name="getExtraValueOf(Ljava/lang/String;)Ljava/lang/String;" since="12" />
+		<method name="getIconResId()I" />
+		<method name="getLocale()Ljava/lang/String;" />
+		<method name="getMode()Ljava/lang/String;" />
+		<method name="getNameResId()I" />
+		<method name="isAuxiliary()Z" since="14" />
+		<method name="overridesImplicitlyEnabledSubtype()Z" since="14" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/textservice/SpellCheckerInfo" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="describeContents()I" />
+		<method name="getComponent()Landroid/content/ComponentName;" />
+		<method name="getId()Ljava/lang/String;" />
+		<method name="getPackageName()Ljava/lang/String;" />
+		<method name="getServiceInfo()Landroid/content/pm/ServiceInfo;" />
+		<method name="getSettingsActivity()Ljava/lang/String;" />
+		<method name="getSubtypeAt(I)Landroid/view/textservice/SpellCheckerSubtype;" />
+		<method name="getSubtypeCount()I" />
+		<method name="loadIcon(Landroid/content/pm/PackageManager;)Landroid/graphics/drawable/Drawable;" />
+		<method name="loadLabel(Landroid/content/pm/PackageManager;)Ljava/lang/CharSequence;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/textservice/SpellCheckerSession" since="14">
+		<method name="cancel()V" since="15" />
+		<method name="close()V" />
+		<method name="getSpellChecker()Landroid/view/textservice/SpellCheckerInfo;" />
+		<method name="getSuggestions(Landroid/view/textservice/TextInfo;I)V" />
+		<method name="getSuggestions([Landroid/view/textservice/TextInfo;IZ)V" />
+		<method name="isSessionDisconnected()Z" />
+		<field name="SERVICE_META_DATA" />
+	</class>
+	<class name="android/view/textservice/SpellCheckerSession$SpellCheckerSessionListener" since="14">
+		<method name="onGetSuggestions([Landroid/view/textservice/SuggestionsInfo;)V" />
+	</class>
+	<class name="android/view/textservice/SpellCheckerSubtype" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="describeContents()I" />
+		<method name="getDisplayName(Landroid/content/Context;Ljava/lang/String;Landroid/content/pm/ApplicationInfo;)Ljava/lang/CharSequence;" />
+		<method name="getExtraValue()Ljava/lang/String;" />
+		<method name="getLocale()Ljava/lang/String;" />
+		<method name="getNameResId()I" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/textservice/SuggestionsInfo" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(I[Ljava/lang/String;)V" />
+		<method name="&lt;init>(I[Ljava/lang/String;II)V" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="describeContents()I" />
+		<method name="getCookie()I" />
+		<method name="getSequence()I" />
+		<method name="getSuggestionAt(I)Ljava/lang/String;" />
+		<method name="getSuggestionsAttributes()I" />
+		<method name="getSuggestionsCount()I" />
+		<method name="setCookieAndSequence(II)V" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+		<field name="RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS" since="15" />
+		<field name="RESULT_ATTR_IN_THE_DICTIONARY" />
+		<field name="RESULT_ATTR_LOOKS_LIKE_TYPO" />
+	</class>
+	<class name="android/view/textservice/TextInfo" since="14">
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;II)V" />
+		<method name="describeContents()I" />
+		<method name="getCookie()I" />
+		<method name="getSequence()I" />
+		<method name="getText()Ljava/lang/String;" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/view/textservice/TextServicesManager" since="14">
+		<method name="newSpellCheckerSession(Landroid/os/Bundle;Ljava/util/Locale;Landroid/view/textservice/SpellCheckerSession$SpellCheckerSessionListener;Z)Landroid/view/textservice/SpellCheckerSession;" />
+	</class>
+	<class name="android/webkit/CacheManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="cacheDisabled()Z" />
+		<method name="endCacheTransaction()Z" />
+		<method name="getCacheFile(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" />
+		<method name="getCacheFileBaseDir()Ljava/io/File;" />
+		<method name="saveCacheFile(Ljava/lang/String;Landroid/webkit/CacheManager$CacheResult;)V" />
+		<method name="startCacheTransaction()Z" />
+	</class>
+	<class name="android/webkit/CacheManager$CacheResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getContentDisposition()Ljava/lang/String;" since="7" />
+		<method name="getContentLength()J" />
+		<method name="getETag()Ljava/lang/String;" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getExpires()J" />
+		<method name="getExpiresString()Ljava/lang/String;" since="7" />
+		<method name="getHttpStatusCode()I" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getLastModified()Ljava/lang/String;" />
+		<method name="getLocalPath()Ljava/lang/String;" />
+		<method name="getLocation()Ljava/lang/String;" />
+		<method name="getMimeType()Ljava/lang/String;" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setInputStream(Ljava/io/InputStream;)V" />
+	</class>
+	<class name="android/webkit/CallbackProxy" since="1">
+		<extends name="android/os/Handler" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/webkit/WebView;)V" />
+		<method name="addMessageToConsole(Ljava/lang/String;ILjava/lang/String;)V" since="7" />
+		<method name="createWindow(ZZ)Landroid/webkit/WebView;" />
+		<method name="doUpdateVisitedHistory(Ljava/lang/String;Z)V" />
+		<method name="getBackForwardList()Landroid/webkit/WebBackForwardList;" />
+		<method name="getProgress()I" />
+		<method name="getVisitedHistory(Landroid/webkit/ValueCallback;)V" since="7" />
+		<method name="getWebChromeClient()Landroid/webkit/WebChromeClient;" since="7" />
+		<method name="onCloseWindow(Landroid/webkit/WebView;)V" />
+		<method name="onDownloadStart(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)Z" />
+		<method name="onExceededDatabaseQuota(Ljava/lang/String;Ljava/lang/String;JJJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="5" />
+		<method name="onFormResubmission(Landroid/os/Message;Landroid/os/Message;)V" />
+		<method name="onGeolocationPermissionsHidePrompt()V" since="7" />
+		<method name="onGeolocationPermissionsShowPrompt(Ljava/lang/String;Landroid/webkit/GeolocationPermissions$Callback;)V" since="7" />
+		<method name="onJsAlert(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="onJsBeforeUnload(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="onJsConfirm(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="onJsPrompt(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="onJsTimeout()Z" since="7" />
+		<method name="onLoadResource(Ljava/lang/String;)V" />
+		<method name="onPageFinished(Ljava/lang/String;)V" />
+		<method name="onPageStarted(Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
+		<method name="onProgressChanged(I)V" />
+		<method name="onReachedMaxAppCacheSize(JJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="7" />
+		<method name="onReceivedError(ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="onReceivedHttpAuthRequest(Landroid/webkit/HttpAuthHandler;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="onReceivedIcon(Landroid/graphics/Bitmap;)V" />
+		<method name="onReceivedTitle(Ljava/lang/String;)V" />
+		<method name="onRequestFocus()V" />
+		<method name="onSavePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/os/Message;)Z" />
+		<method name="onScaleChanged(FF)V" />
+		<method name="onTooManyRedirects(Landroid/os/Message;Landroid/os/Message;)V" />
+		<method name="onUnhandledKeyEvent(Landroid/view/KeyEvent;)V" />
+		<method name="setDownloadListener(Landroid/webkit/DownloadListener;)V" />
+		<method name="setWebChromeClient(Landroid/webkit/WebChromeClient;)V" />
+		<method name="setWebViewClient(Landroid/webkit/WebViewClient;)V" />
+		<method name="shouldOverrideUrlLoading(Ljava/lang/String;)Z" />
+		<method name="uiOverrideKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="uiOverrideUrlLoading(Ljava/lang/String;)Z" />
+	</class>
+	<class name="android/webkit/ConsoleMessage" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILandroid/webkit/ConsoleMessage$MessageLevel;)V" />
+		<method name="lineNumber()I" />
+		<method name="message()Ljava/lang/String;" />
+		<method name="messageLevel()Landroid/webkit/ConsoleMessage$MessageLevel;" />
+		<method name="sourceId()Ljava/lang/String;" />
+	</class>
+	<class name="android/webkit/ConsoleMessage$MessageLevel" since="8">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/ConsoleMessage$MessageLevel;" />
+		<method name="values()[Landroid/webkit/ConsoleMessage$MessageLevel;" />
+		<field name="DEBUG" />
+		<field name="ERROR" />
+		<field name="LOG" />
+		<field name="TIP" />
+		<field name="WARNING" />
+	</class>
+	<class name="android/webkit/CookieManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="acceptCookie()Z" />
+		<method name="allowFileSchemeCookies()Z" since="12" />
+		<method name="getCookie(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getInstance()Landroid/webkit/CookieManager;" />
+		<method name="hasCookies()Z" />
+		<method name="removeAllCookie()V" />
+		<method name="removeExpiredCookie()V" />
+		<method name="removeSessionCookie()V" />
+		<method name="setAcceptCookie(Z)V" />
+		<method name="setAcceptFileSchemeCookies(Z)V" since="12" />
+		<method name="setCookie(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/webkit/CookieSyncManager" since="1">
+		<extends name="android/webkit/WebSyncManager" />
+		<method name="createInstance(Landroid/content/Context;)Landroid/webkit/CookieSyncManager;" />
+		<method name="getInstance()Landroid/webkit/CookieSyncManager;" />
+		<method name="syncFromRamToFlash()V" />
+	</class>
+	<class name="android/webkit/DateSorter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="getBoundary(I)J" />
+		<method name="getIndex(J)I" />
+		<method name="getLabel(I)Ljava/lang/String;" />
+		<field name="DAY_COUNT" />
+	</class>
+	<class name="android/webkit/DownloadListener" since="1">
+		<method name="onDownloadStart(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V" />
+	</class>
+	<class name="android/webkit/GeolocationPermissions" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="allow(Ljava/lang/String;)V" since="7" />
+		<method name="clear(Ljava/lang/String;)V" since="7" />
+		<method name="clearAll()V" since="7" />
+		<method name="getAllowed(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="7" />
+		<method name="getInstance()Landroid/webkit/GeolocationPermissions;" since="7" />
+		<method name="getOrigins(Landroid/webkit/ValueCallback;)V" since="7" />
+	</class>
+	<class name="android/webkit/GeolocationPermissions$Callback" since="5">
+		<method name="invoke(Ljava/lang/String;ZZ)V" />
+	</class>
+	<class name="android/webkit/HttpAuthHandler" since="1">
+		<extends name="android/os/Handler" />
+		<method name="cancel()V" />
+		<method name="proceed(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="useHttpAuthUsernamePassword()Z" />
+	</class>
+	<class name="android/webkit/JsPromptResult" since="1">
+		<extends name="android/webkit/JsResult" />
+		<method name="confirm(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/webkit/JsResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="cancel()V" />
+		<method name="confirm()V" />
+		<method name="wakeUp()V" />
+		<field name="mProxy" />
+		<field name="mResult" />
+	</class>
+	<class name="android/webkit/MimeTypeMap" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getExtensionFromMimeType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getSingleton()Landroid/webkit/MimeTypeMap;" />
+		<method name="hasExtension(Ljava/lang/String;)Z" />
+		<method name="hasMimeType(Ljava/lang/String;)Z" />
+	</class>
+	<class name="android/webkit/Plugin" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="dispatchClickEvent(Landroid/content/Context;)V" />
+		<method name="getDescription()Ljava/lang/String;" />
+		<method name="getFileName()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="setClickHandler(Landroid/webkit/Plugin$PreferencesClickHandler;)V" />
+		<method name="setDescription(Ljava/lang/String;)V" />
+		<method name="setFileName(Ljava/lang/String;)V" />
+		<method name="setName(Ljava/lang/String;)V" />
+		<method name="setPath(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/webkit/Plugin$PreferencesClickHandler" since="1">
+		<method name="handleClickEvent(Landroid/content/Context;)V" />
+	</class>
+	<class name="android/webkit/PluginData" since="3">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/io/InputStream;JLjava/util/Map;I)V" />
+		<method name="getContentLength()J" />
+		<method name="getHeaders()Ljava/util/Map;" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getStatusCode()I" />
+	</class>
+	<class name="android/webkit/PluginList" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addPlugin(Landroid/webkit/Plugin;)V" />
+		<method name="clear()V" />
+		<method name="getList()Ljava/util/List;" />
+		<method name="pluginClicked(Landroid/content/Context;I)V" />
+		<method name="removePlugin(Landroid/webkit/Plugin;)V" />
+	</class>
+	<class name="android/webkit/PluginStub" since="5">
+		<method name="getEmbeddedView(ILandroid/content/Context;)Landroid/view/View;" />
+		<method name="getFullScreenView(ILandroid/content/Context;)Landroid/view/View;" />
+	</class>
+	<class name="android/webkit/SslErrorHandler" since="1">
+		<extends name="android/os/Handler" />
+		<method name="cancel()V" />
+		<method name="proceed()V" />
+	</class>
+	<class name="android/webkit/URLUtil" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="composeSearchUrl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="decode([B)[B" />
+		<method name="guessFileName(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="guessUrl(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="isAboutUrl(Ljava/lang/String;)Z" />
+		<method name="isAssetUrl(Ljava/lang/String;)Z" />
+		<method name="isContentUrl(Ljava/lang/String;)Z" />
+		<method name="isCookielessProxyUrl(Ljava/lang/String;)Z" />
+		<method name="isDataUrl(Ljava/lang/String;)Z" />
+		<method name="isFileUrl(Ljava/lang/String;)Z" />
+		<method name="isHttpUrl(Ljava/lang/String;)Z" />
+		<method name="isHttpsUrl(Ljava/lang/String;)Z" />
+		<method name="isJavaScriptUrl(Ljava/lang/String;)Z" />
+		<method name="isNetworkUrl(Ljava/lang/String;)Z" />
+		<method name="isValidUrl(Ljava/lang/String;)Z" />
+		<method name="stripAnchor(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="android/webkit/UrlInterceptHandler" since="1">
+		<method name="getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;" since="3" />
+		<method name="service(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" />
+	</class>
+	<class name="android/webkit/UrlInterceptRegistry" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getPluginData(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/PluginData;" since="3" />
+		<method name="getSurrogate(Ljava/lang/String;Ljava/util/Map;)Landroid/webkit/CacheManager$CacheResult;" />
+		<method name="registerHandler(Landroid/webkit/UrlInterceptHandler;)Z" />
+		<method name="setUrlInterceptDisabled(Z)V" />
+		<method name="unregisterHandler(Landroid/webkit/UrlInterceptHandler;)Z" />
+		<method name="urlInterceptDisabled()Z" />
+	</class>
+	<class name="android/webkit/ValueCallback" since="7">
+		<method name="onReceiveValue(LT;)V" />
+	</class>
+	<class name="android/webkit/WebBackForwardList" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="getCurrentIndex()I" />
+		<method name="getCurrentItem()Landroid/webkit/WebHistoryItem;" />
+		<method name="getItemAtIndex(I)Landroid/webkit/WebHistoryItem;" />
+		<method name="getSize()I" />
+	</class>
+	<class name="android/webkit/WebChromeClient" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getDefaultVideoPoster()Landroid/graphics/Bitmap;" since="7" />
+		<method name="getVideoLoadingProgressView()Landroid/view/View;" since="7" />
+		<method name="getVisitedHistory(Landroid/webkit/ValueCallback;)V" since="7" />
+		<method name="onCloseWindow(Landroid/webkit/WebView;)V" />
+		<method name="onConsoleMessage(Landroid/webkit/ConsoleMessage;)Z" since="8" />
+		<method name="onConsoleMessage(Ljava/lang/String;ILjava/lang/String;)V" since="7" />
+		<method name="onCreateWindow(Landroid/webkit/WebView;ZZLandroid/os/Message;)Z" />
+		<method name="onExceededDatabaseQuota(Ljava/lang/String;Ljava/lang/String;JJJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="5" />
+		<method name="onGeolocationPermissionsHidePrompt()V" since="5" />
+		<method name="onGeolocationPermissionsShowPrompt(Ljava/lang/String;Landroid/webkit/GeolocationPermissions$Callback;)V" since="5" />
+		<method name="onHideCustomView()V" since="7" />
+		<method name="onJsAlert(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z" />
+		<method name="onJsBeforeUnload(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z" />
+		<method name="onJsConfirm(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsResult;)Z" />
+		<method name="onJsPrompt(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Landroid/webkit/JsPromptResult;)Z" />
+		<method name="onJsTimeout()Z" since="7" />
+		<method name="onProgressChanged(Landroid/webkit/WebView;I)V" />
+		<method name="onReachedMaxAppCacheSize(JJLandroid/webkit/WebStorage$QuotaUpdater;)V" since="7" />
+		<method name="onReceivedIcon(Landroid/webkit/WebView;Landroid/graphics/Bitmap;)V" />
+		<method name="onReceivedTitle(Landroid/webkit/WebView;Ljava/lang/String;)V" />
+		<method name="onReceivedTouchIconUrl(Landroid/webkit/WebView;Ljava/lang/String;Z)V" since="7" />
+		<method name="onRequestFocus(Landroid/webkit/WebView;)V" />
+		<method name="onShowCustomView(Landroid/view/View;ILandroid/webkit/WebChromeClient$CustomViewCallback;)V" since="14" />
+		<method name="onShowCustomView(Landroid/view/View;Landroid/webkit/WebChromeClient$CustomViewCallback;)V" since="7" />
+	</class>
+	<class name="android/webkit/WebChromeClient$CustomViewCallback" since="7">
+		<method name="onCustomViewHidden()V" />
+	</class>
+	<class name="android/webkit/WebHistoryItem" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="getFavicon()Landroid/graphics/Bitmap;" />
+		<method name="getId()I" />
+		<method name="getOriginalUrl()Ljava/lang/String;" since="3" />
+		<method name="getTitle()Ljava/lang/String;" />
+		<method name="getUrl()Ljava/lang/String;" />
+	</class>
+	<class name="android/webkit/WebIconDatabase" since="1">
+		<extends name="java/lang/Object" />
+		<method name="close()V" />
+		<method name="getInstance()Landroid/webkit/WebIconDatabase;" />
+		<method name="open(Ljava/lang/String;)V" />
+		<method name="releaseIconForPageUrl(Ljava/lang/String;)V" />
+		<method name="removeAllIcons()V" />
+		<method name="requestIconForPageUrl(Ljava/lang/String;Landroid/webkit/WebIconDatabase$IconListener;)V" />
+		<method name="retainIconForPageUrl(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/webkit/WebIconDatabase$IconListener" since="1">
+		<method name="onReceivedIcon(Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
+	</class>
+	<class name="android/webkit/WebResourceResponse" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/io/InputStream;)V" />
+		<method name="getData()Ljava/io/InputStream;" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getMimeType()Ljava/lang/String;" />
+		<method name="setData(Ljava/io/InputStream;)V" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setMimeType(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/webkit/WebSettings" since="1">
+		<extends name="java/lang/Object" />
+		<method name="enableSmoothTransition()Z" since="11" />
+		<method name="getAllowContentAccess()Z" since="11" />
+		<method name="getAllowFileAccess()Z" since="3" />
+		<method name="getBlockNetworkImage()Z" />
+		<method name="getBlockNetworkLoads()Z" since="8" />
+		<method name="getBuiltInZoomControls()Z" since="3" />
+		<method name="getCacheMode()I" />
+		<method name="getCursiveFontFamily()Ljava/lang/String;" />
+		<method name="getDatabaseEnabled()Z" since="5" />
+		<method name="getDatabasePath()Ljava/lang/String;" since="5" />
+		<method name="getDefaultFixedFontSize()I" />
+		<method name="getDefaultFontSize()I" />
+		<method name="getDefaultTextEncodingName()Ljava/lang/String;" />
+		<method name="getDefaultZoom()Landroid/webkit/WebSettings$ZoomDensity;" since="7" />
+		<method name="getDisplayZoomControls()Z" since="11" />
+		<method name="getDomStorageEnabled()Z" since="7" />
+		<method name="getFantasyFontFamily()Ljava/lang/String;" />
+		<method name="getFixedFontFamily()Ljava/lang/String;" />
+		<method name="getJavaScriptCanOpenWindowsAutomatically()Z" />
+		<method name="getJavaScriptEnabled()Z" />
+		<method name="getLayoutAlgorithm()Landroid/webkit/WebSettings$LayoutAlgorithm;" />
+		<method name="getLightTouchEnabled()Z" />
+		<method name="getLoadWithOverviewMode()Z" since="7" />
+		<method name="getLoadsImagesAutomatically()Z" />
+		<method name="getMinimumFontSize()I" />
+		<method name="getMinimumLogicalFontSize()I" />
+		<method name="getNavDump()Z" />
+		<method name="getPluginState()Landroid/webkit/WebSettings$PluginState;" since="8" />
+		<method name="getPluginsEnabled()Z" />
+		<method name="getPluginsPath()Ljava/lang/String;" />
+		<method name="getSansSerifFontFamily()Ljava/lang/String;" />
+		<method name="getSaveFormData()Z" />
+		<method name="getSavePassword()Z" />
+		<method name="getSerifFontFamily()Ljava/lang/String;" />
+		<method name="getStandardFontFamily()Ljava/lang/String;" />
+		<method name="getTextSize()Landroid/webkit/WebSettings$TextSize;" />
+		<method name="getTextZoom()I" since="14" />
+		<method name="getUseDoubleTree()Z" />
+		<method name="getUseWebViewBackgroundForOverscrollBackground()Z" since="9" />
+		<method name="getUseWideViewPort()Z" />
+		<method name="getUserAgent()I" />
+		<method name="getUserAgentString()Ljava/lang/String;" since="3" />
+		<method name="setAllowContentAccess(Z)V" since="11" />
+		<method name="setAllowFileAccess(Z)V" since="3" />
+		<method name="setAppCacheEnabled(Z)V" since="7" />
+		<method name="setAppCacheMaxSize(J)V" since="7" />
+		<method name="setAppCachePath(Ljava/lang/String;)V" since="7" />
+		<method name="setBlockNetworkImage(Z)V" />
+		<method name="setBlockNetworkLoads(Z)V" since="8" />
+		<method name="setBuiltInZoomControls(Z)V" since="3" />
+		<method name="setCacheMode(I)V" />
+		<method name="setCursiveFontFamily(Ljava/lang/String;)V" />
+		<method name="setDatabaseEnabled(Z)V" since="5" />
+		<method name="setDatabasePath(Ljava/lang/String;)V" since="5" />
+		<method name="setDefaultFixedFontSize(I)V" />
+		<method name="setDefaultFontSize(I)V" />
+		<method name="setDefaultTextEncodingName(Ljava/lang/String;)V" />
+		<method name="setDefaultZoom(Landroid/webkit/WebSettings$ZoomDensity;)V" since="7" />
+		<method name="setDisplayZoomControls(Z)V" since="11" />
+		<method name="setDomStorageEnabled(Z)V" since="7" />
+		<method name="setEnableSmoothTransition(Z)V" since="11" />
+		<method name="setFantasyFontFamily(Ljava/lang/String;)V" />
+		<method name="setFixedFontFamily(Ljava/lang/String;)V" />
+		<method name="setGeolocationDatabasePath(Ljava/lang/String;)V" since="5" />
+		<method name="setGeolocationEnabled(Z)V" since="5" />
+		<method name="setJavaScriptCanOpenWindowsAutomatically(Z)V" />
+		<method name="setJavaScriptEnabled(Z)V" />
+		<method name="setLayoutAlgorithm(Landroid/webkit/WebSettings$LayoutAlgorithm;)V" />
+		<method name="setLightTouchEnabled(Z)V" />
+		<method name="setLoadWithOverviewMode(Z)V" since="7" />
+		<method name="setLoadsImagesAutomatically(Z)V" />
+		<method name="setMinimumFontSize(I)V" />
+		<method name="setMinimumLogicalFontSize(I)V" />
+		<method name="setNavDump(Z)V" />
+		<method name="setNeedInitialFocus(Z)V" />
+		<method name="setPluginState(Landroid/webkit/WebSettings$PluginState;)V" since="8" />
+		<method name="setPluginsEnabled(Z)V" />
+		<method name="setPluginsPath(Ljava/lang/String;)V" />
+		<method name="setRenderPriority(Landroid/webkit/WebSettings$RenderPriority;)V" />
+		<method name="setSansSerifFontFamily(Ljava/lang/String;)V" />
+		<method name="setSaveFormData(Z)V" />
+		<method name="setSavePassword(Z)V" />
+		<method name="setSerifFontFamily(Ljava/lang/String;)V" />
+		<method name="setStandardFontFamily(Ljava/lang/String;)V" />
+		<method name="setSupportMultipleWindows(Z)V" />
+		<method name="setSupportZoom(Z)V" />
+		<method name="setTextSize(Landroid/webkit/WebSettings$TextSize;)V" />
+		<method name="setTextZoom(I)V" since="14" />
+		<method name="setUseDoubleTree(Z)V" />
+		<method name="setUseWebViewBackgroundForOverscrollBackground(Z)V" since="9" />
+		<method name="setUseWideViewPort(Z)V" />
+		<method name="setUserAgent(I)V" />
+		<method name="setUserAgentString(Ljava/lang/String;)V" since="3" />
+		<method name="supportMultipleWindows()Z" />
+		<method name="supportZoom()Z" />
+		<field name="LOAD_CACHE_ELSE_NETWORK" />
+		<field name="LOAD_CACHE_ONLY" />
+		<field name="LOAD_DEFAULT" />
+		<field name="LOAD_NORMAL" />
+		<field name="LOAD_NO_CACHE" />
+	</class>
+	<class name="android/webkit/WebSettings$LayoutAlgorithm" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$LayoutAlgorithm;" />
+		<method name="values()[Landroid/webkit/WebSettings$LayoutAlgorithm;" />
+		<field name="NARROW_COLUMNS" />
+		<field name="NORMAL" />
+		<field name="SINGLE_COLUMN" />
+	</class>
+	<class name="android/webkit/WebSettings$PluginState" since="8">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$PluginState;" />
+		<method name="values()[Landroid/webkit/WebSettings$PluginState;" />
+		<field name="OFF" />
+		<field name="ON" />
+		<field name="ON_DEMAND" />
+	</class>
+	<class name="android/webkit/WebSettings$RenderPriority" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$RenderPriority;" />
+		<method name="values()[Landroid/webkit/WebSettings$RenderPriority;" />
+		<field name="HIGH" />
+		<field name="LOW" />
+		<field name="NORMAL" />
+	</class>
+	<class name="android/webkit/WebSettings$TextSize" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$TextSize;" />
+		<method name="values()[Landroid/webkit/WebSettings$TextSize;" />
+		<field name="LARGER" />
+		<field name="LARGEST" />
+		<field name="NORMAL" />
+		<field name="SMALLER" />
+		<field name="SMALLEST" />
+	</class>
+	<class name="android/webkit/WebSettings$ZoomDensity" since="7">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/webkit/WebSettings$ZoomDensity;" />
+		<method name="values()[Landroid/webkit/WebSettings$ZoomDensity;" />
+		<field name="CLOSE" />
+		<field name="FAR" />
+		<field name="MEDIUM" />
+	</class>
+	<class name="android/webkit/WebStorage" since="5">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="deleteAllData()V" since="7" />
+		<method name="deleteOrigin(Ljava/lang/String;)V" since="7" />
+		<method name="getInstance()Landroid/webkit/WebStorage;" since="7" />
+		<method name="getOrigins(Landroid/webkit/ValueCallback;)V" since="7" />
+		<method name="getQuotaForOrigin(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="7" />
+		<method name="getUsageForOrigin(Ljava/lang/String;Landroid/webkit/ValueCallback;)V" since="7" />
+		<method name="setQuotaForOrigin(Ljava/lang/String;J)V" since="7" />
+	</class>
+	<class name="android/webkit/WebStorage$Origin" since="11">
+		<extends name="java/lang/Object" />
+		<method name="getOrigin()Ljava/lang/String;" />
+		<method name="getQuota()J" />
+		<method name="getUsage()J" />
+	</class>
+	<class name="android/webkit/WebStorage$QuotaUpdater" since="5">
+		<method name="updateQuota(J)V" />
+	</class>
+	<class name="android/webkit/WebSyncManager" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Runnable" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/lang/String;)V" />
+		<method name="onSyncInit()V" />
+		<method name="resetSync()V" />
+		<method name="run()V" />
+		<method name="startSync()V" />
+		<method name="stopSync()V" />
+		<method name="sync()V" />
+		<field name="LOGTAG" />
+		<field name="mDataBase" />
+		<field name="mHandler" />
+	</class>
+	<class name="android/webkit/WebView" since="1">
+		<extends name="android/widget/AbsoluteLayout" />
+		<implements name="android/view/ViewGroup$OnHierarchyChangeListener" />
+		<implements name="android/view/ViewTreeObserver$OnGlobalFocusChangeListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;IZ)V" since="11" />
+		<method name="addJavascriptInterface(Ljava/lang/Object;Ljava/lang/String;)V" />
+		<method name="canGoBack()Z" />
+		<method name="canGoBackOrForward(I)Z" />
+		<method name="canGoForward()Z" />
+		<method name="canZoomIn()Z" since="11" />
+		<method name="canZoomOut()Z" since="11" />
+		<method name="capturePicture()Landroid/graphics/Picture;" />
+		<method name="clearCache(Z)V" />
+		<method name="clearFormData()V" />
+		<method name="clearHistory()V" />
+		<method name="clearMatches()V" since="3" />
+		<method name="clearSslPreferences()V" />
+		<method name="clearView()V" />
+		<method name="copyBackForwardList()Landroid/webkit/WebBackForwardList;" />
+		<method name="debugDump()V" />
+		<method name="destroy()V" />
+		<method name="disablePlatformNotifications()V" />
+		<method name="documentHasImages(Landroid/os/Message;)V" />
+		<method name="emulateShiftHeld()V" since="8" />
+		<method name="enablePlatformNotifications()V" />
+		<method name="findAddress(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="findAll(Ljava/lang/String;)I" since="3" />
+		<method name="findNext(Z)V" since="3" />
+		<method name="flingScroll(II)V" />
+		<method name="freeMemory()V" since="7" />
+		<method name="getCertificate()Landroid/net/http/SslCertificate;" />
+		<method name="getContentHeight()I" />
+		<method name="getFavicon()Landroid/graphics/Bitmap;" />
+		<method name="getHitTestResult()Landroid/webkit/WebView$HitTestResult;" />
+		<method name="getHttpAuthUsernamePassword(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="getOriginalUrl()Ljava/lang/String;" since="3" />
+		<method name="getPluginList()Landroid/webkit/PluginList;" />
+		<method name="getProgress()I" />
+		<method name="getScale()F" />
+		<method name="getSettings()Landroid/webkit/WebSettings;" />
+		<method name="getTitle()Ljava/lang/String;" />
+		<method name="getUrl()Ljava/lang/String;" />
+		<method name="getVisibleTitleHeight()I" since="11" />
+		<method name="getZoomControls()Landroid/view/View;" />
+		<method name="goBack()V" />
+		<method name="goBackOrForward(I)V" />
+		<method name="goForward()V" />
+		<method name="invokeZoomPicker()V" />
+		<method name="isPrivateBrowsingEnabled()Z" since="11" />
+		<method name="loadData(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="loadDataWithBaseURL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="loadUrl(Ljava/lang/String;)V" />
+		<method name="loadUrl(Ljava/lang/String;Ljava/util/Map;)V" since="8" />
+		<method name="onChildViewAdded(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="onChildViewRemoved(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="onGlobalFocusChanged(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="onPause()V" since="11" />
+		<method name="onResume()V" since="11" />
+		<method name="overlayHorizontalScrollbar()Z" />
+		<method name="overlayVerticalScrollbar()Z" />
+		<method name="pageDown(Z)Z" />
+		<method name="pageUp(Z)Z" />
+		<method name="pauseTimers()V" />
+		<method name="postUrl(Ljava/lang/String;[B)V" since="5" />
+		<method name="refreshPlugins(Z)V" />
+		<method name="reload()V" />
+		<method name="removeJavascriptInterface(Ljava/lang/String;)V" since="11" />
+		<method name="requestFocusNodeHref(Landroid/os/Message;)V" />
+		<method name="requestImageRef(Landroid/os/Message;)V" />
+		<method name="restorePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" />
+		<method name="restoreState(Landroid/os/Bundle;)Landroid/webkit/WebBackForwardList;" />
+		<method name="resumeTimers()V" />
+		<method name="savePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="savePicture(Landroid/os/Bundle;Ljava/io/File;)Z" since="3" />
+		<method name="saveState(Landroid/os/Bundle;)Landroid/webkit/WebBackForwardList;" />
+		<method name="saveWebArchive(Ljava/lang/String;)V" since="11" />
+		<method name="saveWebArchive(Ljava/lang/String;ZLandroid/webkit/ValueCallback;)V" since="11" />
+		<method name="setCertificate(Landroid/net/http/SslCertificate;)V" />
+		<method name="setDownloadListener(Landroid/webkit/DownloadListener;)V" />
+		<method name="setHorizontalScrollbarOverlay(Z)V" />
+		<method name="setHttpAuthUsernamePassword(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setInitialScale(I)V" />
+		<method name="setMapTrackballToArrowKeys(Z)V" />
+		<method name="setNetworkAvailable(Z)V" since="3" />
+		<method name="setPictureListener(Landroid/webkit/WebView$PictureListener;)V" />
+		<method name="setVerticalScrollbarOverlay(Z)V" />
+		<method name="setWebChromeClient(Landroid/webkit/WebChromeClient;)V" />
+		<method name="setWebViewClient(Landroid/webkit/WebViewClient;)V" />
+		<method name="showFindDialog(Ljava/lang/String;Z)Z" since="11" />
+		<method name="stopLoading()V" />
+		<method name="zoomIn()Z" />
+		<method name="zoomOut()Z" />
+		<field name="SCHEME_GEO" />
+		<field name="SCHEME_MAILTO" />
+		<field name="SCHEME_TEL" />
+	</class>
+	<class name="android/webkit/WebView$HitTestResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getExtra()Ljava/lang/String;" />
+		<method name="getType()I" />
+		<field name="ANCHOR_TYPE" />
+		<field name="EDIT_TEXT_TYPE" />
+		<field name="EMAIL_TYPE" />
+		<field name="GEO_TYPE" />
+		<field name="IMAGE_ANCHOR_TYPE" />
+		<field name="IMAGE_TYPE" />
+		<field name="PHONE_TYPE" />
+		<field name="SRC_ANCHOR_TYPE" />
+		<field name="SRC_IMAGE_ANCHOR_TYPE" />
+		<field name="UNKNOWN_TYPE" />
+	</class>
+	<class name="android/webkit/WebView$PictureListener" since="1">
+		<method name="onNewPicture(Landroid/webkit/WebView;Landroid/graphics/Picture;)V" />
+	</class>
+	<class name="android/webkit/WebView$WebViewTransport" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getWebView()Landroid/webkit/WebView;" />
+		<method name="setWebView(Landroid/webkit/WebView;)V" />
+	</class>
+	<class name="android/webkit/WebViewClient" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="doUpdateVisitedHistory(Landroid/webkit/WebView;Ljava/lang/String;Z)V" />
+		<method name="onFormResubmission(Landroid/webkit/WebView;Landroid/os/Message;Landroid/os/Message;)V" />
+		<method name="onLoadResource(Landroid/webkit/WebView;Ljava/lang/String;)V" />
+		<method name="onPageFinished(Landroid/webkit/WebView;Ljava/lang/String;)V" />
+		<method name="onPageStarted(Landroid/webkit/WebView;Ljava/lang/String;Landroid/graphics/Bitmap;)V" />
+		<method name="onReceivedError(Landroid/webkit/WebView;ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="onReceivedHttpAuthRequest(Landroid/webkit/WebView;Landroid/webkit/HttpAuthHandler;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="onReceivedLoginRequest(Landroid/webkit/WebView;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" since="12" />
+		<method name="onReceivedSslError(Landroid/webkit/WebView;Landroid/webkit/SslErrorHandler;Landroid/net/http/SslError;)V" since="8" />
+		<method name="onScaleChanged(Landroid/webkit/WebView;FF)V" />
+		<method name="onTooManyRedirects(Landroid/webkit/WebView;Landroid/os/Message;Landroid/os/Message;)V" />
+		<method name="onUnhandledKeyEvent(Landroid/webkit/WebView;Landroid/view/KeyEvent;)V" />
+		<method name="shouldInterceptRequest(Landroid/webkit/WebView;Ljava/lang/String;)Landroid/webkit/WebResourceResponse;" since="11" />
+		<method name="shouldOverrideKeyEvent(Landroid/webkit/WebView;Landroid/view/KeyEvent;)Z" />
+		<method name="shouldOverrideUrlLoading(Landroid/webkit/WebView;Ljava/lang/String;)Z" />
+		<field name="ERROR_AUTHENTICATION" since="5" />
+		<field name="ERROR_BAD_URL" since="5" />
+		<field name="ERROR_CONNECT" since="5" />
+		<field name="ERROR_FAILED_SSL_HANDSHAKE" since="5" />
+		<field name="ERROR_FILE" since="5" />
+		<field name="ERROR_FILE_NOT_FOUND" since="5" />
+		<field name="ERROR_HOST_LOOKUP" since="5" />
+		<field name="ERROR_IO" since="5" />
+		<field name="ERROR_PROXY_AUTHENTICATION" since="5" />
+		<field name="ERROR_REDIRECT_LOOP" since="5" />
+		<field name="ERROR_TIMEOUT" since="5" />
+		<field name="ERROR_TOO_MANY_REQUESTS" since="5" />
+		<field name="ERROR_UNKNOWN" since="5" />
+		<field name="ERROR_UNSUPPORTED_AUTH_SCHEME" since="5" />
+		<field name="ERROR_UNSUPPORTED_SCHEME" since="5" />
+	</class>
+	<class name="android/webkit/WebViewDatabase" since="1">
+		<extends name="java/lang/Object" />
+		<method name="clearFormData()V" />
+		<method name="clearHttpAuthUsernamePassword()V" />
+		<method name="clearUsernamePassword()V" />
+		<method name="getInstance(Landroid/content/Context;)Landroid/webkit/WebViewDatabase;" />
+		<method name="hasFormData()Z" />
+		<method name="hasHttpAuthUsernamePassword()Z" />
+		<method name="hasUsernamePassword()Z" />
+		<field name="LOGTAG" />
+	</class>
+	<class name="android/webkit/WebViewFragment" since="11">
+		<extends name="android/app/Fragment" />
+		<method name="&lt;init>()V" />
+		<method name="getWebView()Landroid/webkit/WebView;" />
+	</class>
+	<class name="android/widget/AbsListView" since="1">
+		<extends name="android/widget/AdapterView" />
+		<implements name="android/widget/Filter$FilterListener" />
+		<implements name="android/text/TextWatcher" />
+		<implements name="android/view/ViewTreeObserver$OnGlobalLayoutListener" />
+		<implements name="android/view/ViewTreeObserver$OnTouchModeChangeListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="afterTextChanged(Landroid/text/Editable;)V" />
+		<method name="beforeTextChanged(Ljava/lang/CharSequence;III)V" />
+		<method name="clearChoices()V" since="11" />
+		<method name="clearTextFilter()V" />
+		<method name="deferNotifyDataSetChanged()V" since="14" />
+		<method name="getCacheColorHint()I" />
+		<method name="getCheckedItemCount()I" since="11" />
+		<method name="getCheckedItemIds()[J" since="11" />
+		<method name="getCheckedItemPosition()I" since="11" />
+		<method name="getCheckedItemPositions()Landroid/util/SparseBooleanArray;" since="11" />
+		<method name="getChoiceMode()I" since="11" />
+		<method name="getListPaddingBottom()I" />
+		<method name="getListPaddingLeft()I" />
+		<method name="getListPaddingRight()I" />
+		<method name="getListPaddingTop()I" />
+		<method name="getSelectedView()Landroid/view/View;" />
+		<method name="getSelector()Landroid/graphics/drawable/Drawable;" />
+		<method name="getTextFilter()Ljava/lang/CharSequence;" since="3" />
+		<method name="getTranscriptMode()I" />
+		<method name="handleDataChanged()V" />
+		<method name="hasTextFilter()Z" />
+		<method name="invalidateViews()V" />
+		<method name="isFastScrollAlwaysVisible()Z" since="11" />
+		<method name="isFastScrollEnabled()Z" since="3" />
+		<method name="isInFilterMode()Z" />
+		<method name="isItemChecked(I)Z" since="11" />
+		<method name="isScrollingCacheEnabled()Z" />
+		<method name="isSmoothScrollbarEnabled()Z" since="3" />
+		<method name="isStackFromBottom()Z" />
+		<method name="isTextFilterEnabled()Z" />
+		<method name="layoutChildren()V" />
+		<method name="onFilterComplete(I)V" />
+		<method name="onGlobalLayout()V" />
+		<method name="onRemoteAdapterConnected()Z" since="11" />
+		<method name="onRemoteAdapterDisconnected()V" since="11" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
+		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
+		<method name="onTouchModeChanged(Z)V" />
+		<method name="pointToPosition(II)I" />
+		<method name="pointToRowId(II)J" />
+		<method name="reclaimViews(Ljava/util/List;)V" />
+		<method name="setAdapter(Landroid/widget/ListAdapter;)V" since="11" />
+		<method name="setCacheColorHint(I)V" />
+		<method name="setChoiceMode(I)V" since="11" />
+		<method name="setDrawSelectorOnTop(Z)V" />
+		<method name="setFastScrollAlwaysVisible(Z)V" since="11" />
+		<method name="setFastScrollEnabled(Z)V" since="3" />
+		<method name="setFilterText(Ljava/lang/String;)V" />
+		<method name="setFriction(F)V" since="11" />
+		<method name="setItemChecked(IZ)V" since="11" />
+		<method name="setMultiChoiceModeListener(Landroid/widget/AbsListView$MultiChoiceModeListener;)V" since="11" />
+		<method name="setOnScrollListener(Landroid/widget/AbsListView$OnScrollListener;)V" />
+		<method name="setRecyclerListener(Landroid/widget/AbsListView$RecyclerListener;)V" />
+		<method name="setRemoteViewsAdapter(Landroid/content/Intent;)V" since="11" />
+		<method name="setScrollIndicators(Landroid/view/View;Landroid/view/View;)V" />
+		<method name="setScrollingCacheEnabled(Z)V" />
+		<method name="setSelector(I)V" />
+		<method name="setSelector(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setSmoothScrollbarEnabled(Z)V" since="3" />
+		<method name="setStackFromBottom(Z)V" />
+		<method name="setTextFilterEnabled(Z)V" />
+		<method name="setTranscriptMode(I)V" />
+		<method name="setVelocityScale(F)V" since="11" />
+		<method name="smoothScrollBy(II)V" since="8" />
+		<method name="smoothScrollToPosition(I)V" since="8" />
+		<method name="smoothScrollToPosition(II)V" since="8" />
+		<method name="smoothScrollToPositionFromTop(II)V" since="11" />
+		<method name="smoothScrollToPositionFromTop(III)V" since="11" />
+		<method name="verifyDrawable(Landroid/graphics/drawable/Drawable;)Z" />
+		<field name="CHOICE_MODE_MULTIPLE" since="11" />
+		<field name="CHOICE_MODE_MULTIPLE_MODAL" since="11" />
+		<field name="CHOICE_MODE_NONE" since="11" />
+		<field name="CHOICE_MODE_SINGLE" since="11" />
+		<field name="TRANSCRIPT_MODE_ALWAYS_SCROLL" />
+		<field name="TRANSCRIPT_MODE_DISABLED" />
+		<field name="TRANSCRIPT_MODE_NORMAL" />
+	</class>
+	<class name="android/widget/AbsListView$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$LayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+	</class>
+	<class name="android/widget/AbsListView$MultiChoiceModeListener" since="11">
+		<implements name="android/view/ActionMode$Callback" />
+		<method name="onItemCheckedStateChanged(Landroid/view/ActionMode;IJZ)V" />
+	</class>
+	<class name="android/widget/AbsListView$OnScrollListener" since="1">
+		<method name="onScroll(Landroid/widget/AbsListView;III)V" />
+		<method name="onScrollStateChanged(Landroid/widget/AbsListView;I)V" />
+		<field name="SCROLL_STATE_FLING" />
+		<field name="SCROLL_STATE_IDLE" />
+		<field name="SCROLL_STATE_TOUCH_SCROLL" />
+	</class>
+	<class name="android/widget/AbsListView$RecyclerListener" since="1">
+		<method name="onMovedToScrapHeap(Landroid/view/View;)V" />
+	</class>
+	<class name="android/widget/AbsListView$SelectionBoundsAdjuster" since="11">
+		<method name="adjustListItemSelectionBounds(Landroid/graphics/Rect;)V" />
+	</class>
+	<class name="android/widget/AbsSeekBar" since="1">
+		<extends name="android/widget/ProgressBar" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getKeyProgressIncrement()I" since="3" />
+		<method name="getThumbOffset()I" />
+		<method name="setKeyProgressIncrement(I)V" since="3" />
+		<method name="setThumb(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setThumbOffset(I)V" />
+	</class>
+	<class name="android/widget/AbsSpinner" since="1">
+		<extends name="android/widget/AdapterView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getAdapter()Landroid/widget/SpinnerAdapter;" />
+		<method name="getSelectedView()Landroid/view/View;" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
+		<method name="pointToPosition(II)I" />
+		<method name="setAdapter(Landroid/widget/SpinnerAdapter;)V" />
+		<method name="setSelection(I)V" />
+		<method name="setSelection(IZ)V" />
+	</class>
+	<class name="android/widget/AbsoluteLayout" since="1">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="onLayout(ZIIII)V" />
+	</class>
+	<class name="android/widget/AbsoluteLayout$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$LayoutParams" />
+		<method name="&lt;init>(IIII)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
+		<field name="x" />
+		<field name="y" />
+	</class>
+	<class name="android/widget/Adapter" since="1">
+		<method name="getCount()I" />
+		<method name="getItem(I)Ljava/lang/Object;" />
+		<method name="getItemId(I)J" />
+		<method name="getItemViewType(I)I" />
+		<method name="getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getViewTypeCount()I" />
+		<method name="hasStableIds()Z" />
+		<method name="isEmpty()Z" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<field name="IGNORE_ITEM_VIEW_TYPE" />
+		<field name="NO_SELECTION" />
+	</class>
+	<class name="android/widget/AdapterView" since="1">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getAdapter()LT;" />
+		<method name="getCount()I" />
+		<method name="getEmptyView()Landroid/view/View;" />
+		<method name="getFirstVisiblePosition()I" />
+		<method name="getItemAtPosition(I)Ljava/lang/Object;" />
+		<method name="getItemIdAtPosition(I)J" />
+		<method name="getLastVisiblePosition()I" />
+		<method name="getOnItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" />
+		<method name="getOnItemLongClickListener()Landroid/widget/AdapterView$OnItemLongClickListener;" />
+		<method name="getOnItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" />
+		<method name="getPositionForView(Landroid/view/View;)I" />
+		<method name="getSelectedItem()Ljava/lang/Object;" />
+		<method name="getSelectedItemId()J" />
+		<method name="getSelectedItemPosition()I" />
+		<method name="getSelectedView()Landroid/view/View;" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="performItemClick(Landroid/view/View;IJ)Z" />
+		<method name="setAdapter(LT;)V" />
+		<method name="setEmptyView(Landroid/view/View;)V" />
+		<method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V" />
+		<method name="setOnItemLongClickListener(Landroid/widget/AdapterView$OnItemLongClickListener;)V" />
+		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V" />
+		<method name="setSelection(I)V" />
+		<field name="INVALID_POSITION" />
+		<field name="INVALID_ROW_ID" />
+		<field name="ITEM_VIEW_TYPE_HEADER_OR_FOOTER" />
+		<field name="ITEM_VIEW_TYPE_IGNORE" />
+	</class>
+	<class name="android/widget/AdapterView$AdapterContextMenuInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/ContextMenu$ContextMenuInfo" />
+		<method name="&lt;init>(Landroid/view/View;IJ)V" />
+		<field name="id" />
+		<field name="position" />
+		<field name="targetView" />
+	</class>
+	<class name="android/widget/AdapterView$OnItemClickListener" since="1">
+		<method name="onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V" />
+	</class>
+	<class name="android/widget/AdapterView$OnItemLongClickListener" since="1">
+		<method name="onItemLongClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)Z" />
+	</class>
+	<class name="android/widget/AdapterView$OnItemSelectedListener" since="1">
+		<method name="onItemSelected(Landroid/widget/AdapterView;Landroid/view/View;IJ)V" />
+		<method name="onNothingSelected(Landroid/widget/AdapterView;)V" />
+	</class>
+	<class name="android/widget/AdapterViewAnimator" since="11">
+		<extends name="android/widget/AdapterView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="14" />
+		<method name="advance()V" />
+		<method name="deferNotifyDataSetChanged()V" since="14" />
+		<method name="fyiWillBeAdvancedByHostKThx()V" />
+		<method name="getAdapter()Landroid/widget/Adapter;" />
+		<method name="getCurrentView()Landroid/view/View;" />
+		<method name="getDisplayedChild()I" />
+		<method name="getInAnimation()Landroid/animation/ObjectAnimator;" />
+		<method name="getOutAnimation()Landroid/animation/ObjectAnimator;" />
+		<method name="getSelectedView()Landroid/view/View;" />
+		<method name="onRemoteAdapterConnected()Z" />
+		<method name="onRemoteAdapterDisconnected()V" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
+		<method name="setAdapter(Landroid/widget/Adapter;)V" />
+		<method name="setAnimateFirstView(Z)V" />
+		<method name="setDisplayedChild(I)V" />
+		<method name="setInAnimation(Landroid/animation/ObjectAnimator;)V" />
+		<method name="setInAnimation(Landroid/content/Context;I)V" />
+		<method name="setOutAnimation(Landroid/animation/ObjectAnimator;)V" />
+		<method name="setOutAnimation(Landroid/content/Context;I)V" />
+		<method name="setRemoteViewsAdapter(Landroid/content/Intent;)V" />
+		<method name="setSelection(I)V" />
+		<method name="showNext()V" />
+		<method name="showPrevious()V" />
+	</class>
+	<class name="android/widget/AdapterViewFlipper" since="11">
+		<extends name="android/widget/AdapterViewAnimator" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="isAutoStart()Z" />
+		<method name="isFlipping()Z" />
+		<method name="setAutoStart(Z)V" />
+		<method name="setFlipInterval(I)V" />
+		<method name="startFlipping()V" />
+		<method name="stopFlipping()V" />
+	</class>
+	<class name="android/widget/AlphabetIndexer" since="3">
+		<extends name="android/database/DataSetObserver" />
+		<implements name="android/widget/SectionIndexer" />
+		<method name="&lt;init>(Landroid/database/Cursor;ILjava/lang/CharSequence;)V" />
+		<method name="compare(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getPositionForSection(I)I" />
+		<method name="getSectionForPosition(I)I" />
+		<method name="getSections()[Ljava/lang/Object;" />
+		<method name="setCursor(Landroid/database/Cursor;)V" />
+		<field name="mAlphabet" />
+		<field name="mColumnIndex" />
+		<field name="mDataCursor" />
+	</class>
+	<class name="android/widget/AnalogClock" since="1">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/widget/ArrayAdapter" since="1">
+		<extends name="android/widget/BaseAdapter" />
+		<implements name="android/widget/Filterable" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;II)V" />
+		<method name="&lt;init>(Landroid/content/Context;IILjava/util/List;)V" />
+		<method name="&lt;init>(Landroid/content/Context;II[LT;)V" />
+		<method name="&lt;init>(Landroid/content/Context;ILjava/util/List;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I[LT;)V" />
+		<method name="add(LT;)V" />
+		<method name="addAll(Ljava/util/Collection;)V" since="11" />
+		<method name="addAll([LT;)V" since="11" />
+		<method name="clear()V" />
+		<method name="createFromResource(Landroid/content/Context;II)Landroid/widget/ArrayAdapter;" />
+		<method name="getContext()Landroid/content/Context;" />
+		<method name="getCount()I" />
+		<method name="getFilter()Landroid/widget/Filter;" />
+		<method name="getItem(I)LT;" />
+		<method name="getItemId(I)J" />
+		<method name="getPosition(LT;)I" />
+		<method name="getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="insert(LT;I)V" />
+		<method name="remove(LT;)V" />
+		<method name="setDropDownViewResource(I)V" />
+		<method name="setNotifyOnChange(Z)V" />
+		<method name="sort(Ljava/util/Comparator;)V" since="3" />
+	</class>
+	<class name="android/widget/AutoCompleteTextView" since="1">
+		<extends name="android/widget/EditText" />
+		<implements name="android/widget/Filter$FilterListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="clearListSelection()V" since="3" />
+		<method name="convertSelectionToString(Ljava/lang/Object;)Ljava/lang/CharSequence;" />
+		<method name="dismissDropDown()V" />
+		<method name="enoughToFilter()Z" />
+		<method name="getAdapter()Landroid/widget/ListAdapter;" />
+		<method name="getDropDownAnchor()I" since="3" />
+		<method name="getDropDownBackground()Landroid/graphics/drawable/Drawable;" since="5" />
+		<method name="getDropDownHeight()I" since="4" />
+		<method name="getDropDownHorizontalOffset()I" since="5" />
+		<method name="getDropDownVerticalOffset()I" since="5" />
+		<method name="getDropDownWidth()I" since="3" />
+		<method name="getFilter()Landroid/widget/Filter;" />
+		<method name="getItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" />
+		<method name="getItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" />
+		<method name="getListSelection()I" since="3" />
+		<method name="getOnItemClickListener()Landroid/widget/AdapterView$OnItemClickListener;" since="3" />
+		<method name="getOnItemSelectedListener()Landroid/widget/AdapterView$OnItemSelectedListener;" since="3" />
+		<method name="getThreshold()I" />
+		<method name="getValidator()Landroid/widget/AutoCompleteTextView$Validator;" />
+		<method name="isPerformingCompletion()Z" since="3" />
+		<method name="isPopupShowing()Z" />
+		<method name="onFilterComplete(I)V" />
+		<method name="performCompletion()V" />
+		<method name="performFiltering(Ljava/lang/CharSequence;I)V" />
+		<method name="performValidation()V" />
+		<method name="replaceText(Ljava/lang/CharSequence;)V" />
+		<method name="setAdapter(LT;)V" />
+		<method name="setCompletionHint(Ljava/lang/CharSequence;)V" />
+		<method name="setDropDownAnchor(I)V" since="3" />
+		<method name="setDropDownBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" since="5" />
+		<method name="setDropDownBackgroundResource(I)V" since="5" />
+		<method name="setDropDownHeight(I)V" since="4" />
+		<method name="setDropDownHorizontalOffset(I)V" since="5" />
+		<method name="setDropDownVerticalOffset(I)V" since="5" />
+		<method name="setDropDownWidth(I)V" since="3" />
+		<method name="setListSelection(I)V" since="3" />
+		<method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V" />
+		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V" />
+		<method name="setThreshold(I)V" />
+		<method name="setValidator(Landroid/widget/AutoCompleteTextView$Validator;)V" />
+		<method name="showDropDown()V" />
+	</class>
+	<class name="android/widget/AutoCompleteTextView$Validator" since="1">
+		<method name="fixText(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+		<method name="isValid(Ljava/lang/CharSequence;)Z" />
+	</class>
+	<class name="android/widget/BaseAdapter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/widget/ListAdapter" />
+		<implements name="android/widget/SpinnerAdapter" />
+		<method name="&lt;init>()V" />
+		<method name="areAllItemsEnabled()Z" />
+		<method name="getDropDownView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getItemViewType(I)I" />
+		<method name="getViewTypeCount()I" />
+		<method name="hasStableIds()Z" />
+		<method name="isEmpty()Z" />
+		<method name="isEnabled(I)Z" />
+		<method name="notifyDataSetChanged()V" />
+		<method name="notifyDataSetInvalidated()V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+	</class>
+	<class name="android/widget/BaseExpandableListAdapter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/widget/ExpandableListAdapter" />
+		<implements name="android/widget/HeterogeneousExpandableList" since="8" />
+		<method name="&lt;init>()V" />
+		<method name="areAllItemsEnabled()Z" />
+		<method name="getChildType(II)I" since="8" />
+		<method name="getChildTypeCount()I" since="8" />
+		<method name="getCombinedChildId(JJ)J" />
+		<method name="getCombinedGroupId(J)J" />
+		<method name="getGroupType(I)I" since="8" />
+		<method name="getGroupTypeCount()I" since="8" />
+		<method name="isEmpty()Z" />
+		<method name="notifyDataSetChanged()V" />
+		<method name="notifyDataSetInvalidated()V" />
+		<method name="onGroupCollapsed(I)V" />
+		<method name="onGroupExpanded(I)V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+	</class>
+	<class name="android/widget/Button" since="1">
+		<extends name="android/widget/TextView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/widget/CalendarView" since="11">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getDate()J" />
+		<method name="getFirstDayOfWeek()I" />
+		<method name="getMaxDate()J" />
+		<method name="getMinDate()J" />
+		<method name="getShowWeekNumber()Z" />
+		<method name="setDate(J)V" />
+		<method name="setDate(JZZ)V" />
+		<method name="setFirstDayOfWeek(I)V" />
+		<method name="setMaxDate(J)V" />
+		<method name="setMinDate(J)V" />
+		<method name="setOnDateChangeListener(Landroid/widget/CalendarView$OnDateChangeListener;)V" />
+		<method name="setShowWeekNumber(Z)V" />
+	</class>
+	<class name="android/widget/CalendarView$OnDateChangeListener" since="11">
+		<method name="onSelectedDayChange(Landroid/widget/CalendarView;III)V" />
+	</class>
+	<class name="android/widget/CheckBox" since="1">
+		<extends name="android/widget/CompoundButton" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/widget/Checkable" since="1">
+		<method name="isChecked()Z" />
+		<method name="setChecked(Z)V" />
+		<method name="toggle()V" />
+	</class>
+	<class name="android/widget/CheckedTextView" since="1">
+		<extends name="android/widget/TextView" />
+		<implements name="android/widget/Checkable" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="isChecked()Z" />
+		<method name="setCheckMarkDrawable(I)V" />
+		<method name="setCheckMarkDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setChecked(Z)V" />
+		<method name="toggle()V" />
+	</class>
+	<class name="android/widget/Chronometer" since="1">
+		<extends name="android/widget/TextView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getBase()J" />
+		<method name="getFormat()Ljava/lang/String;" />
+		<method name="getOnChronometerTickListener()Landroid/widget/Chronometer$OnChronometerTickListener;" since="3" />
+		<method name="setBase(J)V" />
+		<method name="setFormat(Ljava/lang/String;)V" />
+		<method name="setOnChronometerTickListener(Landroid/widget/Chronometer$OnChronometerTickListener;)V" since="3" />
+		<method name="start()V" />
+		<method name="stop()V" />
+	</class>
+	<class name="android/widget/Chronometer$OnChronometerTickListener" since="3">
+		<method name="onChronometerTick(Landroid/widget/Chronometer;)V" />
+	</class>
+	<class name="android/widget/CompoundButton" since="1">
+		<extends name="android/widget/Button" />
+		<implements name="android/widget/Checkable" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="isChecked()Z" />
+		<method name="setButtonDrawable(I)V" />
+		<method name="setButtonDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setChecked(Z)V" />
+		<method name="setOnCheckedChangeListener(Landroid/widget/CompoundButton$OnCheckedChangeListener;)V" />
+		<method name="toggle()V" />
+	</class>
+	<class name="android/widget/CompoundButton$OnCheckedChangeListener" since="1">
+		<method name="onCheckedChanged(Landroid/widget/CompoundButton;Z)V" />
+	</class>
+	<class name="android/widget/CursorAdapter" since="1">
+		<extends name="android/widget/BaseAdapter" />
+		<implements name="android/widget/Filterable" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;I)V" since="11" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;Z)V" />
+		<method name="bindView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;)V" />
+		<method name="changeCursor(Landroid/database/Cursor;)V" />
+		<method name="convertToString(Landroid/database/Cursor;)Ljava/lang/CharSequence;" />
+		<method name="getCount()I" />
+		<method name="getCursor()Landroid/database/Cursor;" />
+		<method name="getFilter()Landroid/widget/Filter;" />
+		<method name="getFilterQueryProvider()Landroid/widget/FilterQueryProvider;" />
+		<method name="getItem(I)Ljava/lang/Object;" />
+		<method name="getItemId(I)J" />
+		<method name="getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="init(Landroid/content/Context;Landroid/database/Cursor;Z)V" />
+		<method name="newDropDownView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="newView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="onContentChanged()V" since="3" />
+		<method name="runQueryOnBackgroundThread(Ljava/lang/CharSequence;)Landroid/database/Cursor;" />
+		<method name="setFilterQueryProvider(Landroid/widget/FilterQueryProvider;)V" />
+		<method name="swapCursor(Landroid/database/Cursor;)Landroid/database/Cursor;" since="11" />
+		<field name="FLAG_AUTO_REQUERY" since="11" />
+		<field name="FLAG_REGISTER_CONTENT_OBSERVER" since="11" />
+	</class>
+	<class name="android/widget/CursorTreeAdapter" since="1">
+		<extends name="android/widget/BaseExpandableListAdapter" />
+		<implements name="android/widget/Filterable" />
+		<method name="&lt;init>(Landroid/database/Cursor;Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/database/Cursor;Landroid/content/Context;Z)V" />
+		<method name="bindChildView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;Z)V" />
+		<method name="bindGroupView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;Z)V" />
+		<method name="changeCursor(Landroid/database/Cursor;)V" />
+		<method name="convertToString(Landroid/database/Cursor;)Ljava/lang/String;" />
+		<method name="getChild(II)Landroid/database/Cursor;" />
+		<method name="getChildId(II)J" />
+		<method name="getChildView(IIZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getChildrenCount(I)I" />
+		<method name="getChildrenCursor(Landroid/database/Cursor;)Landroid/database/Cursor;" />
+		<method name="getCursor()Landroid/database/Cursor;" />
+		<method name="getFilter()Landroid/widget/Filter;" />
+		<method name="getFilterQueryProvider()Landroid/widget/FilterQueryProvider;" />
+		<method name="getGroup(I)Landroid/database/Cursor;" />
+		<method name="getGroupCount()I" />
+		<method name="getGroupId(I)J" />
+		<method name="getGroupView(IZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="hasStableIds()Z" />
+		<method name="isChildSelectable(II)Z" />
+		<method name="newChildView(Landroid/content/Context;Landroid/database/Cursor;ZLandroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="newGroupView(Landroid/content/Context;Landroid/database/Cursor;ZLandroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="notifyDataSetChanged(Z)V" />
+		<method name="runQueryOnBackgroundThread(Ljava/lang/CharSequence;)Landroid/database/Cursor;" />
+		<method name="setChildrenCursor(ILandroid/database/Cursor;)V" />
+		<method name="setFilterQueryProvider(Landroid/widget/FilterQueryProvider;)V" />
+		<method name="setGroupCursor(Landroid/database/Cursor;)V" />
+	</class>
+	<class name="android/widget/DatePicker" since="1">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getCalendarView()Landroid/widget/CalendarView;" since="12" />
+		<method name="getCalendarViewShown()Z" since="11" />
+		<method name="getDayOfMonth()I" />
+		<method name="getMaxDate()J" since="11" />
+		<method name="getMinDate()J" since="11" />
+		<method name="getMonth()I" />
+		<method name="getSpinnersShown()Z" since="11" />
+		<method name="getYear()I" />
+		<method name="init(IIILandroid/widget/DatePicker$OnDateChangedListener;)V" />
+		<method name="setCalendarViewShown(Z)V" since="11" />
+		<method name="setMaxDate(J)V" since="11" />
+		<method name="setMinDate(J)V" since="11" />
+		<method name="setSpinnersShown(Z)V" since="11" />
+		<method name="updateDate(III)V" />
+	</class>
+	<class name="android/widget/DatePicker$OnDateChangedListener" since="1">
+		<method name="onDateChanged(Landroid/widget/DatePicker;III)V" />
+	</class>
+	<class name="android/widget/DialerFilter" since="1">
+		<extends name="android/widget/RelativeLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="append(Ljava/lang/String;)V" />
+		<method name="clearText()V" />
+		<method name="getDigits()Ljava/lang/CharSequence;" />
+		<method name="getFilterText()Ljava/lang/CharSequence;" />
+		<method name="getLetters()Ljava/lang/CharSequence;" />
+		<method name="getMode()I" />
+		<method name="isQwertyKeyboard()Z" />
+		<method name="onModeChange(II)V" />
+		<method name="removeFilterWatcher(Landroid/text/TextWatcher;)V" />
+		<method name="setDigitsWatcher(Landroid/text/TextWatcher;)V" />
+		<method name="setFilterWatcher(Landroid/text/TextWatcher;)V" />
+		<method name="setLettersWatcher(Landroid/text/TextWatcher;)V" />
+		<method name="setMode(I)V" />
+		<field name="DIGITS_AND_LETTERS" />
+		<field name="DIGITS_AND_LETTERS_NO_DIGITS" />
+		<field name="DIGITS_AND_LETTERS_NO_LETTERS" />
+		<field name="DIGITS_ONLY" />
+		<field name="LETTERS_ONLY" />
+	</class>
+	<class name="android/widget/DigitalClock" since="1">
+		<extends name="android/widget/TextView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+	</class>
+	<class name="android/widget/EdgeEffect" since="14">
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="draw(Landroid/graphics/Canvas;)Z" />
+		<method name="finish()V" />
+		<method name="isFinished()Z" />
+		<method name="onAbsorb(I)V" />
+		<method name="onPull(F)V" />
+		<method name="onRelease()V" />
+		<method name="setSize(II)V" />
+	</class>
+	<class name="android/widget/EditText" since="1">
+		<extends name="android/widget/TextView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="extendSelection(I)V" />
+		<method name="selectAll()V" />
+		<method name="setSelection(I)V" />
+		<method name="setSelection(II)V" />
+	</class>
+	<class name="android/widget/ExpandableListAdapter" since="1">
+		<method name="areAllItemsEnabled()Z" />
+		<method name="getChild(II)Ljava/lang/Object;" />
+		<method name="getChildId(II)J" />
+		<method name="getChildView(IIZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getChildrenCount(I)I" />
+		<method name="getCombinedChildId(JJ)J" />
+		<method name="getCombinedGroupId(J)J" />
+		<method name="getGroup(I)Ljava/lang/Object;" />
+		<method name="getGroupCount()I" />
+		<method name="getGroupId(I)J" />
+		<method name="getGroupView(IZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="hasStableIds()Z" />
+		<method name="isChildSelectable(II)Z" />
+		<method name="isEmpty()Z" />
+		<method name="onGroupCollapsed(I)V" />
+		<method name="onGroupExpanded(I)V" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+	</class>
+	<class name="android/widget/ExpandableListView" since="1">
+		<extends name="android/widget/ListView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="collapseGroup(I)Z" />
+		<method name="expandGroup(I)Z" />
+		<method name="expandGroup(IZ)Z" since="14" />
+		<method name="getExpandableListAdapter()Landroid/widget/ExpandableListAdapter;" />
+		<method name="getExpandableListPosition(I)J" />
+		<method name="getFlatListPosition(J)I" />
+		<method name="getPackedPositionChild(J)I" />
+		<method name="getPackedPositionForChild(II)J" />
+		<method name="getPackedPositionForGroup(I)J" />
+		<method name="getPackedPositionGroup(J)I" />
+		<method name="getPackedPositionType(J)I" />
+		<method name="getSelectedId()J" />
+		<method name="getSelectedPosition()J" />
+		<method name="isGroupExpanded(I)Z" />
+		<method name="setAdapter(Landroid/widget/ExpandableListAdapter;)V" />
+		<method name="setChildDivider(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setChildIndicator(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setChildIndicatorBounds(II)V" />
+		<method name="setGroupIndicator(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setIndicatorBounds(II)V" />
+		<method name="setOnChildClickListener(Landroid/widget/ExpandableListView$OnChildClickListener;)V" />
+		<method name="setOnGroupClickListener(Landroid/widget/ExpandableListView$OnGroupClickListener;)V" />
+		<method name="setOnGroupCollapseListener(Landroid/widget/ExpandableListView$OnGroupCollapseListener;)V" />
+		<method name="setOnGroupExpandListener(Landroid/widget/ExpandableListView$OnGroupExpandListener;)V" />
+		<method name="setSelectedChild(IIZ)Z" />
+		<method name="setSelectedGroup(I)V" />
+		<field name="CHILD_INDICATOR_INHERIT" />
+		<field name="PACKED_POSITION_TYPE_CHILD" />
+		<field name="PACKED_POSITION_TYPE_GROUP" />
+		<field name="PACKED_POSITION_TYPE_NULL" />
+		<field name="PACKED_POSITION_VALUE_NULL" />
+	</class>
+	<class name="android/widget/ExpandableListView$ExpandableListContextMenuInfo" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/ContextMenu$ContextMenuInfo" />
+		<method name="&lt;init>(Landroid/view/View;JJ)V" />
+		<field name="id" />
+		<field name="packedPosition" />
+		<field name="targetView" />
+	</class>
+	<class name="android/widget/ExpandableListView$OnChildClickListener" since="1">
+		<method name="onChildClick(Landroid/widget/ExpandableListView;Landroid/view/View;IIJ)Z" />
+	</class>
+	<class name="android/widget/ExpandableListView$OnGroupClickListener" since="1">
+		<method name="onGroupClick(Landroid/widget/ExpandableListView;Landroid/view/View;IJ)Z" />
+	</class>
+	<class name="android/widget/ExpandableListView$OnGroupCollapseListener" since="1">
+		<method name="onGroupCollapse(I)V" />
+	</class>
+	<class name="android/widget/ExpandableListView$OnGroupExpandListener" since="1">
+		<method name="onGroupExpand(I)V" />
+	</class>
+	<class name="android/widget/Filter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="convertResultToString(Ljava/lang/Object;)Ljava/lang/CharSequence;" />
+		<method name="filter(Ljava/lang/CharSequence;)V" />
+		<method name="filter(Ljava/lang/CharSequence;Landroid/widget/Filter$FilterListener;)V" />
+		<method name="performFiltering(Ljava/lang/CharSequence;)Landroid/widget/Filter$FilterResults;" />
+		<method name="publishResults(Ljava/lang/CharSequence;Landroid/widget/Filter$FilterResults;)V" />
+	</class>
+	<class name="android/widget/Filter$FilterListener" since="1">
+		<method name="onFilterComplete(I)V" />
+	</class>
+	<class name="android/widget/Filter$FilterResults" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="count" />
+		<field name="values" />
+	</class>
+	<class name="android/widget/FilterQueryProvider" since="1">
+		<method name="runQuery(Ljava/lang/CharSequence;)Landroid/database/Cursor;" />
+	</class>
+	<class name="android/widget/Filterable" since="1">
+		<method name="getFilter()Landroid/widget/Filter;" />
+	</class>
+	<class name="android/widget/FrameLayout" since="1">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getConsiderGoneChildrenWhenMeasuring()Z" />
+		<method name="getForeground()Landroid/graphics/drawable/Drawable;" />
+		<method name="getMeasureAllChildren()Z" since="14" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="setForeground(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setForegroundGravity(I)V" />
+		<method name="setMeasureAllChildren(Z)V" />
+	</class>
+	<class name="android/widget/FrameLayout$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$MarginLayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+		<field name="gravity" />
+	</class>
+	<class name="android/widget/Gallery" since="1">
+		<extends name="android/widget/AbsSpinner" />
+		<implements name="android/view/GestureDetector$OnGestureListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="onDown(Landroid/view/MotionEvent;)Z" />
+		<method name="onFling(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
+		<method name="onLongPress(Landroid/view/MotionEvent;)V" />
+		<method name="onScroll(Landroid/view/MotionEvent;Landroid/view/MotionEvent;FF)Z" />
+		<method name="onShowPress(Landroid/view/MotionEvent;)V" />
+		<method name="onSingleTapUp(Landroid/view/MotionEvent;)Z" />
+		<method name="setAnimationDuration(I)V" />
+		<method name="setCallbackDuringFling(Z)V" />
+		<method name="setGravity(I)V" />
+		<method name="setSpacing(I)V" />
+		<method name="setUnselectedAlpha(F)V" />
+	</class>
+	<class name="android/widget/Gallery$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$LayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+	</class>
+	<class name="android/widget/GridLayout" since="14">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getAlignmentMode()I" />
+		<method name="getColumnCount()I" />
+		<method name="getOrientation()I" />
+		<method name="getRowCount()I" />
+		<method name="getUseDefaultMargins()Z" />
+		<method name="isColumnOrderPreserved()Z" />
+		<method name="isRowOrderPreserved()Z" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="setAlignmentMode(I)V" />
+		<method name="setColumnCount(I)V" />
+		<method name="setColumnOrderPreserved(Z)V" />
+		<method name="setOrientation(I)V" />
+		<method name="setRowCount(I)V" />
+		<method name="setRowOrderPreserved(Z)V" />
+		<method name="setUseDefaultMargins(Z)V" />
+		<method name="spec(I)Landroid/widget/GridLayout$Spec;" />
+		<method name="spec(II)Landroid/widget/GridLayout$Spec;" />
+		<method name="spec(IILandroid/widget/GridLayout$Alignment;)Landroid/widget/GridLayout$Spec;" />
+		<method name="spec(ILandroid/widget/GridLayout$Alignment;)Landroid/widget/GridLayout$Spec;" />
+		<field name="ALIGN_BOUNDS" />
+		<field name="ALIGN_MARGINS" />
+		<field name="BASELINE" />
+		<field name="BOTTOM" />
+		<field name="CENTER" />
+		<field name="FILL" />
+		<field name="HORIZONTAL" />
+		<field name="LEFT" />
+		<field name="RIGHT" />
+		<field name="TOP" />
+		<field name="UNDEFINED" />
+		<field name="VERTICAL" />
+	</class>
+	<class name="android/widget/GridLayout$Alignment" since="14">
+	</class>
+	<class name="android/widget/GridLayout$LayoutParams" since="14">
+		<extends name="android/view/ViewGroup$MarginLayoutParams" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+		<method name="&lt;init>(Landroid/widget/GridLayout$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/widget/GridLayout$Spec;Landroid/widget/GridLayout$Spec;)V" />
+		<method name="setGravity(I)V" />
+		<field name="columnSpec" />
+		<field name="rowSpec" />
+	</class>
+	<class name="android/widget/GridLayout$Spec" since="14">
+	</class>
+	<class name="android/widget/GridView" since="1">
+		<extends name="android/widget/AbsListView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getAdapter()Landroid/widget/ListAdapter;" />
+		<method name="getNumColumns()I" since="11" />
+		<method name="getStretchMode()I" />
+		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
+		<method name="setColumnWidth(I)V" />
+		<method name="setGravity(I)V" />
+		<method name="setHorizontalSpacing(I)V" />
+		<method name="setNumColumns(I)V" />
+		<method name="setSelection(I)V" />
+		<method name="setStretchMode(I)V" />
+		<method name="setVerticalSpacing(I)V" />
+		<method name="smoothScrollByOffset(I)V" since="11" />
+		<field name="AUTO_FIT" />
+		<field name="NO_STRETCH" />
+		<field name="STRETCH_COLUMN_WIDTH" />
+		<field name="STRETCH_SPACING" />
+		<field name="STRETCH_SPACING_UNIFORM" since="3" />
+	</class>
+	<class name="android/widget/HeaderViewListAdapter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/widget/Filterable" />
+		<implements name="android/widget/WrapperListAdapter" />
+		<method name="&lt;init>(Ljava/util/ArrayList;Ljava/util/ArrayList;Landroid/widget/ListAdapter;)V" />
+		<method name="areAllItemsEnabled()Z" />
+		<method name="getCount()I" />
+		<method name="getFilter()Landroid/widget/Filter;" />
+		<method name="getFootersCount()I" />
+		<method name="getHeadersCount()I" />
+		<method name="getItem(I)Ljava/lang/Object;" />
+		<method name="getItemId(I)J" />
+		<method name="getItemViewType(I)I" />
+		<method name="getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getViewTypeCount()I" />
+		<method name="getWrappedAdapter()Landroid/widget/ListAdapter;" />
+		<method name="hasStableIds()Z" />
+		<method name="isEmpty()Z" />
+		<method name="isEnabled(I)Z" />
+		<method name="registerDataSetObserver(Landroid/database/DataSetObserver;)V" />
+		<method name="removeFooter(Landroid/view/View;)Z" />
+		<method name="removeHeader(Landroid/view/View;)Z" />
+		<method name="unregisterDataSetObserver(Landroid/database/DataSetObserver;)V" />
+	</class>
+	<class name="android/widget/HeterogeneousExpandableList" since="8">
+		<method name="getChildType(II)I" />
+		<method name="getChildTypeCount()I" />
+		<method name="getGroupType(I)I" />
+		<method name="getGroupTypeCount()I" />
+	</class>
+	<class name="android/widget/HorizontalScrollView" since="3">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="arrowScroll(I)Z" />
+		<method name="computeScrollDeltaToGetChildRectOnScreen(Landroid/graphics/Rect;)I" />
+		<method name="executeKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="fling(I)V" />
+		<method name="fullScroll(I)Z" />
+		<method name="getMaxScrollAmount()I" />
+		<method name="isFillViewport()Z" />
+		<method name="isSmoothScrollingEnabled()Z" />
+		<method name="pageScroll(I)Z" />
+		<method name="setFillViewport(Z)V" />
+		<method name="setSmoothScrollingEnabled(Z)V" />
+		<method name="smoothScrollBy(II)V" />
+		<method name="smoothScrollTo(II)V" />
+	</class>
+	<class name="android/widget/ImageButton" since="1">
+		<extends name="android/widget/ImageView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/widget/ImageSwitcher" since="1">
+		<extends name="android/widget/ViewSwitcher" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="setImageDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setImageResource(I)V" />
+		<method name="setImageURI(Landroid/net/Uri;)V" />
+	</class>
+	<class name="android/widget/ImageView" since="1">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="clearColorFilter()V" />
+		<method name="getBaselineAlignBottom()Z" since="11" />
+		<method name="getDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getImageMatrix()Landroid/graphics/Matrix;" />
+		<method name="getScaleType()Landroid/widget/ImageView$ScaleType;" />
+		<method name="onCreateDrawableState(I)[I" />
+		<method name="setAdjustViewBounds(Z)V" />
+		<method name="setAlpha(I)V" />
+		<method name="setBaseline(I)V" since="11" />
+		<method name="setBaselineAlignBottom(Z)V" since="11" />
+		<method name="setColorFilter(I)V" since="8" />
+		<method name="setColorFilter(ILandroid/graphics/PorterDuff$Mode;)V" />
+		<method name="setColorFilter(Landroid/graphics/ColorFilter;)V" />
+		<method name="setFrame(IIII)Z" />
+		<method name="setImageBitmap(Landroid/graphics/Bitmap;)V" />
+		<method name="setImageDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setImageLevel(I)V" />
+		<method name="setImageMatrix(Landroid/graphics/Matrix;)V" />
+		<method name="setImageResource(I)V" />
+		<method name="setImageState([IZ)V" />
+		<method name="setImageURI(Landroid/net/Uri;)V" />
+		<method name="setMaxHeight(I)V" />
+		<method name="setMaxWidth(I)V" />
+		<method name="setScaleType(Landroid/widget/ImageView$ScaleType;)V" />
+	</class>
+	<class name="android/widget/ImageView$ScaleType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/widget/ImageView$ScaleType;" />
+		<method name="values()[Landroid/widget/ImageView$ScaleType;" />
+		<field name="CENTER" />
+		<field name="CENTER_CROP" />
+		<field name="CENTER_INSIDE" />
+		<field name="FIT_CENTER" />
+		<field name="FIT_END" />
+		<field name="FIT_START" />
+		<field name="FIT_XY" />
+		<field name="MATRIX" />
+	</class>
+	<class name="android/widget/LinearLayout" since="1">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="11" />
+		<method name="getBaselineAlignedChildIndex()I" />
+		<method name="getDividerPadding()I" since="14" />
+		<method name="getOrientation()I" />
+		<method name="getShowDividers()I" since="11" />
+		<method name="getWeightSum()F" />
+		<method name="isBaselineAligned()Z" />
+		<method name="isMeasureWithLargestChildEnabled()Z" since="11" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="setBaselineAligned(Z)V" />
+		<method name="setBaselineAlignedChildIndex(I)V" />
+		<method name="setDividerDrawable(Landroid/graphics/drawable/Drawable;)V" since="11" />
+		<method name="setDividerPadding(I)V" since="14" />
+		<method name="setGravity(I)V" />
+		<method name="setHorizontalGravity(I)V" />
+		<method name="setMeasureWithLargestChildEnabled(Z)V" since="11" />
+		<method name="setOrientation(I)V" />
+		<method name="setShowDividers(I)V" since="11" />
+		<method name="setVerticalGravity(I)V" />
+		<method name="setWeightSum(F)V" />
+		<field name="HORIZONTAL" />
+		<field name="SHOW_DIVIDER_BEGINNING" since="11" />
+		<field name="SHOW_DIVIDER_END" since="11" />
+		<field name="SHOW_DIVIDER_MIDDLE" since="11" />
+		<field name="SHOW_DIVIDER_NONE" since="11" />
+		<field name="VERTICAL" />
+	</class>
+	<class name="android/widget/LinearLayout$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$MarginLayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(IIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
+		<field name="gravity" />
+		<field name="weight" />
+	</class>
+	<class name="android/widget/ListAdapter" since="1">
+		<implements name="android/widget/Adapter" />
+		<method name="areAllItemsEnabled()Z" />
+		<method name="isEnabled(I)Z" />
+	</class>
+	<class name="android/widget/ListPopupWindow" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" />
+		<method name="clearListSelection()V" />
+		<method name="dismiss()V" />
+		<method name="getAnchorView()Landroid/view/View;" />
+		<method name="getAnimationStyle()I" />
+		<method name="getBackground()Landroid/graphics/drawable/Drawable;" />
+		<method name="getHeight()I" />
+		<method name="getHorizontalOffset()I" />
+		<method name="getInputMethodMode()I" />
+		<method name="getListView()Landroid/widget/ListView;" />
+		<method name="getPromptPosition()I" />
+		<method name="getSelectedItem()Ljava/lang/Object;" />
+		<method name="getSelectedItemId()J" />
+		<method name="getSelectedItemPosition()I" />
+		<method name="getSelectedView()Landroid/view/View;" />
+		<method name="getSoftInputMode()I" />
+		<method name="getVerticalOffset()I" />
+		<method name="getWidth()I" />
+		<method name="isInputMethodNotNeeded()Z" />
+		<method name="isModal()Z" />
+		<method name="isShowing()Z" />
+		<method name="onKeyDown(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyPreIme(ILandroid/view/KeyEvent;)Z" />
+		<method name="onKeyUp(ILandroid/view/KeyEvent;)Z" />
+		<method name="performItemClick(I)Z" />
+		<method name="postShow()V" />
+		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
+		<method name="setAnchorView(Landroid/view/View;)V" />
+		<method name="setAnimationStyle(I)V" />
+		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setContentWidth(I)V" />
+		<method name="setHeight(I)V" />
+		<method name="setHorizontalOffset(I)V" />
+		<method name="setInputMethodMode(I)V" />
+		<method name="setListSelector(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setModal(Z)V" />
+		<method name="setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V" />
+		<method name="setOnItemClickListener(Landroid/widget/AdapterView$OnItemClickListener;)V" />
+		<method name="setOnItemSelectedListener(Landroid/widget/AdapterView$OnItemSelectedListener;)V" />
+		<method name="setPromptPosition(I)V" />
+		<method name="setPromptView(Landroid/view/View;)V" />
+		<method name="setSelection(I)V" />
+		<method name="setSoftInputMode(I)V" />
+		<method name="setVerticalOffset(I)V" />
+		<method name="setWidth(I)V" />
+		<method name="show()V" />
+		<field name="INPUT_METHOD_FROM_FOCUSABLE" />
+		<field name="INPUT_METHOD_NEEDED" />
+		<field name="INPUT_METHOD_NOT_NEEDED" />
+		<field name="MATCH_PARENT" />
+		<field name="POSITION_PROMPT_ABOVE" />
+		<field name="POSITION_PROMPT_BELOW" />
+		<field name="WRAP_CONTENT" />
+	</class>
+	<class name="android/widget/ListView" since="1">
+		<extends name="android/widget/AbsListView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="addFooterView(Landroid/view/View;)V" />
+		<method name="addFooterView(Landroid/view/View;Ljava/lang/Object;Z)V" />
+		<method name="addHeaderView(Landroid/view/View;)V" />
+		<method name="addHeaderView(Landroid/view/View;Ljava/lang/Object;Z)V" />
+		<method name="clearChoices()V" />
+		<method name="findViewTraversal(I)Landroid/view/View;" />
+		<method name="findViewWithTagTraversal(Ljava/lang/Object;)Landroid/view/View;" />
+		<method name="getAdapter()Landroid/widget/ListAdapter;" />
+		<method name="getCheckItemIds()[J" since="4" />
+		<method name="getCheckedItemIds()[J" since="8" />
+		<method name="getCheckedItemPosition()I" />
+		<method name="getCheckedItemPositions()Landroid/util/SparseBooleanArray;" />
+		<method name="getChoiceMode()I" />
+		<method name="getDivider()Landroid/graphics/drawable/Drawable;" />
+		<method name="getDividerHeight()I" />
+		<method name="getFooterViewsCount()I" />
+		<method name="getHeaderViewsCount()I" />
+		<method name="getItemsCanFocus()Z" />
+		<method name="getMaxScrollAmount()I" />
+		<method name="getOverscrollFooter()Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="getOverscrollHeader()Landroid/graphics/drawable/Drawable;" since="9" />
+		<method name="isItemChecked(I)Z" />
+		<method name="removeFooterView(Landroid/view/View;)Z" />
+		<method name="removeHeaderView(Landroid/view/View;)Z" />
+		<method name="setAdapter(Landroid/widget/ListAdapter;)V" />
+		<method name="setChoiceMode(I)V" />
+		<method name="setDivider(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setDividerHeight(I)V" />
+		<method name="setFooterDividersEnabled(Z)V" since="3" />
+		<method name="setHeaderDividersEnabled(Z)V" since="3" />
+		<method name="setItemChecked(IZ)V" />
+		<method name="setItemsCanFocus(Z)V" />
+		<method name="setOverscrollFooter(Landroid/graphics/drawable/Drawable;)V" since="9" />
+		<method name="setOverscrollHeader(Landroid/graphics/drawable/Drawable;)V" since="9" />
+		<method name="setSelection(I)V" />
+		<method name="setSelectionAfterHeaderView()V" />
+		<method name="setSelectionFromTop(II)V" />
+		<method name="smoothScrollByOffset(I)V" since="11" />
+		<field name="CHOICE_MODE_MULTIPLE" />
+		<field name="CHOICE_MODE_NONE" />
+		<field name="CHOICE_MODE_SINGLE" />
+	</class>
+	<class name="android/widget/ListView$FixedViewInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="data" />
+		<field name="isSelectable" />
+		<field name="view" />
+	</class>
+	<class name="android/widget/MediaController" since="1">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Z)V" />
+		<method name="hide()V" />
+		<method name="isShowing()Z" />
+		<method name="onFinishInflate()V" />
+		<method name="setAnchorView(Landroid/view/View;)V" />
+		<method name="setMediaPlayer(Landroid/widget/MediaController$MediaPlayerControl;)V" />
+		<method name="setPrevNextListeners(Landroid/view/View$OnClickListener;Landroid/view/View$OnClickListener;)V" />
+		<method name="show()V" />
+		<method name="show(I)V" />
+	</class>
+	<class name="android/widget/MediaController$MediaPlayerControl" since="1">
+		<method name="canPause()Z" since="5" />
+		<method name="canSeekBackward()Z" since="5" />
+		<method name="canSeekForward()Z" since="5" />
+		<method name="getBufferPercentage()I" />
+		<method name="getCurrentPosition()I" />
+		<method name="getDuration()I" />
+		<method name="isPlaying()Z" />
+		<method name="pause()V" />
+		<method name="seekTo(I)V" />
+		<method name="start()V" />
+	</class>
+	<class name="android/widget/MultiAutoCompleteTextView" since="1">
+		<extends name="android/widget/AutoCompleteTextView" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="performFiltering(Ljava/lang/CharSequence;III)V" />
+		<method name="setTokenizer(Landroid/widget/MultiAutoCompleteTextView$Tokenizer;)V" />
+	</class>
+	<class name="android/widget/MultiAutoCompleteTextView$CommaTokenizer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/widget/MultiAutoCompleteTextView$Tokenizer" />
+		<method name="&lt;init>()V" />
+		<method name="findTokenEnd(Ljava/lang/CharSequence;I)I" />
+		<method name="findTokenStart(Ljava/lang/CharSequence;I)I" />
+		<method name="terminateToken(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/widget/MultiAutoCompleteTextView$Tokenizer" since="1">
+		<method name="findTokenEnd(Ljava/lang/CharSequence;I)I" />
+		<method name="findTokenStart(Ljava/lang/CharSequence;I)I" />
+		<method name="terminateToken(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/widget/NumberPicker" since="11">
+		<extends name="android/widget/LinearLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getDisplayedValues()[Ljava/lang/String;" />
+		<method name="getMaxValue()I" />
+		<method name="getMinValue()I" />
+		<method name="getValue()I" />
+		<method name="getWrapSelectorWheel()Z" />
+		<method name="setDisplayedValues([Ljava/lang/String;)V" />
+		<method name="setFormatter(Landroid/widget/NumberPicker$Formatter;)V" />
+		<method name="setMaxValue(I)V" />
+		<method name="setMinValue(I)V" />
+		<method name="setOnLongPressUpdateInterval(J)V" />
+		<method name="setOnScrollListener(Landroid/widget/NumberPicker$OnScrollListener;)V" />
+		<method name="setOnValueChangedListener(Landroid/widget/NumberPicker$OnValueChangeListener;)V" />
+		<method name="setValue(I)V" />
+		<method name="setWrapSelectorWheel(Z)V" />
+	</class>
+	<class name="android/widget/NumberPicker$Formatter" since="11">
+		<method name="format(I)Ljava/lang/String;" />
+	</class>
+	<class name="android/widget/NumberPicker$OnScrollListener" since="11">
+		<method name="onScrollStateChange(Landroid/widget/NumberPicker;I)V" />
+		<field name="SCROLL_STATE_FLING" />
+		<field name="SCROLL_STATE_IDLE" />
+		<field name="SCROLL_STATE_TOUCH_SCROLL" />
+	</class>
+	<class name="android/widget/NumberPicker$OnValueChangeListener" since="11">
+		<method name="onValueChange(Landroid/widget/NumberPicker;II)V" />
+	</class>
+	<class name="android/widget/OverScroller" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;FF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;FFZ)V" since="11" />
+		<method name="abortAnimation()V" />
+		<method name="computeScrollOffset()Z" />
+		<method name="fling(IIIIIIII)V" />
+		<method name="fling(IIIIIIIIII)V" />
+		<method name="forceFinished(Z)V" />
+		<method name="getCurrVelocity()F" since="14" />
+		<method name="getCurrX()I" />
+		<method name="getCurrY()I" />
+		<method name="getFinalX()I" />
+		<method name="getFinalY()I" />
+		<method name="getStartX()I" />
+		<method name="getStartY()I" />
+		<method name="isFinished()Z" />
+		<method name="isOverScrolled()Z" />
+		<method name="notifyHorizontalEdgeReached(III)V" />
+		<method name="notifyVerticalEdgeReached(III)V" />
+		<method name="setFriction(F)V" since="11" />
+		<method name="springBack(IIIIII)Z" />
+		<method name="startScroll(IIII)V" />
+		<method name="startScroll(IIIII)V" />
+	</class>
+	<class name="android/widget/PopupMenu" since="11">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/View;)V" />
+		<method name="dismiss()V" />
+		<method name="getMenu()Landroid/view/Menu;" />
+		<method name="getMenuInflater()Landroid/view/MenuInflater;" />
+		<method name="inflate(I)V" since="14" />
+		<method name="setOnDismissListener(Landroid/widget/PopupMenu$OnDismissListener;)V" since="14" />
+		<method name="setOnMenuItemClickListener(Landroid/widget/PopupMenu$OnMenuItemClickListener;)V" />
+		<method name="show()V" />
+	</class>
+	<class name="android/widget/PopupMenu$OnDismissListener" since="14">
+		<method name="onDismiss(Landroid/widget/PopupMenu;)V" />
+	</class>
+	<class name="android/widget/PopupMenu$OnMenuItemClickListener" since="11">
+		<method name="onMenuItemClick(Landroid/view/MenuItem;)Z" />
+	</class>
+	<class name="android/widget/PopupWindow" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="11" />
+		<method name="&lt;init>(Landroid/view/View;)V" />
+		<method name="&lt;init>(Landroid/view/View;II)V" />
+		<method name="&lt;init>(Landroid/view/View;IIZ)V" />
+		<method name="dismiss()V" />
+		<method name="getAnimationStyle()I" />
+		<method name="getBackground()Landroid/graphics/drawable/Drawable;" />
+		<method name="getContentView()Landroid/view/View;" />
+		<method name="getHeight()I" />
+		<method name="getInputMethodMode()I" since="3" />
+		<method name="getMaxAvailableHeight(Landroid/view/View;)I" />
+		<method name="getMaxAvailableHeight(Landroid/view/View;I)I" since="3" />
+		<method name="getSoftInputMode()I" since="4" />
+		<method name="getWidth()I" />
+		<method name="isAboveAnchor()Z" since="3" />
+		<method name="isClippingEnabled()Z" since="3" />
+		<method name="isFocusable()Z" />
+		<method name="isOutsideTouchable()Z" since="3" />
+		<method name="isShowing()Z" />
+		<method name="isSplitTouchEnabled()Z" since="11" />
+		<method name="isTouchable()Z" since="3" />
+		<method name="setAnimationStyle(I)V" />
+		<method name="setBackgroundDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setClippingEnabled(Z)V" since="3" />
+		<method name="setContentView(Landroid/view/View;)V" />
+		<method name="setFocusable(Z)V" />
+		<method name="setHeight(I)V" />
+		<method name="setIgnoreCheekPress()V" />
+		<method name="setInputMethodMode(I)V" since="3" />
+		<method name="setOnDismissListener(Landroid/widget/PopupWindow$OnDismissListener;)V" />
+		<method name="setOutsideTouchable(Z)V" since="3" />
+		<method name="setSoftInputMode(I)V" since="4" />
+		<method name="setSplitTouchEnabled(Z)V" since="11" />
+		<method name="setTouchInterceptor(Landroid/view/View$OnTouchListener;)V" since="3" />
+		<method name="setTouchable(Z)V" since="3" />
+		<method name="setWidth(I)V" />
+		<method name="setWindowLayoutMode(II)V" since="3" />
+		<method name="showAsDropDown(Landroid/view/View;)V" />
+		<method name="showAsDropDown(Landroid/view/View;II)V" />
+		<method name="showAtLocation(Landroid/view/View;III)V" />
+		<method name="update()V" since="3" />
+		<method name="update(II)V" since="4" />
+		<method name="update(IIII)V" />
+		<method name="update(IIIIZ)V" since="3" />
+		<method name="update(Landroid/view/View;II)V" />
+		<method name="update(Landroid/view/View;IIII)V" />
+		<field name="INPUT_METHOD_FROM_FOCUSABLE" since="3" />
+		<field name="INPUT_METHOD_NEEDED" since="3" />
+		<field name="INPUT_METHOD_NOT_NEEDED" since="3" />
+	</class>
+	<class name="android/widget/PopupWindow$OnDismissListener" since="1">
+		<method name="onDismiss()V" />
+	</class>
+	<class name="android/widget/ProgressBar" since="1">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getIndeterminateDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getInterpolator()Landroid/view/animation/Interpolator;" />
+		<method name="getMax()I" />
+		<method name="getProgress()I" />
+		<method name="getProgressDrawable()Landroid/graphics/drawable/Drawable;" />
+		<method name="getSecondaryProgress()I" />
+		<method name="incrementProgressBy(I)V" />
+		<method name="incrementSecondaryProgressBy(I)V" />
+		<method name="isIndeterminate()Z" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" since="3" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" since="3" />
+		<method name="setIndeterminate(Z)V" />
+		<method name="setIndeterminateDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setInterpolator(Landroid/content/Context;I)V" />
+		<method name="setInterpolator(Landroid/view/animation/Interpolator;)V" />
+		<method name="setMax(I)V" />
+		<method name="setProgress(I)V" />
+		<method name="setProgressDrawable(Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setSecondaryProgress(I)V" />
+	</class>
+	<class name="android/widget/QuickContactBadge" since="5">
+		<extends name="android/widget/ImageView" />
+		<implements name="android/view/View$OnClickListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="assignContactFromEmail(Ljava/lang/String;Z)V" />
+		<method name="assignContactFromPhone(Ljava/lang/String;Z)V" />
+		<method name="assignContactUri(Landroid/net/Uri;)V" />
+		<method name="onClick(Landroid/view/View;)V" />
+		<method name="setExcludeMimes([Ljava/lang/String;)V" />
+		<method name="setImageToDefault()V" since="11" />
+		<method name="setMode(I)V" />
+		<field name="mExcludeMimes" />
+	</class>
+	<class name="android/widget/RadioButton" since="1">
+		<extends name="android/widget/CompoundButton" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/widget/RadioGroup" since="1">
+		<extends name="android/widget/LinearLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="check(I)V" />
+		<method name="clearCheck()V" />
+		<method name="getCheckedRadioButtonId()I" />
+		<method name="setOnCheckedChangeListener(Landroid/widget/RadioGroup$OnCheckedChangeListener;)V" />
+	</class>
+	<class name="android/widget/RadioGroup$LayoutParams" since="1">
+		<extends name="android/widget/LinearLayout$LayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(IIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+	</class>
+	<class name="android/widget/RadioGroup$OnCheckedChangeListener" since="1">
+		<method name="onCheckedChanged(Landroid/widget/RadioGroup;I)V" />
+	</class>
+	<class name="android/widget/RatingBar" since="1">
+		<extends name="android/widget/AbsSeekBar" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getNumStars()I" />
+		<method name="getOnRatingBarChangeListener()Landroid/widget/RatingBar$OnRatingBarChangeListener;" />
+		<method name="getRating()F" />
+		<method name="getStepSize()F" />
+		<method name="isIndicator()Z" />
+		<method name="setIsIndicator(Z)V" />
+		<method name="setNumStars(I)V" />
+		<method name="setOnRatingBarChangeListener(Landroid/widget/RatingBar$OnRatingBarChangeListener;)V" />
+		<method name="setRating(F)V" />
+		<method name="setStepSize(F)V" />
+	</class>
+	<class name="android/widget/RatingBar$OnRatingBarChangeListener" since="1">
+		<method name="onRatingChanged(Landroid/widget/RatingBar;FZ)V" />
+	</class>
+	<class name="android/widget/RelativeLayout" since="1">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="setGravity(I)V" />
+		<method name="setHorizontalGravity(I)V" />
+		<method name="setIgnoreGravity(I)V" />
+		<method name="setVerticalGravity(I)V" />
+		<field name="ABOVE" />
+		<field name="ALIGN_BASELINE" />
+		<field name="ALIGN_BOTTOM" />
+		<field name="ALIGN_LEFT" />
+		<field name="ALIGN_PARENT_BOTTOM" />
+		<field name="ALIGN_PARENT_LEFT" />
+		<field name="ALIGN_PARENT_RIGHT" />
+		<field name="ALIGN_PARENT_TOP" />
+		<field name="ALIGN_RIGHT" />
+		<field name="ALIGN_TOP" />
+		<field name="BELOW" />
+		<field name="CENTER_HORIZONTAL" />
+		<field name="CENTER_IN_PARENT" />
+		<field name="CENTER_VERTICAL" />
+		<field name="LEFT_OF" />
+		<field name="RIGHT_OF" />
+		<field name="TRUE" />
+	</class>
+	<class name="android/widget/RelativeLayout$LayoutParams" since="1">
+		<extends name="android/view/ViewGroup$MarginLayoutParams" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+		<method name="addRule(I)V" />
+		<method name="addRule(II)V" />
+		<method name="debug(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getRules()[I" />
+		<field name="alignWithParent" />
+	</class>
+	<class name="android/widget/RemoteViews" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/LayoutInflater$Filter" />
+		<implements name="android/os/Parcelable" />
+		<method name="&lt;init>(Landroid/os/Parcel;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="addView(ILandroid/widget/RemoteViews;)V" since="7" />
+		<method name="apply(Landroid/content/Context;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="clone()Landroid/widget/RemoteViews;" since="9" />
+		<method name="describeContents()I" />
+		<method name="getLayoutId()I" />
+		<method name="getPackage()Ljava/lang/String;" />
+		<method name="onLoadClass(Ljava/lang/Class;)Z" />
+		<method name="reapply(Landroid/content/Context;Landroid/view/View;)V" />
+		<method name="removeAllViews(I)V" since="7" />
+		<method name="setBitmap(ILjava/lang/String;Landroid/graphics/Bitmap;)V" since="3" />
+		<method name="setBoolean(ILjava/lang/String;Z)V" since="3" />
+		<method name="setBundle(ILjava/lang/String;Landroid/os/Bundle;)V" since="8" />
+		<method name="setByte(ILjava/lang/String;B)V" since="3" />
+		<method name="setChar(ILjava/lang/String;C)V" since="3" />
+		<method name="setCharSequence(ILjava/lang/String;Ljava/lang/CharSequence;)V" since="3" />
+		<method name="setChronometer(IJLjava/lang/String;Z)V" />
+		<method name="setContentDescription(ILjava/lang/CharSequence;)V" since="15" />
+		<method name="setDisplayedChild(II)V" since="12" />
+		<method name="setDouble(ILjava/lang/String;D)V" since="3" />
+		<method name="setEmptyView(II)V" since="11" />
+		<method name="setFloat(ILjava/lang/String;F)V" since="3" />
+		<method name="setImageViewBitmap(ILandroid/graphics/Bitmap;)V" since="3" />
+		<method name="setImageViewResource(II)V" />
+		<method name="setImageViewUri(ILandroid/net/Uri;)V" />
+		<method name="setInt(ILjava/lang/String;I)V" since="3" />
+		<method name="setIntent(ILjava/lang/String;Landroid/content/Intent;)V" since="11" />
+		<method name="setLong(ILjava/lang/String;J)V" since="3" />
+		<method name="setOnClickFillInIntent(ILandroid/content/Intent;)V" since="11" />
+		<method name="setOnClickPendingIntent(ILandroid/app/PendingIntent;)V" since="3" />
+		<method name="setPendingIntentTemplate(ILandroid/app/PendingIntent;)V" since="11" />
+		<method name="setProgressBar(IIIZ)V" />
+		<method name="setRelativeScrollPosition(II)V" since="11" />
+		<method name="setRemoteAdapter(IILandroid/content/Intent;)V" since="11" />
+		<method name="setRemoteAdapter(ILandroid/content/Intent;)V" since="14" />
+		<method name="setScrollPosition(II)V" since="11" />
+		<method name="setShort(ILjava/lang/String;S)V" since="3" />
+		<method name="setString(ILjava/lang/String;Ljava/lang/String;)V" since="3" />
+		<method name="setTextColor(II)V" since="3" />
+		<method name="setTextViewText(ILjava/lang/CharSequence;)V" />
+		<method name="setUri(ILjava/lang/String;Landroid/net/Uri;)V" since="3" />
+		<method name="setViewVisibility(II)V" />
+		<method name="showNext(I)V" since="11" />
+		<method name="showPrevious(I)V" since="11" />
+		<method name="writeToParcel(Landroid/os/Parcel;I)V" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/widget/RemoteViews$ActionException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" since="3" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/widget/RemoteViews$RemoteView" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="android/widget/RemoteViewsService" since="11">
+		<extends name="android/app/Service" />
+		<method name="&lt;init>()V" />
+		<method name="onBind(Landroid/content/Intent;)Landroid/os/IBinder;" />
+		<method name="onGetViewFactory(Landroid/content/Intent;)Landroid/widget/RemoteViewsService$RemoteViewsFactory;" />
+	</class>
+	<class name="android/widget/RemoteViewsService$RemoteViewsFactory" since="11">
+		<method name="getCount()I" />
+		<method name="getItemId(I)J" />
+		<method name="getLoadingView()Landroid/widget/RemoteViews;" />
+		<method name="getViewAt(I)Landroid/widget/RemoteViews;" />
+		<method name="getViewTypeCount()I" />
+		<method name="hasStableIds()Z" />
+		<method name="onCreate()V" />
+		<method name="onDataSetChanged()V" />
+		<method name="onDestroy()V" />
+	</class>
+	<class name="android/widget/ResourceCursorAdapter" since="1">
+		<extends name="android/widget/CursorAdapter" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;)V" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;I)V" since="11" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;Z)V" since="3" />
+		<method name="newView(Landroid/content/Context;Landroid/database/Cursor;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="setDropDownViewResource(I)V" />
+		<method name="setViewResource(I)V" since="3" />
+	</class>
+	<class name="android/widget/ResourceCursorTreeAdapter" since="1">
+		<extends name="android/widget/CursorTreeAdapter" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;II)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;III)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;IIII)V" />
+		<method name="newChildView(Landroid/content/Context;Landroid/database/Cursor;ZLandroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="newGroupView(Landroid/content/Context;Landroid/database/Cursor;ZLandroid/view/ViewGroup;)Landroid/view/View;" />
+	</class>
+	<class name="android/widget/ScrollView" since="1">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="arrowScroll(I)Z" />
+		<method name="computeScrollDeltaToGetChildRectOnScreen(Landroid/graphics/Rect;)I" />
+		<method name="executeKeyEvent(Landroid/view/KeyEvent;)Z" />
+		<method name="fling(I)V" />
+		<method name="fullScroll(I)Z" />
+		<method name="getMaxScrollAmount()I" />
+		<method name="isFillViewport()Z" />
+		<method name="isSmoothScrollingEnabled()Z" />
+		<method name="pageScroll(I)Z" />
+		<method name="setFillViewport(Z)V" />
+		<method name="setSmoothScrollingEnabled(Z)V" />
+		<method name="smoothScrollBy(II)V" />
+		<method name="smoothScrollTo(II)V" />
+	</class>
+	<class name="android/widget/Scroller" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/view/animation/Interpolator;Z)V" since="11" />
+		<method name="abortAnimation()V" />
+		<method name="computeScrollOffset()Z" />
+		<method name="extendDuration(I)V" />
+		<method name="fling(IIIIIIII)V" />
+		<method name="forceFinished(Z)V" />
+		<method name="getCurrVelocity()F" since="14" />
+		<method name="getCurrX()I" />
+		<method name="getCurrY()I" />
+		<method name="getDuration()I" />
+		<method name="getFinalX()I" />
+		<method name="getFinalY()I" />
+		<method name="getStartX()I" since="3" />
+		<method name="getStartY()I" since="3" />
+		<method name="isFinished()Z" />
+		<method name="setFinalX(I)V" />
+		<method name="setFinalY(I)V" />
+		<method name="setFriction(F)V" since="11" />
+		<method name="startScroll(IIII)V" />
+		<method name="startScroll(IIIII)V" />
+		<method name="timePassed()I" />
+	</class>
+	<class name="android/widget/SearchView" since="11">
+		<extends name="android/widget/LinearLayout" />
+		<implements name="android/view/CollapsibleActionView" since="14" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getQuery()Ljava/lang/CharSequence;" />
+		<method name="getSuggestionsAdapter()Landroid/widget/CursorAdapter;" />
+		<method name="isIconfiedByDefault()Z" />
+		<method name="isIconified()Z" />
+		<method name="isQueryRefinementEnabled()Z" />
+		<method name="isSubmitButtonEnabled()Z" />
+		<method name="onActionViewCollapsed()V" since="14" />
+		<method name="onActionViewExpanded()V" since="14" />
+		<method name="setIconified(Z)V" />
+		<method name="setIconifiedByDefault(Z)V" />
+		<method name="setImeOptions(I)V" since="14" />
+		<method name="setInputType(I)V" since="14" />
+		<method name="setMaxWidth(I)V" />
+		<method name="setOnCloseListener(Landroid/widget/SearchView$OnCloseListener;)V" />
+		<method name="setOnQueryTextFocusChangeListener(Landroid/view/View$OnFocusChangeListener;)V" />
+		<method name="setOnQueryTextListener(Landroid/widget/SearchView$OnQueryTextListener;)V" />
+		<method name="setOnSearchClickListener(Landroid/view/View$OnClickListener;)V" />
+		<method name="setOnSuggestionListener(Landroid/widget/SearchView$OnSuggestionListener;)V" />
+		<method name="setQuery(Ljava/lang/CharSequence;Z)V" />
+		<method name="setQueryHint(Ljava/lang/CharSequence;)V" />
+		<method name="setQueryRefinementEnabled(Z)V" />
+		<method name="setSearchableInfo(Landroid/app/SearchableInfo;)V" />
+		<method name="setSubmitButtonEnabled(Z)V" />
+		<method name="setSuggestionsAdapter(Landroid/widget/CursorAdapter;)V" />
+	</class>
+	<class name="android/widget/SearchView$OnCloseListener" since="11">
+		<method name="onClose()Z" />
+	</class>
+	<class name="android/widget/SearchView$OnQueryTextListener" since="11">
+		<method name="onQueryTextChange(Ljava/lang/String;)Z" />
+		<method name="onQueryTextSubmit(Ljava/lang/String;)Z" />
+	</class>
+	<class name="android/widget/SearchView$OnSuggestionListener" since="11">
+		<method name="onSuggestionClick(I)Z" />
+		<method name="onSuggestionSelect(I)Z" />
+	</class>
+	<class name="android/widget/SectionIndexer" since="3">
+		<method name="getPositionForSection(I)I" />
+		<method name="getSectionForPosition(I)I" />
+		<method name="getSections()[Ljava/lang/Object;" />
+	</class>
+	<class name="android/widget/SeekBar" since="1">
+		<extends name="android/widget/AbsSeekBar" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="setOnSeekBarChangeListener(Landroid/widget/SeekBar$OnSeekBarChangeListener;)V" />
+	</class>
+	<class name="android/widget/SeekBar$OnSeekBarChangeListener" since="1">
+		<method name="onProgressChanged(Landroid/widget/SeekBar;IZ)V" />
+		<method name="onStartTrackingTouch(Landroid/widget/SeekBar;)V" />
+		<method name="onStopTrackingTouch(Landroid/widget/SeekBar;)V" />
+	</class>
+	<class name="android/widget/ShareActionProvider" since="14">
+		<extends name="android/view/ActionProvider" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="onCreateActionView()Landroid/view/View;" />
+		<method name="setOnShareTargetSelectedListener(Landroid/widget/ShareActionProvider$OnShareTargetSelectedListener;)V" />
+		<method name="setShareHistoryFileName(Ljava/lang/String;)V" />
+		<method name="setShareIntent(Landroid/content/Intent;)V" />
+		<field name="DEFAULT_SHARE_HISTORY_FILE_NAME" />
+	</class>
+	<class name="android/widget/ShareActionProvider$OnShareTargetSelectedListener" since="14">
+		<method name="onShareTargetSelected(Landroid/widget/ShareActionProvider;Landroid/content/Intent;)Z" />
+	</class>
+	<class name="android/widget/SimpleAdapter" since="1">
+		<extends name="android/widget/BaseAdapter" />
+		<implements name="android/widget/Filterable" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;I[Ljava/lang/String;[I)V" />
+		<method name="getCount()I" />
+		<method name="getFilter()Landroid/widget/Filter;" />
+		<method name="getItem(I)Ljava/lang/Object;" />
+		<method name="getItemId(I)J" />
+		<method name="getView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getViewBinder()Landroid/widget/SimpleAdapter$ViewBinder;" />
+		<method name="setDropDownViewResource(I)V" />
+		<method name="setViewBinder(Landroid/widget/SimpleAdapter$ViewBinder;)V" />
+		<method name="setViewImage(Landroid/widget/ImageView;I)V" />
+		<method name="setViewImage(Landroid/widget/ImageView;Ljava/lang/String;)V" />
+		<method name="setViewText(Landroid/widget/TextView;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/widget/SimpleAdapter$ViewBinder" since="1">
+		<method name="setViewValue(Landroid/view/View;Ljava/lang/Object;Ljava/lang/String;)Z" />
+	</class>
+	<class name="android/widget/SimpleCursorAdapter" since="1">
+		<extends name="android/widget/ResourceCursorAdapter" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Landroid/content/Context;ILandroid/database/Cursor;[Ljava/lang/String;[II)V" since="11" />
+		<method name="bindView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;)V" />
+		<method name="changeCursorAndColumns(Landroid/database/Cursor;[Ljava/lang/String;[I)V" since="3" />
+		<method name="getCursorToStringConverter()Landroid/widget/SimpleCursorAdapter$CursorToStringConverter;" />
+		<method name="getStringConversionColumn()I" />
+		<method name="getViewBinder()Landroid/widget/SimpleCursorAdapter$ViewBinder;" />
+		<method name="setCursorToStringConverter(Landroid/widget/SimpleCursorAdapter$CursorToStringConverter;)V" />
+		<method name="setStringConversionColumn(I)V" />
+		<method name="setViewBinder(Landroid/widget/SimpleCursorAdapter$ViewBinder;)V" />
+		<method name="setViewImage(Landroid/widget/ImageView;Ljava/lang/String;)V" />
+		<method name="setViewText(Landroid/widget/TextView;Ljava/lang/String;)V" />
+	</class>
+	<class name="android/widget/SimpleCursorAdapter$CursorToStringConverter" since="1">
+		<method name="convertToString(Landroid/database/Cursor;)Ljava/lang/CharSequence;" />
+	</class>
+	<class name="android/widget/SimpleCursorAdapter$ViewBinder" since="1">
+		<method name="setViewValue(Landroid/view/View;Landroid/database/Cursor;I)Z" />
+	</class>
+	<class name="android/widget/SimpleCursorTreeAdapter" since="1">
+		<extends name="android/widget/ResourceCursorTreeAdapter" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;II[Ljava/lang/String;[III[Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;II[Ljava/lang/String;[II[Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/database/Cursor;I[Ljava/lang/String;[II[Ljava/lang/String;[I)V" />
+		<method name="bindChildView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;Z)V" />
+		<method name="bindGroupView(Landroid/view/View;Landroid/content/Context;Landroid/database/Cursor;Z)V" />
+		<method name="getViewBinder()Landroid/widget/SimpleCursorTreeAdapter$ViewBinder;" since="5" />
+		<method name="setViewBinder(Landroid/widget/SimpleCursorTreeAdapter$ViewBinder;)V" since="5" />
+		<method name="setViewImage(Landroid/widget/ImageView;Ljava/lang/String;)V" />
+		<method name="setViewText(Landroid/widget/TextView;Ljava/lang/String;)V" since="5" />
+	</class>
+	<class name="android/widget/SimpleCursorTreeAdapter$ViewBinder" since="5">
+		<method name="setViewValue(Landroid/view/View;Landroid/database/Cursor;I)Z" />
+	</class>
+	<class name="android/widget/SimpleExpandableListAdapter" since="1">
+		<extends name="android/widget/BaseExpandableListAdapter" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;II[Ljava/lang/String;[ILjava/util/List;II[Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;II[Ljava/lang/String;[ILjava/util/List;I[Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Ljava/util/List;I[Ljava/lang/String;[ILjava/util/List;I[Ljava/lang/String;[I)V" />
+		<method name="getChild(II)Ljava/lang/Object;" />
+		<method name="getChildId(II)J" />
+		<method name="getChildView(IIZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="getChildrenCount(I)I" />
+		<method name="getGroup(I)Ljava/lang/Object;" />
+		<method name="getGroupCount()I" />
+		<method name="getGroupId(I)J" />
+		<method name="getGroupView(IZLandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="hasStableIds()Z" />
+		<method name="isChildSelectable(II)Z" />
+		<method name="newChildView(ZLandroid/view/ViewGroup;)Landroid/view/View;" />
+		<method name="newGroupView(ZLandroid/view/ViewGroup;)Landroid/view/View;" />
+	</class>
+	<class name="android/widget/SlidingDrawer" since="3">
+		<extends name="android/view/ViewGroup" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="animateClose()V" />
+		<method name="animateOpen()V" />
+		<method name="animateToggle()V" />
+		<method name="close()V" />
+		<method name="getContent()Landroid/view/View;" />
+		<method name="getHandle()Landroid/view/View;" />
+		<method name="isMoving()Z" />
+		<method name="isOpened()Z" />
+		<method name="lock()V" />
+		<method name="onLayout(ZIIII)V" />
+		<method name="open()V" />
+		<method name="setOnDrawerCloseListener(Landroid/widget/SlidingDrawer$OnDrawerCloseListener;)V" />
+		<method name="setOnDrawerOpenListener(Landroid/widget/SlidingDrawer$OnDrawerOpenListener;)V" />
+		<method name="setOnDrawerScrollListener(Landroid/widget/SlidingDrawer$OnDrawerScrollListener;)V" />
+		<method name="toggle()V" />
+		<method name="unlock()V" />
+		<field name="ORIENTATION_HORIZONTAL" />
+		<field name="ORIENTATION_VERTICAL" />
+	</class>
+	<class name="android/widget/SlidingDrawer$OnDrawerCloseListener" since="3">
+		<method name="onDrawerClosed()V" />
+	</class>
+	<class name="android/widget/SlidingDrawer$OnDrawerOpenListener" since="3">
+		<method name="onDrawerOpened()V" />
+	</class>
+	<class name="android/widget/SlidingDrawer$OnDrawerScrollListener" since="3">
+		<method name="onScrollEnded()V" />
+		<method name="onScrollStarted()V" />
+	</class>
+	<class name="android/widget/Space" since="14">
+		<extends name="android/view/View" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+	</class>
+	<class name="android/widget/Spinner" since="1">
+		<extends name="android/widget/AbsSpinner" />
+		<implements name="android/content/DialogInterface$OnClickListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;I)V" since="11" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;II)V" since="11" />
+		<method name="getPrompt()Ljava/lang/CharSequence;" />
+		<method name="onClick(Landroid/content/DialogInterface;I)V" />
+		<method name="setGravity(I)V" since="11" />
+		<method name="setPrompt(Ljava/lang/CharSequence;)V" />
+		<method name="setPromptId(I)V" />
+		<field name="MODE_DIALOG" since="11" />
+		<field name="MODE_DROPDOWN" since="11" />
+	</class>
+	<class name="android/widget/SpinnerAdapter" since="1">
+		<implements name="android/widget/Adapter" />
+		<method name="getDropDownView(ILandroid/view/View;Landroid/view/ViewGroup;)Landroid/view/View;" />
+	</class>
+	<class name="android/widget/StackView" since="11">
+		<extends name="android/widget/AdapterViewAnimator" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" since="14" />
+	</class>
+	<class name="android/widget/Switch" since="14">
+		<extends name="android/widget/CompoundButton" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getTextOff()Ljava/lang/CharSequence;" />
+		<method name="getTextOn()Ljava/lang/CharSequence;" />
+		<method name="onMeasure(II)V" />
+		<method name="setSwitchTextAppearance(Landroid/content/Context;I)V" />
+		<method name="setSwitchTypeface(Landroid/graphics/Typeface;)V" />
+		<method name="setSwitchTypeface(Landroid/graphics/Typeface;I)V" />
+		<method name="setTextOff(Ljava/lang/CharSequence;)V" />
+		<method name="setTextOn(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/widget/TabHost" since="1">
+		<extends name="android/widget/FrameLayout" />
+		<implements name="android/view/ViewTreeObserver$OnTouchModeChangeListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="addTab(Landroid/widget/TabHost$TabSpec;)V" />
+		<method name="clearAllTabs()V" />
+		<method name="getCurrentTab()I" />
+		<method name="getCurrentTabTag()Ljava/lang/String;" />
+		<method name="getCurrentTabView()Landroid/view/View;" />
+		<method name="getCurrentView()Landroid/view/View;" />
+		<method name="getTabContentView()Landroid/widget/FrameLayout;" />
+		<method name="getTabWidget()Landroid/widget/TabWidget;" />
+		<method name="newTabSpec(Ljava/lang/String;)Landroid/widget/TabHost$TabSpec;" />
+		<method name="onTouchModeChanged(Z)V" />
+		<method name="setCurrentTab(I)V" />
+		<method name="setCurrentTabByTag(Ljava/lang/String;)V" />
+		<method name="setOnTabChangedListener(Landroid/widget/TabHost$OnTabChangeListener;)V" />
+		<method name="setup()V" />
+		<method name="setup(Landroid/app/LocalActivityManager;)V" />
+	</class>
+	<class name="android/widget/TabHost$OnTabChangeListener" since="1">
+		<method name="onTabChanged(Ljava/lang/String;)V" />
+	</class>
+	<class name="android/widget/TabHost$TabContentFactory" since="1">
+		<method name="createTabContent(Ljava/lang/String;)Landroid/view/View;" />
+	</class>
+	<class name="android/widget/TabHost$TabSpec" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getTag()Ljava/lang/String;" since="4" />
+		<method name="setContent(I)Landroid/widget/TabHost$TabSpec;" />
+		<method name="setContent(Landroid/content/Intent;)Landroid/widget/TabHost$TabSpec;" />
+		<method name="setContent(Landroid/widget/TabHost$TabContentFactory;)Landroid/widget/TabHost$TabSpec;" />
+		<method name="setIndicator(Landroid/view/View;)Landroid/widget/TabHost$TabSpec;" since="4" />
+		<method name="setIndicator(Ljava/lang/CharSequence;)Landroid/widget/TabHost$TabSpec;" />
+		<method name="setIndicator(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)Landroid/widget/TabHost$TabSpec;" />
+	</class>
+	<class name="android/widget/TabWidget" since="1">
+		<extends name="android/widget/LinearLayout" />
+		<implements name="android/view/View$OnFocusChangeListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="dispatchDraw(Landroid/graphics/Canvas;)V" />
+		<method name="focusCurrentTab(I)V" />
+		<method name="getChildTabViewAt(I)Landroid/view/View;" since="4" />
+		<method name="getTabCount()I" since="4" />
+		<method name="isStripEnabled()Z" since="8" />
+		<method name="onFocusChange(Landroid/view/View;Z)V" />
+		<method name="setCurrentTab(I)V" />
+		<method name="setDividerDrawable(I)V" since="4" />
+		<method name="setDividerDrawable(Landroid/graphics/drawable/Drawable;)V" since="4" />
+		<method name="setLeftStripDrawable(I)V" since="8" />
+		<method name="setLeftStripDrawable(Landroid/graphics/drawable/Drawable;)V" since="8" />
+		<method name="setRightStripDrawable(I)V" since="8" />
+		<method name="setRightStripDrawable(Landroid/graphics/drawable/Drawable;)V" since="8" />
+		<method name="setStripEnabled(Z)V" since="8" />
+	</class>
+	<class name="android/widget/TableLayout" since="1">
+		<extends name="android/widget/LinearLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="isColumnCollapsed(I)Z" />
+		<method name="isColumnShrinkable(I)Z" />
+		<method name="isColumnStretchable(I)Z" />
+		<method name="isShrinkAllColumns()Z" />
+		<method name="isStretchAllColumns()Z" />
+		<method name="setColumnCollapsed(IZ)V" />
+		<method name="setColumnShrinkable(IZ)V" />
+		<method name="setColumnStretchable(IZ)V" />
+		<method name="setShrinkAllColumns(Z)V" />
+		<method name="setStretchAllColumns(Z)V" />
+	</class>
+	<class name="android/widget/TableLayout$LayoutParams" since="1">
+		<extends name="android/widget/LinearLayout$LayoutParams" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(IIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+	</class>
+	<class name="android/widget/TableRow" since="1">
+		<extends name="android/widget/LinearLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getVirtualChildAt(I)Landroid/view/View;" />
+		<method name="getVirtualChildCount()I" />
+	</class>
+	<class name="android/widget/TableRow$LayoutParams" since="1">
+		<extends name="android/widget/LinearLayout$LayoutParams" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(IIF)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$LayoutParams;)V" />
+		<method name="&lt;init>(Landroid/view/ViewGroup$MarginLayoutParams;)V" />
+		<field name="column" />
+		<field name="span" />
+	</class>
+	<class name="android/widget/TextSwitcher" since="1">
+		<extends name="android/widget/ViewSwitcher" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="setCurrentText(Ljava/lang/CharSequence;)V" />
+		<method name="setText(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/widget/TextView" since="1">
+		<extends name="android/view/View" />
+		<implements name="android/view/ViewTreeObserver$OnPreDrawListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="addTextChangedListener(Landroid/text/TextWatcher;)V" />
+		<method name="append(Ljava/lang/CharSequence;)V" />
+		<method name="append(Ljava/lang/CharSequence;II)V" />
+		<method name="beginBatchEdit()V" since="3" />
+		<method name="bringPointIntoView(I)Z" since="3" />
+		<method name="clearComposingText()V" since="3" />
+		<method name="debug(I)V" />
+		<method name="didTouchFocusSelect()Z" since="3" />
+		<method name="endBatchEdit()V" since="3" />
+		<method name="extractText(Landroid/view/inputmethod/ExtractedTextRequest;Landroid/view/inputmethod/ExtractedText;)Z" since="3" />
+		<method name="getAutoLinkMask()I" />
+		<method name="getCompoundDrawablePadding()I" />
+		<method name="getCompoundDrawables()[Landroid/graphics/drawable/Drawable;" />
+		<method name="getCompoundPaddingBottom()I" />
+		<method name="getCompoundPaddingLeft()I" />
+		<method name="getCompoundPaddingRight()I" />
+		<method name="getCompoundPaddingTop()I" />
+		<method name="getCurrentHintTextColor()I" />
+		<method name="getCurrentTextColor()I" />
+		<method name="getCustomSelectionActionModeCallback()Landroid/view/ActionMode$Callback;" since="11" />
+		<method name="getDefaultEditable()Z" />
+		<method name="getDefaultMovementMethod()Landroid/text/method/MovementMethod;" />
+		<method name="getEditableText()Landroid/text/Editable;" since="3" />
+		<method name="getEllipsize()Landroid/text/TextUtils$TruncateAt;" />
+		<method name="getError()Ljava/lang/CharSequence;" />
+		<method name="getExtendedPaddingBottom()I" />
+		<method name="getExtendedPaddingTop()I" />
+		<method name="getFilters()[Landroid/text/InputFilter;" />
+		<method name="getFreezesText()Z" />
+		<method name="getGravity()I" />
+		<method name="getHint()Ljava/lang/CharSequence;" />
+		<method name="getHintTextColors()Landroid/content/res/ColorStateList;" />
+		<method name="getImeActionId()I" since="3" />
+		<method name="getImeActionLabel()Ljava/lang/CharSequence;" since="3" />
+		<method name="getImeOptions()I" since="3" />
+		<method name="getInputExtras(Z)Landroid/os/Bundle;" since="3" />
+		<method name="getInputType()I" since="3" />
+		<method name="getKeyListener()Landroid/text/method/KeyListener;" />
+		<method name="getLayout()Landroid/text/Layout;" />
+		<method name="getLineBounds(ILandroid/graphics/Rect;)I" />
+		<method name="getLineCount()I" />
+		<method name="getLineHeight()I" />
+		<method name="getLinkTextColors()Landroid/content/res/ColorStateList;" />
+		<method name="getLinksClickable()Z" />
+		<method name="getMovementMethod()Landroid/text/method/MovementMethod;" />
+		<method name="getOffsetForPosition(FF)I" since="14" />
+		<method name="getPaint()Landroid/text/TextPaint;" />
+		<method name="getPaintFlags()I" />
+		<method name="getPrivateImeOptions()Ljava/lang/String;" since="3" />
+		<method name="getSelectionEnd()I" />
+		<method name="getSelectionStart()I" />
+		<method name="getText()Ljava/lang/CharSequence;" />
+		<method name="getTextColor(Landroid/content/Context;Landroid/content/res/TypedArray;I)I" />
+		<method name="getTextColors()Landroid/content/res/ColorStateList;" />
+		<method name="getTextColors(Landroid/content/Context;Landroid/content/res/TypedArray;)Landroid/content/res/ColorStateList;" />
+		<method name="getTextScaleX()F" />
+		<method name="getTextSize()F" />
+		<method name="getTotalPaddingBottom()I" />
+		<method name="getTotalPaddingLeft()I" />
+		<method name="getTotalPaddingRight()I" />
+		<method name="getTotalPaddingTop()I" />
+		<method name="getTransformationMethod()Landroid/text/method/TransformationMethod;" />
+		<method name="getTypeface()Landroid/graphics/Typeface;" />
+		<method name="getUrls()[Landroid/text/style/URLSpan;" />
+		<method name="hasSelection()Z" />
+		<method name="isInputMethodTarget()Z" since="3" />
+		<method name="isSuggestionsEnabled()Z" since="14" />
+		<method name="isTextSelectable()Z" since="11" />
+		<method name="length()I" />
+		<method name="moveCursorToVisibleOffset()Z" since="3" />
+		<method name="onBeginBatchEdit()V" since="3" />
+		<method name="onCommitCompletion(Landroid/view/inputmethod/CompletionInfo;)V" since="3" />
+		<method name="onCommitCorrection(Landroid/view/inputmethod/CorrectionInfo;)V" since="11" />
+		<method name="onEditorAction(I)V" since="3" />
+		<method name="onEndBatchEdit()V" since="3" />
+		<method name="onPreDraw()Z" />
+		<method name="onPrivateIMECommand(Ljava/lang/String;Landroid/os/Bundle;)Z" since="3" />
+		<method name="onRestoreInstanceState(Landroid/os/Parcelable;)V" />
+		<method name="onSaveInstanceState()Landroid/os/Parcelable;" />
+		<method name="onSelectionChanged(II)V" since="3" />
+		<method name="onTextChanged(Ljava/lang/CharSequence;III)V" />
+		<method name="onTextContextMenuItem(I)Z" since="3" />
+		<method name="removeTextChangedListener(Landroid/text/TextWatcher;)V" />
+		<method name="resetResolvedDrawables()V" since="14" />
+		<method name="resetResolvedLayoutDirection()V" since="14" />
+		<method name="resolveDrawables()V" since="14" />
+		<method name="resolveTextDirection()V" since="14" />
+		<method name="setAllCaps(Z)V" since="14" />
+		<method name="setAutoLinkMask(I)V" />
+		<method name="setCompoundDrawablePadding(I)V" />
+		<method name="setCompoundDrawables(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setCompoundDrawablesWithIntrinsicBounds(IIII)V" since="3" />
+		<method name="setCompoundDrawablesWithIntrinsicBounds(Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setCursorVisible(Z)V" />
+		<method name="setCustomSelectionActionModeCallback(Landroid/view/ActionMode$Callback;)V" since="11" />
+		<method name="setEditableFactory(Landroid/text/Editable$Factory;)V" />
+		<method name="setEllipsize(Landroid/text/TextUtils$TruncateAt;)V" />
+		<method name="setEms(I)V" />
+		<method name="setError(Ljava/lang/CharSequence;)V" />
+		<method name="setError(Ljava/lang/CharSequence;Landroid/graphics/drawable/Drawable;)V" />
+		<method name="setExtractedText(Landroid/view/inputmethod/ExtractedText;)V" since="3" />
+		<method name="setFilters([Landroid/text/InputFilter;)V" />
+		<method name="setFrame(IIII)Z" />
+		<method name="setFreezesText(Z)V" />
+		<method name="setGravity(I)V" />
+		<method name="setHeight(I)V" />
+		<method name="setHighlightColor(I)V" />
+		<method name="setHint(I)V" />
+		<method name="setHint(Ljava/lang/CharSequence;)V" />
+		<method name="setHintTextColor(I)V" />
+		<method name="setHintTextColor(Landroid/content/res/ColorStateList;)V" />
+		<method name="setHorizontallyScrolling(Z)V" />
+		<method name="setImeActionLabel(Ljava/lang/CharSequence;I)V" since="3" />
+		<method name="setImeOptions(I)V" since="3" />
+		<method name="setIncludeFontPadding(Z)V" />
+		<method name="setInputExtras(I)V" since="3" />
+		<method name="setInputType(I)V" since="3" />
+		<method name="setKeyListener(Landroid/text/method/KeyListener;)V" />
+		<method name="setLineSpacing(FF)V" />
+		<method name="setLines(I)V" />
+		<method name="setLinkTextColor(I)V" />
+		<method name="setLinkTextColor(Landroid/content/res/ColorStateList;)V" />
+		<method name="setLinksClickable(Z)V" />
+		<method name="setMarqueeRepeatLimit(I)V" since="2" />
+		<method name="setMaxEms(I)V" />
+		<method name="setMaxHeight(I)V" />
+		<method name="setMaxLines(I)V" />
+		<method name="setMaxWidth(I)V" />
+		<method name="setMinEms(I)V" />
+		<method name="setMinHeight(I)V" />
+		<method name="setMinLines(I)V" />
+		<method name="setMinWidth(I)V" />
+		<method name="setMovementMethod(Landroid/text/method/MovementMethod;)V" />
+		<method name="setOnEditorActionListener(Landroid/widget/TextView$OnEditorActionListener;)V" since="3" />
+		<method name="setPaintFlags(I)V" />
+		<method name="setPrivateImeOptions(Ljava/lang/String;)V" since="3" />
+		<method name="setRawInputType(I)V" since="3" />
+		<method name="setScroller(Landroid/widget/Scroller;)V" />
+		<method name="setSelectAllOnFocus(Z)V" />
+		<method name="setShadowLayer(FFFI)V" />
+		<method name="setSingleLine()V" />
+		<method name="setSingleLine(Z)V" />
+		<method name="setSpannableFactory(Landroid/text/Spannable$Factory;)V" />
+		<method name="setText(I)V" />
+		<method name="setText(ILandroid/widget/TextView$BufferType;)V" />
+		<method name="setText(Ljava/lang/CharSequence;)V" />
+		<method name="setText(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V" />
+		<method name="setText([CII)V" />
+		<method name="setTextAppearance(Landroid/content/Context;I)V" />
+		<method name="setTextColor(I)V" />
+		<method name="setTextColor(Landroid/content/res/ColorStateList;)V" />
+		<method name="setTextIsSelectable(Z)V" since="11" />
+		<method name="setTextKeepState(Ljava/lang/CharSequence;)V" />
+		<method name="setTextKeepState(Ljava/lang/CharSequence;Landroid/widget/TextView$BufferType;)V" />
+		<method name="setTextScaleX(F)V" />
+		<method name="setTextSize(F)V" />
+		<method name="setTextSize(IF)V" />
+		<method name="setTransformationMethod(Landroid/text/method/TransformationMethod;)V" />
+		<method name="setTypeface(Landroid/graphics/Typeface;)V" />
+		<method name="setTypeface(Landroid/graphics/Typeface;I)V" />
+		<method name="setWidth(I)V" />
+	</class>
+	<class name="android/widget/TextView$BufferType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Landroid/widget/TextView$BufferType;" />
+		<method name="values()[Landroid/widget/TextView$BufferType;" />
+		<field name="EDITABLE" />
+		<field name="NORMAL" />
+		<field name="SPANNABLE" />
+	</class>
+	<class name="android/widget/TextView$OnEditorActionListener" since="3">
+		<method name="onEditorAction(Landroid/widget/TextView;ILandroid/view/KeyEvent;)Z" />
+	</class>
+	<class name="android/widget/TextView$SavedState" since="1">
+		<extends name="android/view/View$BaseSavedState" />
+		<field name="CREATOR" />
+	</class>
+	<class name="android/widget/TimePicker" since="1">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getCurrentHour()Ljava/lang/Integer;" />
+		<method name="getCurrentMinute()Ljava/lang/Integer;" />
+		<method name="is24HourView()Z" />
+		<method name="setCurrentHour(Ljava/lang/Integer;)V" />
+		<method name="setCurrentMinute(Ljava/lang/Integer;)V" />
+		<method name="setIs24HourView(Ljava/lang/Boolean;)V" />
+		<method name="setOnTimeChangedListener(Landroid/widget/TimePicker$OnTimeChangedListener;)V" />
+	</class>
+	<class name="android/widget/TimePicker$OnTimeChangedListener" since="1">
+		<method name="onTimeChanged(Landroid/widget/TimePicker;II)V" />
+	</class>
+	<class name="android/widget/Toast" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="cancel()V" />
+		<method name="getDuration()I" />
+		<method name="getGravity()I" />
+		<method name="getHorizontalMargin()F" />
+		<method name="getVerticalMargin()F" />
+		<method name="getView()Landroid/view/View;" />
+		<method name="getXOffset()I" />
+		<method name="getYOffset()I" />
+		<method name="makeText(Landroid/content/Context;II)Landroid/widget/Toast;" />
+		<method name="makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;" />
+		<method name="setDuration(I)V" />
+		<method name="setGravity(III)V" />
+		<method name="setMargin(FF)V" />
+		<method name="setText(I)V" />
+		<method name="setText(Ljava/lang/CharSequence;)V" />
+		<method name="setView(Landroid/view/View;)V" />
+		<method name="show()V" />
+		<field name="LENGTH_LONG" />
+		<field name="LENGTH_SHORT" />
+	</class>
+	<class name="android/widget/ToggleButton" since="1">
+		<extends name="android/widget/CompoundButton" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getTextOff()Ljava/lang/CharSequence;" />
+		<method name="getTextOn()Ljava/lang/CharSequence;" />
+		<method name="setTextOff(Ljava/lang/CharSequence;)V" />
+		<method name="setTextOn(Ljava/lang/CharSequence;)V" />
+	</class>
+	<class name="android/widget/TwoLineListItem" since="1">
+		<extends name="android/widget/RelativeLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="getText1()Landroid/widget/TextView;" />
+		<method name="getText2()Landroid/widget/TextView;" />
+	</class>
+	<class name="android/widget/VideoView" since="1">
+		<extends name="android/view/SurfaceView" />
+		<implements name="android/widget/MediaController$MediaPlayerControl" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="canPause()Z" since="5" />
+		<method name="canSeekBackward()Z" since="5" />
+		<method name="canSeekForward()Z" since="5" />
+		<method name="getBufferPercentage()I" />
+		<method name="getCurrentPosition()I" />
+		<method name="getDuration()I" />
+		<method name="isPlaying()Z" />
+		<method name="pause()V" />
+		<method name="resolveAdjustedSize(II)I" />
+		<method name="resume()V" since="8" />
+		<method name="seekTo(I)V" />
+		<method name="setMediaController(Landroid/widget/MediaController;)V" />
+		<method name="setOnCompletionListener(Landroid/media/MediaPlayer$OnCompletionListener;)V" />
+		<method name="setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V" />
+		<method name="setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V" />
+		<method name="setVideoPath(Ljava/lang/String;)V" />
+		<method name="setVideoURI(Landroid/net/Uri;)V" />
+		<method name="start()V" />
+		<method name="stopPlayback()V" />
+		<method name="suspend()V" since="8" />
+	</class>
+	<class name="android/widget/ViewAnimator" since="1">
+		<extends name="android/widget/FrameLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getCurrentView()Landroid/view/View;" />
+		<method name="getDisplayedChild()I" />
+		<method name="getInAnimation()Landroid/view/animation/Animation;" />
+		<method name="getOutAnimation()Landroid/view/animation/Animation;" />
+		<method name="setAnimateFirstView(Z)V" />
+		<method name="setDisplayedChild(I)V" />
+		<method name="setInAnimation(Landroid/content/Context;I)V" />
+		<method name="setInAnimation(Landroid/view/animation/Animation;)V" />
+		<method name="setOutAnimation(Landroid/content/Context;I)V" />
+		<method name="setOutAnimation(Landroid/view/animation/Animation;)V" />
+		<method name="showNext()V" />
+		<method name="showPrevious()V" />
+	</class>
+	<class name="android/widget/ViewFlipper" since="1">
+		<extends name="android/widget/ViewAnimator" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="isAutoStart()Z" since="7" />
+		<method name="isFlipping()Z" />
+		<method name="setAutoStart(Z)V" since="7" />
+		<method name="setFlipInterval(I)V" />
+		<method name="startFlipping()V" />
+		<method name="stopFlipping()V" />
+	</class>
+	<class name="android/widget/ViewSwitcher" since="1">
+		<extends name="android/widget/ViewAnimator" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="getNextView()Landroid/view/View;" />
+		<method name="reset()V" />
+		<method name="setFactory(Landroid/widget/ViewSwitcher$ViewFactory;)V" />
+	</class>
+	<class name="android/widget/ViewSwitcher$ViewFactory" since="1">
+		<method name="makeView()Landroid/view/View;" />
+	</class>
+	<class name="android/widget/WrapperListAdapter" since="1">
+		<implements name="android/widget/ListAdapter" />
+		<method name="getWrappedAdapter()Landroid/widget/ListAdapter;" />
+	</class>
+	<class name="android/widget/ZoomButton" since="1">
+		<extends name="android/widget/ImageButton" />
+		<implements name="android/view/View$OnLongClickListener" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V" />
+		<method name="onLongClick(Landroid/view/View;)Z" />
+		<method name="setZoomSpeed(J)V" />
+	</class>
+	<class name="android/widget/ZoomButtonsController" since="4">
+		<extends name="java/lang/Object" />
+		<implements name="android/view/View$OnTouchListener" />
+		<method name="&lt;init>(Landroid/view/View;)V" />
+		<method name="getContainer()Landroid/view/ViewGroup;" />
+		<method name="getZoomControls()Landroid/view/View;" />
+		<method name="isAutoDismissed()Z" />
+		<method name="isVisible()Z" />
+		<method name="onTouch(Landroid/view/View;Landroid/view/MotionEvent;)Z" />
+		<method name="setAutoDismissed(Z)V" />
+		<method name="setFocusable(Z)V" />
+		<method name="setOnZoomListener(Landroid/widget/ZoomButtonsController$OnZoomListener;)V" />
+		<method name="setVisible(Z)V" />
+		<method name="setZoomInEnabled(Z)V" />
+		<method name="setZoomOutEnabled(Z)V" />
+		<method name="setZoomSpeed(J)V" />
+	</class>
+	<class name="android/widget/ZoomButtonsController$OnZoomListener" since="4">
+		<method name="onVisibilityChanged(Z)V" />
+		<method name="onZoom(Z)V" />
+	</class>
+	<class name="android/widget/ZoomControls" since="1">
+		<extends name="android/widget/LinearLayout" />
+		<method name="&lt;init>(Landroid/content/Context;)V" />
+		<method name="&lt;init>(Landroid/content/Context;Landroid/util/AttributeSet;)V" />
+		<method name="hide()V" />
+		<method name="setIsZoomInEnabled(Z)V" />
+		<method name="setIsZoomOutEnabled(Z)V" />
+		<method name="setOnZoomInClickListener(Landroid/view/View$OnClickListener;)V" />
+		<method name="setOnZoomOutClickListener(Landroid/view/View$OnClickListener;)V" />
+		<method name="setZoomSpeed(J)V" />
+		<method name="show()V" />
+	</class>
+	<class name="com/android/internal/util/Predicate" since="1">
+		<method name="apply(LT;)Z" />
+	</class>
+	<class name="com/google/android/maps/MapView$ReticleDrawMode" since="1">
+		<extends name="java/lang/Enum" />
+		<field name="DRAW_RETICLE_NEVER" />
+		<field name="DRAW_RETICLE_OVER" />
+		<field name="DRAW_RETICLE_UNDER" />
+	</class>
+	<class name="dalvik/annotation/TestTarget" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="dalvik/annotation/TestTargetClass" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="dalvik/bytecode/OpcodeInfo" since="11">
+		<extends name="java/lang/Object" />
+		<field name="MAXIMUM_PACKED_VALUE" />
+		<field name="MAXIMUM_VALUE" />
+	</class>
+	<class name="dalvik/bytecode/Opcodes" since="1">
+		<field name="OP_ADD_DOUBLE" />
+		<field name="OP_ADD_DOUBLE_2ADDR" />
+		<field name="OP_ADD_FLOAT" />
+		<field name="OP_ADD_FLOAT_2ADDR" />
+		<field name="OP_ADD_INT" />
+		<field name="OP_ADD_INT_2ADDR" />
+		<field name="OP_ADD_INT_LIT16" />
+		<field name="OP_ADD_INT_LIT8" />
+		<field name="OP_ADD_LONG" />
+		<field name="OP_ADD_LONG_2ADDR" />
+		<field name="OP_AGET" />
+		<field name="OP_AGET_BOOLEAN" />
+		<field name="OP_AGET_BYTE" />
+		<field name="OP_AGET_CHAR" />
+		<field name="OP_AGET_OBJECT" />
+		<field name="OP_AGET_SHORT" />
+		<field name="OP_AGET_WIDE" />
+		<field name="OP_AND_INT" />
+		<field name="OP_AND_INT_2ADDR" />
+		<field name="OP_AND_INT_LIT16" />
+		<field name="OP_AND_INT_LIT8" />
+		<field name="OP_AND_LONG" />
+		<field name="OP_AND_LONG_2ADDR" />
+		<field name="OP_APUT" />
+		<field name="OP_APUT_BOOLEAN" />
+		<field name="OP_APUT_BYTE" />
+		<field name="OP_APUT_CHAR" />
+		<field name="OP_APUT_OBJECT" />
+		<field name="OP_APUT_SHORT" />
+		<field name="OP_APUT_WIDE" />
+		<field name="OP_ARRAY_LENGTH" />
+		<field name="OP_BREAKPOINT" since="8" />
+		<field name="OP_CHECK_CAST" />
+		<field name="OP_CHECK_CAST_JUMBO" since="11" />
+		<field name="OP_CMPG_DOUBLE" />
+		<field name="OP_CMPG_FLOAT" />
+		<field name="OP_CMPL_DOUBLE" />
+		<field name="OP_CMPL_FLOAT" />
+		<field name="OP_CMP_LONG" />
+		<field name="OP_CONST" />
+		<field name="OP_CONST_16" />
+		<field name="OP_CONST_4" />
+		<field name="OP_CONST_CLASS" />
+		<field name="OP_CONST_CLASS_JUMBO" since="11" />
+		<field name="OP_CONST_HIGH16" />
+		<field name="OP_CONST_STRING" />
+		<field name="OP_CONST_STRING_JUMBO" />
+		<field name="OP_CONST_WIDE" />
+		<field name="OP_CONST_WIDE_16" />
+		<field name="OP_CONST_WIDE_32" />
+		<field name="OP_CONST_WIDE_HIGH16" />
+		<field name="OP_DIV_DOUBLE" />
+		<field name="OP_DIV_DOUBLE_2ADDR" />
+		<field name="OP_DIV_FLOAT" />
+		<field name="OP_DIV_FLOAT_2ADDR" />
+		<field name="OP_DIV_INT" />
+		<field name="OP_DIV_INT_2ADDR" />
+		<field name="OP_DIV_INT_LIT16" />
+		<field name="OP_DIV_INT_LIT8" />
+		<field name="OP_DIV_LONG" />
+		<field name="OP_DIV_LONG_2ADDR" />
+		<field name="OP_DOUBLE_TO_FLOAT" />
+		<field name="OP_DOUBLE_TO_INT" />
+		<field name="OP_DOUBLE_TO_LONG" />
+		<field name="OP_EXECUTE_INLINE" />
+		<field name="OP_EXECUTE_INLINE_RANGE" since="8" />
+		<field name="OP_FILLED_NEW_ARRAY" />
+		<field name="OP_FILLED_NEW_ARRAY_JUMBO" since="11" />
+		<field name="OP_FILLED_NEW_ARRAY_RANGE" />
+		<field name="OP_FILL_ARRAY_DATA" />
+		<field name="OP_FLOAT_TO_DOUBLE" />
+		<field name="OP_FLOAT_TO_INT" />
+		<field name="OP_FLOAT_TO_LONG" />
+		<field name="OP_GOTO" />
+		<field name="OP_GOTO_16" />
+		<field name="OP_GOTO_32" />
+		<field name="OP_IF_EQ" />
+		<field name="OP_IF_EQZ" />
+		<field name="OP_IF_GE" />
+		<field name="OP_IF_GEZ" />
+		<field name="OP_IF_GT" />
+		<field name="OP_IF_GTZ" />
+		<field name="OP_IF_LE" />
+		<field name="OP_IF_LEZ" />
+		<field name="OP_IF_LT" />
+		<field name="OP_IF_LTZ" />
+		<field name="OP_IF_NE" />
+		<field name="OP_IF_NEZ" />
+		<field name="OP_IGET" />
+		<field name="OP_IGET_BOOLEAN" />
+		<field name="OP_IGET_BOOLEAN_JUMBO" since="11" />
+		<field name="OP_IGET_BYTE" />
+		<field name="OP_IGET_BYTE_JUMBO" since="11" />
+		<field name="OP_IGET_CHAR" />
+		<field name="OP_IGET_CHAR_JUMBO" since="11" />
+		<field name="OP_IGET_JUMBO" since="11" />
+		<field name="OP_IGET_OBJECT" />
+		<field name="OP_IGET_OBJECT_JUMBO" since="11" />
+		<field name="OP_IGET_OBJECT_QUICK" />
+		<field name="OP_IGET_QUICK" />
+		<field name="OP_IGET_SHORT" />
+		<field name="OP_IGET_SHORT_JUMBO" since="11" />
+		<field name="OP_IGET_WIDE" />
+		<field name="OP_IGET_WIDE_JUMBO" since="11" />
+		<field name="OP_IGET_WIDE_QUICK" />
+		<field name="OP_IGET_WIDE_VOLATILE" since="9" />
+		<field name="OP_INSTANCE_OF" />
+		<field name="OP_INSTANCE_OF_JUMBO" since="11" />
+		<field name="OP_INT_TO_BYTE" />
+		<field name="OP_INT_TO_CHAR" />
+		<field name="OP_INT_TO_DOUBLE" />
+		<field name="OP_INT_TO_FLOAT" />
+		<field name="OP_INT_TO_LONG" />
+		<field name="OP_INT_TO_SHORT" />
+		<field name="OP_INVOKE_DIRECT" />
+		<field name="OP_INVOKE_DIRECT_EMPTY" />
+		<field name="OP_INVOKE_DIRECT_JUMBO" since="11" />
+		<field name="OP_INVOKE_DIRECT_RANGE" />
+		<field name="OP_INVOKE_INTERFACE" />
+		<field name="OP_INVOKE_INTERFACE_JUMBO" since="11" />
+		<field name="OP_INVOKE_INTERFACE_RANGE" />
+		<field name="OP_INVOKE_STATIC" />
+		<field name="OP_INVOKE_STATIC_JUMBO" since="11" />
+		<field name="OP_INVOKE_STATIC_RANGE" />
+		<field name="OP_INVOKE_SUPER" />
+		<field name="OP_INVOKE_SUPER_JUMBO" since="11" />
+		<field name="OP_INVOKE_SUPER_QUICK" />
+		<field name="OP_INVOKE_SUPER_QUICK_RANGE" />
+		<field name="OP_INVOKE_SUPER_RANGE" />
+		<field name="OP_INVOKE_VIRTUAL" />
+		<field name="OP_INVOKE_VIRTUAL_JUMBO" since="11" />
+		<field name="OP_INVOKE_VIRTUAL_QUICK" />
+		<field name="OP_INVOKE_VIRTUAL_QUICK_RANGE" />
+		<field name="OP_INVOKE_VIRTUAL_RANGE" />
+		<field name="OP_IPUT" />
+		<field name="OP_IPUT_BOOLEAN" />
+		<field name="OP_IPUT_BOOLEAN_JUMBO" since="11" />
+		<field name="OP_IPUT_BYTE" />
+		<field name="OP_IPUT_BYTE_JUMBO" since="11" />
+		<field name="OP_IPUT_CHAR" />
+		<field name="OP_IPUT_CHAR_JUMBO" since="11" />
+		<field name="OP_IPUT_JUMBO" since="11" />
+		<field name="OP_IPUT_OBJECT" />
+		<field name="OP_IPUT_OBJECT_JUMBO" since="11" />
+		<field name="OP_IPUT_OBJECT_QUICK" />
+		<field name="OP_IPUT_QUICK" />
+		<field name="OP_IPUT_SHORT" />
+		<field name="OP_IPUT_SHORT_JUMBO" since="11" />
+		<field name="OP_IPUT_WIDE" />
+		<field name="OP_IPUT_WIDE_JUMBO" since="11" />
+		<field name="OP_IPUT_WIDE_QUICK" />
+		<field name="OP_IPUT_WIDE_VOLATILE" since="9" />
+		<field name="OP_LONG_TO_DOUBLE" />
+		<field name="OP_LONG_TO_FLOAT" />
+		<field name="OP_LONG_TO_INT" />
+		<field name="OP_MONITOR_ENTER" />
+		<field name="OP_MONITOR_EXIT" />
+		<field name="OP_MOVE" />
+		<field name="OP_MOVE_16" />
+		<field name="OP_MOVE_EXCEPTION" />
+		<field name="OP_MOVE_FROM16" />
+		<field name="OP_MOVE_OBJECT" />
+		<field name="OP_MOVE_OBJECT_16" />
+		<field name="OP_MOVE_OBJECT_FROM16" />
+		<field name="OP_MOVE_RESULT" />
+		<field name="OP_MOVE_RESULT_OBJECT" />
+		<field name="OP_MOVE_RESULT_WIDE" />
+		<field name="OP_MOVE_WIDE" />
+		<field name="OP_MOVE_WIDE_16" />
+		<field name="OP_MOVE_WIDE_FROM16" />
+		<field name="OP_MUL_DOUBLE" />
+		<field name="OP_MUL_DOUBLE_2ADDR" />
+		<field name="OP_MUL_FLOAT" />
+		<field name="OP_MUL_FLOAT_2ADDR" />
+		<field name="OP_MUL_INT" />
+		<field name="OP_MUL_INT_2ADDR" />
+		<field name="OP_MUL_INT_LIT16" />
+		<field name="OP_MUL_INT_LIT8" />
+		<field name="OP_MUL_LONG" />
+		<field name="OP_MUL_LONG_2ADDR" />
+		<field name="OP_NEG_DOUBLE" />
+		<field name="OP_NEG_FLOAT" />
+		<field name="OP_NEG_INT" />
+		<field name="OP_NEG_LONG" />
+		<field name="OP_NEW_ARRAY" />
+		<field name="OP_NEW_ARRAY_JUMBO" since="11" />
+		<field name="OP_NEW_INSTANCE" />
+		<field name="OP_NEW_INSTANCE_JUMBO" since="11" />
+		<field name="OP_NOP" />
+		<field name="OP_NOT_INT" />
+		<field name="OP_NOT_LONG" />
+		<field name="OP_OR_INT" />
+		<field name="OP_OR_INT_2ADDR" />
+		<field name="OP_OR_INT_LIT16" />
+		<field name="OP_OR_INT_LIT8" />
+		<field name="OP_OR_LONG" />
+		<field name="OP_OR_LONG_2ADDR" />
+		<field name="OP_PACKED_SWITCH" />
+		<field name="OP_REM_DOUBLE" />
+		<field name="OP_REM_DOUBLE_2ADDR" />
+		<field name="OP_REM_FLOAT" />
+		<field name="OP_REM_FLOAT_2ADDR" />
+		<field name="OP_REM_INT" />
+		<field name="OP_REM_INT_2ADDR" />
+		<field name="OP_REM_INT_LIT16" />
+		<field name="OP_REM_INT_LIT8" />
+		<field name="OP_REM_LONG" />
+		<field name="OP_REM_LONG_2ADDR" />
+		<field name="OP_RETURN" />
+		<field name="OP_RETURN_OBJECT" />
+		<field name="OP_RETURN_VOID" />
+		<field name="OP_RETURN_WIDE" />
+		<field name="OP_RSUB_INT" />
+		<field name="OP_RSUB_INT_LIT8" />
+		<field name="OP_SGET" />
+		<field name="OP_SGET_BOOLEAN" />
+		<field name="OP_SGET_BOOLEAN_JUMBO" since="11" />
+		<field name="OP_SGET_BYTE" />
+		<field name="OP_SGET_BYTE_JUMBO" since="11" />
+		<field name="OP_SGET_CHAR" />
+		<field name="OP_SGET_CHAR_JUMBO" since="11" />
+		<field name="OP_SGET_JUMBO" since="11" />
+		<field name="OP_SGET_OBJECT" />
+		<field name="OP_SGET_OBJECT_JUMBO" since="11" />
+		<field name="OP_SGET_SHORT" />
+		<field name="OP_SGET_SHORT_JUMBO" since="11" />
+		<field name="OP_SGET_WIDE" />
+		<field name="OP_SGET_WIDE_JUMBO" since="11" />
+		<field name="OP_SGET_WIDE_VOLATILE" since="9" />
+		<field name="OP_SHL_INT" />
+		<field name="OP_SHL_INT_2ADDR" />
+		<field name="OP_SHL_INT_LIT8" />
+		<field name="OP_SHL_LONG" />
+		<field name="OP_SHL_LONG_2ADDR" />
+		<field name="OP_SHR_INT" />
+		<field name="OP_SHR_INT_2ADDR" />
+		<field name="OP_SHR_INT_LIT8" />
+		<field name="OP_SHR_LONG" />
+		<field name="OP_SHR_LONG_2ADDR" />
+		<field name="OP_SPARSE_SWITCH" />
+		<field name="OP_SPUT" />
+		<field name="OP_SPUT_BOOLEAN" />
+		<field name="OP_SPUT_BOOLEAN_JUMBO" since="11" />
+		<field name="OP_SPUT_BYTE" />
+		<field name="OP_SPUT_BYTE_JUMBO" since="11" />
+		<field name="OP_SPUT_CHAR" />
+		<field name="OP_SPUT_CHAR_JUMBO" since="11" />
+		<field name="OP_SPUT_JUMBO" since="11" />
+		<field name="OP_SPUT_OBJECT" />
+		<field name="OP_SPUT_OBJECT_JUMBO" since="11" />
+		<field name="OP_SPUT_SHORT" />
+		<field name="OP_SPUT_SHORT_JUMBO" since="11" />
+		<field name="OP_SPUT_WIDE" />
+		<field name="OP_SPUT_WIDE_JUMBO" since="11" />
+		<field name="OP_SPUT_WIDE_VOLATILE" since="9" />
+		<field name="OP_SUB_DOUBLE" />
+		<field name="OP_SUB_DOUBLE_2ADDR" />
+		<field name="OP_SUB_FLOAT" />
+		<field name="OP_SUB_FLOAT_2ADDR" />
+		<field name="OP_SUB_INT" />
+		<field name="OP_SUB_INT_2ADDR" />
+		<field name="OP_SUB_LONG" />
+		<field name="OP_SUB_LONG_2ADDR" />
+		<field name="OP_THROW" />
+		<field name="OP_THROW_VERIFICATION_ERROR" since="8" />
+		<field name="OP_UNUSED_3e" />
+		<field name="OP_UNUSED_3f" />
+		<field name="OP_UNUSED_40" />
+		<field name="OP_UNUSED_41" />
+		<field name="OP_UNUSED_42" />
+		<field name="OP_UNUSED_43" />
+		<field name="OP_UNUSED_73" />
+		<field name="OP_UNUSED_79" />
+		<field name="OP_UNUSED_7A" />
+		<field name="OP_UNUSED_E3" />
+		<field name="OP_UNUSED_E4" />
+		<field name="OP_UNUSED_E5" />
+		<field name="OP_UNUSED_E6" />
+		<field name="OP_UNUSED_E7" />
+		<field name="OP_UNUSED_E8" />
+		<field name="OP_UNUSED_E9" />
+		<field name="OP_UNUSED_EA" />
+		<field name="OP_UNUSED_EB" />
+		<field name="OP_UNUSED_EC" />
+		<field name="OP_UNUSED_ED" />
+		<field name="OP_UNUSED_EF" />
+		<field name="OP_UNUSED_F1" />
+		<field name="OP_UNUSED_FC" />
+		<field name="OP_UNUSED_FD" />
+		<field name="OP_UNUSED_FE" />
+		<field name="OP_UNUSED_FF" />
+		<field name="OP_USHR_INT" />
+		<field name="OP_USHR_INT_2ADDR" />
+		<field name="OP_USHR_INT_LIT8" />
+		<field name="OP_USHR_LONG" />
+		<field name="OP_USHR_LONG_2ADDR" />
+		<field name="OP_XOR_INT" />
+		<field name="OP_XOR_INT_2ADDR" />
+		<field name="OP_XOR_INT_LIT16" />
+		<field name="OP_XOR_INT_LIT8" />
+		<field name="OP_XOR_LONG" />
+		<field name="OP_XOR_LONG_2ADDR" />
+	</class>
+	<class name="dalvik/system/AllocationLimitError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="dalvik/system/BaseDexClassLoader" since="14">
+		<extends name="java/lang/ClassLoader" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/io/File;Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
+		<method name="findLibrary(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="dalvik/system/DexClassLoader" since="3">
+		<extends name="java/lang/ClassLoader" />
+		<extends name="dalvik/system/BaseDexClassLoader" since="14" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
+	</class>
+	<class name="dalvik/system/DexFile" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="close()V" />
+		<method name="entries()Ljava/util/Enumeration;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="isDexOptNeeded(Ljava/lang/String;)Z" />
+		<method name="loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/Class;" />
+		<method name="loadDex(Ljava/lang/String;Ljava/lang/String;I)Ldalvik/system/DexFile;" since="3" />
+	</class>
+	<class name="dalvik/system/PathClassLoader" since="1">
+		<extends name="java/lang/ClassLoader" />
+		<extends name="dalvik/system/BaseDexClassLoader" since="14" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)V" />
+		<method name="findLibrary(Ljava/lang/String;)Ljava/lang/String;" since="9" />
+	</class>
+	<class name="dalvik/system/PotentialDeadlockError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="dalvik/system/StaleDexCacheError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="dalvik/system/TemporaryDirectory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="setUpDirectory(Ljava/io/File;)V" />
+		<method name="setUpDirectory(Ljava/lang/String;)V" />
+	</class>
+	<class name="dalvik/system/TouchDex" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="main([Ljava/lang/String;)V" />
+		<method name="start(Ljava/lang/String;)I" />
+	</class>
+	<class name="dalvik/system/VMDebug" since="1">
+		<extends name="java/lang/Object" />
+		<method name="dumpHprofData(Ljava/lang/String;)V" since="3" />
+		<method name="getAllocCount(I)I" />
+		<method name="getInstructionCount([I)V" />
+		<method name="getLoadedClassCount()I" />
+		<method name="isDebuggerConnected()Z" />
+		<method name="isDebuggingEnabled()Z" since="3" />
+		<method name="lastDebuggerActivity()J" />
+		<method name="printLoadedClasses(I)V" />
+		<method name="resetAllocCount(I)V" />
+		<method name="resetInstructionCount()V" />
+		<method name="setAllocationLimit(I)I" />
+		<method name="setGlobalAllocationLimit(I)I" />
+		<method name="startAllocCounting()V" />
+		<method name="startEmulatorTracing()V" />
+		<method name="startInstructionCounting()V" />
+		<method name="startMethodTracing()V" />
+		<method name="startMethodTracing(Ljava/lang/String;II)V" />
+		<method name="stopAllocCounting()V" />
+		<method name="stopEmulatorTracing()V" />
+		<method name="stopInstructionCounting()V" />
+		<method name="stopMethodTracing()V" />
+		<method name="threadCpuTimeNanos()J" />
+		<field name="DEFAULT_METHOD_TRACE_FILE_NAME" />
+		<field name="KIND_ALL_COUNTS" />
+		<field name="KIND_GLOBAL_ALLOCATED_BYTES" />
+		<field name="KIND_GLOBAL_ALLOCATED_OBJECTS" />
+		<field name="KIND_GLOBAL_CLASS_INIT_COUNT" since="8" />
+		<field name="KIND_GLOBAL_CLASS_INIT_TIME" since="8" />
+		<field name="KIND_GLOBAL_EXT_ALLOCATED_BYTES" />
+		<field name="KIND_GLOBAL_EXT_ALLOCATED_OBJECTS" />
+		<field name="KIND_GLOBAL_EXT_FREED_BYTES" />
+		<field name="KIND_GLOBAL_EXT_FREED_OBJECTS" />
+		<field name="KIND_GLOBAL_FREED_BYTES" />
+		<field name="KIND_GLOBAL_FREED_OBJECTS" />
+		<field name="KIND_GLOBAL_GC_INVOCATIONS" />
+		<field name="KIND_THREAD_ALLOCATED_BYTES" />
+		<field name="KIND_THREAD_ALLOCATED_OBJECTS" />
+		<field name="KIND_THREAD_CLASS_INIT_COUNT" since="8" />
+		<field name="KIND_THREAD_CLASS_INIT_TIME" since="8" />
+		<field name="KIND_THREAD_EXT_ALLOCATED_BYTES" />
+		<field name="KIND_THREAD_EXT_ALLOCATED_OBJECTS" />
+		<field name="KIND_THREAD_EXT_FREED_BYTES" />
+		<field name="KIND_THREAD_EXT_FREED_OBJECTS" />
+		<field name="KIND_THREAD_FREED_BYTES" />
+		<field name="KIND_THREAD_FREED_OBJECTS" />
+		<field name="KIND_THREAD_GC_INVOCATIONS" />
+		<field name="TRACE_COUNT_ALLOCS" />
+	</class>
+	<class name="dalvik/system/VMRuntime" since="1">
+		<extends name="java/lang/Object" />
+		<method name="gcSoftReferences()V" />
+		<method name="getExternalBytesAllocated()J" />
+		<method name="getMinimumHeapSize()J" />
+		<method name="getRuntime()Ldalvik/system/VMRuntime;" />
+		<method name="getTargetHeapUtilization()F" />
+		<method name="runFinalizationSync()V" />
+		<method name="setMinimumHeapSize(J)J" />
+		<method name="setTargetHeapUtilization(F)F" />
+	</class>
+	<class name="dalvik/system/VMStack" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getCallingClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getCallingClassLoader2()Ljava/lang/ClassLoader;" />
+		<method name="getClasses(IZ)[Ljava/lang/Class;" />
+		<method name="getThreadStackTrace(Ljava/lang/Thread;)[Ljava/lang/StackTraceElement;" />
+	</class>
+	<class name="dalvik/system/Zygote" since="1">
+		<extends name="java/lang/Object" />
+		<method name="fork()I" />
+		<method name="forkAndSpecialize(II[II[[I)I" since="3" />
+		<method name="forkAndSpecialize(II[IZ[[I)I" />
+		<method name="forkSystemServer(II[II[[I)I" since="3" />
+		<method name="forkSystemServer(II[IZ[[I)I" />
+		<field name="DEBUG_ENABLE_ASSERT" since="3" />
+		<field name="DEBUG_ENABLE_CHECKJNI" since="3" />
+		<field name="DEBUG_ENABLE_DEBUGGER" since="3" />
+		<field name="DEBUG_ENABLE_SAFEMODE" since="8" />
+	</class>
+	<class name="java/awt/font/NumericShaper" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="getContextualShaper(I)Ljava/awt/font/NumericShaper;" />
+		<method name="getContextualShaper(II)Ljava/awt/font/NumericShaper;" />
+		<method name="getRanges()I" />
+		<method name="getShaper(I)Ljava/awt/font/NumericShaper;" />
+		<method name="isContextual()Z" />
+		<method name="shape([CII)V" />
+		<method name="shape([CIII)V" />
+		<field name="ALL_RANGES" />
+		<field name="ARABIC" />
+		<field name="BENGALI" />
+		<field name="DEVANAGARI" />
+		<field name="EASTERN_ARABIC" />
+		<field name="ETHIOPIC" />
+		<field name="EUROPEAN" />
+		<field name="GUJARATI" />
+		<field name="GURMUKHI" />
+		<field name="KANNADA" />
+		<field name="KHMER" />
+		<field name="LAO" />
+		<field name="MALAYALAM" />
+		<field name="MONGOLIAN" />
+		<field name="MYANMAR" />
+		<field name="ORIYA" />
+		<field name="TAMIL" />
+		<field name="TELUGU" />
+		<field name="THAI" />
+		<field name="TIBETAN" />
+	</class>
+	<class name="java/awt/font/TextAttribute" since="1">
+		<extends name="java/text/AttributedCharacterIterator$Attribute" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="BACKGROUND" />
+		<field name="BIDI_EMBEDDING" />
+		<field name="CHAR_REPLACEMENT" />
+		<field name="FAMILY" />
+		<field name="FONT" />
+		<field name="FOREGROUND" />
+		<field name="INPUT_METHOD_HIGHLIGHT" />
+		<field name="INPUT_METHOD_UNDERLINE" />
+		<field name="JUSTIFICATION" />
+		<field name="JUSTIFICATION_FULL" />
+		<field name="JUSTIFICATION_NONE" />
+		<field name="KERNING" since="9" />
+		<field name="KERNING_ON" since="9" />
+		<field name="LIGATURES" since="9" />
+		<field name="LIGATURES_ON" since="9" />
+		<field name="NUMERIC_SHAPING" />
+		<field name="POSTURE" />
+		<field name="POSTURE_OBLIQUE" />
+		<field name="POSTURE_REGULAR" />
+		<field name="RUN_DIRECTION" />
+		<field name="RUN_DIRECTION_LTR" />
+		<field name="RUN_DIRECTION_RTL" />
+		<field name="SIZE" />
+		<field name="STRIKETHROUGH" />
+		<field name="STRIKETHROUGH_ON" />
+		<field name="SUPERSCRIPT" />
+		<field name="SUPERSCRIPT_SUB" />
+		<field name="SUPERSCRIPT_SUPER" />
+		<field name="SWAP_COLORS" />
+		<field name="SWAP_COLORS_ON" />
+		<field name="TRACKING" since="9" />
+		<field name="TRACKING_LOOSE" since="9" />
+		<field name="TRACKING_TIGHT" since="9" />
+		<field name="TRANSFORM" />
+		<field name="UNDERLINE" />
+		<field name="UNDERLINE_LOW_DASHED" />
+		<field name="UNDERLINE_LOW_DOTTED" />
+		<field name="UNDERLINE_LOW_GRAY" />
+		<field name="UNDERLINE_LOW_ONE_PIXEL" />
+		<field name="UNDERLINE_LOW_TWO_PIXEL" />
+		<field name="UNDERLINE_ON" />
+		<field name="WEIGHT" />
+		<field name="WEIGHT_BOLD" />
+		<field name="WEIGHT_DEMIBOLD" />
+		<field name="WEIGHT_DEMILIGHT" />
+		<field name="WEIGHT_EXTRABOLD" />
+		<field name="WEIGHT_EXTRA_LIGHT" />
+		<field name="WEIGHT_HEAVY" />
+		<field name="WEIGHT_LIGHT" />
+		<field name="WEIGHT_MEDIUM" />
+		<field name="WEIGHT_REGULAR" />
+		<field name="WEIGHT_SEMIBOLD" />
+		<field name="WEIGHT_ULTRABOLD" />
+		<field name="WIDTH" />
+		<field name="WIDTH_CONDENSED" />
+		<field name="WIDTH_EXTENDED" />
+		<field name="WIDTH_REGULAR" />
+		<field name="WIDTH_SEMI_CONDENSED" />
+		<field name="WIDTH_SEMI_EXTENDED" />
+	</class>
+	<class name="java/beans/IndexedPropertyChangeEvent" since="3">
+		<extends name="java/beans/PropertyChangeEvent" />
+		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;I)V" />
+		<method name="getIndex()I" />
+	</class>
+	<class name="java/beans/PropertyChangeEvent" since="3">
+		<extends name="java/util/EventObject" />
+		<method name="&lt;init>(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="getNewValue()Ljava/lang/Object;" />
+		<method name="getOldValue()Ljava/lang/Object;" />
+		<method name="getPropagationId()Ljava/lang/Object;" />
+		<method name="getPropertyName()Ljava/lang/String;" />
+		<method name="setPropagationId(Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/beans/PropertyChangeListener" since="3">
+		<implements name="java/util/EventListener" />
+		<method name="propertyChange(Ljava/beans/PropertyChangeEvent;)V" />
+	</class>
+	<class name="java/beans/PropertyChangeListenerProxy" since="3">
+		<extends name="java/util/EventListenerProxy" />
+		<implements name="java/beans/PropertyChangeListener" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V" />
+		<method name="getPropertyName()Ljava/lang/String;" />
+		<method name="propertyChange(Ljava/beans/PropertyChangeEvent;)V" />
+	</class>
+	<class name="java/beans/PropertyChangeSupport" since="3">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/Object;)V" />
+		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" />
+		<method name="addPropertyChangeListener(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V" />
+		<method name="fireIndexedPropertyChange(Ljava/lang/String;III)V" />
+		<method name="fireIndexedPropertyChange(Ljava/lang/String;ILjava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="fireIndexedPropertyChange(Ljava/lang/String;IZZ)V" />
+		<method name="firePropertyChange(Ljava/beans/PropertyChangeEvent;)V" />
+		<method name="firePropertyChange(Ljava/lang/String;II)V" />
+		<method name="firePropertyChange(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="firePropertyChange(Ljava/lang/String;ZZ)V" />
+		<method name="getPropertyChangeListeners()[Ljava/beans/PropertyChangeListener;" />
+		<method name="getPropertyChangeListeners(Ljava/lang/String;)[Ljava/beans/PropertyChangeListener;" />
+		<method name="hasListeners(Ljava/lang/String;)Z" />
+		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" />
+		<method name="removePropertyChangeListener(Ljava/lang/String;Ljava/beans/PropertyChangeListener;)V" />
+	</class>
+	<class name="java/io/BufferedInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
+		<field name="buf" />
+		<field name="count" />
+		<field name="marklimit" />
+		<field name="markpos" />
+		<field name="pos" />
+	</class>
+	<class name="java/io/BufferedOutputStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;I)V" />
+		<field name="buf" />
+		<field name="count" />
+	</class>
+	<class name="java/io/BufferedReader" since="1">
+		<extends name="java/io/Reader" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;I)V" />
+		<method name="close()V" />
+		<method name="read([CII)I" />
+		<method name="readLine()Ljava/lang/String;" />
+	</class>
+	<class name="java/io/BufferedWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>(Ljava/io/Writer;)V" />
+		<method name="&lt;init>(Ljava/io/Writer;I)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="newLine()V" />
+		<method name="write([CII)V" />
+	</class>
+	<class name="java/io/ByteArrayInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>([B)V" />
+		<method name="&lt;init>([BII)V" />
+		<method name="read()I" />
+		<field name="buf" />
+		<field name="count" />
+		<field name="mark" />
+		<field name="pos" />
+	</class>
+	<class name="java/io/ByteArrayOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="reset()V" />
+		<method name="size()I" />
+		<method name="toByteArray()[B" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<method name="toString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="write(I)V" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+		<field name="buf" />
+		<field name="count" />
+	</class>
+	<class name="java/io/CharArrayReader" since="1">
+		<extends name="java/io/Reader" />
+		<method name="&lt;init>([C)V" />
+		<method name="&lt;init>([CII)V" />
+		<method name="close()V" />
+		<method name="read([CII)I" />
+		<field name="buf" />
+		<field name="count" />
+		<field name="markedPos" />
+		<field name="pos" />
+	</class>
+	<class name="java/io/CharArrayWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="reset()V" />
+		<method name="size()I" />
+		<method name="toCharArray()[C" />
+		<method name="write([CII)V" />
+		<method name="writeTo(Ljava/io/Writer;)V" />
+		<field name="buf" />
+		<field name="count" />
+	</class>
+	<class name="java/io/CharConversionException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/Closeable" since="1">
+		<method name="close()V" />
+	</class>
+	<class name="java/io/Console" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Flushable" />
+		<method name="flush()V" />
+		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;" />
+		<method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/Console;" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLine(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="readPassword()[C" />
+		<method name="readPassword(Ljava/lang/String;[Ljava/lang/Object;)[C" />
+		<method name="reader()Ljava/io/Reader;" />
+		<method name="writer()Ljava/io/PrintWriter;" />
+	</class>
+	<class name="java/io/DataInput" since="1">
+		<method name="readBoolean()Z" />
+		<method name="readByte()B" />
+		<method name="readChar()C" />
+		<method name="readDouble()D" />
+		<method name="readFloat()F" />
+		<method name="readFully([B)V" />
+		<method name="readFully([BII)V" />
+		<method name="readInt()I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLong()J" />
+		<method name="readShort()S" />
+		<method name="readUTF()Ljava/lang/String;" />
+		<method name="readUnsignedByte()I" />
+		<method name="readUnsignedShort()I" />
+		<method name="skipBytes(I)I" />
+	</class>
+	<class name="java/io/DataInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<implements name="java/io/DataInput" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="readBoolean()Z" />
+		<method name="readByte()B" />
+		<method name="readChar()C" />
+		<method name="readDouble()D" />
+		<method name="readFloat()F" />
+		<method name="readFully([B)V" />
+		<method name="readFully([BII)V" />
+		<method name="readInt()I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLong()J" />
+		<method name="readShort()S" />
+		<method name="readUTF()Ljava/lang/String;" />
+		<method name="readUTF(Ljava/io/DataInput;)Ljava/lang/String;" />
+		<method name="readUnsignedByte()I" />
+		<method name="readUnsignedShort()I" />
+		<method name="skipBytes(I)I" />
+	</class>
+	<class name="java/io/DataOutput" since="1">
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+		<method name="writeBoolean(Z)V" />
+		<method name="writeByte(I)V" />
+		<method name="writeBytes(Ljava/lang/String;)V" />
+		<method name="writeChar(I)V" />
+		<method name="writeChars(Ljava/lang/String;)V" />
+		<method name="writeDouble(D)V" />
+		<method name="writeFloat(F)V" />
+		<method name="writeInt(I)V" />
+		<method name="writeLong(J)V" />
+		<method name="writeShort(I)V" />
+		<method name="writeUTF(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/DataOutputStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<implements name="java/io/DataOutput" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="size()I" />
+		<method name="writeBoolean(Z)V" />
+		<method name="writeByte(I)V" />
+		<method name="writeBytes(Ljava/lang/String;)V" />
+		<method name="writeChar(I)V" />
+		<method name="writeChars(Ljava/lang/String;)V" />
+		<method name="writeDouble(D)V" />
+		<method name="writeFloat(F)V" />
+		<method name="writeInt(I)V" />
+		<method name="writeLong(J)V" />
+		<method name="writeShort(I)V" />
+		<method name="writeUTF(Ljava/lang/String;)V" />
+		<field name="written" />
+	</class>
+	<class name="java/io/EOFException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/Externalizable" since="1">
+		<implements name="java/io/Serializable" />
+		<method name="readExternal(Ljava/io/ObjectInput;)V" />
+		<method name="writeExternal(Ljava/io/ObjectOutput;)V" />
+	</class>
+	<class name="java/io/File" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="canExecute()Z" since="9" />
+		<method name="canRead()Z" />
+		<method name="canWrite()Z" />
+		<method name="compareTo(Ljava/io/File;)I" />
+		<method name="createNewFile()Z" />
+		<method name="createTempFile(Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;" />
+		<method name="createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;" />
+		<method name="delete()Z" />
+		<method name="deleteOnExit()V" />
+		<method name="exists()Z" />
+		<method name="getAbsoluteFile()Ljava/io/File;" />
+		<method name="getAbsolutePath()Ljava/lang/String;" />
+		<method name="getCanonicalFile()Ljava/io/File;" />
+		<method name="getCanonicalPath()Ljava/lang/String;" />
+		<method name="getFreeSpace()J" since="9" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParent()Ljava/lang/String;" />
+		<method name="getParentFile()Ljava/io/File;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getTotalSpace()J" since="9" />
+		<method name="getUsableSpace()J" since="9" />
+		<method name="isAbsolute()Z" />
+		<method name="isDirectory()Z" />
+		<method name="isFile()Z" />
+		<method name="isHidden()Z" />
+		<method name="lastModified()J" />
+		<method name="length()J" />
+		<method name="list()[Ljava/lang/String;" />
+		<method name="list(Ljava/io/FilenameFilter;)[Ljava/lang/String;" />
+		<method name="listFiles()[Ljava/io/File;" />
+		<method name="listFiles(Ljava/io/FileFilter;)[Ljava/io/File;" />
+		<method name="listFiles(Ljava/io/FilenameFilter;)[Ljava/io/File;" />
+		<method name="listRoots()[Ljava/io/File;" />
+		<method name="mkdir()Z" />
+		<method name="mkdirs()Z" />
+		<method name="renameTo(Ljava/io/File;)Z" />
+		<method name="setExecutable(Z)Z" since="9" />
+		<method name="setExecutable(ZZ)Z" since="9" />
+		<method name="setLastModified(J)Z" />
+		<method name="setReadOnly()Z" />
+		<method name="setReadable(Z)Z" since="9" />
+		<method name="setReadable(ZZ)Z" since="9" />
+		<method name="setWritable(Z)Z" since="9" />
+		<method name="setWritable(ZZ)Z" since="9" />
+		<method name="toURI()Ljava/net/URI;" />
+		<method name="toURL()Ljava/net/URL;" />
+		<field name="pathSeparator" />
+		<field name="pathSeparatorChar" />
+		<field name="separator" />
+		<field name="separatorChar" />
+	</class>
+	<class name="java/io/FileDescriptor" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="sync()V" />
+		<method name="valid()Z" />
+		<field name="err" />
+		<field name="in" />
+		<field name="out" />
+	</class>
+	<class name="java/io/FileFilter" since="1">
+		<method name="accept(Ljava/io/File;)Z" />
+	</class>
+	<class name="java/io/FileInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<implements name="java/io/Closeable" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getChannel()Ljava/nio/channels/FileChannel;" />
+		<method name="getFD()Ljava/io/FileDescriptor;" />
+		<method name="read()I" />
+	</class>
+	<class name="java/io/FileNotFoundException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/FileOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<implements name="java/io/Closeable" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Z)V" />
+		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Z)V" />
+		<method name="getChannel()Ljava/nio/channels/FileChannel;" />
+		<method name="getFD()Ljava/io/FileDescriptor;" />
+		<method name="write(I)V" />
+	</class>
+	<class name="java/io/FilePermission" since="1">
+		<extends name="java/security/Permission" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/io/FileReader" since="1">
+		<extends name="java/io/InputStreamReader" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/FileWriter" since="1">
+		<extends name="java/io/OutputStreamWriter" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Z)V" />
+		<method name="&lt;init>(Ljava/io/FileDescriptor;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Z)V" />
+	</class>
+	<class name="java/io/FilenameFilter" since="1">
+		<method name="accept(Ljava/io/File;Ljava/lang/String;)Z" />
+	</class>
+	<class name="java/io/FilterInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="read()I" />
+		<field name="in" />
+	</class>
+	<class name="java/io/FilterOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="write(I)V" />
+		<field name="out" />
+	</class>
+	<class name="java/io/FilterReader" since="1">
+		<extends name="java/io/Reader" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="close()V" />
+		<method name="read([CII)I" />
+		<field name="in" />
+	</class>
+	<class name="java/io/FilterWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>(Ljava/io/Writer;)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="write([CII)V" />
+		<field name="out" />
+	</class>
+	<class name="java/io/Flushable" since="1">
+		<method name="flush()V" />
+	</class>
+	<class name="java/io/IOError" since="9">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/io/IOException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
+	</class>
+	<class name="java/io/InputStream" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<method name="&lt;init>()V" />
+		<method name="available()I" />
+		<method name="close()V" />
+		<method name="mark(I)V" />
+		<method name="markSupported()Z" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="reset()V" />
+		<method name="skip(J)J" />
+	</class>
+	<class name="java/io/InputStreamReader" since="1">
+		<extends name="java/io/Reader" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/nio/charset/CharsetDecoder;)V" />
+		<method name="close()V" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="read([CII)I" />
+	</class>
+	<class name="java/io/InterruptedIOException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="bytesTransferred" />
+	</class>
+	<class name="java/io/InvalidClassException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="classname" />
+	</class>
+	<class name="java/io/InvalidObjectException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/LineNumberInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="getLineNumber()I" />
+		<method name="setLineNumber(I)V" />
+	</class>
+	<class name="java/io/LineNumberReader" since="1">
+		<extends name="java/io/BufferedReader" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;I)V" />
+		<method name="getLineNumber()I" />
+		<method name="setLineNumber(I)V" />
+	</class>
+	<class name="java/io/NotActiveException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/NotSerializableException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/ObjectInput" since="1">
+		<implements name="java/io/DataInput" />
+		<method name="available()I" />
+		<method name="close()V" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="readObject()Ljava/lang/Object;" />
+		<method name="skip(J)J" />
+	</class>
+	<class name="java/io/ObjectInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<implements name="java/io/ObjectInput" />
+		<implements name="java/io/ObjectStreamConstants" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="defaultReadObject()V" />
+		<method name="enableResolveObject(Z)Z" />
+		<method name="read()I" />
+		<method name="readBoolean()Z" />
+		<method name="readByte()B" />
+		<method name="readChar()C" />
+		<method name="readClassDescriptor()Ljava/io/ObjectStreamClass;" />
+		<method name="readDouble()D" />
+		<method name="readFields()Ljava/io/ObjectInputStream$GetField;" />
+		<method name="readFloat()F" />
+		<method name="readFully([B)V" />
+		<method name="readFully([BII)V" />
+		<method name="readInt()I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLong()J" />
+		<method name="readObject()Ljava/lang/Object;" />
+		<method name="readObjectOverride()Ljava/lang/Object;" />
+		<method name="readShort()S" />
+		<method name="readStreamHeader()V" />
+		<method name="readUTF()Ljava/lang/String;" />
+		<method name="readUnshared()Ljava/lang/Object;" />
+		<method name="readUnsignedByte()I" />
+		<method name="readUnsignedShort()I" />
+		<method name="registerValidation(Ljava/io/ObjectInputValidation;I)V" />
+		<method name="resolveClass(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;" />
+		<method name="resolveObject(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="resolveProxyClass([Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="skipBytes(I)I" />
+	</class>
+	<class name="java/io/ObjectInputStream$GetField" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="defaulted(Ljava/lang/String;)Z" />
+		<method name="get(Ljava/lang/String;B)B" />
+		<method name="get(Ljava/lang/String;C)C" />
+		<method name="get(Ljava/lang/String;D)D" />
+		<method name="get(Ljava/lang/String;F)F" />
+		<method name="get(Ljava/lang/String;I)I" />
+		<method name="get(Ljava/lang/String;J)J" />
+		<method name="get(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="get(Ljava/lang/String;S)S" />
+		<method name="get(Ljava/lang/String;Z)Z" />
+		<method name="getObjectStreamClass()Ljava/io/ObjectStreamClass;" />
+	</class>
+	<class name="java/io/ObjectInputValidation" since="1">
+		<method name="validateObject()V" />
+	</class>
+	<class name="java/io/ObjectOutput" since="1">
+		<implements name="java/io/DataOutput" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+		<method name="writeObject(Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/io/ObjectOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<implements name="java/io/ObjectOutput" />
+		<implements name="java/io/ObjectStreamConstants" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="annotateClass(Ljava/lang/Class;)V" />
+		<method name="annotateProxyClass(Ljava/lang/Class;)V" />
+		<method name="defaultWriteObject()V" />
+		<method name="drain()V" />
+		<method name="enableReplaceObject(Z)Z" />
+		<method name="putFields()Ljava/io/ObjectOutputStream$PutField;" />
+		<method name="replaceObject(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="reset()V" />
+		<method name="useProtocolVersion(I)V" />
+		<method name="write(I)V" />
+		<method name="writeBoolean(Z)V" />
+		<method name="writeByte(I)V" />
+		<method name="writeBytes(Ljava/lang/String;)V" />
+		<method name="writeChar(I)V" />
+		<method name="writeChars(Ljava/lang/String;)V" />
+		<method name="writeClassDescriptor(Ljava/io/ObjectStreamClass;)V" />
+		<method name="writeDouble(D)V" />
+		<method name="writeFields()V" />
+		<method name="writeFloat(F)V" />
+		<method name="writeInt(I)V" />
+		<method name="writeLong(J)V" />
+		<method name="writeObject(Ljava/lang/Object;)V" />
+		<method name="writeObjectOverride(Ljava/lang/Object;)V" />
+		<method name="writeShort(I)V" />
+		<method name="writeStreamHeader()V" />
+		<method name="writeUTF(Ljava/lang/String;)V" />
+		<method name="writeUnshared(Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/io/ObjectOutputStream$PutField" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="put(Ljava/lang/String;B)V" />
+		<method name="put(Ljava/lang/String;C)V" />
+		<method name="put(Ljava/lang/String;D)V" />
+		<method name="put(Ljava/lang/String;F)V" />
+		<method name="put(Ljava/lang/String;I)V" />
+		<method name="put(Ljava/lang/String;J)V" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="put(Ljava/lang/String;S)V" />
+		<method name="put(Ljava/lang/String;Z)V" />
+		<method name="write(Ljava/io/ObjectOutput;)V" />
+	</class>
+	<class name="java/io/ObjectStreamClass" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="forClass()Ljava/lang/Class;" />
+		<method name="getField(Ljava/lang/String;)Ljava/io/ObjectStreamField;" />
+		<method name="getFields()[Ljava/io/ObjectStreamField;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getSerialVersionUID()J" />
+		<method name="lookup(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;" />
+		<method name="lookupAny(Ljava/lang/Class;)Ljava/io/ObjectStreamClass;" since="9" />
+		<field name="NO_FIELDS" />
+	</class>
+	<class name="java/io/ObjectStreamConstants" since="1">
+		<field name="PROTOCOL_VERSION_1" />
+		<field name="PROTOCOL_VERSION_2" />
+		<field name="SC_BLOCK_DATA" />
+		<field name="SC_ENUM" />
+		<field name="SC_EXTERNALIZABLE" />
+		<field name="SC_SERIALIZABLE" />
+		<field name="SC_WRITE_METHOD" />
+		<field name="STREAM_MAGIC" />
+		<field name="STREAM_VERSION" />
+		<field name="SUBCLASS_IMPLEMENTATION_PERMISSION" />
+		<field name="SUBSTITUTION_PERMISSION" />
+		<field name="TC_ARRAY" />
+		<field name="TC_BASE" />
+		<field name="TC_BLOCKDATA" />
+		<field name="TC_BLOCKDATALONG" />
+		<field name="TC_CLASS" />
+		<field name="TC_CLASSDESC" />
+		<field name="TC_ENDBLOCKDATA" />
+		<field name="TC_ENUM" />
+		<field name="TC_EXCEPTION" />
+		<field name="TC_LONGSTRING" />
+		<field name="TC_MAX" />
+		<field name="TC_NULL" />
+		<field name="TC_OBJECT" />
+		<field name="TC_PROXYCLASSDESC" />
+		<field name="TC_REFERENCE" />
+		<field name="TC_RESET" />
+		<field name="TC_STRING" />
+		<field name="baseWireHandle" />
+	</class>
+	<class name="java/io/ObjectStreamException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/ObjectStreamField" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Class;Z)V" />
+		<method name="compareTo(Ljava/lang/Object;)I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getOffset()I" />
+		<method name="getType()Ljava/lang/Class;" />
+		<method name="getTypeCode()C" />
+		<method name="getTypeString()Ljava/lang/String;" />
+		<method name="isPrimitive()Z" />
+		<method name="isUnshared()Z" />
+		<method name="setOffset(I)V" />
+	</class>
+	<class name="java/io/OptionalDataException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<field name="eof" />
+		<field name="length" />
+	</class>
+	<class name="java/io/OutputStream" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<implements name="java/io/Flushable" />
+		<method name="&lt;init>()V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+	</class>
+	<class name="java/io/OutputStreamWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/nio/charset/CharsetEncoder;)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="write([CII)V" />
+	</class>
+	<class name="java/io/PipedInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" since="9" />
+		<method name="&lt;init>(Ljava/io/PipedOutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/PipedOutputStream;I)V" since="9" />
+		<method name="connect(Ljava/io/PipedOutputStream;)V" />
+		<method name="read()I" />
+		<method name="receive(I)V" />
+		<field name="PIPE_SIZE" />
+		<field name="buffer" />
+		<field name="in" />
+		<field name="out" />
+	</class>
+	<class name="java/io/PipedOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/PipedInputStream;)V" />
+		<method name="connect(Ljava/io/PipedInputStream;)V" />
+		<method name="write(I)V" />
+	</class>
+	<class name="java/io/PipedReader" since="1">
+		<extends name="java/io/Reader" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" since="9" />
+		<method name="&lt;init>(Ljava/io/PipedWriter;)V" />
+		<method name="&lt;init>(Ljava/io/PipedWriter;I)V" since="9" />
+		<method name="close()V" />
+		<method name="connect(Ljava/io/PipedWriter;)V" />
+		<method name="read([CII)I" />
+	</class>
+	<class name="java/io/PipedWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/PipedReader;)V" />
+		<method name="close()V" />
+		<method name="connect(Ljava/io/PipedReader;)V" />
+		<method name="flush()V" />
+		<method name="write([CII)V" />
+	</class>
+	<class name="java/io/PrintStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<implements name="java/lang/Appendable" />
+		<implements name="java/io/Closeable" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Z)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;ZLjava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="append(C)Ljava/io/PrintStream;" />
+		<method name="append(Ljava/lang/CharSequence;)Ljava/io/PrintStream;" />
+		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/PrintStream;" />
+		<method name="checkError()Z" />
+		<method name="clearError()V" since="9" />
+		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
+		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
+		<method name="print(C)V" />
+		<method name="print(D)V" />
+		<method name="print(F)V" />
+		<method name="print(I)V" />
+		<method name="print(J)V" />
+		<method name="print(Ljava/lang/Object;)V" />
+		<method name="print(Ljava/lang/String;)V" />
+		<method name="print(Z)V" />
+		<method name="print([C)V" />
+		<method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
+		<method name="printf(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;" />
+		<method name="println()V" />
+		<method name="println(C)V" />
+		<method name="println(D)V" />
+		<method name="println(F)V" />
+		<method name="println(I)V" />
+		<method name="println(J)V" />
+		<method name="println(Ljava/lang/Object;)V" />
+		<method name="println(Ljava/lang/String;)V" />
+		<method name="println(Z)V" />
+		<method name="println([C)V" />
+		<method name="setError()V" />
+	</class>
+	<class name="java/io/PrintWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Z)V" />
+		<method name="&lt;init>(Ljava/io/Writer;)V" />
+		<method name="&lt;init>(Ljava/io/Writer;Z)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="checkError()Z" />
+		<method name="clearError()V" since="9" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
+		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
+		<method name="print(C)V" />
+		<method name="print(D)V" />
+		<method name="print(F)V" />
+		<method name="print(I)V" />
+		<method name="print(J)V" />
+		<method name="print(Ljava/lang/Object;)V" />
+		<method name="print(Ljava/lang/String;)V" />
+		<method name="print(Z)V" />
+		<method name="print([C)V" />
+		<method name="printf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
+		<method name="printf(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintWriter;" />
+		<method name="println()V" />
+		<method name="println(C)V" />
+		<method name="println(D)V" />
+		<method name="println(F)V" />
+		<method name="println(I)V" />
+		<method name="println(J)V" />
+		<method name="println(Ljava/lang/Object;)V" />
+		<method name="println(Ljava/lang/String;)V" />
+		<method name="println(Z)V" />
+		<method name="println([C)V" />
+		<method name="setError()V" />
+		<method name="write([CII)V" />
+		<field name="out" />
+	</class>
+	<class name="java/io/PushbackInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
+		<method name="unread(I)V" />
+		<method name="unread([B)V" />
+		<method name="unread([BII)V" />
+		<field name="buf" />
+		<field name="pos" />
+	</class>
+	<class name="java/io/PushbackReader" since="1">
+		<extends name="java/io/FilterReader" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;I)V" />
+		<method name="unread(I)V" />
+		<method name="unread([C)V" />
+		<method name="unread([CII)V" />
+	</class>
+	<class name="java/io/RandomAccessFile" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<implements name="java/io/DataInput" />
+		<implements name="java/io/DataOutput" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="close()V" />
+		<method name="getChannel()Ljava/nio/channels/FileChannel;" />
+		<method name="getFD()Ljava/io/FileDescriptor;" />
+		<method name="getFilePointer()J" />
+		<method name="length()J" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="readBoolean()Z" />
+		<method name="readByte()B" />
+		<method name="readChar()C" />
+		<method name="readDouble()D" />
+		<method name="readFloat()F" />
+		<method name="readFully([B)V" />
+		<method name="readFully([BII)V" />
+		<method name="readInt()I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLong()J" />
+		<method name="readShort()S" />
+		<method name="readUTF()Ljava/lang/String;" />
+		<method name="readUnsignedByte()I" />
+		<method name="readUnsignedShort()I" />
+		<method name="seek(J)V" />
+		<method name="setLength(J)V" />
+		<method name="skipBytes(I)I" />
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+		<method name="writeBoolean(Z)V" />
+		<method name="writeByte(I)V" />
+		<method name="writeBytes(Ljava/lang/String;)V" />
+		<method name="writeChar(I)V" />
+		<method name="writeChars(Ljava/lang/String;)V" />
+		<method name="writeDouble(D)V" />
+		<method name="writeFloat(F)V" />
+		<method name="writeInt(I)V" />
+		<method name="writeLong(J)V" />
+		<method name="writeShort(I)V" />
+		<method name="writeUTF(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/Reader" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<implements name="java/lang/Readable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Object;)V" />
+		<method name="close()V" />
+		<method name="mark(I)V" />
+		<method name="markSupported()Z" />
+		<method name="read()I" />
+		<method name="read(Ljava/nio/CharBuffer;)I" />
+		<method name="read([C)I" />
+		<method name="read([CII)I" />
+		<method name="ready()Z" />
+		<method name="reset()V" />
+		<method name="skip(J)J" />
+		<field name="lock" />
+	</class>
+	<class name="java/io/SequenceInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/util/Enumeration;)V" />
+		<method name="read()I" />
+	</class>
+	<class name="java/io/Serializable" since="1">
+	</class>
+	<class name="java/io/SerializablePermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/StreamCorruptedException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/StreamTokenizer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="commentChar(I)V" />
+		<method name="eolIsSignificant(Z)V" />
+		<method name="lineno()I" />
+		<method name="lowerCaseMode(Z)V" />
+		<method name="nextToken()I" />
+		<method name="ordinaryChar(I)V" />
+		<method name="ordinaryChars(II)V" />
+		<method name="parseNumbers()V" />
+		<method name="pushBack()V" />
+		<method name="quoteChar(I)V" />
+		<method name="resetSyntax()V" />
+		<method name="slashSlashComments(Z)V" />
+		<method name="slashStarComments(Z)V" />
+		<method name="whitespaceChars(II)V" />
+		<method name="wordChars(II)V" />
+		<field name="TT_EOF" />
+		<field name="TT_EOL" />
+		<field name="TT_NUMBER" />
+		<field name="TT_WORD" />
+		<field name="nval" />
+		<field name="sval" />
+		<field name="ttype" />
+	</class>
+	<class name="java/io/StringBufferInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="read()I" />
+		<field name="buffer" />
+		<field name="count" />
+		<field name="pos" />
+	</class>
+	<class name="java/io/StringReader" since="1">
+		<extends name="java/io/Reader" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="close()V" />
+		<method name="read([CII)I" />
+	</class>
+	<class name="java/io/StringWriter" since="1">
+		<extends name="java/io/Writer" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="getBuffer()Ljava/lang/StringBuffer;" />
+		<method name="write([CII)V" />
+	</class>
+	<class name="java/io/SyncFailedException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/UTFDataFormatException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/UnsupportedEncodingException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/io/WriteAbortedException" since="1">
+		<extends name="java/io/ObjectStreamException" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Exception;)V" />
+		<field name="detail" />
+	</class>
+	<class name="java/io/Writer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Appendable" />
+		<implements name="java/io/Closeable" />
+		<implements name="java/io/Flushable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Object;)V" />
+		<method name="append(C)Ljava/io/Writer;" />
+		<method name="append(Ljava/lang/CharSequence;)Ljava/io/Writer;" />
+		<method name="append(Ljava/lang/CharSequence;II)Ljava/io/Writer;" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="write(I)V" />
+		<method name="write(Ljava/lang/String;)V" />
+		<method name="write(Ljava/lang/String;II)V" />
+		<method name="write([C)V" />
+		<method name="write([CII)V" />
+		<field name="lock" />
+	</class>
+	<class name="java/lang/AbstractMethodError" since="1">
+		<extends name="java/lang/IncompatibleClassChangeError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/AbstractStringBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="capacity()I" />
+		<method name="charAt(I)C" />
+		<method name="codePointAt(I)I" />
+		<method name="codePointBefore(I)I" />
+		<method name="codePointCount(II)I" />
+		<method name="ensureCapacity(I)V" />
+		<method name="getChars(II[CI)V" />
+		<method name="indexOf(Ljava/lang/String;)I" />
+		<method name="indexOf(Ljava/lang/String;I)I" />
+		<method name="lastIndexOf(Ljava/lang/String;)I" />
+		<method name="lastIndexOf(Ljava/lang/String;I)I" />
+		<method name="length()I" />
+		<method name="offsetByCodePoints(II)I" />
+		<method name="setCharAt(IC)V" />
+		<method name="setLength(I)V" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="substring(I)Ljava/lang/String;" />
+		<method name="substring(II)Ljava/lang/String;" />
+		<method name="trimToSize()V" />
+	</class>
+	<class name="java/lang/Appendable" since="1">
+		<method name="append(C)Ljava/lang/Appendable;" />
+		<method name="append(Ljava/lang/CharSequence;)Ljava/lang/Appendable;" />
+		<method name="append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable;" />
+	</class>
+	<class name="java/lang/ArithmeticException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/ArrayIndexOutOfBoundsException" since="1">
+		<extends name="java/lang/IndexOutOfBoundsException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/ArrayStoreException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/AssertionError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(C)V" />
+		<method name="&lt;init>(D)V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(J)V" />
+		<method name="&lt;init>(Ljava/lang/Object;)V" />
+		<method name="&lt;init>(Z)V" />
+	</class>
+	<class name="java/lang/Boolean" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="booleanValue()Z" />
+		<method name="compareTo(Ljava/lang/Boolean;)I" />
+		<method name="getBoolean(Ljava/lang/String;)Z" />
+		<method name="parseBoolean(Ljava/lang/String;)Z" />
+		<method name="toString(Z)Ljava/lang/String;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Boolean;" />
+		<method name="valueOf(Z)Ljava/lang/Boolean;" />
+		<field name="FALSE" />
+		<field name="TRUE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/Byte" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(B)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="compareTo(Ljava/lang/Byte;)I" />
+		<method name="decode(Ljava/lang/String;)Ljava/lang/Byte;" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="intValue()I" />
+		<method name="longValue()J" />
+		<method name="parseByte(Ljava/lang/String;)B" />
+		<method name="parseByte(Ljava/lang/String;I)B" />
+		<method name="toString(B)Ljava/lang/String;" />
+		<method name="valueOf(B)Ljava/lang/Byte;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Byte;" />
+		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Byte;" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_VALUE" />
+		<field name="SIZE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/CharSequence" since="1">
+		<method name="charAt(I)C" />
+		<method name="length()I" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/Character" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(C)V" />
+		<method name="charCount(I)I" />
+		<method name="charValue()C" />
+		<method name="codePointAt(Ljava/lang/CharSequence;I)I" />
+		<method name="codePointAt([CI)I" />
+		<method name="codePointAt([CII)I" />
+		<method name="codePointBefore(Ljava/lang/CharSequence;I)I" />
+		<method name="codePointBefore([CI)I" />
+		<method name="codePointBefore([CII)I" />
+		<method name="codePointCount(Ljava/lang/CharSequence;II)I" />
+		<method name="codePointCount([CII)I" />
+		<method name="compareTo(Ljava/lang/Character;)I" />
+		<method name="digit(CI)I" />
+		<method name="digit(II)I" />
+		<method name="forDigit(II)C" />
+		<method name="getDirectionality(C)B" />
+		<method name="getDirectionality(I)B" />
+		<method name="getNumericValue(C)I" />
+		<method name="getNumericValue(I)I" />
+		<method name="getType(C)I" />
+		<method name="getType(I)I" />
+		<method name="isDefined(C)Z" />
+		<method name="isDefined(I)Z" />
+		<method name="isDigit(C)Z" />
+		<method name="isDigit(I)Z" />
+		<method name="isHighSurrogate(C)Z" />
+		<method name="isISOControl(C)Z" />
+		<method name="isISOControl(I)Z" />
+		<method name="isIdentifierIgnorable(C)Z" />
+		<method name="isIdentifierIgnorable(I)Z" />
+		<method name="isJavaIdentifierPart(C)Z" />
+		<method name="isJavaIdentifierPart(I)Z" />
+		<method name="isJavaIdentifierStart(C)Z" />
+		<method name="isJavaIdentifierStart(I)Z" />
+		<method name="isJavaLetter(C)Z" />
+		<method name="isJavaLetterOrDigit(C)Z" />
+		<method name="isLetter(C)Z" />
+		<method name="isLetter(I)Z" />
+		<method name="isLetterOrDigit(C)Z" />
+		<method name="isLetterOrDigit(I)Z" />
+		<method name="isLowSurrogate(C)Z" />
+		<method name="isLowerCase(C)Z" />
+		<method name="isLowerCase(I)Z" />
+		<method name="isMirrored(C)Z" />
+		<method name="isMirrored(I)Z" />
+		<method name="isSpace(C)Z" />
+		<method name="isSpaceChar(C)Z" />
+		<method name="isSpaceChar(I)Z" />
+		<method name="isSupplementaryCodePoint(I)Z" />
+		<method name="isSurrogatePair(CC)Z" />
+		<method name="isTitleCase(C)Z" />
+		<method name="isTitleCase(I)Z" />
+		<method name="isUnicodeIdentifierPart(C)Z" />
+		<method name="isUnicodeIdentifierPart(I)Z" />
+		<method name="isUnicodeIdentifierStart(C)Z" />
+		<method name="isUnicodeIdentifierStart(I)Z" />
+		<method name="isUpperCase(C)Z" />
+		<method name="isUpperCase(I)Z" />
+		<method name="isValidCodePoint(I)Z" />
+		<method name="isWhitespace(C)Z" />
+		<method name="isWhitespace(I)Z" />
+		<method name="offsetByCodePoints(Ljava/lang/CharSequence;II)I" />
+		<method name="offsetByCodePoints([CIIII)I" />
+		<method name="reverseBytes(C)C" />
+		<method name="toChars(I)[C" />
+		<method name="toChars(I[CI)I" />
+		<method name="toCodePoint(CC)I" />
+		<method name="toLowerCase(C)C" />
+		<method name="toLowerCase(I)I" />
+		<method name="toString(C)Ljava/lang/String;" />
+		<method name="toTitleCase(C)C" />
+		<method name="toTitleCase(I)I" />
+		<method name="toUpperCase(C)C" />
+		<method name="toUpperCase(I)I" />
+		<method name="valueOf(C)Ljava/lang/Character;" />
+		<field name="COMBINING_SPACING_MARK" />
+		<field name="CONNECTOR_PUNCTUATION" />
+		<field name="CONTROL" />
+		<field name="CURRENCY_SYMBOL" />
+		<field name="DASH_PUNCTUATION" />
+		<field name="DECIMAL_DIGIT_NUMBER" />
+		<field name="DIRECTIONALITY_ARABIC_NUMBER" />
+		<field name="DIRECTIONALITY_BOUNDARY_NEUTRAL" />
+		<field name="DIRECTIONALITY_COMMON_NUMBER_SEPARATOR" />
+		<field name="DIRECTIONALITY_EUROPEAN_NUMBER" />
+		<field name="DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR" />
+		<field name="DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR" />
+		<field name="DIRECTIONALITY_LEFT_TO_RIGHT" />
+		<field name="DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING" />
+		<field name="DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE" />
+		<field name="DIRECTIONALITY_NONSPACING_MARK" />
+		<field name="DIRECTIONALITY_OTHER_NEUTRALS" />
+		<field name="DIRECTIONALITY_PARAGRAPH_SEPARATOR" />
+		<field name="DIRECTIONALITY_POP_DIRECTIONAL_FORMAT" />
+		<field name="DIRECTIONALITY_RIGHT_TO_LEFT" />
+		<field name="DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC" />
+		<field name="DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING" />
+		<field name="DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE" />
+		<field name="DIRECTIONALITY_SEGMENT_SEPARATOR" />
+		<field name="DIRECTIONALITY_UNDEFINED" />
+		<field name="DIRECTIONALITY_WHITESPACE" />
+		<field name="ENCLOSING_MARK" />
+		<field name="END_PUNCTUATION" />
+		<field name="FINAL_QUOTE_PUNCTUATION" />
+		<field name="FORMAT" />
+		<field name="INITIAL_QUOTE_PUNCTUATION" />
+		<field name="LETTER_NUMBER" />
+		<field name="LINE_SEPARATOR" />
+		<field name="LOWERCASE_LETTER" />
+		<field name="MATH_SYMBOL" />
+		<field name="MAX_CODE_POINT" />
+		<field name="MAX_HIGH_SURROGATE" />
+		<field name="MAX_LOW_SURROGATE" />
+		<field name="MAX_RADIX" />
+		<field name="MAX_SURROGATE" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_CODE_POINT" />
+		<field name="MIN_HIGH_SURROGATE" />
+		<field name="MIN_LOW_SURROGATE" />
+		<field name="MIN_RADIX" />
+		<field name="MIN_SUPPLEMENTARY_CODE_POINT" />
+		<field name="MIN_SURROGATE" />
+		<field name="MIN_VALUE" />
+		<field name="MODIFIER_LETTER" />
+		<field name="MODIFIER_SYMBOL" />
+		<field name="NON_SPACING_MARK" />
+		<field name="OTHER_LETTER" />
+		<field name="OTHER_NUMBER" />
+		<field name="OTHER_PUNCTUATION" />
+		<field name="OTHER_SYMBOL" />
+		<field name="PARAGRAPH_SEPARATOR" />
+		<field name="PRIVATE_USE" />
+		<field name="SIZE" />
+		<field name="SPACE_SEPARATOR" />
+		<field name="START_PUNCTUATION" />
+		<field name="SURROGATE" />
+		<field name="TITLECASE_LETTER" />
+		<field name="TYPE" />
+		<field name="UNASSIGNED" />
+		<field name="UPPERCASE_LETTER" />
+	</class>
+	<class name="java/lang/Character$Subset" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="hashCode()I" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/Character$UnicodeBlock" since="1">
+		<extends name="java/lang/Character$Subset" />
+		<method name="forName(Ljava/lang/String;)Ljava/lang/Character$UnicodeBlock;" />
+		<method name="of(C)Ljava/lang/Character$UnicodeBlock;" />
+		<method name="of(I)Ljava/lang/Character$UnicodeBlock;" />
+		<field name="AEGEAN_NUMBERS" />
+		<field name="ALPHABETIC_PRESENTATION_FORMS" />
+		<field name="ARABIC" />
+		<field name="ARABIC_PRESENTATION_FORMS_A" />
+		<field name="ARABIC_PRESENTATION_FORMS_B" />
+		<field name="ARMENIAN" />
+		<field name="ARROWS" />
+		<field name="BASIC_LATIN" />
+		<field name="BENGALI" />
+		<field name="BLOCK_ELEMENTS" />
+		<field name="BOPOMOFO" />
+		<field name="BOPOMOFO_EXTENDED" />
+		<field name="BOX_DRAWING" />
+		<field name="BRAILLE_PATTERNS" />
+		<field name="BUHID" />
+		<field name="BYZANTINE_MUSICAL_SYMBOLS" />
+		<field name="CHEROKEE" />
+		<field name="CJK_COMPATIBILITY" />
+		<field name="CJK_COMPATIBILITY_FORMS" />
+		<field name="CJK_COMPATIBILITY_IDEOGRAPHS" />
+		<field name="CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT" />
+		<field name="CJK_RADICALS_SUPPLEMENT" />
+		<field name="CJK_SYMBOLS_AND_PUNCTUATION" />
+		<field name="CJK_UNIFIED_IDEOGRAPHS" />
+		<field name="CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A" />
+		<field name="CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B" />
+		<field name="COMBINING_DIACRITICAL_MARKS" />
+		<field name="COMBINING_HALF_MARKS" />
+		<field name="COMBINING_MARKS_FOR_SYMBOLS" />
+		<field name="CONTROL_PICTURES" />
+		<field name="CURRENCY_SYMBOLS" />
+		<field name="CYPRIOT_SYLLABARY" />
+		<field name="CYRILLIC" />
+		<field name="CYRILLIC_SUPPLEMENTARY" />
+		<field name="DESERET" />
+		<field name="DEVANAGARI" />
+		<field name="DINGBATS" />
+		<field name="ENCLOSED_ALPHANUMERICS" />
+		<field name="ENCLOSED_CJK_LETTERS_AND_MONTHS" />
+		<field name="ETHIOPIC" />
+		<field name="GENERAL_PUNCTUATION" />
+		<field name="GEOMETRIC_SHAPES" />
+		<field name="GEORGIAN" />
+		<field name="GOTHIC" />
+		<field name="GREEK" />
+		<field name="GREEK_EXTENDED" />
+		<field name="GUJARATI" />
+		<field name="GURMUKHI" />
+		<field name="HALFWIDTH_AND_FULLWIDTH_FORMS" />
+		<field name="HANGUL_COMPATIBILITY_JAMO" />
+		<field name="HANGUL_JAMO" />
+		<field name="HANGUL_SYLLABLES" />
+		<field name="HANUNOO" />
+		<field name="HEBREW" />
+		<field name="HIGH_PRIVATE_USE_SURROGATES" />
+		<field name="HIGH_SURROGATES" />
+		<field name="HIRAGANA" />
+		<field name="IDEOGRAPHIC_DESCRIPTION_CHARACTERS" />
+		<field name="IPA_EXTENSIONS" />
+		<field name="KANBUN" />
+		<field name="KANGXI_RADICALS" />
+		<field name="KANNADA" />
+		<field name="KATAKANA" />
+		<field name="KATAKANA_PHONETIC_EXTENSIONS" />
+		<field name="KHMER" />
+		<field name="KHMER_SYMBOLS" />
+		<field name="LAO" />
+		<field name="LATIN_1_SUPPLEMENT" />
+		<field name="LATIN_EXTENDED_A" />
+		<field name="LATIN_EXTENDED_ADDITIONAL" />
+		<field name="LATIN_EXTENDED_B" />
+		<field name="LETTERLIKE_SYMBOLS" />
+		<field name="LIMBU" />
+		<field name="LINEAR_B_IDEOGRAMS" />
+		<field name="LINEAR_B_SYLLABARY" />
+		<field name="LOW_SURROGATES" />
+		<field name="MALAYALAM" />
+		<field name="MATHEMATICAL_ALPHANUMERIC_SYMBOLS" />
+		<field name="MATHEMATICAL_OPERATORS" />
+		<field name="MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A" />
+		<field name="MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B" />
+		<field name="MISCELLANEOUS_SYMBOLS" />
+		<field name="MISCELLANEOUS_SYMBOLS_AND_ARROWS" />
+		<field name="MISCELLANEOUS_TECHNICAL" />
+		<field name="MONGOLIAN" />
+		<field name="MUSICAL_SYMBOLS" />
+		<field name="MYANMAR" />
+		<field name="NUMBER_FORMS" />
+		<field name="OGHAM" />
+		<field name="OLD_ITALIC" />
+		<field name="OPTICAL_CHARACTER_RECOGNITION" />
+		<field name="ORIYA" />
+		<field name="OSMANYA" />
+		<field name="PHONETIC_EXTENSIONS" />
+		<field name="PRIVATE_USE_AREA" />
+		<field name="RUNIC" />
+		<field name="SHAVIAN" />
+		<field name="SINHALA" />
+		<field name="SMALL_FORM_VARIANTS" />
+		<field name="SPACING_MODIFIER_LETTERS" />
+		<field name="SPECIALS" />
+		<field name="SUPERSCRIPTS_AND_SUBSCRIPTS" />
+		<field name="SUPPLEMENTAL_ARROWS_A" />
+		<field name="SUPPLEMENTAL_ARROWS_B" />
+		<field name="SUPPLEMENTAL_MATHEMATICAL_OPERATORS" />
+		<field name="SUPPLEMENTARY_PRIVATE_USE_AREA_A" />
+		<field name="SUPPLEMENTARY_PRIVATE_USE_AREA_B" />
+		<field name="SURROGATES_AREA" />
+		<field name="SYRIAC" />
+		<field name="TAGALOG" />
+		<field name="TAGBANWA" />
+		<field name="TAGS" />
+		<field name="TAI_LE" />
+		<field name="TAI_XUAN_JING_SYMBOLS" />
+		<field name="TAMIL" />
+		<field name="TELUGU" />
+		<field name="THAANA" />
+		<field name="THAI" />
+		<field name="TIBETAN" />
+		<field name="UGARITIC" />
+		<field name="UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS" />
+		<field name="VARIATION_SELECTORS" />
+		<field name="VARIATION_SELECTORS_SUPPLEMENT" />
+		<field name="YIJING_HEXAGRAM_SYMBOLS" />
+		<field name="YI_RADICALS" />
+		<field name="YI_SYLLABLES" />
+	</class>
+	<class name="java/lang/Class" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/reflect/AnnotatedElement" />
+		<implements name="java/lang/reflect/GenericDeclaration" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/lang/reflect/Type" />
+		<method name="asSubclass(Ljava/lang/Class;)Ljava/lang/Class;" />
+		<method name="cast(Ljava/lang/Object;)LT;" />
+		<method name="desiredAssertionStatus()Z" />
+		<method name="forName(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;" />
+		<method name="getAnnotation(Ljava/lang/Class;)LA;" />
+		<method name="getAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="getCanonicalName()Ljava/lang/String;" />
+		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getClasses()[Ljava/lang/Class;" />
+		<method name="getComponentType()Ljava/lang/Class;" />
+		<method name="getConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" />
+		<method name="getConstructors()[Ljava/lang/reflect/Constructor;" />
+		<method name="getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="getDeclaredClasses()[Ljava/lang/Class;" />
+		<method name="getDeclaredConstructor([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" />
+		<method name="getDeclaredConstructors()[Ljava/lang/reflect/Constructor;" />
+		<method name="getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;" />
+		<method name="getDeclaredFields()[Ljava/lang/reflect/Field;" />
+		<method name="getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;" />
+		<method name="getDeclaredMethods()[Ljava/lang/reflect/Method;" />
+		<method name="getDeclaringClass()Ljava/lang/Class;" />
+		<method name="getEnclosingClass()Ljava/lang/Class;" />
+		<method name="getEnclosingConstructor()Ljava/lang/reflect/Constructor;" />
+		<method name="getEnclosingMethod()Ljava/lang/reflect/Method;" />
+		<method name="getEnumConstants()[LT;" />
+		<method name="getField(Ljava/lang/String;)Ljava/lang/reflect/Field;" />
+		<method name="getFields()[Ljava/lang/reflect/Field;" />
+		<method name="getGenericInterfaces()[Ljava/lang/reflect/Type;" />
+		<method name="getGenericSuperclass()Ljava/lang/reflect/Type;" />
+		<method name="getInterfaces()[Ljava/lang/Class;" />
+		<method name="getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;" />
+		<method name="getMethods()[Ljava/lang/reflect/Method;" />
+		<method name="getModifiers()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPackage()Ljava/lang/Package;" />
+		<method name="getProtectionDomain()Ljava/security/ProtectionDomain;" />
+		<method name="getResource(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="getSigners()[Ljava/lang/Object;" />
+		<method name="getSimpleName()Ljava/lang/String;" />
+		<method name="getSuperclass()Ljava/lang/Class;" />
+		<method name="getTypeParameters()[Ljava/lang/reflect/TypeVariable;" />
+		<method name="isAnnotation()Z" />
+		<method name="isAnnotationPresent(Ljava/lang/Class;)Z" />
+		<method name="isAnonymousClass()Z" />
+		<method name="isArray()Z" />
+		<method name="isAssignableFrom(Ljava/lang/Class;)Z" />
+		<method name="isEnum()Z" />
+		<method name="isInstance(Ljava/lang/Object;)Z" />
+		<method name="isInterface()Z" />
+		<method name="isLocalClass()Z" />
+		<method name="isMemberClass()Z" />
+		<method name="isPrimitive()Z" />
+		<method name="isSynthetic()Z" />
+		<method name="newInstance()LT;" />
+	</class>
+	<class name="java/lang/ClassCastException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/ClassCircularityError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/ClassFormatError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/ClassLoader" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/ClassLoader;)V" />
+		<method name="clearAssertionStatus()V" />
+		<method name="defineClass(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/ProtectionDomain;)Ljava/lang/Class;" />
+		<method name="defineClass(Ljava/lang/String;[BII)Ljava/lang/Class;" />
+		<method name="defineClass(Ljava/lang/String;[BIILjava/security/ProtectionDomain;)Ljava/lang/Class;" />
+		<method name="defineClass([BII)Ljava/lang/Class;" />
+		<method name="definePackage(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;)Ljava/lang/Package;" />
+		<method name="findClass(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="findLibrary(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="findLoadedClass(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="findResource(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="findResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
+		<method name="findSystemClass(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="getPackage(Ljava/lang/String;)Ljava/lang/Package;" />
+		<method name="getPackages()[Ljava/lang/Package;" />
+		<method name="getParent()Ljava/lang/ClassLoader;" />
+		<method name="getResource(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="getResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
+		<method name="getSystemClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getSystemResource(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="getSystemResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="getSystemResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
+		<method name="loadClass(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="loadClass(Ljava/lang/String;Z)Ljava/lang/Class;" />
+		<method name="resolveClass(Ljava/lang/Class;)V" />
+		<method name="setClassAssertionStatus(Ljava/lang/String;Z)V" />
+		<method name="setDefaultAssertionStatus(Z)V" />
+		<method name="setPackageAssertionStatus(Ljava/lang/String;Z)V" />
+		<method name="setSigners(Ljava/lang/Class;[Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/lang/ClassNotFoundException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="getException()Ljava/lang/Throwable;" />
+	</class>
+	<class name="java/lang/CloneNotSupportedException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Cloneable" since="1">
+	</class>
+	<class name="java/lang/Comparable" since="1">
+		<method name="compareTo(LT;)I" />
+	</class>
+	<class name="java/lang/Compiler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="command(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="compileClass(Ljava/lang/Class;)Z" />
+		<method name="compileClasses(Ljava/lang/String;)Z" />
+		<method name="disable()V" />
+		<method name="enable()V" />
+	</class>
+	<class name="java/lang/Deprecated" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/Double" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(D)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="compare(DD)I" />
+		<method name="compareTo(Ljava/lang/Double;)I" />
+		<method name="doubleToLongBits(D)J" />
+		<method name="doubleToRawLongBits(D)J" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="intValue()I" />
+		<method name="isInfinite()Z" />
+		<method name="isInfinite(D)Z" />
+		<method name="isNaN()Z" />
+		<method name="isNaN(D)Z" />
+		<method name="longBitsToDouble(J)D" />
+		<method name="longValue()J" />
+		<method name="parseDouble(Ljava/lang/String;)D" />
+		<method name="toHexString(D)Ljava/lang/String;" />
+		<method name="toString(D)Ljava/lang/String;" />
+		<method name="valueOf(D)Ljava/lang/Double;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Double;" />
+		<field name="MAX_EXPONENT" since="9" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_EXPONENT" since="9" />
+		<field name="MIN_NORMAL" since="9" />
+		<field name="MIN_VALUE" />
+		<field name="NEGATIVE_INFINITY" />
+		<field name="NaN" />
+		<field name="POSITIVE_INFINITY" />
+		<field name="SIZE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/Enum" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="compareTo(LE;)I" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="finalize()V" since="9" />
+		<method name="getDeclaringClass()Ljava/lang/Class;" />
+		<method name="hashCode()I" />
+		<method name="name()Ljava/lang/String;" />
+		<method name="ordinal()I" />
+		<method name="valueOf(Ljava/lang/Class;Ljava/lang/String;)LT;" />
+	</class>
+	<class name="java/lang/EnumConstantNotPresentException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
+		<method name="constantName()Ljava/lang/String;" />
+		<method name="enumType()Ljava/lang/Class;" />
+	</class>
+	<class name="java/lang/Error" since="1">
+		<extends name="java/lang/Throwable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/Exception" since="1">
+		<extends name="java/lang/Throwable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/ExceptionInInitializerError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="getException()Ljava/lang/Throwable;" />
+	</class>
+	<class name="java/lang/Float" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(D)V" />
+		<method name="&lt;init>(F)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="compare(FF)I" />
+		<method name="compareTo(Ljava/lang/Float;)I" />
+		<method name="doubleValue()D" />
+		<method name="floatToIntBits(F)I" />
+		<method name="floatToRawIntBits(F)I" />
+		<method name="floatValue()F" />
+		<method name="intBitsToFloat(I)F" />
+		<method name="intValue()I" />
+		<method name="isInfinite()Z" />
+		<method name="isInfinite(F)Z" />
+		<method name="isNaN()Z" />
+		<method name="isNaN(F)Z" />
+		<method name="longValue()J" />
+		<method name="parseFloat(Ljava/lang/String;)F" />
+		<method name="toHexString(F)Ljava/lang/String;" />
+		<method name="toString(F)Ljava/lang/String;" />
+		<method name="valueOf(F)Ljava/lang/Float;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Float;" />
+		<field name="MAX_EXPONENT" since="9" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_EXPONENT" since="9" />
+		<field name="MIN_NORMAL" since="9" />
+		<field name="MIN_VALUE" />
+		<field name="NEGATIVE_INFINITY" />
+		<field name="NaN" />
+		<field name="POSITIVE_INFINITY" />
+		<field name="SIZE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/IllegalAccessError" since="1">
+		<extends name="java/lang/IncompatibleClassChangeError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/IllegalAccessException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/IllegalArgumentException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/IllegalMonitorStateException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/IllegalStateException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/IllegalThreadStateException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/IncompatibleClassChangeError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/IndexOutOfBoundsException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/InheritableThreadLocal" since="1">
+		<extends name="java/lang/ThreadLocal" />
+		<method name="&lt;init>()V" />
+		<method name="childValue(LT;)LT;" />
+	</class>
+	<class name="java/lang/InstantiationError" since="1">
+		<extends name="java/lang/IncompatibleClassChangeError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/InstantiationException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Integer" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="bitCount(I)I" />
+		<method name="compareTo(Ljava/lang/Integer;)I" />
+		<method name="decode(Ljava/lang/String;)Ljava/lang/Integer;" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="getInteger(Ljava/lang/String;)Ljava/lang/Integer;" />
+		<method name="getInteger(Ljava/lang/String;I)Ljava/lang/Integer;" />
+		<method name="getInteger(Ljava/lang/String;Ljava/lang/Integer;)Ljava/lang/Integer;" />
+		<method name="highestOneBit(I)I" />
+		<method name="intValue()I" />
+		<method name="longValue()J" />
+		<method name="lowestOneBit(I)I" />
+		<method name="numberOfLeadingZeros(I)I" />
+		<method name="numberOfTrailingZeros(I)I" />
+		<method name="parseInt(Ljava/lang/String;)I" />
+		<method name="parseInt(Ljava/lang/String;I)I" />
+		<method name="reverse(I)I" />
+		<method name="reverseBytes(I)I" />
+		<method name="rotateLeft(II)I" />
+		<method name="rotateRight(II)I" />
+		<method name="signum(I)I" />
+		<method name="toBinaryString(I)Ljava/lang/String;" />
+		<method name="toHexString(I)Ljava/lang/String;" />
+		<method name="toOctalString(I)Ljava/lang/String;" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<method name="toString(II)Ljava/lang/String;" />
+		<method name="valueOf(I)Ljava/lang/Integer;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Integer;" />
+		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Integer;" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_VALUE" />
+		<field name="SIZE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/InternalError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/InterruptedException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Iterable" since="1">
+		<method name="iterator()Ljava/util/Iterator;" />
+	</class>
+	<class name="java/lang/LinkageError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Long" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(J)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="bitCount(J)I" />
+		<method name="compareTo(Ljava/lang/Long;)I" />
+		<method name="decode(Ljava/lang/String;)Ljava/lang/Long;" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="getLong(Ljava/lang/String;)Ljava/lang/Long;" />
+		<method name="getLong(Ljava/lang/String;J)Ljava/lang/Long;" />
+		<method name="getLong(Ljava/lang/String;Ljava/lang/Long;)Ljava/lang/Long;" />
+		<method name="highestOneBit(J)J" />
+		<method name="intValue()I" />
+		<method name="longValue()J" />
+		<method name="lowestOneBit(J)J" />
+		<method name="numberOfLeadingZeros(J)I" />
+		<method name="numberOfTrailingZeros(J)I" />
+		<method name="parseLong(Ljava/lang/String;)J" />
+		<method name="parseLong(Ljava/lang/String;I)J" />
+		<method name="reverse(J)J" />
+		<method name="reverseBytes(J)J" />
+		<method name="rotateLeft(JI)J" />
+		<method name="rotateRight(JI)J" />
+		<method name="signum(J)I" />
+		<method name="toBinaryString(J)Ljava/lang/String;" />
+		<method name="toHexString(J)Ljava/lang/String;" />
+		<method name="toOctalString(J)Ljava/lang/String;" />
+		<method name="toString(J)Ljava/lang/String;" />
+		<method name="toString(JI)Ljava/lang/String;" />
+		<method name="valueOf(J)Ljava/lang/Long;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Long;" />
+		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Long;" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_VALUE" />
+		<field name="SIZE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/Math" since="1">
+		<extends name="java/lang/Object" />
+		<method name="IEEEremainder(DD)D" />
+		<method name="abs(D)D" />
+		<method name="abs(F)F" />
+		<method name="abs(I)I" />
+		<method name="abs(J)J" />
+		<method name="acos(D)D" />
+		<method name="asin(D)D" />
+		<method name="atan(D)D" />
+		<method name="atan2(DD)D" />
+		<method name="cbrt(D)D" />
+		<method name="ceil(D)D" />
+		<method name="copySign(DD)D" since="9" />
+		<method name="copySign(FF)F" since="9" />
+		<method name="cos(D)D" />
+		<method name="cosh(D)D" />
+		<method name="exp(D)D" />
+		<method name="expm1(D)D" />
+		<method name="floor(D)D" />
+		<method name="getExponent(D)I" since="9" />
+		<method name="getExponent(F)I" since="9" />
+		<method name="hypot(DD)D" />
+		<method name="log(D)D" />
+		<method name="log10(D)D" />
+		<method name="log1p(D)D" />
+		<method name="max(DD)D" />
+		<method name="max(FF)F" />
+		<method name="max(II)I" />
+		<method name="max(JJ)J" />
+		<method name="min(DD)D" />
+		<method name="min(FF)F" />
+		<method name="min(II)I" />
+		<method name="min(JJ)J" />
+		<method name="nextAfter(DD)D" since="9" />
+		<method name="nextAfter(FD)F" since="9" />
+		<method name="nextUp(D)D" since="9" />
+		<method name="nextUp(F)F" since="9" />
+		<method name="pow(DD)D" />
+		<method name="random()D" />
+		<method name="rint(D)D" />
+		<method name="round(D)J" />
+		<method name="round(F)I" />
+		<method name="scalb(DI)D" since="9" />
+		<method name="scalb(FI)F" since="9" />
+		<method name="signum(D)D" />
+		<method name="signum(F)F" />
+		<method name="sin(D)D" />
+		<method name="sinh(D)D" />
+		<method name="sqrt(D)D" />
+		<method name="tan(D)D" />
+		<method name="tanh(D)D" />
+		<method name="toDegrees(D)D" />
+		<method name="toRadians(D)D" />
+		<method name="ulp(D)D" />
+		<method name="ulp(F)F" />
+		<field name="E" />
+		<field name="PI" />
+	</class>
+	<class name="java/lang/NegativeArraySizeException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/NoClassDefFoundError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/NoSuchFieldError" since="1">
+		<extends name="java/lang/IncompatibleClassChangeError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/NoSuchFieldException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/NoSuchMethodError" since="1">
+		<extends name="java/lang/IncompatibleClassChangeError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/NoSuchMethodException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/NullPointerException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Number" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="byteValue()B" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="intValue()I" />
+		<method name="longValue()J" />
+		<method name="shortValue()S" />
+	</class>
+	<class name="java/lang/NumberFormatException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Object" since="1">
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="finalize()V" />
+		<method name="getClass()Ljava/lang/Class;" />
+		<method name="hashCode()I" />
+		<method name="notify()V" />
+		<method name="notifyAll()V" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="wait()V" />
+		<method name="wait(J)V" />
+		<method name="wait(JI)V" />
+	</class>
+	<class name="java/lang/OutOfMemoryError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Override" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/Package" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/reflect/AnnotatedElement" />
+		<method name="getAnnotation(Ljava/lang/Class;)LA;" since="9" />
+		<method name="getAnnotation(Ljava/lang/Class;)LT;" />
+		<method name="getAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="getImplementationTitle()Ljava/lang/String;" />
+		<method name="getImplementationVendor()Ljava/lang/String;" />
+		<method name="getImplementationVersion()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPackage(Ljava/lang/String;)Ljava/lang/Package;" />
+		<method name="getPackages()[Ljava/lang/Package;" />
+		<method name="getSpecificationTitle()Ljava/lang/String;" />
+		<method name="getSpecificationVendor()Ljava/lang/String;" />
+		<method name="getSpecificationVersion()Ljava/lang/String;" />
+		<method name="isAnnotationPresent(Ljava/lang/Class;)Z" />
+		<method name="isCompatibleWith(Ljava/lang/String;)Z" />
+		<method name="isSealed()Z" />
+		<method name="isSealed(Ljava/net/URL;)Z" />
+	</class>
+	<class name="java/lang/Process" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="destroy()V" />
+		<method name="exitValue()I" />
+		<method name="getErrorStream()Ljava/io/InputStream;" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="waitFor()I" />
+	</class>
+	<class name="java/lang/ProcessBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/util/List;)V" />
+		<method name="&lt;init>([Ljava/lang/String;)V" />
+		<method name="command()Ljava/util/List;" />
+		<method name="command(Ljava/util/List;)Ljava/lang/ProcessBuilder;" />
+		<method name="command([Ljava/lang/String;)Ljava/lang/ProcessBuilder;" />
+		<method name="directory()Ljava/io/File;" />
+		<method name="directory(Ljava/io/File;)Ljava/lang/ProcessBuilder;" />
+		<method name="environment()Ljava/util/Map;" />
+		<method name="redirectErrorStream()Z" />
+		<method name="redirectErrorStream(Z)Ljava/lang/ProcessBuilder;" />
+		<method name="start()Ljava/lang/Process;" />
+	</class>
+	<class name="java/lang/Readable" since="1">
+		<method name="read(Ljava/nio/CharBuffer;)I" />
+	</class>
+	<class name="java/lang/Runnable" since="1">
+		<method name="run()V" />
+	</class>
+	<class name="java/lang/Runtime" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addShutdownHook(Ljava/lang/Thread;)V" />
+		<method name="availableProcessors()I" />
+		<method name="exec(Ljava/lang/String;)Ljava/lang/Process;" />
+		<method name="exec(Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Process;" />
+		<method name="exec(Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;" />
+		<method name="exec([Ljava/lang/String;)Ljava/lang/Process;" />
+		<method name="exec([Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Process;" />
+		<method name="exec([Ljava/lang/String;[Ljava/lang/String;Ljava/io/File;)Ljava/lang/Process;" />
+		<method name="exit(I)V" />
+		<method name="freeMemory()J" />
+		<method name="gc()V" />
+		<method name="getLocalizedInputStream(Ljava/io/InputStream;)Ljava/io/InputStream;" />
+		<method name="getLocalizedOutputStream(Ljava/io/OutputStream;)Ljava/io/OutputStream;" />
+		<method name="getRuntime()Ljava/lang/Runtime;" />
+		<method name="halt(I)V" />
+		<method name="load(Ljava/lang/String;)V" />
+		<method name="loadLibrary(Ljava/lang/String;)V" />
+		<method name="maxMemory()J" />
+		<method name="removeShutdownHook(Ljava/lang/Thread;)Z" />
+		<method name="runFinalization()V" />
+		<method name="runFinalizersOnExit(Z)V" />
+		<method name="totalMemory()J" />
+		<method name="traceInstructions(Z)V" />
+		<method name="traceMethodCalls(Z)V" />
+	</class>
+	<class name="java/lang/RuntimeException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/RuntimePermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/SecurityException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/SecurityManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="checkAccept(Ljava/lang/String;I)V" />
+		<method name="checkAccess(Ljava/lang/Thread;)V" />
+		<method name="checkAccess(Ljava/lang/ThreadGroup;)V" />
+		<method name="checkAwtEventQueueAccess()V" />
+		<method name="checkConnect(Ljava/lang/String;I)V" />
+		<method name="checkConnect(Ljava/lang/String;ILjava/lang/Object;)V" />
+		<method name="checkCreateClassLoader()V" />
+		<method name="checkDelete(Ljava/lang/String;)V" />
+		<method name="checkExec(Ljava/lang/String;)V" />
+		<method name="checkExit(I)V" />
+		<method name="checkLink(Ljava/lang/String;)V" />
+		<method name="checkListen(I)V" />
+		<method name="checkMemberAccess(Ljava/lang/Class;I)V" />
+		<method name="checkMulticast(Ljava/net/InetAddress;)V" />
+		<method name="checkMulticast(Ljava/net/InetAddress;B)V" />
+		<method name="checkPackageAccess(Ljava/lang/String;)V" />
+		<method name="checkPackageDefinition(Ljava/lang/String;)V" />
+		<method name="checkPermission(Ljava/security/Permission;)V" />
+		<method name="checkPermission(Ljava/security/Permission;Ljava/lang/Object;)V" />
+		<method name="checkPrintJobAccess()V" />
+		<method name="checkPropertiesAccess()V" />
+		<method name="checkPropertyAccess(Ljava/lang/String;)V" />
+		<method name="checkRead(Ljava/io/FileDescriptor;)V" />
+		<method name="checkRead(Ljava/lang/String;)V" />
+		<method name="checkRead(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="checkSecurityAccess(Ljava/lang/String;)V" />
+		<method name="checkSetFactory()V" />
+		<method name="checkSystemClipboardAccess()V" />
+		<method name="checkTopLevelWindow(Ljava/lang/Object;)Z" />
+		<method name="checkWrite(Ljava/io/FileDescriptor;)V" />
+		<method name="checkWrite(Ljava/lang/String;)V" />
+		<method name="classDepth(Ljava/lang/String;)I" />
+		<method name="classLoaderDepth()I" />
+		<method name="currentClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="currentLoadedClass()Ljava/lang/Class;" />
+		<method name="getClassContext()[Ljava/lang/Class;" />
+		<method name="getInCheck()Z" />
+		<method name="getSecurityContext()Ljava/lang/Object;" />
+		<method name="getThreadGroup()Ljava/lang/ThreadGroup;" />
+		<method name="inClass(Ljava/lang/String;)Z" />
+		<method name="inClassLoader()Z" />
+		<field name="inCheck" />
+	</class>
+	<class name="java/lang/Short" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(S)V" />
+		<method name="compareTo(Ljava/lang/Short;)I" />
+		<method name="decode(Ljava/lang/String;)Ljava/lang/Short;" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="intValue()I" />
+		<method name="longValue()J" />
+		<method name="parseShort(Ljava/lang/String;)S" />
+		<method name="parseShort(Ljava/lang/String;I)S" />
+		<method name="reverseBytes(S)S" />
+		<method name="toString(S)Ljava/lang/String;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Short;" />
+		<method name="valueOf(Ljava/lang/String;I)Ljava/lang/Short;" />
+		<method name="valueOf(S)Ljava/lang/Short;" />
+		<field name="MAX_VALUE" />
+		<field name="MIN_VALUE" />
+		<field name="SIZE" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/StackOverflowError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/StackTraceElement" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="getClassName()Ljava/lang/String;" />
+		<method name="getFileName()Ljava/lang/String;" />
+		<method name="getLineNumber()I" />
+		<method name="getMethodName()Ljava/lang/String;" />
+		<method name="isNativeMethod()Z" />
+	</class>
+	<class name="java/lang/StrictMath" since="1">
+		<extends name="java/lang/Object" />
+		<method name="IEEEremainder(DD)D" />
+		<method name="abs(D)D" />
+		<method name="abs(F)F" />
+		<method name="abs(I)I" />
+		<method name="abs(J)J" />
+		<method name="acos(D)D" />
+		<method name="asin(D)D" />
+		<method name="atan(D)D" />
+		<method name="atan2(DD)D" />
+		<method name="cbrt(D)D" />
+		<method name="ceil(D)D" />
+		<method name="copySign(DD)D" since="9" />
+		<method name="copySign(FF)F" since="9" />
+		<method name="cos(D)D" />
+		<method name="cosh(D)D" />
+		<method name="exp(D)D" />
+		<method name="expm1(D)D" />
+		<method name="floor(D)D" />
+		<method name="getExponent(D)I" since="9" />
+		<method name="getExponent(F)I" since="9" />
+		<method name="hypot(DD)D" />
+		<method name="log(D)D" />
+		<method name="log10(D)D" />
+		<method name="log1p(D)D" />
+		<method name="max(DD)D" />
+		<method name="max(FF)F" />
+		<method name="max(II)I" />
+		<method name="max(JJ)J" />
+		<method name="min(DD)D" />
+		<method name="min(FF)F" />
+		<method name="min(II)I" />
+		<method name="min(JJ)J" />
+		<method name="nextAfter(DD)D" since="9" />
+		<method name="nextAfter(FD)F" since="9" />
+		<method name="nextUp(D)D" since="9" />
+		<method name="nextUp(F)F" since="9" />
+		<method name="pow(DD)D" />
+		<method name="random()D" />
+		<method name="rint(D)D" />
+		<method name="round(D)J" />
+		<method name="round(F)I" />
+		<method name="scalb(DI)D" since="9" />
+		<method name="scalb(FI)F" since="9" />
+		<method name="signum(D)D" />
+		<method name="signum(F)F" />
+		<method name="sin(D)D" />
+		<method name="sinh(D)D" />
+		<method name="sqrt(D)D" />
+		<method name="tan(D)D" />
+		<method name="tanh(D)D" />
+		<method name="toDegrees(D)D" />
+		<method name="toRadians(D)D" />
+		<method name="ulp(D)D" />
+		<method name="ulp(F)F" />
+		<field name="E" />
+		<field name="PI" />
+	</class>
+	<class name="java/lang/String" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/StringBuffer;)V" />
+		<method name="&lt;init>(Ljava/lang/StringBuilder;)V" />
+		<method name="&lt;init>([B)V" />
+		<method name="&lt;init>([BI)V" />
+		<method name="&lt;init>([BII)V" />
+		<method name="&lt;init>([BIII)V" />
+		<method name="&lt;init>([BIILjava/lang/String;)V" />
+		<method name="&lt;init>([BIILjava/nio/charset/Charset;)V" since="9" />
+		<method name="&lt;init>([BLjava/lang/String;)V" />
+		<method name="&lt;init>([BLjava/nio/charset/Charset;)V" since="9" />
+		<method name="&lt;init>([C)V" />
+		<method name="&lt;init>([CII)V" />
+		<method name="&lt;init>([III)V" />
+		<method name="charAt(I)C" />
+		<method name="codePointAt(I)I" />
+		<method name="codePointBefore(I)I" />
+		<method name="codePointCount(II)I" />
+		<method name="compareTo(Ljava/lang/String;)I" />
+		<method name="compareToIgnoreCase(Ljava/lang/String;)I" />
+		<method name="concat(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="contains(Ljava/lang/CharSequence;)Z" />
+		<method name="contentEquals(Ljava/lang/CharSequence;)Z" />
+		<method name="contentEquals(Ljava/lang/StringBuffer;)Z" />
+		<method name="copyValueOf([C)Ljava/lang/String;" />
+		<method name="copyValueOf([CII)Ljava/lang/String;" />
+		<method name="endsWith(Ljava/lang/String;)Z" />
+		<method name="equalsIgnoreCase(Ljava/lang/String;)Z" />
+		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="getBytes()[B" />
+		<method name="getBytes(II[BI)V" />
+		<method name="getBytes(Ljava/lang/String;)[B" />
+		<method name="getBytes(Ljava/nio/charset/Charset;)[B" since="9" />
+		<method name="getChars(II[CI)V" />
+		<method name="indexOf(I)I" />
+		<method name="indexOf(II)I" />
+		<method name="indexOf(Ljava/lang/String;)I" />
+		<method name="indexOf(Ljava/lang/String;I)I" />
+		<method name="intern()Ljava/lang/String;" />
+		<method name="isEmpty()Z" since="9" />
+		<method name="lastIndexOf(I)I" />
+		<method name="lastIndexOf(II)I" />
+		<method name="lastIndexOf(Ljava/lang/String;)I" />
+		<method name="lastIndexOf(Ljava/lang/String;I)I" />
+		<method name="length()I" />
+		<method name="matches(Ljava/lang/String;)Z" />
+		<method name="offsetByCodePoints(II)I" />
+		<method name="regionMatches(ILjava/lang/String;II)Z" />
+		<method name="regionMatches(ZILjava/lang/String;II)Z" />
+		<method name="replace(CC)Ljava/lang/String;" />
+		<method name="replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;" />
+		<method name="replaceAll(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="replaceFirst(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="split(Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="split(Ljava/lang/String;I)[Ljava/lang/String;" />
+		<method name="startsWith(Ljava/lang/String;)Z" />
+		<method name="startsWith(Ljava/lang/String;I)Z" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="substring(I)Ljava/lang/String;" />
+		<method name="substring(II)Ljava/lang/String;" />
+		<method name="toCharArray()[C" />
+		<method name="toLowerCase()Ljava/lang/String;" />
+		<method name="toLowerCase(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="toUpperCase()Ljava/lang/String;" />
+		<method name="toUpperCase(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="trim()Ljava/lang/String;" />
+		<method name="valueOf(C)Ljava/lang/String;" />
+		<method name="valueOf(D)Ljava/lang/String;" />
+		<method name="valueOf(F)Ljava/lang/String;" />
+		<method name="valueOf(I)Ljava/lang/String;" />
+		<method name="valueOf(J)Ljava/lang/String;" />
+		<method name="valueOf(Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="valueOf(Z)Ljava/lang/String;" />
+		<method name="valueOf([C)Ljava/lang/String;" />
+		<method name="valueOf([CII)Ljava/lang/String;" />
+		<field name="CASE_INSENSITIVE_ORDER" />
+	</class>
+	<class name="java/lang/StringBuffer" since="1">
+		<extends name="java/lang/AbstractStringBuilder" />
+		<implements name="java/lang/Appendable" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="append(C)Ljava/lang/StringBuffer;" />
+		<method name="append(D)Ljava/lang/StringBuffer;" />
+		<method name="append(F)Ljava/lang/StringBuffer;" />
+		<method name="append(I)Ljava/lang/StringBuffer;" />
+		<method name="append(J)Ljava/lang/StringBuffer;" />
+		<method name="append(Ljava/lang/CharSequence;)Ljava/lang/StringBuffer;" />
+		<method name="append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuffer;" />
+		<method name="append(Ljava/lang/Object;)Ljava/lang/StringBuffer;" />
+		<method name="append(Ljava/lang/String;)Ljava/lang/StringBuffer;" />
+		<method name="append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;" />
+		<method name="append(Z)Ljava/lang/StringBuffer;" />
+		<method name="append([C)Ljava/lang/StringBuffer;" />
+		<method name="append([CII)Ljava/lang/StringBuffer;" />
+		<method name="appendCodePoint(I)Ljava/lang/StringBuffer;" />
+		<method name="delete(II)Ljava/lang/StringBuffer;" />
+		<method name="deleteCharAt(I)Ljava/lang/StringBuffer;" />
+		<method name="insert(IC)Ljava/lang/StringBuffer;" />
+		<method name="insert(ID)Ljava/lang/StringBuffer;" />
+		<method name="insert(IF)Ljava/lang/StringBuffer;" />
+		<method name="insert(II)Ljava/lang/StringBuffer;" />
+		<method name="insert(IJ)Ljava/lang/StringBuffer;" />
+		<method name="insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuffer;" />
+		<method name="insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuffer;" />
+		<method name="insert(ILjava/lang/Object;)Ljava/lang/StringBuffer;" />
+		<method name="insert(ILjava/lang/String;)Ljava/lang/StringBuffer;" />
+		<method name="insert(IZ)Ljava/lang/StringBuffer;" />
+		<method name="insert(I[C)Ljava/lang/StringBuffer;" />
+		<method name="insert(I[CII)Ljava/lang/StringBuffer;" />
+		<method name="replace(IILjava/lang/String;)Ljava/lang/StringBuffer;" />
+		<method name="reverse()Ljava/lang/StringBuffer;" />
+	</class>
+	<class name="java/lang/StringBuilder" since="1">
+		<extends name="java/lang/AbstractStringBuilder" />
+		<implements name="java/lang/Appendable" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/CharSequence;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="append(C)Ljava/lang/StringBuilder;" />
+		<method name="append(D)Ljava/lang/StringBuilder;" />
+		<method name="append(F)Ljava/lang/StringBuilder;" />
+		<method name="append(I)Ljava/lang/StringBuilder;" />
+		<method name="append(J)Ljava/lang/StringBuilder;" />
+		<method name="append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;" />
+		<method name="append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;" />
+		<method name="append(Ljava/lang/Object;)Ljava/lang/StringBuilder;" />
+		<method name="append(Ljava/lang/String;)Ljava/lang/StringBuilder;" />
+		<method name="append(Ljava/lang/StringBuffer;)Ljava/lang/StringBuilder;" />
+		<method name="append(Z)Ljava/lang/StringBuilder;" />
+		<method name="append([C)Ljava/lang/StringBuilder;" />
+		<method name="append([CII)Ljava/lang/StringBuilder;" />
+		<method name="appendCodePoint(I)Ljava/lang/StringBuilder;" />
+		<method name="delete(II)Ljava/lang/StringBuilder;" />
+		<method name="deleteCharAt(I)Ljava/lang/StringBuilder;" />
+		<method name="insert(IC)Ljava/lang/StringBuilder;" />
+		<method name="insert(ID)Ljava/lang/StringBuilder;" />
+		<method name="insert(IF)Ljava/lang/StringBuilder;" />
+		<method name="insert(II)Ljava/lang/StringBuilder;" />
+		<method name="insert(IJ)Ljava/lang/StringBuilder;" />
+		<method name="insert(ILjava/lang/CharSequence;)Ljava/lang/StringBuilder;" />
+		<method name="insert(ILjava/lang/CharSequence;II)Ljava/lang/StringBuilder;" />
+		<method name="insert(ILjava/lang/Object;)Ljava/lang/StringBuilder;" />
+		<method name="insert(ILjava/lang/String;)Ljava/lang/StringBuilder;" />
+		<method name="insert(IZ)Ljava/lang/StringBuilder;" />
+		<method name="insert(I[C)Ljava/lang/StringBuilder;" />
+		<method name="insert(I[CII)Ljava/lang/StringBuilder;" />
+		<method name="replace(IILjava/lang/String;)Ljava/lang/StringBuilder;" />
+		<method name="reverse()Ljava/lang/StringBuilder;" />
+	</class>
+	<class name="java/lang/StringIndexOutOfBoundsException" since="1">
+		<extends name="java/lang/IndexOutOfBoundsException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/SuppressWarnings" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/System" since="1">
+		<extends name="java/lang/Object" />
+		<method name="arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V" />
+		<method name="clearProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="console()Ljava/io/Console;" since="9" />
+		<method name="currentTimeMillis()J" />
+		<method name="exit(I)V" />
+		<method name="gc()V" />
+		<method name="getProperties()Ljava/util/Properties;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getSecurityManager()Ljava/lang/SecurityManager;" />
+		<method name="getenv()Ljava/util/Map;" />
+		<method name="getenv(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="identityHashCode(Ljava/lang/Object;)I" />
+		<method name="inheritedChannel()Ljava/nio/channels/Channel;" />
+		<method name="load(Ljava/lang/String;)V" />
+		<method name="loadLibrary(Ljava/lang/String;)V" />
+		<method name="mapLibraryName(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="nanoTime()J" />
+		<method name="runFinalization()V" />
+		<method name="runFinalizersOnExit(Z)V" />
+		<method name="setErr(Ljava/io/PrintStream;)V" />
+		<method name="setIn(Ljava/io/InputStream;)V" />
+		<method name="setOut(Ljava/io/PrintStream;)V" />
+		<method name="setProperties(Ljava/util/Properties;)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="setSecurityManager(Ljava/lang/SecurityManager;)V" />
+		<field name="err" />
+		<field name="in" />
+		<field name="out" />
+	</class>
+	<class name="java/lang/Thread" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Runnable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Runnable;)V" />
+		<method name="&lt;init>(Ljava/lang/Runnable;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;)V" />
+		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;J)V" />
+		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V" />
+		<method name="activeCount()I" />
+		<method name="checkAccess()V" />
+		<method name="countStackFrames()I" />
+		<method name="currentThread()Ljava/lang/Thread;" />
+		<method name="destroy()V" />
+		<method name="dumpStack()V" />
+		<method name="enumerate([Ljava/lang/Thread;)I" />
+		<method name="getAllStackTraces()Ljava/util/Map;" />
+		<method name="getContextClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getDefaultUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;" />
+		<method name="getId()J" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPriority()I" />
+		<method name="getStackTrace()[Ljava/lang/StackTraceElement;" />
+		<method name="getState()Ljava/lang/Thread$State;" />
+		<method name="getThreadGroup()Ljava/lang/ThreadGroup;" />
+		<method name="getUncaughtExceptionHandler()Ljava/lang/Thread$UncaughtExceptionHandler;" />
+		<method name="holdsLock(Ljava/lang/Object;)Z" />
+		<method name="interrupt()V" />
+		<method name="interrupted()Z" />
+		<method name="isAlive()Z" />
+		<method name="isDaemon()Z" />
+		<method name="isInterrupted()Z" />
+		<method name="join()V" />
+		<method name="join(J)V" />
+		<method name="join(JI)V" />
+		<method name="resume()V" />
+		<method name="run()V" />
+		<method name="setContextClassLoader(Ljava/lang/ClassLoader;)V" />
+		<method name="setDaemon(Z)V" />
+		<method name="setDefaultUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V" />
+		<method name="setName(Ljava/lang/String;)V" />
+		<method name="setPriority(I)V" />
+		<method name="setUncaughtExceptionHandler(Ljava/lang/Thread$UncaughtExceptionHandler;)V" />
+		<method name="sleep(J)V" />
+		<method name="sleep(JI)V" />
+		<method name="start()V" />
+		<method name="stop()V" />
+		<method name="stop(Ljava/lang/Throwable;)V" />
+		<method name="suspend()V" />
+		<method name="yield()V" />
+		<field name="MAX_PRIORITY" />
+		<field name="MIN_PRIORITY" />
+		<field name="NORM_PRIORITY" />
+	</class>
+	<class name="java/lang/Thread$State" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/Thread$State;" />
+		<method name="values()[Ljava/lang/Thread$State;" />
+		<field name="BLOCKED" />
+		<field name="NEW" />
+		<field name="RUNNABLE" />
+		<field name="TERMINATED" />
+		<field name="TIMED_WAITING" />
+		<field name="WAITING" />
+	</class>
+	<class name="java/lang/Thread$UncaughtExceptionHandler" since="1">
+		<method name="uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/ThreadDeath" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/lang/ThreadGroup" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Thread$UncaughtExceptionHandler" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/ThreadGroup;Ljava/lang/String;)V" />
+		<method name="activeCount()I" />
+		<method name="activeGroupCount()I" />
+		<method name="allowThreadSuspension(Z)Z" />
+		<method name="checkAccess()V" />
+		<method name="destroy()V" />
+		<method name="enumerate([Ljava/lang/Thread;)I" />
+		<method name="enumerate([Ljava/lang/Thread;Z)I" />
+		<method name="enumerate([Ljava/lang/ThreadGroup;)I" />
+		<method name="enumerate([Ljava/lang/ThreadGroup;Z)I" />
+		<method name="getMaxPriority()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParent()Ljava/lang/ThreadGroup;" />
+		<method name="interrupt()V" />
+		<method name="isDaemon()Z" />
+		<method name="isDestroyed()Z" />
+		<method name="list()V" />
+		<method name="parentOf(Ljava/lang/ThreadGroup;)Z" />
+		<method name="resume()V" />
+		<method name="setDaemon(Z)V" />
+		<method name="setMaxPriority(I)V" />
+		<method name="stop()V" />
+		<method name="suspend()V" />
+		<method name="uncaughtException(Ljava/lang/Thread;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/ThreadLocal" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="get()LT;" />
+		<method name="initialValue()LT;" />
+		<method name="remove()V" />
+		<method name="set(LT;)V" />
+	</class>
+	<class name="java/lang/Throwable" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="fillInStackTrace()Ljava/lang/Throwable;" />
+		<method name="getCause()Ljava/lang/Throwable;" />
+		<method name="getLocalizedMessage()Ljava/lang/String;" />
+		<method name="getMessage()Ljava/lang/String;" />
+		<method name="getStackTrace()[Ljava/lang/StackTraceElement;" />
+		<method name="initCause(Ljava/lang/Throwable;)Ljava/lang/Throwable;" />
+		<method name="printStackTrace()V" />
+		<method name="printStackTrace(Ljava/io/PrintStream;)V" />
+		<method name="printStackTrace(Ljava/io/PrintWriter;)V" />
+		<method name="setStackTrace([Ljava/lang/StackTraceElement;)V" />
+	</class>
+	<class name="java/lang/TypeNotPresentException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="typeName()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/UnknownError" since="1">
+		<extends name="java/lang/VirtualMachineError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/UnsatisfiedLinkError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/UnsupportedClassVersionError" since="1">
+		<extends name="java/lang/ClassFormatError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/UnsupportedOperationException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/VerifyError" since="1">
+		<extends name="java/lang/LinkageError" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/VirtualMachineError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/Void" since="1">
+		<extends name="java/lang/Object" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/annotation/Annotation" since="1">
+		<method name="annotationType()Ljava/lang/Class;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="hashCode()I" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/annotation/AnnotationFormatError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/lang/annotation/AnnotationTypeMismatchException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/reflect/Method;Ljava/lang/String;)V" />
+		<method name="element()Ljava/lang/reflect/Method;" />
+		<method name="foundType()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/annotation/Documented" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/annotation/ElementType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/annotation/ElementType;" />
+		<method name="values()[Ljava/lang/annotation/ElementType;" />
+		<field name="ANNOTATION_TYPE" />
+		<field name="CONSTRUCTOR" />
+		<field name="FIELD" />
+		<field name="LOCAL_VARIABLE" />
+		<field name="METHOD" />
+		<field name="PACKAGE" />
+		<field name="PARAMETER" />
+		<field name="TYPE" />
+	</class>
+	<class name="java/lang/annotation/IncompleteAnnotationException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
+		<method name="annotationType()Ljava/lang/Class;" />
+		<method name="elementName()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/annotation/Inherited" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/annotation/Retention" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/annotation/RetentionPolicy" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/lang/annotation/RetentionPolicy;" />
+		<method name="values()[Ljava/lang/annotation/RetentionPolicy;" />
+		<field name="CLASS" />
+		<field name="RUNTIME" />
+		<field name="SOURCE" />
+	</class>
+	<class name="java/lang/annotation/Target" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/annotation/Annotation" />
+	</class>
+	<class name="java/lang/ref/PhantomReference" since="1">
+		<extends name="java/lang/ref/Reference" />
+		<method name="&lt;init>(LT;Ljava/lang/ref/ReferenceQueue;)V" />
+	</class>
+	<class name="java/lang/ref/Reference" since="1">
+		<extends name="java/lang/Object" />
+		<method name="clear()V" />
+		<method name="enqueue()Z" />
+		<method name="get()LT;" />
+		<method name="isEnqueued()Z" />
+	</class>
+	<class name="java/lang/ref/ReferenceQueue" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="poll()Ljava/lang/ref/Reference;" />
+		<method name="remove()Ljava/lang/ref/Reference;" />
+		<method name="remove(J)Ljava/lang/ref/Reference;" />
+	</class>
+	<class name="java/lang/ref/SoftReference" since="1">
+		<extends name="java/lang/ref/Reference" />
+		<method name="&lt;init>(LT;)V" />
+		<method name="&lt;init>(LT;Ljava/lang/ref/ReferenceQueue;)V" />
+	</class>
+	<class name="java/lang/ref/WeakReference" since="1">
+		<extends name="java/lang/ref/Reference" />
+		<method name="&lt;init>(LT;)V" />
+		<method name="&lt;init>(LT;Ljava/lang/ref/ReferenceQueue;)V" />
+	</class>
+	<class name="java/lang/reflect/AccessibleObject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/reflect/AnnotatedElement" />
+		<method name="&lt;init>()V" />
+		<method name="getAnnotation(Ljava/lang/Class;)LT;" />
+		<method name="getAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="isAccessible()Z" />
+		<method name="isAnnotationPresent(Ljava/lang/Class;)Z" />
+		<method name="setAccessible(Z)V" />
+		<method name="setAccessible([Ljava/lang/reflect/AccessibleObject;Z)V" />
+	</class>
+	<class name="java/lang/reflect/AnnotatedElement" since="1">
+		<method name="getAnnotation(Ljava/lang/Class;)LT;" />
+		<method name="getAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="getDeclaredAnnotations()[Ljava/lang/annotation/Annotation;" />
+		<method name="isAnnotationPresent(Ljava/lang/Class;)Z" />
+	</class>
+	<class name="java/lang/reflect/Array" since="1">
+		<extends name="java/lang/Object" />
+		<method name="get(Ljava/lang/Object;I)Ljava/lang/Object;" />
+		<method name="getBoolean(Ljava/lang/Object;I)Z" />
+		<method name="getByte(Ljava/lang/Object;I)B" />
+		<method name="getChar(Ljava/lang/Object;I)C" />
+		<method name="getDouble(Ljava/lang/Object;I)D" />
+		<method name="getFloat(Ljava/lang/Object;I)F" />
+		<method name="getInt(Ljava/lang/Object;I)I" />
+		<method name="getLength(Ljava/lang/Object;)I" />
+		<method name="getLong(Ljava/lang/Object;I)J" />
+		<method name="getShort(Ljava/lang/Object;I)S" />
+		<method name="newInstance(Ljava/lang/Class;I)Ljava/lang/Object;" />
+		<method name="newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;" />
+		<method name="set(Ljava/lang/Object;ILjava/lang/Object;)V" />
+		<method name="setBoolean(Ljava/lang/Object;IZ)V" />
+		<method name="setByte(Ljava/lang/Object;IB)V" />
+		<method name="setChar(Ljava/lang/Object;IC)V" />
+		<method name="setDouble(Ljava/lang/Object;ID)V" />
+		<method name="setFloat(Ljava/lang/Object;IF)V" />
+		<method name="setInt(Ljava/lang/Object;II)V" />
+		<method name="setLong(Ljava/lang/Object;IJ)V" />
+		<method name="setShort(Ljava/lang/Object;IS)V" />
+	</class>
+	<class name="java/lang/reflect/Constructor" since="1">
+		<extends name="java/lang/reflect/AccessibleObject" />
+		<implements name="java/lang/reflect/GenericDeclaration" />
+		<implements name="java/lang/reflect/Member" />
+		<method name="getAnnotation(Ljava/lang/Class;)LA;" since="14" />
+		<method name="getDeclaringClass()Ljava/lang/Class;" />
+		<method name="getExceptionTypes()[Ljava/lang/Class;" />
+		<method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;" />
+		<method name="getGenericParameterTypes()[Ljava/lang/reflect/Type;" />
+		<method name="getModifiers()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParameterAnnotations()[[Ljava/lang/annotation/Annotation;" />
+		<method name="getParameterTypes()[Ljava/lang/Class;" />
+		<method name="getTypeParameters()[Ljava/lang/reflect/TypeVariable;" />
+		<method name="isSynthetic()Z" />
+		<method name="isVarArgs()Z" />
+		<method name="newInstance([Ljava/lang/Object;)LT;" />
+		<method name="toGenericString()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/reflect/Field" since="1">
+		<extends name="java/lang/reflect/AccessibleObject" />
+		<implements name="java/lang/reflect/Member" />
+		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="getAnnotation(Ljava/lang/Class;)LA;" />
+		<method name="getBoolean(Ljava/lang/Object;)Z" />
+		<method name="getByte(Ljava/lang/Object;)B" />
+		<method name="getChar(Ljava/lang/Object;)C" />
+		<method name="getDeclaringClass()Ljava/lang/Class;" />
+		<method name="getDouble(Ljava/lang/Object;)D" />
+		<method name="getFloat(Ljava/lang/Object;)F" />
+		<method name="getGenericType()Ljava/lang/reflect/Type;" />
+		<method name="getInt(Ljava/lang/Object;)I" />
+		<method name="getLong(Ljava/lang/Object;)J" />
+		<method name="getModifiers()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getShort(Ljava/lang/Object;)S" />
+		<method name="getType()Ljava/lang/Class;" />
+		<method name="isEnumConstant()Z" />
+		<method name="isSynthetic()Z" />
+		<method name="set(Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="setBoolean(Ljava/lang/Object;Z)V" />
+		<method name="setByte(Ljava/lang/Object;B)V" />
+		<method name="setChar(Ljava/lang/Object;C)V" />
+		<method name="setDouble(Ljava/lang/Object;D)V" />
+		<method name="setFloat(Ljava/lang/Object;F)V" />
+		<method name="setInt(Ljava/lang/Object;I)V" />
+		<method name="setLong(Ljava/lang/Object;J)V" />
+		<method name="setShort(Ljava/lang/Object;S)V" />
+		<method name="toGenericString()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/reflect/GenericArrayType" since="1">
+		<implements name="java/lang/reflect/Type" />
+		<method name="getGenericComponentType()Ljava/lang/reflect/Type;" />
+	</class>
+	<class name="java/lang/reflect/GenericDeclaration" since="1">
+		<method name="getTypeParameters()[Ljava/lang/reflect/TypeVariable;" />
+	</class>
+	<class name="java/lang/reflect/GenericSignatureFormatError" since="1">
+		<extends name="java/lang/ClassFormatError" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/lang/reflect/InvocationHandler" since="1">
+		<method name="invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;" />
+	</class>
+	<class name="java/lang/reflect/InvocationTargetException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;Ljava/lang/String;)V" />
+		<method name="getTargetException()Ljava/lang/Throwable;" />
+	</class>
+	<class name="java/lang/reflect/MalformedParameterizedTypeException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/lang/reflect/Member" since="1">
+		<method name="getDeclaringClass()Ljava/lang/Class;" />
+		<method name="getModifiers()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="isSynthetic()Z" />
+		<field name="DECLARED" />
+		<field name="PUBLIC" />
+	</class>
+	<class name="java/lang/reflect/Method" since="1">
+		<extends name="java/lang/reflect/AccessibleObject" />
+		<implements name="java/lang/reflect/GenericDeclaration" />
+		<implements name="java/lang/reflect/Member" />
+		<method name="getAnnotation(Ljava/lang/Class;)LA;" since="14" />
+		<method name="getDeclaringClass()Ljava/lang/Class;" />
+		<method name="getDefaultValue()Ljava/lang/Object;" />
+		<method name="getExceptionTypes()[Ljava/lang/Class;" />
+		<method name="getGenericExceptionTypes()[Ljava/lang/reflect/Type;" />
+		<method name="getGenericParameterTypes()[Ljava/lang/reflect/Type;" />
+		<method name="getGenericReturnType()Ljava/lang/reflect/Type;" />
+		<method name="getModifiers()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParameterAnnotations()[[Ljava/lang/annotation/Annotation;" />
+		<method name="getParameterTypes()[Ljava/lang/Class;" />
+		<method name="getReturnType()Ljava/lang/Class;" />
+		<method name="getTypeParameters()[Ljava/lang/reflect/TypeVariable;" />
+		<method name="invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="isBridge()Z" />
+		<method name="isSynthetic()Z" />
+		<method name="isVarArgs()Z" />
+		<method name="toGenericString()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/reflect/Modifier" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="isAbstract(I)Z" />
+		<method name="isFinal(I)Z" />
+		<method name="isInterface(I)Z" />
+		<method name="isNative(I)Z" />
+		<method name="isPrivate(I)Z" />
+		<method name="isProtected(I)Z" />
+		<method name="isPublic(I)Z" />
+		<method name="isStatic(I)Z" />
+		<method name="isStrict(I)Z" />
+		<method name="isSynchronized(I)Z" />
+		<method name="isTransient(I)Z" />
+		<method name="isVolatile(I)Z" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<field name="ABSTRACT" />
+		<field name="FINAL" />
+		<field name="INTERFACE" />
+		<field name="NATIVE" />
+		<field name="PRIVATE" />
+		<field name="PROTECTED" />
+		<field name="PUBLIC" />
+		<field name="STATIC" />
+		<field name="STRICT" />
+		<field name="SYNCHRONIZED" />
+		<field name="TRANSIENT" />
+		<field name="VOLATILE" />
+	</class>
+	<class name="java/lang/reflect/ParameterizedType" since="1">
+		<implements name="java/lang/reflect/Type" />
+		<method name="getActualTypeArguments()[Ljava/lang/reflect/Type;" />
+		<method name="getOwnerType()Ljava/lang/reflect/Type;" />
+		<method name="getRawType()Ljava/lang/reflect/Type;" />
+	</class>
+	<class name="java/lang/reflect/Proxy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/reflect/InvocationHandler;)V" />
+		<method name="getInvocationHandler(Ljava/lang/Object;)Ljava/lang/reflect/InvocationHandler;" />
+		<method name="getProxyClass(Ljava/lang/ClassLoader;[Ljava/lang/Class;)Ljava/lang/Class;" />
+		<method name="isProxyClass(Ljava/lang/Class;)Z" />
+		<method name="newProxyInstance(Ljava/lang/ClassLoader;[Ljava/lang/Class;Ljava/lang/reflect/InvocationHandler;)Ljava/lang/Object;" />
+		<field name="h" />
+	</class>
+	<class name="java/lang/reflect/ReflectPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/lang/reflect/Type" since="1">
+	</class>
+	<class name="java/lang/reflect/TypeVariable" since="1">
+		<implements name="java/lang/reflect/Type" />
+		<method name="getBounds()[Ljava/lang/reflect/Type;" />
+		<method name="getGenericDeclaration()LD;" />
+		<method name="getName()Ljava/lang/String;" />
+	</class>
+	<class name="java/lang/reflect/UndeclaredThrowableException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;Ljava/lang/String;)V" />
+		<method name="getUndeclaredThrowable()Ljava/lang/Throwable;" />
+	</class>
+	<class name="java/lang/reflect/WildcardType" since="1">
+		<implements name="java/lang/reflect/Type" />
+		<method name="getLowerBounds()[Ljava/lang/reflect/Type;" />
+		<method name="getUpperBounds()[Ljava/lang/reflect/Type;" />
+	</class>
+	<class name="java/math/BigDecimal" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(D)V" />
+		<method name="&lt;init>(DLjava/math/MathContext;)V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/math/MathContext;)V" />
+		<method name="&lt;init>(J)V" />
+		<method name="&lt;init>(JLjava/math/MathContext;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/math/MathContext;)V" />
+		<method name="&lt;init>(Ljava/math/BigInteger;)V" />
+		<method name="&lt;init>(Ljava/math/BigInteger;I)V" />
+		<method name="&lt;init>(Ljava/math/BigInteger;ILjava/math/MathContext;)V" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/MathContext;)V" />
+		<method name="&lt;init>([C)V" />
+		<method name="&lt;init>([CII)V" />
+		<method name="&lt;init>([CIILjava/math/MathContext;)V" />
+		<method name="&lt;init>([CLjava/math/MathContext;)V" />
+		<method name="abs()Ljava/math/BigDecimal;" />
+		<method name="abs(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="add(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="add(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="byteValueExact()B" />
+		<method name="compareTo(Ljava/math/BigDecimal;)I" />
+		<method name="divide(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="divide(Ljava/math/BigDecimal;I)Ljava/math/BigDecimal;" />
+		<method name="divide(Ljava/math/BigDecimal;II)Ljava/math/BigDecimal;" />
+		<method name="divide(Ljava/math/BigDecimal;ILjava/math/RoundingMode;)Ljava/math/BigDecimal;" />
+		<method name="divide(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="divide(Ljava/math/BigDecimal;Ljava/math/RoundingMode;)Ljava/math/BigDecimal;" />
+		<method name="divideAndRemainder(Ljava/math/BigDecimal;)[Ljava/math/BigDecimal;" />
+		<method name="divideAndRemainder(Ljava/math/BigDecimal;Ljava/math/MathContext;)[Ljava/math/BigDecimal;" />
+		<method name="divideToIntegralValue(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="divideToIntegralValue(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="intValue()I" />
+		<method name="intValueExact()I" />
+		<method name="longValue()J" />
+		<method name="longValueExact()J" />
+		<method name="max(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="min(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="movePointLeft(I)Ljava/math/BigDecimal;" />
+		<method name="movePointRight(I)Ljava/math/BigDecimal;" />
+		<method name="multiply(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="multiply(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="negate()Ljava/math/BigDecimal;" />
+		<method name="negate(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="plus()Ljava/math/BigDecimal;" />
+		<method name="plus(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="pow(I)Ljava/math/BigDecimal;" />
+		<method name="pow(ILjava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="precision()I" />
+		<method name="remainder(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="remainder(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="round(Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="scale()I" />
+		<method name="scaleByPowerOfTen(I)Ljava/math/BigDecimal;" />
+		<method name="setScale(I)Ljava/math/BigDecimal;" />
+		<method name="setScale(II)Ljava/math/BigDecimal;" />
+		<method name="setScale(ILjava/math/RoundingMode;)Ljava/math/BigDecimal;" />
+		<method name="shortValueExact()S" />
+		<method name="signum()I" />
+		<method name="stripTrailingZeros()Ljava/math/BigDecimal;" />
+		<method name="subtract(Ljava/math/BigDecimal;)Ljava/math/BigDecimal;" />
+		<method name="subtract(Ljava/math/BigDecimal;Ljava/math/MathContext;)Ljava/math/BigDecimal;" />
+		<method name="toBigInteger()Ljava/math/BigInteger;" />
+		<method name="toBigIntegerExact()Ljava/math/BigInteger;" />
+		<method name="toEngineeringString()Ljava/lang/String;" />
+		<method name="toPlainString()Ljava/lang/String;" />
+		<method name="ulp()Ljava/math/BigDecimal;" />
+		<method name="unscaledValue()Ljava/math/BigInteger;" />
+		<method name="valueOf(D)Ljava/math/BigDecimal;" />
+		<method name="valueOf(J)Ljava/math/BigDecimal;" />
+		<method name="valueOf(JI)Ljava/math/BigDecimal;" />
+		<field name="ONE" />
+		<field name="ROUND_CEILING" />
+		<field name="ROUND_DOWN" />
+		<field name="ROUND_FLOOR" />
+		<field name="ROUND_HALF_DOWN" />
+		<field name="ROUND_HALF_EVEN" />
+		<field name="ROUND_HALF_UP" />
+		<field name="ROUND_UNNECESSARY" />
+		<field name="ROUND_UP" />
+		<field name="TEN" />
+		<field name="ZERO" />
+	</class>
+	<class name="java/math/BigInteger" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(IILjava/util/Random;)V" />
+		<method name="&lt;init>(ILjava/util/Random;)V" />
+		<method name="&lt;init>(I[B)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>([B)V" />
+		<method name="abs()Ljava/math/BigInteger;" />
+		<method name="add(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="and(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="andNot(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="bitCount()I" />
+		<method name="bitLength()I" />
+		<method name="clearBit(I)Ljava/math/BigInteger;" />
+		<method name="compareTo(Ljava/math/BigInteger;)I" />
+		<method name="divide(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="divideAndRemainder(Ljava/math/BigInteger;)[Ljava/math/BigInteger;" />
+		<method name="doubleValue()D" />
+		<method name="flipBit(I)Ljava/math/BigInteger;" />
+		<method name="floatValue()F" />
+		<method name="gcd(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="getLowestSetBit()I" />
+		<method name="intValue()I" />
+		<method name="isProbablePrime(I)Z" />
+		<method name="longValue()J" />
+		<method name="max(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="min(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="mod(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="modInverse(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="modPow(Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="multiply(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="negate()Ljava/math/BigInteger;" />
+		<method name="nextProbablePrime()Ljava/math/BigInteger;" />
+		<method name="not()Ljava/math/BigInteger;" />
+		<method name="or(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="pow(I)Ljava/math/BigInteger;" />
+		<method name="probablePrime(ILjava/util/Random;)Ljava/math/BigInteger;" />
+		<method name="remainder(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="setBit(I)Ljava/math/BigInteger;" />
+		<method name="shiftLeft(I)Ljava/math/BigInteger;" />
+		<method name="shiftRight(I)Ljava/math/BigInteger;" />
+		<method name="signum()I" />
+		<method name="subtract(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<method name="testBit(I)Z" />
+		<method name="toByteArray()[B" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<method name="valueOf(J)Ljava/math/BigInteger;" />
+		<method name="xor(Ljava/math/BigInteger;)Ljava/math/BigInteger;" />
+		<field name="ONE" />
+		<field name="TEN" />
+		<field name="ZERO" />
+	</class>
+	<class name="java/math/MathContext" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/math/RoundingMode;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getPrecision()I" />
+		<method name="getRoundingMode()Ljava/math/RoundingMode;" />
+		<field name="DECIMAL128" />
+		<field name="DECIMAL32" />
+		<field name="DECIMAL64" />
+		<field name="UNLIMITED" />
+	</class>
+	<class name="java/math/RoundingMode" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(I)Ljava/math/RoundingMode;" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/math/RoundingMode;" />
+		<method name="values()[Ljava/math/RoundingMode;" />
+		<field name="CEILING" />
+		<field name="DOWN" />
+		<field name="FLOOR" />
+		<field name="HALF_DOWN" />
+		<field name="HALF_EVEN" />
+		<field name="HALF_UP" />
+		<field name="UNNECESSARY" />
+		<field name="UP" />
+	</class>
+	<class name="java/net/Authenticator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getPasswordAuthentication()Ljava/net/PasswordAuthentication;" />
+		<method name="getRequestingHost()Ljava/lang/String;" />
+		<method name="getRequestingPort()I" />
+		<method name="getRequestingPrompt()Ljava/lang/String;" />
+		<method name="getRequestingProtocol()Ljava/lang/String;" />
+		<method name="getRequestingScheme()Ljava/lang/String;" />
+		<method name="getRequestingSite()Ljava/net/InetAddress;" />
+		<method name="getRequestingURL()Ljava/net/URL;" />
+		<method name="getRequestorType()Ljava/net/Authenticator$RequestorType;" />
+		<method name="requestPasswordAuthentication(Ljava/lang/String;Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/PasswordAuthentication;" />
+		<method name="requestPasswordAuthentication(Ljava/lang/String;Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/net/URL;Ljava/net/Authenticator$RequestorType;)Ljava/net/PasswordAuthentication;" />
+		<method name="requestPasswordAuthentication(Ljava/net/InetAddress;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/PasswordAuthentication;" />
+		<method name="setDefault(Ljava/net/Authenticator;)V" />
+	</class>
+	<class name="java/net/Authenticator$RequestorType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/net/Authenticator$RequestorType;" />
+		<method name="values()[Ljava/net/Authenticator$RequestorType;" />
+		<field name="PROXY" />
+		<field name="SERVER" />
+	</class>
+	<class name="java/net/BindException" since="1">
+		<extends name="java/net/SocketException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/CacheRequest" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="abort()V" />
+		<method name="getBody()Ljava/io/OutputStream;" />
+	</class>
+	<class name="java/net/CacheResponse" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getBody()Ljava/io/InputStream;" />
+		<method name="getHeaders()Ljava/util/Map;" />
+	</class>
+	<class name="java/net/ConnectException" since="1">
+		<extends name="java/net/SocketException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/ContentHandler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getContent(Ljava/net/URLConnection;)Ljava/lang/Object;" />
+		<method name="getContent(Ljava/net/URLConnection;[Ljava/lang/Class;)Ljava/lang/Object;" />
+	</class>
+	<class name="java/net/ContentHandlerFactory" since="1">
+		<method name="createContentHandler(Ljava/lang/String;)Ljava/net/ContentHandler;" />
+	</class>
+	<class name="java/net/CookieHandler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map;" />
+		<method name="getDefault()Ljava/net/CookieHandler;" />
+		<method name="put(Ljava/net/URI;Ljava/util/Map;)V" />
+		<method name="setDefault(Ljava/net/CookieHandler;)V" />
+	</class>
+	<class name="java/net/CookieManager" since="9">
+		<extends name="java/net/CookieHandler" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/net/CookieStore;Ljava/net/CookiePolicy;)V" />
+		<method name="get(Ljava/net/URI;Ljava/util/Map;)Ljava/util/Map;" />
+		<method name="getCookieStore()Ljava/net/CookieStore;" />
+		<method name="put(Ljava/net/URI;Ljava/util/Map;)V" />
+		<method name="setCookiePolicy(Ljava/net/CookiePolicy;)V" />
+	</class>
+	<class name="java/net/CookiePolicy" since="9">
+		<method name="shouldAccept(Ljava/net/URI;Ljava/net/HttpCookie;)Z" />
+		<field name="ACCEPT_ALL" />
+		<field name="ACCEPT_NONE" />
+		<field name="ACCEPT_ORIGINAL_SERVER" />
+	</class>
+	<class name="java/net/CookieStore" since="9">
+		<method name="add(Ljava/net/URI;Ljava/net/HttpCookie;)V" />
+		<method name="get(Ljava/net/URI;)Ljava/util/List;" />
+		<method name="getCookies()Ljava/util/List;" />
+		<method name="getURIs()Ljava/util/List;" />
+		<method name="remove(Ljava/net/URI;Ljava/net/HttpCookie;)Z" />
+		<method name="removeAll()Z" />
+	</class>
+	<class name="java/net/DatagramPacket" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>([BI)V" />
+		<method name="&lt;init>([BII)V" />
+		<method name="&lt;init>([BIILjava/net/InetAddress;I)V" />
+		<method name="&lt;init>([BIILjava/net/SocketAddress;)V" />
+		<method name="&lt;init>([BILjava/net/InetAddress;I)V" />
+		<method name="&lt;init>([BILjava/net/SocketAddress;)V" />
+		<method name="getAddress()Ljava/net/InetAddress;" />
+		<method name="getData()[B" />
+		<method name="getLength()I" />
+		<method name="getOffset()I" />
+		<method name="getPort()I" />
+		<method name="getSocketAddress()Ljava/net/SocketAddress;" />
+		<method name="setAddress(Ljava/net/InetAddress;)V" />
+		<method name="setData([B)V" />
+		<method name="setData([BII)V" />
+		<method name="setLength(I)V" />
+		<method name="setPort(I)V" />
+		<method name="setSocketAddress(Ljava/net/SocketAddress;)V" />
+	</class>
+	<class name="java/net/DatagramSocket" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/net/InetAddress;)V" />
+		<method name="&lt;init>(Ljava/net/DatagramSocketImpl;)V" />
+		<method name="&lt;init>(Ljava/net/SocketAddress;)V" />
+		<method name="bind(Ljava/net/SocketAddress;)V" />
+		<method name="close()V" />
+		<method name="connect(Ljava/net/InetAddress;I)V" />
+		<method name="connect(Ljava/net/SocketAddress;)V" />
+		<method name="disconnect()V" />
+		<method name="getBroadcast()Z" />
+		<method name="getChannel()Ljava/nio/channels/DatagramChannel;" />
+		<method name="getInetAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getLocalSocketAddress()Ljava/net/SocketAddress;" />
+		<method name="getPort()I" />
+		<method name="getReceiveBufferSize()I" />
+		<method name="getRemoteSocketAddress()Ljava/net/SocketAddress;" />
+		<method name="getReuseAddress()Z" />
+		<method name="getSendBufferSize()I" />
+		<method name="getSoTimeout()I" />
+		<method name="getTrafficClass()I" />
+		<method name="isBound()Z" />
+		<method name="isClosed()Z" />
+		<method name="isConnected()Z" />
+		<method name="receive(Ljava/net/DatagramPacket;)V" />
+		<method name="send(Ljava/net/DatagramPacket;)V" />
+		<method name="setBroadcast(Z)V" />
+		<method name="setDatagramSocketImplFactory(Ljava/net/DatagramSocketImplFactory;)V" />
+		<method name="setReceiveBufferSize(I)V" />
+		<method name="setReuseAddress(Z)V" />
+		<method name="setSendBufferSize(I)V" />
+		<method name="setSoTimeout(I)V" />
+		<method name="setTrafficClass(I)V" />
+	</class>
+	<class name="java/net/DatagramSocketImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/net/SocketOptions" />
+		<method name="&lt;init>()V" />
+		<method name="bind(ILjava/net/InetAddress;)V" />
+		<method name="close()V" />
+		<method name="connect(Ljava/net/InetAddress;I)V" />
+		<method name="create()V" />
+		<method name="disconnect()V" />
+		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
+		<method name="getLocalPort()I" />
+		<method name="getOption(I)Ljava/lang/Object;" />
+		<method name="getTTL()B" />
+		<method name="getTimeToLive()I" />
+		<method name="join(Ljava/net/InetAddress;)V" />
+		<method name="joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
+		<method name="leave(Ljava/net/InetAddress;)V" />
+		<method name="leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
+		<method name="peek(Ljava/net/InetAddress;)I" />
+		<method name="peekData(Ljava/net/DatagramPacket;)I" />
+		<method name="receive(Ljava/net/DatagramPacket;)V" />
+		<method name="send(Ljava/net/DatagramPacket;)V" />
+		<method name="setOption(ILjava/lang/Object;)V" />
+		<method name="setTTL(B)V" />
+		<method name="setTimeToLive(I)V" />
+		<field name="fd" />
+		<field name="localPort" />
+	</class>
+	<class name="java/net/DatagramSocketImplFactory" since="1">
+		<method name="createDatagramSocketImpl()Ljava/net/DatagramSocketImpl;" />
+	</class>
+	<class name="java/net/FileNameMap" since="1">
+		<method name="getContentTypeFor(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="java/net/HttpCookie" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="domainMatches(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="getComment()Ljava/lang/String;" />
+		<method name="getCommentURL()Ljava/lang/String;" />
+		<method name="getDiscard()Z" />
+		<method name="getDomain()Ljava/lang/String;" />
+		<method name="getMaxAge()J" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPortlist()Ljava/lang/String;" />
+		<method name="getSecure()Z" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="getVersion()I" />
+		<method name="hasExpired()Z" />
+		<method name="parse(Ljava/lang/String;)Ljava/util/List;" />
+		<method name="setComment(Ljava/lang/String;)V" />
+		<method name="setCommentURL(Ljava/lang/String;)V" />
+		<method name="setDiscard(Z)V" />
+		<method name="setDomain(Ljava/lang/String;)V" />
+		<method name="setMaxAge(J)V" />
+		<method name="setPath(Ljava/lang/String;)V" />
+		<method name="setPortlist(Ljava/lang/String;)V" />
+		<method name="setSecure(Z)V" />
+		<method name="setValue(Ljava/lang/String;)V" />
+		<method name="setVersion(I)V" />
+	</class>
+	<class name="java/net/HttpRetryException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="getLocation()Ljava/lang/String;" />
+		<method name="getReason()Ljava/lang/String;" />
+		<method name="responseCode()I" />
+	</class>
+	<class name="java/net/HttpURLConnection" since="1">
+		<extends name="java/net/URLConnection" />
+		<method name="&lt;init>(Ljava/net/URL;)V" />
+		<method name="disconnect()V" />
+		<method name="getErrorStream()Ljava/io/InputStream;" />
+		<method name="getFollowRedirects()Z" />
+		<method name="getInstanceFollowRedirects()Z" />
+		<method name="getRequestMethod()Ljava/lang/String;" />
+		<method name="getResponseCode()I" />
+		<method name="getResponseMessage()Ljava/lang/String;" />
+		<method name="setChunkedStreamingMode(I)V" />
+		<method name="setFixedLengthStreamingMode(I)V" />
+		<method name="setFollowRedirects(Z)V" />
+		<method name="setInstanceFollowRedirects(Z)V" />
+		<method name="setRequestMethod(Ljava/lang/String;)V" />
+		<method name="usingProxy()Z" />
+		<field name="HTTP_ACCEPTED" />
+		<field name="HTTP_BAD_GATEWAY" />
+		<field name="HTTP_BAD_METHOD" />
+		<field name="HTTP_BAD_REQUEST" />
+		<field name="HTTP_CLIENT_TIMEOUT" />
+		<field name="HTTP_CONFLICT" />
+		<field name="HTTP_CREATED" />
+		<field name="HTTP_ENTITY_TOO_LARGE" />
+		<field name="HTTP_FORBIDDEN" />
+		<field name="HTTP_GATEWAY_TIMEOUT" />
+		<field name="HTTP_GONE" />
+		<field name="HTTP_INTERNAL_ERROR" />
+		<field name="HTTP_LENGTH_REQUIRED" />
+		<field name="HTTP_MOVED_PERM" />
+		<field name="HTTP_MOVED_TEMP" />
+		<field name="HTTP_MULT_CHOICE" />
+		<field name="HTTP_NOT_ACCEPTABLE" />
+		<field name="HTTP_NOT_AUTHORITATIVE" />
+		<field name="HTTP_NOT_FOUND" />
+		<field name="HTTP_NOT_IMPLEMENTED" />
+		<field name="HTTP_NOT_MODIFIED" />
+		<field name="HTTP_NO_CONTENT" />
+		<field name="HTTP_OK" />
+		<field name="HTTP_PARTIAL" />
+		<field name="HTTP_PAYMENT_REQUIRED" />
+		<field name="HTTP_PRECON_FAILED" />
+		<field name="HTTP_PROXY_AUTH" />
+		<field name="HTTP_REQ_TOO_LONG" />
+		<field name="HTTP_RESET" />
+		<field name="HTTP_SEE_OTHER" />
+		<field name="HTTP_SERVER_ERROR" />
+		<field name="HTTP_UNAUTHORIZED" />
+		<field name="HTTP_UNAVAILABLE" />
+		<field name="HTTP_UNSUPPORTED_TYPE" />
+		<field name="HTTP_USE_PROXY" />
+		<field name="HTTP_VERSION" />
+		<field name="chunkLength" />
+		<field name="fixedContentLength" />
+		<field name="instanceFollowRedirects" />
+		<field name="method" />
+		<field name="responseCode" />
+		<field name="responseMessage" />
+	</class>
+	<class name="java/net/IDN" since="9">
+		<extends name="java/lang/Object" />
+		<method name="toASCII(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="toASCII(Ljava/lang/String;I)Ljava/lang/String;" />
+		<method name="toUnicode(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="toUnicode(Ljava/lang/String;I)Ljava/lang/String;" />
+		<field name="ALLOW_UNASSIGNED" />
+		<field name="USE_STD3_ASCII_RULES" />
+	</class>
+	<class name="java/net/Inet4Address" since="1">
+		<extends name="java/net/InetAddress" />
+	</class>
+	<class name="java/net/Inet6Address" since="1">
+		<extends name="java/net/InetAddress" />
+		<method name="getByAddress(Ljava/lang/String;[BI)Ljava/net/Inet6Address;" />
+		<method name="getByAddress(Ljava/lang/String;[BLjava/net/NetworkInterface;)Ljava/net/Inet6Address;" />
+		<method name="getScopeId()I" />
+		<method name="getScopedInterface()Ljava/net/NetworkInterface;" />
+		<method name="isIPv4CompatibleAddress()Z" />
+	</class>
+	<class name="java/net/InetAddress" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="getAddress()[B" />
+		<method name="getAllByName(Ljava/lang/String;)[Ljava/net/InetAddress;" />
+		<method name="getByAddress(Ljava/lang/String;[B)Ljava/net/InetAddress;" />
+		<method name="getByAddress([B)Ljava/net/InetAddress;" />
+		<method name="getByName(Ljava/lang/String;)Ljava/net/InetAddress;" />
+		<method name="getCanonicalHostName()Ljava/lang/String;" />
+		<method name="getHostAddress()Ljava/lang/String;" />
+		<method name="getHostName()Ljava/lang/String;" />
+		<method name="getLocalHost()Ljava/net/InetAddress;" />
+		<method name="isAnyLocalAddress()Z" />
+		<method name="isLinkLocalAddress()Z" />
+		<method name="isLoopbackAddress()Z" />
+		<method name="isMCGlobal()Z" />
+		<method name="isMCLinkLocal()Z" />
+		<method name="isMCNodeLocal()Z" />
+		<method name="isMCOrgLocal()Z" />
+		<method name="isMCSiteLocal()Z" />
+		<method name="isMulticastAddress()Z" />
+		<method name="isReachable(I)Z" />
+		<method name="isReachable(Ljava/net/NetworkInterface;II)Z" />
+		<method name="isSiteLocalAddress()Z" />
+	</class>
+	<class name="java/net/InetSocketAddress" since="1">
+		<extends name="java/net/SocketAddress" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/net/InetAddress;I)V" />
+		<method name="createUnresolved(Ljava/lang/String;I)Ljava/net/InetSocketAddress;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getAddress()Ljava/net/InetAddress;" />
+		<method name="getHostName()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="hashCode()I" />
+		<method name="isUnresolved()Z" />
+	</class>
+	<class name="java/net/InterfaceAddress" since="9">
+		<extends name="java/lang/Object" />
+		<method name="getAddress()Ljava/net/InetAddress;" />
+		<method name="getBroadcast()Ljava/net/InetAddress;" />
+		<method name="getNetworkPrefixLength()S" />
+	</class>
+	<class name="java/net/JarURLConnection" since="1">
+		<extends name="java/net/URLConnection" />
+		<method name="&lt;init>(Ljava/net/URL;)V" />
+		<method name="getAttributes()Ljava/util/jar/Attributes;" />
+		<method name="getCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getEntryName()Ljava/lang/String;" />
+		<method name="getJarEntry()Ljava/util/jar/JarEntry;" />
+		<method name="getJarFile()Ljava/util/jar/JarFile;" />
+		<method name="getJarFileURL()Ljava/net/URL;" />
+		<method name="getMainAttributes()Ljava/util/jar/Attributes;" />
+		<method name="getManifest()Ljava/util/jar/Manifest;" />
+		<field name="jarFileURLConnection" />
+	</class>
+	<class name="java/net/MalformedURLException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/MulticastSocket" since="1">
+		<extends name="java/net/DatagramSocket" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/net/SocketAddress;)V" />
+		<method name="getInterface()Ljava/net/InetAddress;" />
+		<method name="getLoopbackMode()Z" />
+		<method name="getNetworkInterface()Ljava/net/NetworkInterface;" />
+		<method name="getTTL()B" />
+		<method name="getTimeToLive()I" />
+		<method name="joinGroup(Ljava/net/InetAddress;)V" />
+		<method name="joinGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
+		<method name="leaveGroup(Ljava/net/InetAddress;)V" />
+		<method name="leaveGroup(Ljava/net/SocketAddress;Ljava/net/NetworkInterface;)V" />
+		<method name="send(Ljava/net/DatagramPacket;B)V" />
+		<method name="setInterface(Ljava/net/InetAddress;)V" />
+		<method name="setLoopbackMode(Z)V" />
+		<method name="setNetworkInterface(Ljava/net/NetworkInterface;)V" />
+		<method name="setTTL(B)V" />
+		<method name="setTimeToLive(I)V" />
+	</class>
+	<class name="java/net/NetPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/NetworkInterface" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getByInetAddress(Ljava/net/InetAddress;)Ljava/net/NetworkInterface;" />
+		<method name="getByName(Ljava/lang/String;)Ljava/net/NetworkInterface;" />
+		<method name="getDisplayName()Ljava/lang/String;" />
+		<method name="getHardwareAddress()[B" since="9" />
+		<method name="getInetAddresses()Ljava/util/Enumeration;" />
+		<method name="getInterfaceAddresses()Ljava/util/List;" since="9" />
+		<method name="getMTU()I" since="9" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getNetworkInterfaces()Ljava/util/Enumeration;" />
+		<method name="getParent()Ljava/net/NetworkInterface;" since="9" />
+		<method name="getSubInterfaces()Ljava/util/Enumeration;" since="9" />
+		<method name="isLoopback()Z" since="9" />
+		<method name="isPointToPoint()Z" since="9" />
+		<method name="isUp()Z" since="9" />
+		<method name="isVirtual()Z" since="9" />
+		<method name="supportsMulticast()Z" since="9" />
+	</class>
+	<class name="java/net/NoRouteToHostException" since="1">
+		<extends name="java/net/SocketException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/PasswordAuthentication" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;[C)V" />
+		<method name="getPassword()[C" />
+		<method name="getUserName()Ljava/lang/String;" />
+	</class>
+	<class name="java/net/PortUnreachableException" since="1">
+		<extends name="java/net/SocketException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/ProtocolException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/Proxy" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/net/Proxy$Type;Ljava/net/SocketAddress;)V" />
+		<method name="address()Ljava/net/SocketAddress;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="hashCode()I" />
+		<method name="type()Ljava/net/Proxy$Type;" />
+		<field name="NO_PROXY" />
+	</class>
+	<class name="java/net/Proxy$Type" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/net/Proxy$Type;" />
+		<method name="values()[Ljava/net/Proxy$Type;" />
+		<field name="DIRECT" />
+		<field name="HTTP" />
+		<field name="SOCKS" />
+	</class>
+	<class name="java/net/ProxySelector" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="connectFailed(Ljava/net/URI;Ljava/net/SocketAddress;Ljava/io/IOException;)V" />
+		<method name="getDefault()Ljava/net/ProxySelector;" />
+		<method name="select(Ljava/net/URI;)Ljava/util/List;" />
+		<method name="setDefault(Ljava/net/ProxySelector;)V" />
+	</class>
+	<class name="java/net/ResponseCache" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="get(Ljava/net/URI;Ljava/lang/String;Ljava/util/Map;)Ljava/net/CacheResponse;" />
+		<method name="getDefault()Ljava/net/ResponseCache;" />
+		<method name="put(Ljava/net/URI;Ljava/net/URLConnection;)Ljava/net/CacheRequest;" />
+		<method name="setDefault(Ljava/net/ResponseCache;)V" />
+	</class>
+	<class name="java/net/SecureCacheResponse" since="1">
+		<extends name="java/net/CacheResponse" />
+		<method name="&lt;init>()V" />
+		<method name="getCipherSuite()Ljava/lang/String;" />
+		<method name="getLocalCertificateChain()Ljava/util/List;" />
+		<method name="getLocalPrincipal()Ljava/security/Principal;" />
+		<method name="getPeerPrincipal()Ljava/security/Principal;" />
+		<method name="getServerCertificateChain()Ljava/util/List;" />
+	</class>
+	<class name="java/net/ServerSocket" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(IILjava/net/InetAddress;)V" />
+		<method name="&lt;init>(Ljava/net/SocketImpl;)V" />
+		<method name="accept()Ljava/net/Socket;" />
+		<method name="bind(Ljava/net/SocketAddress;)V" />
+		<method name="bind(Ljava/net/SocketAddress;I)V" />
+		<method name="close()V" />
+		<method name="getChannel()Ljava/nio/channels/ServerSocketChannel;" />
+		<method name="getInetAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getLocalSocketAddress()Ljava/net/SocketAddress;" />
+		<method name="getReceiveBufferSize()I" />
+		<method name="getReuseAddress()Z" />
+		<method name="getSoTimeout()I" />
+		<method name="implAccept(Ljava/net/Socket;)V" />
+		<method name="isBound()Z" />
+		<method name="isClosed()Z" />
+		<method name="setPerformancePreferences(III)V" />
+		<method name="setReceiveBufferSize(I)V" />
+		<method name="setReuseAddress(Z)V" />
+		<method name="setSoTimeout(I)V" />
+		<method name="setSocketFactory(Ljava/net/SocketImplFactory;)V" />
+	</class>
+	<class name="java/net/Socket" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/net/InetAddress;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;IZ)V" />
+		<method name="&lt;init>(Ljava/net/InetAddress;I)V" />
+		<method name="&lt;init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V" />
+		<method name="&lt;init>(Ljava/net/InetAddress;IZ)V" />
+		<method name="&lt;init>(Ljava/net/Proxy;)V" />
+		<method name="&lt;init>(Ljava/net/SocketImpl;)V" />
+		<method name="bind(Ljava/net/SocketAddress;)V" />
+		<method name="close()V" />
+		<method name="connect(Ljava/net/SocketAddress;)V" />
+		<method name="connect(Ljava/net/SocketAddress;I)V" />
+		<method name="getChannel()Ljava/nio/channels/SocketChannel;" />
+		<method name="getInetAddress()Ljava/net/InetAddress;" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getKeepAlive()Z" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getLocalSocketAddress()Ljava/net/SocketAddress;" />
+		<method name="getOOBInline()Z" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="getPort()I" />
+		<method name="getReceiveBufferSize()I" />
+		<method name="getRemoteSocketAddress()Ljava/net/SocketAddress;" />
+		<method name="getReuseAddress()Z" />
+		<method name="getSendBufferSize()I" />
+		<method name="getSoLinger()I" />
+		<method name="getSoTimeout()I" />
+		<method name="getTcpNoDelay()Z" />
+		<method name="getTrafficClass()I" />
+		<method name="isBound()Z" />
+		<method name="isClosed()Z" />
+		<method name="isConnected()Z" />
+		<method name="isInputShutdown()Z" />
+		<method name="isOutputShutdown()Z" />
+		<method name="sendUrgentData(I)V" />
+		<method name="setKeepAlive(Z)V" />
+		<method name="setOOBInline(Z)V" />
+		<method name="setPerformancePreferences(III)V" />
+		<method name="setReceiveBufferSize(I)V" />
+		<method name="setReuseAddress(Z)V" />
+		<method name="setSendBufferSize(I)V" />
+		<method name="setSoLinger(ZI)V" />
+		<method name="setSoTimeout(I)V" />
+		<method name="setSocketImplFactory(Ljava/net/SocketImplFactory;)V" />
+		<method name="setTcpNoDelay(Z)V" />
+		<method name="setTrafficClass(I)V" />
+		<method name="shutdownInput()V" />
+		<method name="shutdownOutput()V" />
+	</class>
+	<class name="java/net/SocketAddress" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/net/SocketException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/SocketImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/net/SocketOptions" />
+		<method name="&lt;init>()V" />
+		<method name="accept(Ljava/net/SocketImpl;)V" />
+		<method name="available()I" />
+		<method name="bind(Ljava/net/InetAddress;I)V" />
+		<method name="close()V" />
+		<method name="connect(Ljava/lang/String;I)V" />
+		<method name="connect(Ljava/net/InetAddress;I)V" />
+		<method name="connect(Ljava/net/SocketAddress;I)V" />
+		<method name="create(Z)V" />
+		<method name="getFileDescriptor()Ljava/io/FileDescriptor;" />
+		<method name="getInetAddress()Ljava/net/InetAddress;" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getLocalPort()I" />
+		<method name="getOption(I)Ljava/lang/Object;" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="getPort()I" />
+		<method name="listen(I)V" />
+		<method name="sendUrgentData(I)V" />
+		<method name="setOption(ILjava/lang/Object;)V" />
+		<method name="setPerformancePreferences(III)V" />
+		<method name="shutdownInput()V" />
+		<method name="shutdownOutput()V" />
+		<method name="supportsUrgentData()Z" />
+		<field name="address" />
+		<field name="fd" />
+		<field name="localport" />
+		<field name="port" />
+	</class>
+	<class name="java/net/SocketImplFactory" since="1">
+		<method name="createSocketImpl()Ljava/net/SocketImpl;" />
+	</class>
+	<class name="java/net/SocketOptions" since="1">
+		<method name="getOption(I)Ljava/lang/Object;" />
+		<method name="setOption(ILjava/lang/Object;)V" />
+		<field name="IP_MULTICAST_IF" />
+		<field name="IP_MULTICAST_IF2" />
+		<field name="IP_MULTICAST_LOOP" />
+		<field name="IP_TOS" />
+		<field name="SO_BINDADDR" />
+		<field name="SO_BROADCAST" />
+		<field name="SO_KEEPALIVE" />
+		<field name="SO_LINGER" />
+		<field name="SO_OOBINLINE" />
+		<field name="SO_RCVBUF" />
+		<field name="SO_REUSEADDR" />
+		<field name="SO_SNDBUF" />
+		<field name="SO_TIMEOUT" />
+		<field name="TCP_NODELAY" />
+	</class>
+	<class name="java/net/SocketPermission" since="1">
+		<extends name="java/security/Permission" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/net/SocketTimeoutException" since="1">
+		<extends name="java/io/InterruptedIOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/URI" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="compareTo(Ljava/net/URI;)I" />
+		<method name="create(Ljava/lang/String;)Ljava/net/URI;" />
+		<method name="getAuthority()Ljava/lang/String;" />
+		<method name="getFragment()Ljava/lang/String;" />
+		<method name="getHost()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="getQuery()Ljava/lang/String;" />
+		<method name="getRawAuthority()Ljava/lang/String;" />
+		<method name="getRawFragment()Ljava/lang/String;" />
+		<method name="getRawPath()Ljava/lang/String;" />
+		<method name="getRawQuery()Ljava/lang/String;" />
+		<method name="getRawSchemeSpecificPart()Ljava/lang/String;" />
+		<method name="getRawUserInfo()Ljava/lang/String;" />
+		<method name="getScheme()Ljava/lang/String;" />
+		<method name="getSchemeSpecificPart()Ljava/lang/String;" />
+		<method name="getUserInfo()Ljava/lang/String;" />
+		<method name="isAbsolute()Z" />
+		<method name="isOpaque()Z" />
+		<method name="normalize()Ljava/net/URI;" />
+		<method name="parseServerAuthority()Ljava/net/URI;" />
+		<method name="relativize(Ljava/net/URI;)Ljava/net/URI;" />
+		<method name="resolve(Ljava/lang/String;)Ljava/net/URI;" />
+		<method name="resolve(Ljava/net/URI;)Ljava/net/URI;" />
+		<method name="toASCIIString()Ljava/lang/String;" />
+		<method name="toURL()Ljava/net/URL;" />
+	</class>
+	<class name="java/net/URISyntaxException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="getIndex()I" />
+		<method name="getInput()Ljava/lang/String;" />
+		<method name="getReason()Ljava/lang/String;" />
+	</class>
+	<class name="java/net/URL" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/net/URLStreamHandler;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URL;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URL;Ljava/lang/String;Ljava/net/URLStreamHandler;)V" />
+		<method name="getAuthority()Ljava/lang/String;" />
+		<method name="getContent()Ljava/lang/Object;" />
+		<method name="getContent([Ljava/lang/Class;)Ljava/lang/Object;" />
+		<method name="getDefaultPort()I" />
+		<method name="getFile()Ljava/lang/String;" />
+		<method name="getHost()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="getProtocol()Ljava/lang/String;" />
+		<method name="getQuery()Ljava/lang/String;" />
+		<method name="getRef()Ljava/lang/String;" />
+		<method name="getUserInfo()Ljava/lang/String;" />
+		<method name="openConnection()Ljava/net/URLConnection;" />
+		<method name="openConnection(Ljava/net/Proxy;)Ljava/net/URLConnection;" />
+		<method name="openStream()Ljava/io/InputStream;" />
+		<method name="sameFile(Ljava/net/URL;)Z" />
+		<method name="set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="set(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setURLStreamHandlerFactory(Ljava/net/URLStreamHandlerFactory;)V" />
+		<method name="toExternalForm()Ljava/lang/String;" />
+		<method name="toURI()Ljava/net/URI;" />
+	</class>
+	<class name="java/net/URLClassLoader" since="1">
+		<extends name="java/security/SecureClassLoader" />
+		<method name="&lt;init>([Ljava/net/URL;)V" />
+		<method name="&lt;init>([Ljava/net/URL;Ljava/lang/ClassLoader;)V" />
+		<method name="&lt;init>([Ljava/net/URL;Ljava/lang/ClassLoader;Ljava/net/URLStreamHandlerFactory;)V" />
+		<method name="addURL(Ljava/net/URL;)V" />
+		<method name="definePackage(Ljava/lang/String;Ljava/util/jar/Manifest;Ljava/net/URL;)Ljava/lang/Package;" />
+		<method name="findResource(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="findResources(Ljava/lang/String;)Ljava/util/Enumeration;" />
+		<method name="getURLs()[Ljava/net/URL;" />
+		<method name="newInstance([Ljava/net/URL;)Ljava/net/URLClassLoader;" />
+		<method name="newInstance([Ljava/net/URL;Ljava/lang/ClassLoader;)Ljava/net/URLClassLoader;" />
+	</class>
+	<class name="java/net/URLConnection" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/net/URL;)V" />
+		<method name="addRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="connect()V" />
+		<method name="getAllowUserInteraction()Z" />
+		<method name="getConnectTimeout()I" />
+		<method name="getContent()Ljava/lang/Object;" />
+		<method name="getContent([Ljava/lang/Class;)Ljava/lang/Object;" />
+		<method name="getContentEncoding()Ljava/lang/String;" />
+		<method name="getContentLength()I" />
+		<method name="getContentType()Ljava/lang/String;" />
+		<method name="getDate()J" />
+		<method name="getDefaultAllowUserInteraction()Z" />
+		<method name="getDefaultRequestProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getDefaultUseCaches()Z" />
+		<method name="getDoInput()Z" />
+		<method name="getDoOutput()Z" />
+		<method name="getExpiration()J" />
+		<method name="getFileNameMap()Ljava/net/FileNameMap;" />
+		<method name="getHeaderField(I)Ljava/lang/String;" />
+		<method name="getHeaderField(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getHeaderFieldDate(Ljava/lang/String;J)J" />
+		<method name="getHeaderFieldInt(Ljava/lang/String;I)I" />
+		<method name="getHeaderFieldKey(I)Ljava/lang/String;" />
+		<method name="getHeaderFields()Ljava/util/Map;" />
+		<method name="getIfModifiedSince()J" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getLastModified()J" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="getPermission()Ljava/security/Permission;" />
+		<method name="getReadTimeout()I" />
+		<method name="getRequestProperties()Ljava/util/Map;" />
+		<method name="getRequestProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getURL()Ljava/net/URL;" />
+		<method name="getUseCaches()Z" />
+		<method name="guessContentTypeFromName(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="guessContentTypeFromStream(Ljava/io/InputStream;)Ljava/lang/String;" />
+		<method name="setAllowUserInteraction(Z)V" />
+		<method name="setConnectTimeout(I)V" />
+		<method name="setContentHandlerFactory(Ljava/net/ContentHandlerFactory;)V" />
+		<method name="setDefaultAllowUserInteraction(Z)V" />
+		<method name="setDefaultRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setDefaultUseCaches(Z)V" />
+		<method name="setDoInput(Z)V" />
+		<method name="setDoOutput(Z)V" />
+		<method name="setFileNameMap(Ljava/net/FileNameMap;)V" />
+		<method name="setIfModifiedSince(J)V" />
+		<method name="setReadTimeout(I)V" />
+		<method name="setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setUseCaches(Z)V" />
+		<field name="allowUserInteraction" />
+		<field name="connected" />
+		<field name="doInput" />
+		<field name="doOutput" />
+		<field name="ifModifiedSince" />
+		<field name="url" />
+		<field name="useCaches" />
+	</class>
+	<class name="java/net/URLDecoder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="decode(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="decode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="java/net/URLEncoder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="encode(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="java/net/URLStreamHandler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="equals(Ljava/net/URL;Ljava/net/URL;)Z" />
+		<method name="getDefaultPort()I" />
+		<method name="getHostAddress(Ljava/net/URL;)Ljava/net/InetAddress;" />
+		<method name="hashCode(Ljava/net/URL;)I" />
+		<method name="hostsEqual(Ljava/net/URL;Ljava/net/URL;)Z" />
+		<method name="openConnection(Ljava/net/URL;)Ljava/net/URLConnection;" />
+		<method name="openConnection(Ljava/net/URL;Ljava/net/Proxy;)Ljava/net/URLConnection;" />
+		<method name="parseURL(Ljava/net/URL;Ljava/lang/String;II)V" />
+		<method name="sameFile(Ljava/net/URL;Ljava/net/URL;)Z" />
+		<method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="setURL(Ljava/net/URL;Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="toExternalForm(Ljava/net/URL;)Ljava/lang/String;" />
+	</class>
+	<class name="java/net/URLStreamHandlerFactory" since="1">
+		<method name="createURLStreamHandler(Ljava/lang/String;)Ljava/net/URLStreamHandler;" />
+	</class>
+	<class name="java/net/UnknownHostException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/net/UnknownServiceException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/nio/Buffer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="array()Ljava/lang/Object;" since="9" />
+		<method name="arrayOffset()I" since="9" />
+		<method name="capacity()I" />
+		<method name="clear()Ljava/nio/Buffer;" />
+		<method name="flip()Ljava/nio/Buffer;" />
+		<method name="hasArray()Z" since="9" />
+		<method name="hasRemaining()Z" />
+		<method name="isDirect()Z" since="9" />
+		<method name="isReadOnly()Z" />
+		<method name="limit()I" />
+		<method name="limit(I)Ljava/nio/Buffer;" />
+		<method name="mark()Ljava/nio/Buffer;" />
+		<method name="position()I" />
+		<method name="position(I)Ljava/nio/Buffer;" />
+		<method name="remaining()I" />
+		<method name="reset()Ljava/nio/Buffer;" />
+		<method name="rewind()Ljava/nio/Buffer;" />
+	</class>
+	<class name="java/nio/BufferOverflowException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/BufferUnderflowException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/ByteBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Comparable" />
+		<method name="allocate(I)Ljava/nio/ByteBuffer;" />
+		<method name="allocateDirect(I)Ljava/nio/ByteBuffer;" />
+		<method name="array()[B" />
+		<method name="arrayOffset()I" />
+		<method name="asCharBuffer()Ljava/nio/CharBuffer;" />
+		<method name="asDoubleBuffer()Ljava/nio/DoubleBuffer;" />
+		<method name="asFloatBuffer()Ljava/nio/FloatBuffer;" />
+		<method name="asIntBuffer()Ljava/nio/IntBuffer;" />
+		<method name="asLongBuffer()Ljava/nio/LongBuffer;" />
+		<method name="asReadOnlyBuffer()Ljava/nio/ByteBuffer;" />
+		<method name="asShortBuffer()Ljava/nio/ShortBuffer;" />
+		<method name="compact()Ljava/nio/ByteBuffer;" />
+		<method name="compareTo(Ljava/nio/ByteBuffer;)I" />
+		<method name="duplicate()Ljava/nio/ByteBuffer;" />
+		<method name="get()B" />
+		<method name="get(I)B" />
+		<method name="get([B)Ljava/nio/ByteBuffer;" />
+		<method name="get([BII)Ljava/nio/ByteBuffer;" />
+		<method name="getChar()C" />
+		<method name="getChar(I)C" />
+		<method name="getDouble()D" />
+		<method name="getDouble(I)D" />
+		<method name="getFloat()F" />
+		<method name="getFloat(I)F" />
+		<method name="getInt()I" />
+		<method name="getInt(I)I" />
+		<method name="getLong()J" />
+		<method name="getLong(I)J" />
+		<method name="getShort()S" />
+		<method name="getShort(I)S" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="order(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;" />
+		<method name="put(B)Ljava/nio/ByteBuffer;" />
+		<method name="put(IB)Ljava/nio/ByteBuffer;" />
+		<method name="put(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;" />
+		<method name="put([B)Ljava/nio/ByteBuffer;" />
+		<method name="put([BII)Ljava/nio/ByteBuffer;" />
+		<method name="putChar(C)Ljava/nio/ByteBuffer;" />
+		<method name="putChar(IC)Ljava/nio/ByteBuffer;" />
+		<method name="putDouble(D)Ljava/nio/ByteBuffer;" />
+		<method name="putDouble(ID)Ljava/nio/ByteBuffer;" />
+		<method name="putFloat(F)Ljava/nio/ByteBuffer;" />
+		<method name="putFloat(IF)Ljava/nio/ByteBuffer;" />
+		<method name="putInt(I)Ljava/nio/ByteBuffer;" />
+		<method name="putInt(II)Ljava/nio/ByteBuffer;" />
+		<method name="putLong(IJ)Ljava/nio/ByteBuffer;" />
+		<method name="putLong(J)Ljava/nio/ByteBuffer;" />
+		<method name="putShort(IS)Ljava/nio/ByteBuffer;" />
+		<method name="putShort(S)Ljava/nio/ByteBuffer;" />
+		<method name="slice()Ljava/nio/ByteBuffer;" />
+		<method name="wrap([B)Ljava/nio/ByteBuffer;" />
+		<method name="wrap([BII)Ljava/nio/ByteBuffer;" />
+	</class>
+	<class name="java/nio/ByteOrder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="nativeOrder()Ljava/nio/ByteOrder;" />
+		<field name="BIG_ENDIAN" />
+		<field name="LITTLE_ENDIAN" />
+	</class>
+	<class name="java/nio/CharBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Appendable" />
+		<implements name="java/lang/CharSequence" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/lang/Readable" />
+		<method name="allocate(I)Ljava/nio/CharBuffer;" />
+		<method name="append(C)Ljava/nio/CharBuffer;" />
+		<method name="append(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;" />
+		<method name="append(Ljava/lang/CharSequence;II)Ljava/nio/CharBuffer;" />
+		<method name="array()[C" />
+		<method name="arrayOffset()I" />
+		<method name="asReadOnlyBuffer()Ljava/nio/CharBuffer;" />
+		<method name="charAt(I)C" />
+		<method name="compact()Ljava/nio/CharBuffer;" />
+		<method name="compareTo(Ljava/nio/CharBuffer;)I" />
+		<method name="duplicate()Ljava/nio/CharBuffer;" />
+		<method name="get()C" />
+		<method name="get(I)C" />
+		<method name="get([C)Ljava/nio/CharBuffer;" />
+		<method name="get([CII)Ljava/nio/CharBuffer;" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="length()I" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="put(C)Ljava/nio/CharBuffer;" />
+		<method name="put(IC)Ljava/nio/CharBuffer;" />
+		<method name="put(Ljava/lang/String;)Ljava/nio/CharBuffer;" />
+		<method name="put(Ljava/lang/String;II)Ljava/nio/CharBuffer;" />
+		<method name="put(Ljava/nio/CharBuffer;)Ljava/nio/CharBuffer;" />
+		<method name="put([C)Ljava/nio/CharBuffer;" />
+		<method name="put([CII)Ljava/nio/CharBuffer;" />
+		<method name="read(Ljava/nio/CharBuffer;)I" />
+		<method name="slice()Ljava/nio/CharBuffer;" />
+		<method name="subSequence(II)Ljava/lang/CharSequence;" />
+		<method name="wrap(Ljava/lang/CharSequence;)Ljava/nio/CharBuffer;" />
+		<method name="wrap(Ljava/lang/CharSequence;II)Ljava/nio/CharBuffer;" />
+		<method name="wrap([C)Ljava/nio/CharBuffer;" />
+		<method name="wrap([CII)Ljava/nio/CharBuffer;" />
+	</class>
+	<class name="java/nio/DoubleBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Comparable" />
+		<method name="allocate(I)Ljava/nio/DoubleBuffer;" />
+		<method name="array()[D" />
+		<method name="arrayOffset()I" />
+		<method name="asReadOnlyBuffer()Ljava/nio/DoubleBuffer;" />
+		<method name="compact()Ljava/nio/DoubleBuffer;" />
+		<method name="compareTo(Ljava/nio/DoubleBuffer;)I" />
+		<method name="duplicate()Ljava/nio/DoubleBuffer;" />
+		<method name="get()D" />
+		<method name="get(I)D" />
+		<method name="get([D)Ljava/nio/DoubleBuffer;" />
+		<method name="get([DII)Ljava/nio/DoubleBuffer;" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="put(D)Ljava/nio/DoubleBuffer;" />
+		<method name="put(ID)Ljava/nio/DoubleBuffer;" />
+		<method name="put(Ljava/nio/DoubleBuffer;)Ljava/nio/DoubleBuffer;" />
+		<method name="put([D)Ljava/nio/DoubleBuffer;" />
+		<method name="put([DII)Ljava/nio/DoubleBuffer;" />
+		<method name="slice()Ljava/nio/DoubleBuffer;" />
+		<method name="wrap([D)Ljava/nio/DoubleBuffer;" />
+		<method name="wrap([DII)Ljava/nio/DoubleBuffer;" />
+	</class>
+	<class name="java/nio/FloatBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Comparable" />
+		<method name="allocate(I)Ljava/nio/FloatBuffer;" />
+		<method name="array()[F" />
+		<method name="arrayOffset()I" />
+		<method name="asReadOnlyBuffer()Ljava/nio/FloatBuffer;" />
+		<method name="compact()Ljava/nio/FloatBuffer;" />
+		<method name="compareTo(Ljava/nio/FloatBuffer;)I" />
+		<method name="duplicate()Ljava/nio/FloatBuffer;" />
+		<method name="get()F" />
+		<method name="get(I)F" />
+		<method name="get([F)Ljava/nio/FloatBuffer;" />
+		<method name="get([FII)Ljava/nio/FloatBuffer;" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="put(F)Ljava/nio/FloatBuffer;" />
+		<method name="put(IF)Ljava/nio/FloatBuffer;" />
+		<method name="put(Ljava/nio/FloatBuffer;)Ljava/nio/FloatBuffer;" />
+		<method name="put([F)Ljava/nio/FloatBuffer;" />
+		<method name="put([FII)Ljava/nio/FloatBuffer;" />
+		<method name="slice()Ljava/nio/FloatBuffer;" />
+		<method name="wrap([F)Ljava/nio/FloatBuffer;" />
+		<method name="wrap([FII)Ljava/nio/FloatBuffer;" />
+	</class>
+	<class name="java/nio/IntBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Comparable" />
+		<method name="allocate(I)Ljava/nio/IntBuffer;" />
+		<method name="array()[I" />
+		<method name="arrayOffset()I" />
+		<method name="asReadOnlyBuffer()Ljava/nio/IntBuffer;" />
+		<method name="compact()Ljava/nio/IntBuffer;" />
+		<method name="compareTo(Ljava/nio/IntBuffer;)I" />
+		<method name="duplicate()Ljava/nio/IntBuffer;" />
+		<method name="get()I" />
+		<method name="get(I)I" />
+		<method name="get([I)Ljava/nio/IntBuffer;" />
+		<method name="get([III)Ljava/nio/IntBuffer;" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="put(I)Ljava/nio/IntBuffer;" />
+		<method name="put(II)Ljava/nio/IntBuffer;" />
+		<method name="put(Ljava/nio/IntBuffer;)Ljava/nio/IntBuffer;" />
+		<method name="put([I)Ljava/nio/IntBuffer;" />
+		<method name="put([III)Ljava/nio/IntBuffer;" />
+		<method name="slice()Ljava/nio/IntBuffer;" />
+		<method name="wrap([I)Ljava/nio/IntBuffer;" />
+		<method name="wrap([III)Ljava/nio/IntBuffer;" />
+	</class>
+	<class name="java/nio/InvalidMarkException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/LongBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Comparable" />
+		<method name="allocate(I)Ljava/nio/LongBuffer;" />
+		<method name="array()[J" />
+		<method name="arrayOffset()I" />
+		<method name="asReadOnlyBuffer()Ljava/nio/LongBuffer;" />
+		<method name="compact()Ljava/nio/LongBuffer;" />
+		<method name="compareTo(Ljava/nio/LongBuffer;)I" />
+		<method name="duplicate()Ljava/nio/LongBuffer;" />
+		<method name="get()J" />
+		<method name="get(I)J" />
+		<method name="get([J)Ljava/nio/LongBuffer;" />
+		<method name="get([JII)Ljava/nio/LongBuffer;" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="put(IJ)Ljava/nio/LongBuffer;" />
+		<method name="put(J)Ljava/nio/LongBuffer;" />
+		<method name="put(Ljava/nio/LongBuffer;)Ljava/nio/LongBuffer;" />
+		<method name="put([J)Ljava/nio/LongBuffer;" />
+		<method name="put([JII)Ljava/nio/LongBuffer;" />
+		<method name="slice()Ljava/nio/LongBuffer;" />
+		<method name="wrap([J)Ljava/nio/LongBuffer;" />
+		<method name="wrap([JII)Ljava/nio/LongBuffer;" />
+	</class>
+	<class name="java/nio/MappedByteBuffer" since="1">
+		<extends name="java/nio/ByteBuffer" />
+		<method name="force()Ljava/nio/MappedByteBuffer;" />
+		<method name="isLoaded()Z" />
+		<method name="load()Ljava/nio/MappedByteBuffer;" />
+	</class>
+	<class name="java/nio/ReadOnlyBufferException" since="1">
+		<extends name="java/lang/UnsupportedOperationException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/ShortBuffer" since="1">
+		<extends name="java/nio/Buffer" />
+		<implements name="java/lang/Comparable" />
+		<method name="allocate(I)Ljava/nio/ShortBuffer;" />
+		<method name="array()[S" />
+		<method name="arrayOffset()I" />
+		<method name="asReadOnlyBuffer()Ljava/nio/ShortBuffer;" />
+		<method name="compact()Ljava/nio/ShortBuffer;" />
+		<method name="compareTo(Ljava/nio/ShortBuffer;)I" />
+		<method name="duplicate()Ljava/nio/ShortBuffer;" />
+		<method name="get()S" />
+		<method name="get(I)S" />
+		<method name="get([S)Ljava/nio/ShortBuffer;" />
+		<method name="get([SII)Ljava/nio/ShortBuffer;" />
+		<method name="hasArray()Z" />
+		<method name="isDirect()Z" />
+		<method name="order()Ljava/nio/ByteOrder;" />
+		<method name="put(IS)Ljava/nio/ShortBuffer;" />
+		<method name="put(Ljava/nio/ShortBuffer;)Ljava/nio/ShortBuffer;" />
+		<method name="put(S)Ljava/nio/ShortBuffer;" />
+		<method name="put([S)Ljava/nio/ShortBuffer;" />
+		<method name="put([SII)Ljava/nio/ShortBuffer;" />
+		<method name="slice()Ljava/nio/ShortBuffer;" />
+		<method name="wrap([S)Ljava/nio/ShortBuffer;" />
+		<method name="wrap([SII)Ljava/nio/ShortBuffer;" />
+	</class>
+	<class name="java/nio/channels/AlreadyConnectedException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/AsynchronousCloseException" since="1">
+		<extends name="java/nio/channels/ClosedChannelException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/ByteChannel" since="1">
+		<implements name="java/nio/channels/ReadableByteChannel" />
+		<implements name="java/nio/channels/WritableByteChannel" />
+	</class>
+	<class name="java/nio/channels/CancelledKeyException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/Channel" since="1">
+		<implements name="java/io/Closeable" />
+		<method name="close()V" />
+		<method name="isOpen()Z" />
+	</class>
+	<class name="java/nio/channels/Channels" since="1">
+		<extends name="java/lang/Object" />
+		<method name="newChannel(Ljava/io/InputStream;)Ljava/nio/channels/ReadableByteChannel;" />
+		<method name="newChannel(Ljava/io/OutputStream;)Ljava/nio/channels/WritableByteChannel;" />
+		<method name="newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream;" />
+		<method name="newOutputStream(Ljava/nio/channels/WritableByteChannel;)Ljava/io/OutputStream;" />
+		<method name="newReader(Ljava/nio/channels/ReadableByteChannel;Ljava/lang/String;)Ljava/io/Reader;" />
+		<method name="newReader(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/charset/CharsetDecoder;I)Ljava/io/Reader;" />
+		<method name="newWriter(Ljava/nio/channels/WritableByteChannel;Ljava/lang/String;)Ljava/io/Writer;" />
+		<method name="newWriter(Ljava/nio/channels/WritableByteChannel;Ljava/nio/charset/CharsetEncoder;I)Ljava/io/Writer;" />
+	</class>
+	<class name="java/nio/channels/ClosedByInterruptException" since="1">
+		<extends name="java/nio/channels/AsynchronousCloseException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/ClosedChannelException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/ClosedSelectorException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/ConnectionPendingException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/DatagramChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
+		<implements name="java/nio/channels/ByteChannel" />
+		<implements name="java/nio/channels/GatheringByteChannel" />
+		<implements name="java/nio/channels/ScatteringByteChannel" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="connect(Ljava/net/SocketAddress;)Ljava/nio/channels/DatagramChannel;" />
+		<method name="disconnect()Ljava/nio/channels/DatagramChannel;" />
+		<method name="isConnected()Z" />
+		<method name="open()Ljava/nio/channels/DatagramChannel;" />
+		<method name="read(Ljava/nio/ByteBuffer;)I" />
+		<method name="read([Ljava/nio/ByteBuffer;)J" />
+		<method name="read([Ljava/nio/ByteBuffer;II)J" />
+		<method name="receive(Ljava/nio/ByteBuffer;)Ljava/net/SocketAddress;" />
+		<method name="send(Ljava/nio/ByteBuffer;Ljava/net/SocketAddress;)I" />
+		<method name="socket()Ljava/net/DatagramSocket;" />
+		<method name="validOps()I" />
+		<method name="write(Ljava/nio/ByteBuffer;)I" />
+		<method name="write([Ljava/nio/ByteBuffer;)J" />
+		<method name="write([Ljava/nio/ByteBuffer;II)J" />
+	</class>
+	<class name="java/nio/channels/FileChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractInterruptibleChannel" />
+		<implements name="java/nio/channels/ByteChannel" />
+		<implements name="java/nio/channels/GatheringByteChannel" />
+		<implements name="java/nio/channels/ScatteringByteChannel" />
+		<method name="&lt;init>()V" />
+		<method name="force(Z)V" />
+		<method name="lock()Ljava/nio/channels/FileLock;" />
+		<method name="lock(JJZ)Ljava/nio/channels/FileLock;" />
+		<method name="map(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;" />
+		<method name="position()J" />
+		<method name="position(J)Ljava/nio/channels/FileChannel;" />
+		<method name="read(Ljava/nio/ByteBuffer;)I" />
+		<method name="read(Ljava/nio/ByteBuffer;J)I" />
+		<method name="read([Ljava/nio/ByteBuffer;)J" />
+		<method name="read([Ljava/nio/ByteBuffer;II)J" />
+		<method name="size()J" />
+		<method name="transferFrom(Ljava/nio/channels/ReadableByteChannel;JJ)J" />
+		<method name="transferTo(JJLjava/nio/channels/WritableByteChannel;)J" />
+		<method name="truncate(J)Ljava/nio/channels/FileChannel;" />
+		<method name="tryLock()Ljava/nio/channels/FileLock;" />
+		<method name="tryLock(JJZ)Ljava/nio/channels/FileLock;" />
+		<method name="write(Ljava/nio/ByteBuffer;)I" />
+		<method name="write(Ljava/nio/ByteBuffer;J)I" />
+		<method name="write([Ljava/nio/ByteBuffer;)J" />
+		<method name="write([Ljava/nio/ByteBuffer;II)J" />
+	</class>
+	<class name="java/nio/channels/FileChannel$MapMode" since="1">
+		<extends name="java/lang/Object" />
+		<field name="PRIVATE" />
+		<field name="READ_ONLY" />
+		<field name="READ_WRITE" />
+	</class>
+	<class name="java/nio/channels/FileLock" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/nio/channels/FileChannel;JJZ)V" />
+		<method name="channel()Ljava/nio/channels/FileChannel;" />
+		<method name="isShared()Z" />
+		<method name="isValid()Z" />
+		<method name="overlaps(JJ)Z" />
+		<method name="position()J" />
+		<method name="release()V" />
+		<method name="size()J" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/nio/channels/FileLockInterruptionException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/GatheringByteChannel" since="1">
+		<implements name="java/nio/channels/WritableByteChannel" />
+		<method name="write([Ljava/nio/ByteBuffer;)J" />
+		<method name="write([Ljava/nio/ByteBuffer;II)J" />
+	</class>
+	<class name="java/nio/channels/IllegalBlockingModeException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/IllegalSelectorException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/InterruptibleChannel" since="1">
+		<implements name="java/nio/channels/Channel" />
+		<method name="close()V" />
+	</class>
+	<class name="java/nio/channels/NoConnectionPendingException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/NonReadableChannelException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/NonWritableChannelException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/NotYetBoundException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/NotYetConnectedException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/OverlappingFileLockException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/Pipe" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="open()Ljava/nio/channels/Pipe;" />
+		<method name="sink()Ljava/nio/channels/Pipe$SinkChannel;" />
+		<method name="source()Ljava/nio/channels/Pipe$SourceChannel;" />
+	</class>
+	<class name="java/nio/channels/Pipe$SinkChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
+		<implements name="java/nio/channels/GatheringByteChannel" />
+		<implements name="java/nio/channels/WritableByteChannel" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="validOps()I" />
+	</class>
+	<class name="java/nio/channels/Pipe$SourceChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
+		<implements name="java/nio/channels/ReadableByteChannel" />
+		<implements name="java/nio/channels/ScatteringByteChannel" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="validOps()I" />
+	</class>
+	<class name="java/nio/channels/ReadableByteChannel" since="1">
+		<implements name="java/nio/channels/Channel" />
+		<method name="read(Ljava/nio/ByteBuffer;)I" />
+	</class>
+	<class name="java/nio/channels/ScatteringByteChannel" since="1">
+		<implements name="java/nio/channels/ReadableByteChannel" />
+		<method name="read([Ljava/nio/ByteBuffer;)J" />
+		<method name="read([Ljava/nio/ByteBuffer;II)J" />
+	</class>
+	<class name="java/nio/channels/SelectableChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractInterruptibleChannel" />
+		<implements name="java/nio/channels/Channel" />
+		<method name="&lt;init>()V" />
+		<method name="blockingLock()Ljava/lang/Object;" />
+		<method name="configureBlocking(Z)Ljava/nio/channels/SelectableChannel;" />
+		<method name="isBlocking()Z" />
+		<method name="isRegistered()Z" />
+		<method name="keyFor(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;" />
+		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
+		<method name="register(Ljava/nio/channels/Selector;I)Ljava/nio/channels/SelectionKey;" />
+		<method name="register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;" />
+		<method name="validOps()I" />
+	</class>
+	<class name="java/nio/channels/SelectionKey" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="attach(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="attachment()Ljava/lang/Object;" />
+		<method name="cancel()V" />
+		<method name="channel()Ljava/nio/channels/SelectableChannel;" />
+		<method name="interestOps()I" />
+		<method name="interestOps(I)Ljava/nio/channels/SelectionKey;" />
+		<method name="isAcceptable()Z" />
+		<method name="isConnectable()Z" />
+		<method name="isReadable()Z" />
+		<method name="isValid()Z" />
+		<method name="isWritable()Z" />
+		<method name="readyOps()I" />
+		<method name="selector()Ljava/nio/channels/Selector;" />
+		<field name="OP_ACCEPT" />
+		<field name="OP_CONNECT" />
+		<field name="OP_READ" />
+		<field name="OP_WRITE" />
+	</class>
+	<class name="java/nio/channels/Selector" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="close()V" />
+		<method name="isOpen()Z" />
+		<method name="keys()Ljava/util/Set;" />
+		<method name="open()Ljava/nio/channels/Selector;" />
+		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
+		<method name="select()I" />
+		<method name="select(J)I" />
+		<method name="selectNow()I" />
+		<method name="selectedKeys()Ljava/util/Set;" />
+		<method name="wakeup()Ljava/nio/channels/Selector;" />
+	</class>
+	<class name="java/nio/channels/ServerSocketChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="accept()Ljava/nio/channels/SocketChannel;" />
+		<method name="open()Ljava/nio/channels/ServerSocketChannel;" />
+		<method name="socket()Ljava/net/ServerSocket;" />
+		<method name="validOps()I" />
+	</class>
+	<class name="java/nio/channels/SocketChannel" since="1">
+		<extends name="java/nio/channels/spi/AbstractSelectableChannel" />
+		<implements name="java/nio/channels/ByteChannel" />
+		<implements name="java/nio/channels/GatheringByteChannel" />
+		<implements name="java/nio/channels/ScatteringByteChannel" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="connect(Ljava/net/SocketAddress;)Z" />
+		<method name="finishConnect()Z" />
+		<method name="isConnected()Z" />
+		<method name="isConnectionPending()Z" />
+		<method name="open()Ljava/nio/channels/SocketChannel;" />
+		<method name="open(Ljava/net/SocketAddress;)Ljava/nio/channels/SocketChannel;" />
+		<method name="read(Ljava/nio/ByteBuffer;)I" />
+		<method name="read([Ljava/nio/ByteBuffer;)J" />
+		<method name="read([Ljava/nio/ByteBuffer;II)J" />
+		<method name="socket()Ljava/net/Socket;" />
+		<method name="validOps()I" />
+		<method name="write(Ljava/nio/ByteBuffer;)I" />
+		<method name="write([Ljava/nio/ByteBuffer;)J" />
+		<method name="write([Ljava/nio/ByteBuffer;II)J" />
+	</class>
+	<class name="java/nio/channels/UnresolvedAddressException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/UnsupportedAddressTypeException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/channels/WritableByteChannel" since="1">
+		<implements name="java/nio/channels/Channel" />
+		<method name="write(Ljava/nio/ByteBuffer;)I" />
+	</class>
+	<class name="java/nio/channels/spi/AbstractInterruptibleChannel" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/nio/channels/Channel" />
+		<implements name="java/nio/channels/InterruptibleChannel" />
+		<method name="&lt;init>()V" />
+		<method name="begin()V" />
+		<method name="close()V" />
+		<method name="end(Z)V" />
+		<method name="implCloseChannel()V" />
+		<method name="isOpen()Z" />
+	</class>
+	<class name="java/nio/channels/spi/AbstractSelectableChannel" since="1">
+		<extends name="java/nio/channels/SelectableChannel" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="blockingLock()Ljava/lang/Object;" />
+		<method name="configureBlocking(Z)Ljava/nio/channels/SelectableChannel;" />
+		<method name="implCloseChannel()V" />
+		<method name="implCloseSelectableChannel()V" />
+		<method name="implConfigureBlocking(Z)V" />
+		<method name="isBlocking()Z" />
+		<method name="isRegistered()Z" />
+		<method name="keyFor(Ljava/nio/channels/Selector;)Ljava/nio/channels/SelectionKey;" />
+		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
+		<method name="register(Ljava/nio/channels/Selector;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;" />
+	</class>
+	<class name="java/nio/channels/spi/AbstractSelectionKey" since="1">
+		<extends name="java/nio/channels/SelectionKey" />
+		<method name="&lt;init>()V" />
+		<method name="cancel()V" />
+		<method name="isValid()Z" />
+	</class>
+	<class name="java/nio/channels/spi/AbstractSelector" since="1">
+		<extends name="java/nio/channels/Selector" />
+		<method name="&lt;init>(Ljava/nio/channels/spi/SelectorProvider;)V" />
+		<method name="begin()V" />
+		<method name="cancelledKeys()Ljava/util/Set;" />
+		<method name="close()V" />
+		<method name="deregister(Ljava/nio/channels/spi/AbstractSelectionKey;)V" />
+		<method name="end()V" />
+		<method name="implCloseSelector()V" />
+		<method name="isOpen()Z" />
+		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
+		<method name="register(Ljava/nio/channels/spi/AbstractSelectableChannel;ILjava/lang/Object;)Ljava/nio/channels/SelectionKey;" />
+	</class>
+	<class name="java/nio/channels/spi/SelectorProvider" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="inheritedChannel()Ljava/nio/channels/Channel;" />
+		<method name="openDatagramChannel()Ljava/nio/channels/DatagramChannel;" />
+		<method name="openPipe()Ljava/nio/channels/Pipe;" />
+		<method name="openSelector()Ljava/nio/channels/spi/AbstractSelector;" />
+		<method name="openServerSocketChannel()Ljava/nio/channels/ServerSocketChannel;" />
+		<method name="openSocketChannel()Ljava/nio/channels/SocketChannel;" />
+		<method name="provider()Ljava/nio/channels/spi/SelectorProvider;" />
+	</class>
+	<class name="java/nio/charset/CharacterCodingException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/nio/charset/Charset" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(Ljava/lang/String;[Ljava/lang/String;)V" />
+		<method name="aliases()Ljava/util/Set;" />
+		<method name="availableCharsets()Ljava/util/SortedMap;" />
+		<method name="canEncode()Z" />
+		<method name="compareTo(Ljava/nio/charset/Charset;)I" />
+		<method name="contains(Ljava/nio/charset/Charset;)Z" />
+		<method name="decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;" />
+		<method name="defaultCharset()Ljava/nio/charset/Charset;" />
+		<method name="displayName()Ljava/lang/String;" />
+		<method name="displayName(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="encode(Ljava/lang/String;)Ljava/nio/ByteBuffer;" />
+		<method name="encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="forName(Ljava/lang/String;)Ljava/nio/charset/Charset;" />
+		<method name="hashCode()I" />
+		<method name="isRegistered()Z" />
+		<method name="isSupported(Ljava/lang/String;)Z" />
+		<method name="name()Ljava/lang/String;" />
+		<method name="newDecoder()Ljava/nio/charset/CharsetDecoder;" />
+		<method name="newEncoder()Ljava/nio/charset/CharsetEncoder;" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/nio/charset/CharsetDecoder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/nio/charset/Charset;FF)V" />
+		<method name="averageCharsPerByte()F" />
+		<method name="charset()Ljava/nio/charset/Charset;" />
+		<method name="decode(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;" />
+		<method name="decode(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;" />
+		<method name="decodeLoop(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;" />
+		<method name="detectedCharset()Ljava/nio/charset/Charset;" />
+		<method name="flush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;" />
+		<method name="implFlush(Ljava/nio/CharBuffer;)Ljava/nio/charset/CoderResult;" />
+		<method name="implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V" />
+		<method name="implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V" />
+		<method name="implReplaceWith(Ljava/lang/String;)V" />
+		<method name="implReset()V" />
+		<method name="isAutoDetecting()Z" />
+		<method name="isCharsetDetected()Z" />
+		<method name="malformedInputAction()Ljava/nio/charset/CodingErrorAction;" />
+		<method name="maxCharsPerByte()F" />
+		<method name="onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;" />
+		<method name="onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetDecoder;" />
+		<method name="replaceWith(Ljava/lang/String;)Ljava/nio/charset/CharsetDecoder;" />
+		<method name="replacement()Ljava/lang/String;" />
+		<method name="reset()Ljava/nio/charset/CharsetDecoder;" />
+		<method name="unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;" />
+	</class>
+	<class name="java/nio/charset/CharsetEncoder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/nio/charset/Charset;FF)V" />
+		<method name="&lt;init>(Ljava/nio/charset/Charset;FF[B)V" />
+		<method name="averageBytesPerChar()F" />
+		<method name="canEncode(C)Z" />
+		<method name="canEncode(Ljava/lang/CharSequence;)Z" />
+		<method name="charset()Ljava/nio/charset/Charset;" />
+		<method name="encode(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;" />
+		<method name="encode(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;" />
+		<method name="encodeLoop(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;" />
+		<method name="flush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;" />
+		<method name="implFlush(Ljava/nio/ByteBuffer;)Ljava/nio/charset/CoderResult;" />
+		<method name="implOnMalformedInput(Ljava/nio/charset/CodingErrorAction;)V" />
+		<method name="implOnUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)V" />
+		<method name="implReplaceWith([B)V" />
+		<method name="implReset()V" />
+		<method name="isLegalReplacement([B)Z" />
+		<method name="malformedInputAction()Ljava/nio/charset/CodingErrorAction;" />
+		<method name="maxBytesPerChar()F" />
+		<method name="onMalformedInput(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;" />
+		<method name="onUnmappableCharacter(Ljava/nio/charset/CodingErrorAction;)Ljava/nio/charset/CharsetEncoder;" />
+		<method name="replaceWith([B)Ljava/nio/charset/CharsetEncoder;" />
+		<method name="replacement()[B" />
+		<method name="reset()Ljava/nio/charset/CharsetEncoder;" />
+		<method name="unmappableCharacterAction()Ljava/nio/charset/CodingErrorAction;" />
+	</class>
+	<class name="java/nio/charset/CoderMalfunctionError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+	</class>
+	<class name="java/nio/charset/CoderResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="isError()Z" />
+		<method name="isMalformed()Z" />
+		<method name="isOverflow()Z" />
+		<method name="isUnderflow()Z" />
+		<method name="isUnmappable()Z" />
+		<method name="length()I" />
+		<method name="malformedForLength(I)Ljava/nio/charset/CoderResult;" />
+		<method name="throwException()V" />
+		<method name="unmappableForLength(I)Ljava/nio/charset/CoderResult;" />
+		<field name="OVERFLOW" />
+		<field name="UNDERFLOW" />
+	</class>
+	<class name="java/nio/charset/CodingErrorAction" since="1">
+		<extends name="java/lang/Object" />
+		<field name="IGNORE" />
+		<field name="REPLACE" />
+		<field name="REPORT" />
+	</class>
+	<class name="java/nio/charset/IllegalCharsetNameException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getCharsetName()Ljava/lang/String;" />
+	</class>
+	<class name="java/nio/charset/MalformedInputException" since="1">
+		<extends name="java/nio/charset/CharacterCodingException" />
+		<method name="&lt;init>(I)V" />
+		<method name="getInputLength()I" />
+	</class>
+	<class name="java/nio/charset/UnmappableCharacterException" since="1">
+		<extends name="java/nio/charset/CharacterCodingException" />
+		<method name="&lt;init>(I)V" />
+		<method name="getInputLength()I" />
+	</class>
+	<class name="java/nio/charset/UnsupportedCharsetException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getCharsetName()Ljava/lang/String;" />
+	</class>
+	<class name="java/nio/charset/spi/CharsetProvider" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="charsetForName(Ljava/lang/String;)Ljava/nio/charset/Charset;" />
+		<method name="charsets()Ljava/util/Iterator;" />
+	</class>
+	<class name="java/security/AccessControlContext" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/AccessControlContext;Ljava/security/DomainCombiner;)V" />
+		<method name="&lt;init>([Ljava/security/ProtectionDomain;)V" />
+		<method name="checkPermission(Ljava/security/Permission;)V" />
+		<method name="getDomainCombiner()Ljava/security/DomainCombiner;" />
+	</class>
+	<class name="java/security/AccessControlException" since="1">
+		<extends name="java/lang/SecurityException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/security/Permission;)V" />
+		<method name="getPermission()Ljava/security/Permission;" />
+	</class>
+	<class name="java/security/AccessController" since="1">
+		<extends name="java/lang/Object" />
+		<method name="checkPermission(Ljava/security/Permission;)V" />
+		<method name="doPrivileged(Ljava/security/PrivilegedAction;)LT;" />
+		<method name="doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)LT;" />
+		<method name="doPrivileged(Ljava/security/PrivilegedExceptionAction;)LT;" />
+		<method name="doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)LT;" />
+		<method name="doPrivilegedWithCombiner(Ljava/security/PrivilegedAction;)LT;" since="9" />
+		<method name="doPrivilegedWithCombiner(Ljava/security/PrivilegedExceptionAction;)LT;" since="9" />
+		<method name="getContext()Ljava/security/AccessControlContext;" />
+	</class>
+	<class name="java/security/AlgorithmParameterGenerator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/AlgorithmParameterGeneratorSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="generateParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/AlgorithmParameterGenerator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameterGenerator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/AlgorithmParameterGenerator;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(I)V" />
+		<method name="init(ILjava/security/SecureRandom;)V" />
+		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="java/security/AlgorithmParameterGeneratorSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGenerateParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="engineInit(ILjava/security/SecureRandom;)V" />
+		<method name="engineInit(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="java/security/AlgorithmParameters" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/AlgorithmParametersSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getEncoded()[B" />
+		<method name="getEncoded(Ljava/lang/String;)[B" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/AlgorithmParameters;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/AlgorithmParameters;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/AlgorithmParameters;" />
+		<method name="getParameterSpec(Ljava/lang/Class;)LT;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="init([B)V" />
+		<method name="init([BLjava/lang/String;)V" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/AlgorithmParametersSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGetEncoded()[B" />
+		<method name="engineGetEncoded(Ljava/lang/String;)[B" />
+		<method name="engineGetParameterSpec(Ljava/lang/Class;)LT;" />
+		<method name="engineInit(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="engineInit([B)V" />
+		<method name="engineInit([BLjava/lang/String;)V" />
+		<method name="engineToString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/AllPermission" since="1">
+		<extends name="java/security/Permission" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/security/AuthProvider" since="1">
+		<extends name="java/security/Provider" />
+		<method name="&lt;init>(Ljava/lang/String;DLjava/lang/String;)V" />
+		<method name="login(Ljavax/security/auth/Subject;Ljavax/security/auth/callback/CallbackHandler;)V" />
+		<method name="logout()V" />
+		<method name="setCallbackHandler(Ljavax/security/auth/callback/CallbackHandler;)V" />
+	</class>
+	<class name="java/security/BasicPermission" since="1">
+		<extends name="java/security/Permission" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/security/Certificate" since="1">
+		<method name="decode(Ljava/io/InputStream;)V" />
+		<method name="encode(Ljava/io/OutputStream;)V" />
+		<method name="getFormat()Ljava/lang/String;" />
+		<method name="getGuarantor()Ljava/security/Principal;" />
+		<method name="getPrincipal()Ljava/security/Principal;" />
+		<method name="getPublicKey()Ljava/security/PublicKey;" />
+		<method name="toString(Z)Ljava/lang/String;" />
+	</class>
+	<class name="java/security/CodeSigner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/security/cert/CertPath;Ljava/security/Timestamp;)V" />
+		<method name="getSignerCertPath()Ljava/security/cert/CertPath;" />
+		<method name="getTimestamp()Ljava/security/Timestamp;" />
+	</class>
+	<class name="java/security/CodeSource" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/net/URL;[Ljava/security/CodeSigner;)V" />
+		<method name="&lt;init>(Ljava/net/URL;[Ljava/security/cert/Certificate;)V" />
+		<method name="getCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getCodeSigners()[Ljava/security/CodeSigner;" />
+		<method name="getLocation()Ljava/net/URL;" />
+		<method name="implies(Ljava/security/CodeSource;)Z" />
+	</class>
+	<class name="java/security/DigestException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/DigestInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/security/MessageDigest;)V" />
+		<method name="getMessageDigest()Ljava/security/MessageDigest;" />
+		<method name="on(Z)V" />
+		<method name="setMessageDigest(Ljava/security/MessageDigest;)V" />
+		<field name="digest" />
+	</class>
+	<class name="java/security/DigestOutputStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/security/MessageDigest;)V" />
+		<method name="getMessageDigest()Ljava/security/MessageDigest;" />
+		<method name="on(Z)V" />
+		<method name="setMessageDigest(Ljava/security/MessageDigest;)V" />
+		<field name="digest" />
+	</class>
+	<class name="java/security/DomainCombiner" since="1">
+		<method name="combine([Ljava/security/ProtectionDomain;[Ljava/security/ProtectionDomain;)[Ljava/security/ProtectionDomain;" />
+	</class>
+	<class name="java/security/GeneralSecurityException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/Guard" since="1">
+		<method name="checkGuard(Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/security/GuardedObject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/Object;Ljava/security/Guard;)V" />
+		<method name="getObject()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/Identity" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/Principal" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" />
+		<method name="addCertificate(Ljava/security/Certificate;)V" />
+		<method name="certificates()[Ljava/security/Certificate;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getInfo()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPublicKey()Ljava/security/PublicKey;" />
+		<method name="getScope()Ljava/security/IdentityScope;" />
+		<method name="identityEquals(Ljava/security/Identity;)Z" />
+		<method name="removeCertificate(Ljava/security/Certificate;)V" />
+		<method name="setInfo(Ljava/lang/String;)V" />
+		<method name="setPublicKey(Ljava/security/PublicKey;)V" />
+		<method name="toString(Z)Ljava/lang/String;" />
+	</class>
+	<class name="java/security/IdentityScope" since="1">
+		<extends name="java/security/Identity" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" />
+		<method name="addIdentity(Ljava/security/Identity;)V" />
+		<method name="getIdentity(Ljava/lang/String;)Ljava/security/Identity;" />
+		<method name="getIdentity(Ljava/security/Principal;)Ljava/security/Identity;" />
+		<method name="getIdentity(Ljava/security/PublicKey;)Ljava/security/Identity;" />
+		<method name="getSystemScope()Ljava/security/IdentityScope;" />
+		<method name="identities()Ljava/util/Enumeration;" />
+		<method name="removeIdentity(Ljava/security/Identity;)V" />
+		<method name="setSystemScope(Ljava/security/IdentityScope;)V" />
+		<method name="size()I" />
+	</class>
+	<class name="java/security/InvalidAlgorithmParameterException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/InvalidKeyException" since="1">
+		<extends name="java/security/KeyException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/InvalidParameterException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/Key" since="1">
+		<implements name="java/io/Serializable" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getEncoded()[B" />
+		<method name="getFormat()Ljava/lang/String;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/KeyException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/KeyFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/KeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="generatePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;" />
+		<method name="generatePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/KeyFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyFactory;" />
+		<method name="getKeySpec(Ljava/security/Key;Ljava/lang/Class;)LT;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="translateKey(Ljava/security/Key;)Ljava/security/Key;" />
+	</class>
+	<class name="java/security/KeyFactorySpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGeneratePrivate(Ljava/security/spec/KeySpec;)Ljava/security/PrivateKey;" />
+		<method name="engineGeneratePublic(Ljava/security/spec/KeySpec;)Ljava/security/PublicKey;" />
+		<method name="engineGetKeySpec(Ljava/security/Key;Ljava/lang/Class;)LT;" />
+		<method name="engineTranslateKey(Ljava/security/Key;)Ljava/security/Key;" />
+	</class>
+	<class name="java/security/KeyManagementException" since="1">
+		<extends name="java/security/KeyException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/KeyPair" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/security/PublicKey;Ljava/security/PrivateKey;)V" />
+		<method name="getPrivate()Ljava/security/PrivateKey;" />
+		<method name="getPublic()Ljava/security/PublicKey;" />
+	</class>
+	<class name="java/security/KeyPairGenerator" since="1">
+		<extends name="java/security/KeyPairGeneratorSpi" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="genKeyPair()Ljava/security/KeyPair;" />
+		<method name="generateKeyPair()Ljava/security/KeyPair;" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/KeyPairGenerator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyPairGenerator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyPairGenerator;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="initialize(I)V" />
+		<method name="initialize(ILjava/security/SecureRandom;)V" />
+		<method name="initialize(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+	</class>
+	<class name="java/security/KeyPairGeneratorSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="generateKeyPair()Ljava/security/KeyPair;" />
+		<method name="initialize(ILjava/security/SecureRandom;)V" />
+		<method name="initialize(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="java/security/KeyRep" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/security/KeyRep$Type;Ljava/lang/String;Ljava/lang/String;[B)V" />
+		<method name="readResolve()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/KeyRep$Type" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/security/KeyRep$Type;" />
+		<method name="values()[Ljava/security/KeyRep$Type;" />
+		<field name="PRIVATE" />
+		<field name="PUBLIC" />
+		<field name="SECRET" />
+	</class>
+	<class name="java/security/KeyStore" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/KeyStoreSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="aliases()Ljava/util/Enumeration;" />
+		<method name="containsAlias(Ljava/lang/String;)Z" />
+		<method name="deleteEntry(Ljava/lang/String;)V" />
+		<method name="entryInstanceOf(Ljava/lang/String;Ljava/lang/Class;)Z" />
+		<method name="getCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;" />
+		<method name="getCertificateAlias(Ljava/security/cert/Certificate;)Ljava/lang/String;" />
+		<method name="getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;" />
+		<method name="getCreationDate(Ljava/lang/String;)Ljava/util/Date;" />
+		<method name="getDefaultType()Ljava/lang/String;" />
+		<method name="getEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/KeyStore;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/KeyStore;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/KeyStore;" />
+		<method name="getKey(Ljava/lang/String;[C)Ljava/security/Key;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="isCertificateEntry(Ljava/lang/String;)Z" />
+		<method name="isKeyEntry(Ljava/lang/String;)Z" />
+		<method name="load(Ljava/io/InputStream;[C)V" />
+		<method name="load(Ljava/security/KeyStore$LoadStoreParameter;)V" />
+		<method name="setCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V" />
+		<method name="setEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V" />
+		<method name="setKeyEntry(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V" />
+		<method name="setKeyEntry(Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V" />
+		<method name="size()I" />
+		<method name="store(Ljava/io/OutputStream;[C)V" />
+		<method name="store(Ljava/security/KeyStore$LoadStoreParameter;)V" />
+	</class>
+	<class name="java/security/KeyStore$Builder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getKeyStore()Ljava/security/KeyStore;" />
+		<method name="getProtectionParameter(Ljava/lang/String;)Ljava/security/KeyStore$ProtectionParameter;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/security/Provider;Ljava/io/File;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Builder;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/security/Provider;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Builder;" />
+		<method name="newInstance(Ljava/security/KeyStore;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Builder;" />
+	</class>
+	<class name="java/security/KeyStore$CallbackHandlerProtection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/KeyStore$ProtectionParameter" />
+		<method name="&lt;init>(Ljavax/security/auth/callback/CallbackHandler;)V" />
+		<method name="getCallbackHandler()Ljavax/security/auth/callback/CallbackHandler;" />
+	</class>
+	<class name="java/security/KeyStore$Entry" since="1">
+	</class>
+	<class name="java/security/KeyStore$LoadStoreParameter" since="1">
+		<method name="getProtectionParameter()Ljava/security/KeyStore$ProtectionParameter;" />
+	</class>
+	<class name="java/security/KeyStore$PasswordProtection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="javax/security/auth/Destroyable" />
+		<implements name="java/security/KeyStore$ProtectionParameter" />
+		<method name="&lt;init>([C)V" />
+		<method name="destroy()V" />
+		<method name="getPassword()[C" />
+		<method name="isDestroyed()Z" />
+	</class>
+	<class name="java/security/KeyStore$PrivateKeyEntry" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/KeyStore$Entry" />
+		<method name="&lt;init>(Ljava/security/PrivateKey;[Ljava/security/cert/Certificate;)V" />
+		<method name="getCertificate()Ljava/security/cert/Certificate;" />
+		<method name="getCertificateChain()[Ljava/security/cert/Certificate;" />
+		<method name="getPrivateKey()Ljava/security/PrivateKey;" />
+	</class>
+	<class name="java/security/KeyStore$ProtectionParameter" since="1">
+	</class>
+	<class name="java/security/KeyStore$SecretKeyEntry" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/KeyStore$Entry" />
+		<method name="&lt;init>(Ljavax/crypto/SecretKey;)V" />
+		<method name="getSecretKey()Ljavax/crypto/SecretKey;" />
+	</class>
+	<class name="java/security/KeyStore$TrustedCertificateEntry" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/KeyStore$Entry" />
+		<method name="&lt;init>(Ljava/security/cert/Certificate;)V" />
+		<method name="getTrustedCertificate()Ljava/security/cert/Certificate;" />
+	</class>
+	<class name="java/security/KeyStoreException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/KeyStoreSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineAliases()Ljava/util/Enumeration;" />
+		<method name="engineContainsAlias(Ljava/lang/String;)Z" />
+		<method name="engineDeleteEntry(Ljava/lang/String;)V" />
+		<method name="engineEntryInstanceOf(Ljava/lang/String;Ljava/lang/Class;)Z" />
+		<method name="engineGetCertificate(Ljava/lang/String;)Ljava/security/cert/Certificate;" />
+		<method name="engineGetCertificateAlias(Ljava/security/cert/Certificate;)Ljava/lang/String;" />
+		<method name="engineGetCertificateChain(Ljava/lang/String;)[Ljava/security/cert/Certificate;" />
+		<method name="engineGetCreationDate(Ljava/lang/String;)Ljava/util/Date;" />
+		<method name="engineGetEntry(Ljava/lang/String;Ljava/security/KeyStore$ProtectionParameter;)Ljava/security/KeyStore$Entry;" />
+		<method name="engineGetKey(Ljava/lang/String;[C)Ljava/security/Key;" />
+		<method name="engineIsCertificateEntry(Ljava/lang/String;)Z" />
+		<method name="engineIsKeyEntry(Ljava/lang/String;)Z" />
+		<method name="engineLoad(Ljava/io/InputStream;[C)V" />
+		<method name="engineLoad(Ljava/security/KeyStore$LoadStoreParameter;)V" />
+		<method name="engineSetCertificateEntry(Ljava/lang/String;Ljava/security/cert/Certificate;)V" />
+		<method name="engineSetEntry(Ljava/lang/String;Ljava/security/KeyStore$Entry;Ljava/security/KeyStore$ProtectionParameter;)V" />
+		<method name="engineSetKeyEntry(Ljava/lang/String;Ljava/security/Key;[C[Ljava/security/cert/Certificate;)V" />
+		<method name="engineSetKeyEntry(Ljava/lang/String;[B[Ljava/security/cert/Certificate;)V" />
+		<method name="engineSize()I" />
+		<method name="engineStore(Ljava/io/OutputStream;[C)V" />
+		<method name="engineStore(Ljava/security/KeyStore$LoadStoreParameter;)V" />
+	</class>
+	<class name="java/security/MessageDigest" since="1">
+		<extends name="java/security/MessageDigestSpi" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="digest()[B" />
+		<method name="digest([B)[B" />
+		<method name="digest([BII)I" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getDigestLength()I" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/MessageDigest;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/MessageDigest;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/MessageDigest;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="isEqual([B[B)Z" />
+		<method name="reset()V" />
+		<method name="update(B)V" />
+		<method name="update(Ljava/nio/ByteBuffer;)V" />
+		<method name="update([B)V" />
+		<method name="update([BII)V" />
+	</class>
+	<class name="java/security/MessageDigestSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="engineDigest()[B" />
+		<method name="engineDigest([BII)I" />
+		<method name="engineGetDigestLength()I" />
+		<method name="engineReset()V" />
+		<method name="engineUpdate(B)V" />
+		<method name="engineUpdate(Ljava/nio/ByteBuffer;)V" />
+		<method name="engineUpdate([BII)V" />
+	</class>
+	<class name="java/security/NoSuchAlgorithmException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/NoSuchProviderException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/Permission" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/Guard" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="checkGuard(Ljava/lang/Object;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+		<method name="newPermissionCollection()Ljava/security/PermissionCollection;" />
+	</class>
+	<class name="java/security/PermissionCollection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="add(Ljava/security/Permission;)V" />
+		<method name="elements()Ljava/util/Enumeration;" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+		<method name="isReadOnly()Z" />
+		<method name="setReadOnly()V" />
+	</class>
+	<class name="java/security/Permissions" since="1">
+		<extends name="java/security/PermissionCollection" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="add(Ljava/security/Permission;)V" />
+		<method name="elements()Ljava/util/Enumeration;" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/security/Policy" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Policy$Parameters;)Ljava/security/Policy;" since="9" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Policy$Parameters;Ljava/lang/String;)Ljava/security/Policy;" since="9" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Policy$Parameters;Ljava/security/Provider;)Ljava/security/Policy;" since="9" />
+		<method name="getParameters()Ljava/security/Policy$Parameters;" since="9" />
+		<method name="getPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;" />
+		<method name="getPermissions(Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;" />
+		<method name="getPolicy()Ljava/security/Policy;" />
+		<method name="getProvider()Ljava/security/Provider;" since="9" />
+		<method name="getType()Ljava/lang/String;" since="9" />
+		<method name="implies(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z" />
+		<method name="refresh()V" />
+		<method name="setPolicy(Ljava/security/Policy;)V" />
+		<field name="UNSUPPORTED_EMPTY_COLLECTION" since="9" />
+	</class>
+	<class name="java/security/Policy$Parameters" since="9">
+	</class>
+	<class name="java/security/PolicySpi" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGetPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;" />
+		<method name="engineGetPermissions(Ljava/security/ProtectionDomain;)Ljava/security/PermissionCollection;" />
+		<method name="engineImplies(Ljava/security/ProtectionDomain;Ljava/security/Permission;)Z" />
+		<method name="engineRefresh()V" />
+	</class>
+	<class name="java/security/Principal" since="1">
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/PrivateKey" since="1">
+		<implements name="java/security/Key" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/PrivilegedAction" since="1">
+		<method name="run()LT;" />
+	</class>
+	<class name="java/security/PrivilegedActionException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="getException()Ljava/lang/Exception;" />
+	</class>
+	<class name="java/security/PrivilegedExceptionAction" since="1">
+		<method name="run()LT;" />
+	</class>
+	<class name="java/security/ProtectionDomain" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/CodeSource;Ljava/security/PermissionCollection;)V" />
+		<method name="&lt;init>(Ljava/security/CodeSource;Ljava/security/PermissionCollection;Ljava/lang/ClassLoader;[Ljava/security/Principal;)V" />
+		<method name="getClassLoader()Ljava/lang/ClassLoader;" />
+		<method name="getCodeSource()Ljava/security/CodeSource;" />
+		<method name="getPermissions()Ljava/security/PermissionCollection;" />
+		<method name="getPrincipals()[Ljava/security/Principal;" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/security/Provider" since="1">
+		<extends name="java/util/Properties" />
+		<method name="&lt;init>(Ljava/lang/String;DLjava/lang/String;)V" />
+		<method name="getInfo()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getService(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Provider$Service;" />
+		<method name="getServices()Ljava/util/Set;" />
+		<method name="getVersion()D" />
+		<method name="put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="putAll(Ljava/util/Map;)V" />
+		<method name="putService(Ljava/security/Provider$Service;)V" />
+		<method name="removeService(Ljava/security/Provider$Service;)V" />
+	</class>
+	<class name="java/security/Provider$Service" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/Provider;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;Ljava/util/Map;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getClassName()Ljava/lang/String;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="newInstance(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="supportsParameter(Ljava/lang/Object;)Z" />
+	</class>
+	<class name="java/security/ProviderException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/PublicKey" since="1">
+		<implements name="java/security/Key" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/SecureClassLoader" since="1">
+		<extends name="java/lang/ClassLoader" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/ClassLoader;)V" />
+		<method name="defineClass(Ljava/lang/String;Ljava/nio/ByteBuffer;Ljava/security/CodeSource;)Ljava/lang/Class;" />
+		<method name="defineClass(Ljava/lang/String;[BIILjava/security/CodeSource;)Ljava/lang/Class;" />
+		<method name="getPermissions(Ljava/security/CodeSource;)Ljava/security/PermissionCollection;" />
+	</class>
+	<class name="java/security/SecureRandom" since="1">
+		<extends name="java/util/Random" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/security/SecureRandomSpi;Ljava/security/Provider;)V" />
+		<method name="&lt;init>([B)V" />
+		<method name="generateSeed(I)[B" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/SecureRandom;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/SecureRandom;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/SecureRandom;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getSeed(I)[B" />
+		<method name="next(I)I" />
+		<method name="setSeed([B)V" />
+	</class>
+	<class name="java/security/SecureRandomSpi" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="engineGenerateSeed(I)[B" />
+		<method name="engineNextBytes([B)V" />
+		<method name="engineSetSeed([B)V" />
+	</class>
+	<class name="java/security/Security" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addProvider(Ljava/security/Provider;)I" />
+		<method name="getAlgorithmProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getAlgorithms(Ljava/lang/String;)Ljava/util/Set;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getProvider(Ljava/lang/String;)Ljava/security/Provider;" />
+		<method name="getProviders()[Ljava/security/Provider;" />
+		<method name="getProviders(Ljava/lang/String;)[Ljava/security/Provider;" />
+		<method name="getProviders(Ljava/util/Map;)[Ljava/security/Provider;" />
+		<method name="insertProviderAt(Ljava/security/Provider;I)I" />
+		<method name="removeProvider(Ljava/lang/String;)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/SecurityPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/Signature" since="1">
+		<extends name="java/security/SignatureSpi" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/Signature;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/Signature;" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="initSign(Ljava/security/PrivateKey;)V" />
+		<method name="initSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V" />
+		<method name="initVerify(Ljava/security/PublicKey;)V" />
+		<method name="initVerify(Ljava/security/cert/Certificate;)V" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setParameter(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="sign()[B" />
+		<method name="sign([BII)I" />
+		<method name="update(B)V" />
+		<method name="update(Ljava/nio/ByteBuffer;)V" />
+		<method name="update([B)V" />
+		<method name="update([BII)V" />
+		<method name="verify([B)Z" />
+		<method name="verify([BII)Z" />
+		<field name="SIGN" />
+		<field name="UNINITIALIZED" />
+		<field name="VERIFY" />
+		<field name="state" />
+	</class>
+	<class name="java/security/SignatureException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/SignatureSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="engineGetParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="engineGetParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="engineInitSign(Ljava/security/PrivateKey;)V" />
+		<method name="engineInitSign(Ljava/security/PrivateKey;Ljava/security/SecureRandom;)V" />
+		<method name="engineInitVerify(Ljava/security/PublicKey;)V" />
+		<method name="engineSetParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="engineSetParameter(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="engineSign()[B" />
+		<method name="engineSign([BII)I" />
+		<method name="engineUpdate(B)V" />
+		<method name="engineUpdate(Ljava/nio/ByteBuffer;)V" />
+		<method name="engineUpdate([BII)V" />
+		<method name="engineVerify([B)Z" />
+		<method name="engineVerify([BII)Z" />
+		<field name="appRandom" />
+	</class>
+	<class name="java/security/SignedObject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/io/Serializable;Ljava/security/PrivateKey;Ljava/security/Signature;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getObject()Ljava/lang/Object;" />
+		<method name="getSignature()[B" />
+		<method name="verify(Ljava/security/PublicKey;Ljava/security/Signature;)Z" />
+	</class>
+	<class name="java/security/Signer" since="1">
+		<extends name="java/security/Identity" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/security/IdentityScope;)V" />
+		<method name="getPrivateKey()Ljava/security/PrivateKey;" />
+		<method name="setKeyPair(Ljava/security/KeyPair;)V" />
+	</class>
+	<class name="java/security/Timestamp" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/util/Date;Ljava/security/cert/CertPath;)V" />
+		<method name="getSignerCertPath()Ljava/security/cert/CertPath;" />
+		<method name="getTimestamp()Ljava/util/Date;" />
+	</class>
+	<class name="java/security/UnrecoverableEntryException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/UnrecoverableKeyException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<extends name="java/security/UnrecoverableEntryException" since="9" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/UnresolvedPermission" since="1">
+		<extends name="java/security/Permission" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/security/cert/Certificate;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="getUnresolvedActions()Ljava/lang/String;" />
+		<method name="getUnresolvedCerts()[Ljava/security/cert/Certificate;" />
+		<method name="getUnresolvedName()Ljava/lang/String;" />
+		<method name="getUnresolvedType()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="java/security/acl/Acl" since="1">
+		<implements name="java/security/acl/Owner" />
+		<method name="addEntry(Ljava/security/Principal;Ljava/security/acl/AclEntry;)Z" />
+		<method name="checkPermission(Ljava/security/Principal;Ljava/security/acl/Permission;)Z" />
+		<method name="entries()Ljava/util/Enumeration;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPermissions(Ljava/security/Principal;)Ljava/util/Enumeration;" />
+		<method name="removeEntry(Ljava/security/Principal;Ljava/security/acl/AclEntry;)Z" />
+		<method name="setName(Ljava/security/Principal;Ljava/lang/String;)V" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/acl/AclEntry" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="addPermission(Ljava/security/acl/Permission;)Z" />
+		<method name="checkPermission(Ljava/security/acl/Permission;)Z" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getPrincipal()Ljava/security/Principal;" />
+		<method name="isNegative()Z" />
+		<method name="permissions()Ljava/util/Enumeration;" />
+		<method name="removePermission(Ljava/security/acl/Permission;)Z" />
+		<method name="setNegativePermissions()V" />
+		<method name="setPrincipal(Ljava/security/Principal;)Z" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/acl/AclNotFoundException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/security/acl/Group" since="1">
+		<implements name="java/security/Principal" />
+		<method name="addMember(Ljava/security/Principal;)Z" />
+		<method name="isMember(Ljava/security/Principal;)Z" />
+		<method name="members()Ljava/util/Enumeration;" />
+		<method name="removeMember(Ljava/security/Principal;)Z" />
+	</class>
+	<class name="java/security/acl/LastOwnerException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/security/acl/NotOwnerException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/security/acl/Owner" since="1">
+		<method name="addOwner(Ljava/security/Principal;Ljava/security/Principal;)Z" />
+		<method name="deleteOwner(Ljava/security/Principal;Ljava/security/Principal;)Z" />
+		<method name="isOwner(Ljava/security/Principal;)Z" />
+	</class>
+	<class name="java/security/acl/Permission" since="1">
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/CRL" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="isRevoked(Ljava/security/cert/Certificate;)Z" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/CRLException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/cert/CRLSelector" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="match(Ljava/security/cert/CRL;)Z" />
+	</class>
+	<class name="java/security/cert/CertPath" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getCertificates()Ljava/util/List;" />
+		<method name="getEncoded()[B" />
+		<method name="getEncoded(Ljava/lang/String;)[B" />
+		<method name="getEncodings()Ljava/util/Iterator;" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="writeReplace()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/CertPath$CertPathRep" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;[B)V" />
+		<method name="readResolve()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/CertPathBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/cert/CertPathBuilderSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="build(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getDefaultType()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertPathBuilder;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertPathBuilder;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+	</class>
+	<class name="java/security/cert/CertPathBuilderException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/cert/CertPathBuilderResult" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getCertPath()Ljava/security/cert/CertPath;" />
+	</class>
+	<class name="java/security/cert/CertPathBuilderSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineBuild(Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathBuilderResult;" />
+	</class>
+	<class name="java/security/cert/CertPathParameters" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/CertPathValidator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/cert/CertPathValidatorSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getDefaultType()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/cert/CertPathValidator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertPathValidator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertPathValidator;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="validate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;" />
+	</class>
+	<class name="java/security/cert/CertPathValidatorException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;Ljava/security/cert/CertPath;I)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="getCertPath()Ljava/security/cert/CertPath;" />
+		<method name="getIndex()I" />
+	</class>
+	<class name="java/security/cert/CertPathValidatorResult" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/CertPathValidatorSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineValidate(Ljava/security/cert/CertPath;Ljava/security/cert/CertPathParameters;)Ljava/security/cert/CertPathValidatorResult;" />
+	</class>
+	<class name="java/security/cert/CertSelector" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="match(Ljava/security/cert/Certificate;)Z" />
+	</class>
+	<class name="java/security/cert/CertStore" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/cert/CertStoreSpi;Ljava/security/Provider;Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)V" />
+		<method name="getCRLs(Ljava/security/cert/CRLSelector;)Ljava/util/Collection;" />
+		<method name="getCertStoreParameters()Ljava/security/cert/CertStoreParameters;" />
+		<method name="getCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;" />
+		<method name="getDefaultType()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;)Ljava/security/cert/CertStore;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;Ljava/lang/String;)Ljava/security/cert/CertStore;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/cert/CertStoreParameters;Ljava/security/Provider;)Ljava/security/cert/CertStore;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getType()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/CertStoreException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/cert/CertStoreParameters" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/CertStoreSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/cert/CertStoreParameters;)V" />
+		<method name="engineGetCRLs(Ljava/security/cert/CRLSelector;)Ljava/util/Collection;" />
+		<method name="engineGetCertificates(Ljava/security/cert/CertSelector;)Ljava/util/Collection;" />
+	</class>
+	<class name="java/security/cert/Certificate" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getEncoded()[B" />
+		<method name="getPublicKey()Ljava/security/PublicKey;" />
+		<method name="getType()Ljava/lang/String;" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="verify(Ljava/security/PublicKey;)V" />
+		<method name="verify(Ljava/security/PublicKey;Ljava/lang/String;)V" />
+		<method name="writeReplace()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/Certificate$CertificateRep" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;[B)V" />
+		<method name="readResolve()Ljava/lang/Object;" />
+	</class>
+	<class name="java/security/cert/CertificateEncodingException" since="1">
+		<extends name="java/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/cert/CertificateException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/cert/CertificateExpiredException" since="1">
+		<extends name="java/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/cert/CertificateFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/cert/CertificateFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="generateCRL(Ljava/io/InputStream;)Ljava/security/cert/CRL;" />
+		<method name="generateCRLs(Ljava/io/InputStream;)Ljava/util/Collection;" />
+		<method name="generateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;" />
+		<method name="generateCertPath(Ljava/io/InputStream;Ljava/lang/String;)Ljava/security/cert/CertPath;" />
+		<method name="generateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;" />
+		<method name="generateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;" />
+		<method name="generateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;" />
+		<method name="getCertPathEncodings()Ljava/util/Iterator;" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljava/security/cert/CertificateFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljava/security/cert/CertificateFactory;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getType()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/CertificateFactorySpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGenerateCRL(Ljava/io/InputStream;)Ljava/security/cert/CRL;" />
+		<method name="engineGenerateCRLs(Ljava/io/InputStream;)Ljava/util/Collection;" />
+		<method name="engineGenerateCertPath(Ljava/io/InputStream;)Ljava/security/cert/CertPath;" />
+		<method name="engineGenerateCertPath(Ljava/io/InputStream;Ljava/lang/String;)Ljava/security/cert/CertPath;" />
+		<method name="engineGenerateCertPath(Ljava/util/List;)Ljava/security/cert/CertPath;" />
+		<method name="engineGenerateCertificate(Ljava/io/InputStream;)Ljava/security/cert/Certificate;" />
+		<method name="engineGenerateCertificates(Ljava/io/InputStream;)Ljava/util/Collection;" />
+		<method name="engineGetCertPathEncodings()Ljava/util/Iterator;" />
+	</class>
+	<class name="java/security/cert/CertificateNotYetValidException" since="1">
+		<extends name="java/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/cert/CertificateParsingException" since="1">
+		<extends name="java/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/cert/CollectionCertStoreParameters" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/CertStoreParameters" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getCollection()Ljava/util/Collection;" />
+	</class>
+	<class name="java/security/cert/LDAPCertStoreParameters" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/CertStoreParameters" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getPort()I" />
+		<method name="getServerName()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/PKIXBuilderParameters" since="1">
+		<extends name="java/security/cert/PKIXParameters" />
+		<method name="&lt;init>(Ljava/security/KeyStore;Ljava/security/cert/CertSelector;)V" />
+		<method name="&lt;init>(Ljava/util/Set;Ljava/security/cert/CertSelector;)V" />
+		<method name="getMaxPathLength()I" />
+		<method name="setMaxPathLength(I)V" />
+	</class>
+	<class name="java/security/cert/PKIXCertPathBuilderResult" since="1">
+		<extends name="java/security/cert/PKIXCertPathValidatorResult" />
+		<implements name="java/security/cert/CertPathBuilderResult" />
+		<method name="&lt;init>(Ljava/security/cert/CertPath;Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V" />
+		<method name="getCertPath()Ljava/security/cert/CertPath;" />
+	</class>
+	<class name="java/security/cert/PKIXCertPathChecker" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="check(Ljava/security/cert/Certificate;Ljava/util/Collection;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getSupportedExtensions()Ljava/util/Set;" />
+		<method name="init(Z)V" />
+		<method name="isForwardCheckingSupported()Z" />
+	</class>
+	<class name="java/security/cert/PKIXCertPathValidatorResult" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/CertPathValidatorResult" />
+		<method name="&lt;init>(Ljava/security/cert/TrustAnchor;Ljava/security/cert/PolicyNode;Ljava/security/PublicKey;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getPolicyTree()Ljava/security/cert/PolicyNode;" />
+		<method name="getPublicKey()Ljava/security/PublicKey;" />
+		<method name="getTrustAnchor()Ljava/security/cert/TrustAnchor;" />
+	</class>
+	<class name="java/security/cert/PKIXParameters" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/CertPathParameters" />
+		<method name="&lt;init>(Ljava/security/KeyStore;)V" />
+		<method name="&lt;init>(Ljava/util/Set;)V" />
+		<method name="addCertPathChecker(Ljava/security/cert/PKIXCertPathChecker;)V" />
+		<method name="addCertStore(Ljava/security/cert/CertStore;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getCertPathCheckers()Ljava/util/List;" />
+		<method name="getCertStores()Ljava/util/List;" />
+		<method name="getDate()Ljava/util/Date;" />
+		<method name="getInitialPolicies()Ljava/util/Set;" />
+		<method name="getPolicyQualifiersRejected()Z" />
+		<method name="getSigProvider()Ljava/lang/String;" />
+		<method name="getTargetCertConstraints()Ljava/security/cert/CertSelector;" />
+		<method name="getTrustAnchors()Ljava/util/Set;" />
+		<method name="isAnyPolicyInhibited()Z" />
+		<method name="isExplicitPolicyRequired()Z" />
+		<method name="isPolicyMappingInhibited()Z" />
+		<method name="isRevocationEnabled()Z" />
+		<method name="setAnyPolicyInhibited(Z)V" />
+		<method name="setCertPathCheckers(Ljava/util/List;)V" />
+		<method name="setCertStores(Ljava/util/List;)V" />
+		<method name="setDate(Ljava/util/Date;)V" />
+		<method name="setExplicitPolicyRequired(Z)V" />
+		<method name="setInitialPolicies(Ljava/util/Set;)V" />
+		<method name="setPolicyMappingInhibited(Z)V" />
+		<method name="setPolicyQualifiersRejected(Z)V" />
+		<method name="setRevocationEnabled(Z)V" />
+		<method name="setSigProvider(Ljava/lang/String;)V" />
+		<method name="setTargetCertConstraints(Ljava/security/cert/CertSelector;)V" />
+		<method name="setTrustAnchors(Ljava/util/Set;)V" />
+	</class>
+	<class name="java/security/cert/PolicyNode" since="1">
+		<method name="getChildren()Ljava/util/Iterator;" />
+		<method name="getDepth()I" />
+		<method name="getExpectedPolicies()Ljava/util/Set;" />
+		<method name="getParent()Ljava/security/cert/PolicyNode;" />
+		<method name="getPolicyQualifiers()Ljava/util/Set;" />
+		<method name="getValidPolicy()Ljava/lang/String;" />
+		<method name="isCritical()Z" />
+	</class>
+	<class name="java/security/cert/PolicyQualifierInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>([B)V" />
+		<method name="getEncoded()[B" />
+		<method name="getPolicyQualifier()[B" />
+		<method name="getPolicyQualifierId()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/TrustAnchor" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/security/PublicKey;[B)V" />
+		<method name="&lt;init>(Ljava/security/cert/X509Certificate;[B)V" />
+		<method name="&lt;init>(Ljavax/security/auth/x500/X500Principal;Ljava/security/PublicKey;[B)V" />
+		<method name="getCA()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getCAName()Ljava/lang/String;" />
+		<method name="getCAPublicKey()Ljava/security/PublicKey;" />
+		<method name="getNameConstraints()[B" />
+		<method name="getTrustedCert()Ljava/security/cert/X509Certificate;" />
+	</class>
+	<class name="java/security/cert/X509CRL" since="1">
+		<extends name="java/security/cert/CRL" />
+		<implements name="java/security/cert/X509Extension" />
+		<method name="&lt;init>()V" />
+		<method name="getEncoded()[B" />
+		<method name="getIssuerDN()Ljava/security/Principal;" />
+		<method name="getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getNextUpdate()Ljava/util/Date;" />
+		<method name="getRevokedCertificate(Ljava/math/BigInteger;)Ljava/security/cert/X509CRLEntry;" />
+		<method name="getRevokedCertificate(Ljava/security/cert/X509Certificate;)Ljava/security/cert/X509CRLEntry;" />
+		<method name="getRevokedCertificates()Ljava/util/Set;" />
+		<method name="getSigAlgName()Ljava/lang/String;" />
+		<method name="getSigAlgOID()Ljava/lang/String;" />
+		<method name="getSigAlgParams()[B" />
+		<method name="getSignature()[B" />
+		<method name="getTBSCertList()[B" />
+		<method name="getThisUpdate()Ljava/util/Date;" />
+		<method name="getVersion()I" />
+		<method name="verify(Ljava/security/PublicKey;)V" />
+		<method name="verify(Ljava/security/PublicKey;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/cert/X509CRLEntry" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/X509Extension" />
+		<method name="&lt;init>()V" />
+		<method name="getCertificateIssuer()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getEncoded()[B" />
+		<method name="getRevocationDate()Ljava/util/Date;" />
+		<method name="getSerialNumber()Ljava/math/BigInteger;" />
+		<method name="hasExtensions()Z" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/cert/X509CRLSelector" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/CRLSelector" />
+		<method name="&lt;init>()V" />
+		<method name="addIssuer(Ljavax/security/auth/x500/X500Principal;)V" />
+		<method name="addIssuerName(Ljava/lang/String;)V" />
+		<method name="addIssuerName([B)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getCertificateChecking()Ljava/security/cert/X509Certificate;" />
+		<method name="getDateAndTime()Ljava/util/Date;" />
+		<method name="getIssuerNames()Ljava/util/Collection;" />
+		<method name="getIssuers()Ljava/util/Collection;" />
+		<method name="getMaxCRL()Ljava/math/BigInteger;" />
+		<method name="getMinCRL()Ljava/math/BigInteger;" />
+		<method name="match(Ljava/security/cert/CRL;)Z" />
+		<method name="setCertificateChecking(Ljava/security/cert/X509Certificate;)V" />
+		<method name="setDateAndTime(Ljava/util/Date;)V" />
+		<method name="setIssuerNames(Ljava/util/Collection;)V" />
+		<method name="setIssuers(Ljava/util/Collection;)V" />
+		<method name="setMaxCRLNumber(Ljava/math/BigInteger;)V" />
+		<method name="setMinCRLNumber(Ljava/math/BigInteger;)V" />
+	</class>
+	<class name="java/security/cert/X509CertSelector" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/cert/CertSelector" />
+		<method name="&lt;init>()V" />
+		<method name="addPathToName(ILjava/lang/String;)V" />
+		<method name="addPathToName(I[B)V" />
+		<method name="addSubjectAlternativeName(ILjava/lang/String;)V" />
+		<method name="addSubjectAlternativeName(I[B)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getAuthorityKeyIdentifier()[B" />
+		<method name="getBasicConstraints()I" />
+		<method name="getCertificate()Ljava/security/cert/X509Certificate;" />
+		<method name="getCertificateValid()Ljava/util/Date;" />
+		<method name="getExtendedKeyUsage()Ljava/util/Set;" />
+		<method name="getIssuer()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getIssuerAsBytes()[B" />
+		<method name="getIssuerAsString()Ljava/lang/String;" />
+		<method name="getKeyUsage()[Z" />
+		<method name="getMatchAllSubjectAltNames()Z" />
+		<method name="getNameConstraints()[B" />
+		<method name="getPathToNames()Ljava/util/Collection;" />
+		<method name="getPolicy()Ljava/util/Set;" />
+		<method name="getPrivateKeyValid()Ljava/util/Date;" />
+		<method name="getSerialNumber()Ljava/math/BigInteger;" />
+		<method name="getSubject()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getSubjectAlternativeNames()Ljava/util/Collection;" />
+		<method name="getSubjectAsBytes()[B" />
+		<method name="getSubjectAsString()Ljava/lang/String;" />
+		<method name="getSubjectKeyIdentifier()[B" />
+		<method name="getSubjectPublicKey()Ljava/security/PublicKey;" />
+		<method name="getSubjectPublicKeyAlgID()Ljava/lang/String;" />
+		<method name="match(Ljava/security/cert/Certificate;)Z" />
+		<method name="setAuthorityKeyIdentifier([B)V" />
+		<method name="setBasicConstraints(I)V" />
+		<method name="setCertificate(Ljava/security/cert/X509Certificate;)V" />
+		<method name="setCertificateValid(Ljava/util/Date;)V" />
+		<method name="setExtendedKeyUsage(Ljava/util/Set;)V" />
+		<method name="setIssuer(Ljava/lang/String;)V" />
+		<method name="setIssuer(Ljavax/security/auth/x500/X500Principal;)V" />
+		<method name="setIssuer([B)V" />
+		<method name="setKeyUsage([Z)V" />
+		<method name="setMatchAllSubjectAltNames(Z)V" />
+		<method name="setNameConstraints([B)V" />
+		<method name="setPathToNames(Ljava/util/Collection;)V" />
+		<method name="setPolicy(Ljava/util/Set;)V" />
+		<method name="setPrivateKeyValid(Ljava/util/Date;)V" />
+		<method name="setSerialNumber(Ljava/math/BigInteger;)V" />
+		<method name="setSubject(Ljava/lang/String;)V" />
+		<method name="setSubject(Ljavax/security/auth/x500/X500Principal;)V" />
+		<method name="setSubject([B)V" />
+		<method name="setSubjectAlternativeNames(Ljava/util/Collection;)V" />
+		<method name="setSubjectKeyIdentifier([B)V" />
+		<method name="setSubjectPublicKey(Ljava/security/PublicKey;)V" />
+		<method name="setSubjectPublicKey([B)V" />
+		<method name="setSubjectPublicKeyAlgID(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/cert/X509Certificate" since="1">
+		<extends name="java/security/cert/Certificate" />
+		<implements name="java/security/cert/X509Extension" />
+		<method name="&lt;init>()V" />
+		<method name="checkValidity()V" />
+		<method name="checkValidity(Ljava/util/Date;)V" />
+		<method name="getBasicConstraints()I" />
+		<method name="getExtendedKeyUsage()Ljava/util/List;" />
+		<method name="getIssuerAlternativeNames()Ljava/util/Collection;" />
+		<method name="getIssuerDN()Ljava/security/Principal;" />
+		<method name="getIssuerUniqueID()[Z" />
+		<method name="getIssuerX500Principal()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getKeyUsage()[Z" />
+		<method name="getNotAfter()Ljava/util/Date;" />
+		<method name="getNotBefore()Ljava/util/Date;" />
+		<method name="getSerialNumber()Ljava/math/BigInteger;" />
+		<method name="getSigAlgName()Ljava/lang/String;" />
+		<method name="getSigAlgOID()Ljava/lang/String;" />
+		<method name="getSigAlgParams()[B" />
+		<method name="getSignature()[B" />
+		<method name="getSubjectAlternativeNames()Ljava/util/Collection;" />
+		<method name="getSubjectDN()Ljava/security/Principal;" />
+		<method name="getSubjectUniqueID()[Z" />
+		<method name="getSubjectX500Principal()Ljavax/security/auth/x500/X500Principal;" />
+		<method name="getTBSCertificate()[B" />
+		<method name="getVersion()I" />
+	</class>
+	<class name="java/security/cert/X509Extension" since="1">
+		<method name="getCriticalExtensionOIDs()Ljava/util/Set;" />
+		<method name="getExtensionValue(Ljava/lang/String;)[B" />
+		<method name="getNonCriticalExtensionOIDs()Ljava/util/Set;" />
+		<method name="hasUnsupportedCriticalExtension()Z" />
+	</class>
+	<class name="java/security/interfaces/DSAKey" since="1">
+		<method name="getParams()Ljava/security/interfaces/DSAParams;" />
+	</class>
+	<class name="java/security/interfaces/DSAKeyPairGenerator" since="1">
+		<method name="initialize(IZLjava/security/SecureRandom;)V" />
+		<method name="initialize(Ljava/security/interfaces/DSAParams;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="java/security/interfaces/DSAParams" since="1">
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getP()Ljava/math/BigInteger;" />
+		<method name="getQ()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/interfaces/DSAPrivateKey" since="1">
+		<implements name="java/security/interfaces/DSAKey" />
+		<implements name="java/security/PrivateKey" />
+		<method name="getX()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/DSAPublicKey" since="1">
+		<implements name="java/security/interfaces/DSAKey" />
+		<implements name="java/security/PublicKey" />
+		<method name="getY()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/ECKey" since="1">
+		<method name="getParams()Ljava/security/spec/ECParameterSpec;" />
+	</class>
+	<class name="java/security/interfaces/ECPrivateKey" since="1">
+		<implements name="java/security/interfaces/ECKey" />
+		<implements name="java/security/PrivateKey" />
+		<method name="getS()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/ECPublicKey" since="1">
+		<implements name="java/security/interfaces/ECKey" />
+		<implements name="java/security/PublicKey" />
+		<method name="getW()Ljava/security/spec/ECPoint;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/RSAKey" since="1">
+		<method name="getModulus()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/interfaces/RSAMultiPrimePrivateCrtKey" since="1">
+		<implements name="java/security/interfaces/RSAPrivateKey" />
+		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
+		<method name="getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;" />
+		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
+		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
+		<method name="getPrimeP()Ljava/math/BigInteger;" />
+		<method name="getPrimeQ()Ljava/math/BigInteger;" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/RSAPrivateCrtKey" since="1">
+		<implements name="java/security/interfaces/RSAPrivateKey" />
+		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
+		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
+		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
+		<method name="getPrimeP()Ljava/math/BigInteger;" />
+		<method name="getPrimeQ()Ljava/math/BigInteger;" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/RSAPrivateKey" since="1">
+		<implements name="java/security/PrivateKey" />
+		<implements name="java/security/interfaces/RSAKey" />
+		<method name="getPrivateExponent()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/interfaces/RSAPublicKey" since="1">
+		<implements name="java/security/PublicKey" />
+		<implements name="java/security/interfaces/RSAKey" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="java/security/spec/AlgorithmParameterSpec" since="1">
+	</class>
+	<class name="java/security/spec/DSAParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<implements name="java/security/interfaces/DSAParams" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getP()Ljava/math/BigInteger;" />
+		<method name="getQ()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/DSAPrivateKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getP()Ljava/math/BigInteger;" />
+		<method name="getQ()Ljava/math/BigInteger;" />
+		<method name="getX()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/DSAPublicKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getP()Ljava/math/BigInteger;" />
+		<method name="getQ()Ljava/math/BigInteger;" />
+		<method name="getY()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/ECField" since="1">
+		<method name="getFieldSize()I" />
+	</class>
+	<class name="java/security/spec/ECFieldF2m" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/ECField" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/math/BigInteger;)V" />
+		<method name="&lt;init>(I[I)V" />
+		<method name="getFieldSize()I" />
+		<method name="getM()I" />
+		<method name="getMidTermsOfReductionPolynomial()[I" />
+		<method name="getReductionPolynomial()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/ECFieldFp" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/ECField" />
+		<method name="&lt;init>(Ljava/math/BigInteger;)V" />
+		<method name="getFieldSize()I" />
+		<method name="getP()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/ECGenParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getName()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/spec/ECParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(Ljava/security/spec/EllipticCurve;Ljava/security/spec/ECPoint;Ljava/math/BigInteger;I)V" />
+		<method name="getCofactor()I" />
+		<method name="getCurve()Ljava/security/spec/EllipticCurve;" />
+		<method name="getGenerator()Ljava/security/spec/ECPoint;" />
+		<method name="getOrder()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/ECPoint" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getAffineX()Ljava/math/BigInteger;" />
+		<method name="getAffineY()Ljava/math/BigInteger;" />
+		<field name="POINT_INFINITY" />
+	</class>
+	<class name="java/security/spec/ECPrivateKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/security/spec/ECParameterSpec;)V" />
+		<method name="getParams()Ljava/security/spec/ECParameterSpec;" />
+		<method name="getS()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/ECPublicKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/security/spec/ECPoint;Ljava/security/spec/ECParameterSpec;)V" />
+		<method name="getParams()Ljava/security/spec/ECParameterSpec;" />
+		<method name="getW()Ljava/security/spec/ECPoint;" />
+	</class>
+	<class name="java/security/spec/EllipticCurve" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="&lt;init>(Ljava/security/spec/ECField;Ljava/math/BigInteger;Ljava/math/BigInteger;[B)V" />
+		<method name="getA()Ljava/math/BigInteger;" />
+		<method name="getB()Ljava/math/BigInteger;" />
+		<method name="getField()Ljava/security/spec/ECField;" />
+		<method name="getSeed()[B" />
+	</class>
+	<class name="java/security/spec/EncodedKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>([B)V" />
+		<method name="getEncoded()[B" />
+		<method name="getFormat()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/spec/InvalidKeySpecException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/security/spec/InvalidParameterSpecException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/security/spec/KeySpec" since="1">
+	</class>
+	<class name="java/security/spec/MGF1ParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getDigestAlgorithm()Ljava/lang/String;" />
+		<field name="SHA1" />
+		<field name="SHA256" />
+		<field name="SHA384" />
+		<field name="SHA512" />
+	</class>
+	<class name="java/security/spec/PKCS8EncodedKeySpec" since="1">
+		<extends name="java/security/spec/EncodedKeySpec" />
+		<method name="&lt;init>([B)V" />
+		<method name="getFormat()Ljava/lang/String;" />
+	</class>
+	<class name="java/security/spec/PSSParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;II)V" />
+		<method name="getDigestAlgorithm()Ljava/lang/String;" />
+		<method name="getMGFAlgorithm()Ljava/lang/String;" />
+		<method name="getMGFParameters()Ljava/security/spec/AlgorithmParameterSpec;" />
+		<method name="getSaltLength()I" />
+		<method name="getTrailerField()I" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="java/security/spec/RSAKeyGenParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(ILjava/math/BigInteger;)V" />
+		<method name="getKeysize()I" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+		<field name="F0" />
+		<field name="F4" />
+	</class>
+	<class name="java/security/spec/RSAMultiPrimePrivateCrtKeySpec" since="1">
+		<extends name="java/security/spec/RSAPrivateKeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;[Ljava/security/spec/RSAOtherPrimeInfo;)V" />
+		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
+		<method name="getOtherPrimeInfo()[Ljava/security/spec/RSAOtherPrimeInfo;" />
+		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
+		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
+		<method name="getPrimeP()Ljava/math/BigInteger;" />
+		<method name="getPrimeQ()Ljava/math/BigInteger;" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/RSAOtherPrimeInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
+		<method name="getExponent()Ljava/math/BigInteger;" />
+		<method name="getPrime()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/RSAPrivateCrtKeySpec" since="1">
+		<extends name="java/security/spec/RSAPrivateKeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getCrtCoefficient()Ljava/math/BigInteger;" />
+		<method name="getPrimeExponentP()Ljava/math/BigInteger;" />
+		<method name="getPrimeExponentQ()Ljava/math/BigInteger;" />
+		<method name="getPrimeP()Ljava/math/BigInteger;" />
+		<method name="getPrimeQ()Ljava/math/BigInteger;" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/RSAPrivateKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getModulus()Ljava/math/BigInteger;" />
+		<method name="getPrivateExponent()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/RSAPublicKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getModulus()Ljava/math/BigInteger;" />
+		<method name="getPublicExponent()Ljava/math/BigInteger;" />
+	</class>
+	<class name="java/security/spec/X509EncodedKeySpec" since="1">
+		<extends name="java/security/spec/EncodedKeySpec" />
+		<method name="&lt;init>([B)V" />
+		<method name="getFormat()Ljava/lang/String;" />
+	</class>
+	<class name="java/sql/Array" since="1">
+		<method name="free()V" since="9" />
+		<method name="getArray()Ljava/lang/Object;" />
+		<method name="getArray(JI)Ljava/lang/Object;" />
+		<method name="getArray(JILjava/util/Map;)Ljava/lang/Object;" />
+		<method name="getArray(Ljava/util/Map;)Ljava/lang/Object;" />
+		<method name="getBaseType()I" />
+		<method name="getBaseTypeName()Ljava/lang/String;" />
+		<method name="getResultSet()Ljava/sql/ResultSet;" />
+		<method name="getResultSet(JI)Ljava/sql/ResultSet;" />
+		<method name="getResultSet(JILjava/util/Map;)Ljava/sql/ResultSet;" />
+		<method name="getResultSet(Ljava/util/Map;)Ljava/sql/ResultSet;" />
+	</class>
+	<class name="java/sql/BatchUpdateException" since="1">
+		<extends name="java/sql/SQLException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I[I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I[ILjava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;[ILjava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;[I)V" />
+		<method name="&lt;init>(Ljava/lang/String;[ILjava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>([I)V" />
+		<method name="&lt;init>([ILjava/lang/Throwable;)V" since="9" />
+		<method name="getUpdateCounts()[I" />
+	</class>
+	<class name="java/sql/Blob" since="1">
+		<method name="free()V" since="9" />
+		<method name="getBinaryStream()Ljava/io/InputStream;" />
+		<method name="getBinaryStream(JJ)Ljava/io/InputStream;" since="9" />
+		<method name="getBytes(JI)[B" />
+		<method name="length()J" />
+		<method name="position(Ljava/sql/Blob;J)J" />
+		<method name="position([BJ)J" />
+		<method name="setBinaryStream(J)Ljava/io/OutputStream;" />
+		<method name="setBytes(J[B)I" />
+		<method name="setBytes(J[BII)I" />
+		<method name="truncate(J)V" />
+	</class>
+	<class name="java/sql/CallableStatement" since="1">
+		<implements name="java/sql/PreparedStatement" />
+		<method name="getArray(I)Ljava/sql/Array;" />
+		<method name="getArray(Ljava/lang/String;)Ljava/sql/Array;" />
+		<method name="getBigDecimal(I)Ljava/math/BigDecimal;" />
+		<method name="getBigDecimal(II)Ljava/math/BigDecimal;" />
+		<method name="getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;" />
+		<method name="getBlob(I)Ljava/sql/Blob;" />
+		<method name="getBlob(Ljava/lang/String;)Ljava/sql/Blob;" />
+		<method name="getBoolean(I)Z" />
+		<method name="getBoolean(Ljava/lang/String;)Z" />
+		<method name="getByte(I)B" />
+		<method name="getByte(Ljava/lang/String;)B" />
+		<method name="getBytes(I)[B" />
+		<method name="getBytes(Ljava/lang/String;)[B" />
+		<method name="getCharacterStream(I)Ljava/io/Reader;" since="9" />
+		<method name="getCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" since="9" />
+		<method name="getClob(I)Ljava/sql/Clob;" />
+		<method name="getClob(Ljava/lang/String;)Ljava/sql/Clob;" />
+		<method name="getDate(I)Ljava/sql/Date;" />
+		<method name="getDate(ILjava/util/Calendar;)Ljava/sql/Date;" />
+		<method name="getDate(Ljava/lang/String;)Ljava/sql/Date;" />
+		<method name="getDate(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Date;" />
+		<method name="getDouble(I)D" />
+		<method name="getDouble(Ljava/lang/String;)D" />
+		<method name="getFloat(I)F" />
+		<method name="getFloat(Ljava/lang/String;)F" />
+		<method name="getInt(I)I" />
+		<method name="getInt(Ljava/lang/String;)I" />
+		<method name="getLong(I)J" />
+		<method name="getLong(Ljava/lang/String;)J" />
+		<method name="getNCharacterStream(I)Ljava/io/Reader;" since="9" />
+		<method name="getNCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" since="9" />
+		<method name="getNClob(I)Ljava/sql/NClob;" since="9" />
+		<method name="getNClob(Ljava/lang/String;)Ljava/sql/NClob;" since="9" />
+		<method name="getNString(I)Ljava/lang/String;" since="9" />
+		<method name="getNString(Ljava/lang/String;)Ljava/lang/String;" since="9" />
+		<method name="getObject(I)Ljava/lang/Object;" />
+		<method name="getObject(ILjava/util/Map;)Ljava/lang/Object;" />
+		<method name="getObject(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getObject(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;" />
+		<method name="getRef(I)Ljava/sql/Ref;" />
+		<method name="getRef(Ljava/lang/String;)Ljava/sql/Ref;" />
+		<method name="getRowId(I)Ljava/sql/RowId;" since="9" />
+		<method name="getRowId(Ljava/lang/String;)Ljava/sql/RowId;" since="9" />
+		<method name="getSQLXML(I)Ljava/sql/SQLXML;" since="9" />
+		<method name="getSQLXML(Ljava/lang/String;)Ljava/sql/SQLXML;" since="9" />
+		<method name="getShort(I)S" />
+		<method name="getShort(Ljava/lang/String;)S" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getTime(I)Ljava/sql/Time;" />
+		<method name="getTime(ILjava/util/Calendar;)Ljava/sql/Time;" />
+		<method name="getTime(Ljava/lang/String;)Ljava/sql/Time;" />
+		<method name="getTime(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Time;" />
+		<method name="getTimestamp(I)Ljava/sql/Timestamp;" />
+		<method name="getTimestamp(ILjava/util/Calendar;)Ljava/sql/Timestamp;" />
+		<method name="getTimestamp(Ljava/lang/String;)Ljava/sql/Timestamp;" />
+		<method name="getTimestamp(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Timestamp;" />
+		<method name="getURL(I)Ljava/net/URL;" />
+		<method name="getURL(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="registerOutParameter(II)V" />
+		<method name="registerOutParameter(III)V" />
+		<method name="registerOutParameter(IILjava/lang/String;)V" />
+		<method name="registerOutParameter(Ljava/lang/String;I)V" />
+		<method name="registerOutParameter(Ljava/lang/String;II)V" />
+		<method name="registerOutParameter(Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
+		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="setBigDecimal(Ljava/lang/String;Ljava/math/BigDecimal;)V" />
+		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
+		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="setBlob(Ljava/lang/String;Ljava/sql/Blob;)V" since="9" />
+		<method name="setBoolean(Ljava/lang/String;Z)V" />
+		<method name="setByte(Ljava/lang/String;B)V" />
+		<method name="setBytes(Ljava/lang/String;[B)V" />
+		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;I)V" />
+		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setClob(Ljava/lang/String;Ljava/sql/Clob;)V" since="9" />
+		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;)V" />
+		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;Ljava/util/Calendar;)V" />
+		<method name="setDouble(Ljava/lang/String;D)V" />
+		<method name="setFloat(Ljava/lang/String;F)V" />
+		<method name="setInt(Ljava/lang/String;I)V" />
+		<method name="setLong(Ljava/lang/String;J)V" />
+		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setNClob(Ljava/lang/String;Ljava/sql/NClob;)V" since="9" />
+		<method name="setNString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
+		<method name="setNull(Ljava/lang/String;I)V" />
+		<method name="setNull(Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;I)V" />
+		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;II)V" />
+		<method name="setRowId(Ljava/lang/String;Ljava/sql/RowId;)V" since="9" />
+		<method name="setSQLXML(Ljava/lang/String;Ljava/sql/SQLXML;)V" since="9" />
+		<method name="setShort(Ljava/lang/String;S)V" />
+		<method name="setString(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;)V" />
+		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;Ljava/util/Calendar;)V" />
+		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;)V" />
+		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;Ljava/util/Calendar;)V" />
+		<method name="setURL(Ljava/lang/String;Ljava/net/URL;)V" />
+		<method name="wasNull()Z" />
+	</class>
+	<class name="java/sql/ClientInfoStatus" since="9">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/sql/ClientInfoStatus;" />
+		<method name="values()[Ljava/sql/ClientInfoStatus;" />
+		<field name="REASON_UNKNOWN" />
+		<field name="REASON_UNKNOWN_PROPERTY" />
+		<field name="REASON_VALUE_INVALID" />
+		<field name="REASON_VALUE_TRUNCATED" />
+	</class>
+	<class name="java/sql/Clob" since="1">
+		<method name="free()V" since="9" />
+		<method name="getAsciiStream()Ljava/io/InputStream;" />
+		<method name="getCharacterStream()Ljava/io/Reader;" />
+		<method name="getCharacterStream(JJ)Ljava/io/Reader;" since="9" />
+		<method name="getSubString(JI)Ljava/lang/String;" />
+		<method name="length()J" />
+		<method name="position(Ljava/lang/String;J)J" />
+		<method name="position(Ljava/sql/Clob;J)J" />
+		<method name="setAsciiStream(J)Ljava/io/OutputStream;" />
+		<method name="setCharacterStream(J)Ljava/io/Writer;" />
+		<method name="setString(JLjava/lang/String;)I" />
+		<method name="setString(JLjava/lang/String;II)I" />
+		<method name="truncate(J)V" />
+	</class>
+	<class name="java/sql/Connection" since="1">
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="clearWarnings()V" />
+		<method name="close()V" />
+		<method name="commit()V" />
+		<method name="createArrayOf(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Array;" since="9" />
+		<method name="createBlob()Ljava/sql/Blob;" since="9" />
+		<method name="createClob()Ljava/sql/Clob;" since="9" />
+		<method name="createNClob()Ljava/sql/NClob;" since="9" />
+		<method name="createSQLXML()Ljava/sql/SQLXML;" since="9" />
+		<method name="createStatement()Ljava/sql/Statement;" />
+		<method name="createStatement(II)Ljava/sql/Statement;" />
+		<method name="createStatement(III)Ljava/sql/Statement;" />
+		<method name="createStruct(Ljava/lang/String;[Ljava/lang/Object;)Ljava/sql/Struct;" since="9" />
+		<method name="getAutoCommit()Z" />
+		<method name="getCatalog()Ljava/lang/String;" />
+		<method name="getClientInfo()Ljava/util/Properties;" since="9" />
+		<method name="getClientInfo(Ljava/lang/String;)Ljava/lang/String;" since="9" />
+		<method name="getHoldability()I" />
+		<method name="getMetaData()Ljava/sql/DatabaseMetaData;" />
+		<method name="getTransactionIsolation()I" />
+		<method name="getTypeMap()Ljava/util/Map;" />
+		<method name="getWarnings()Ljava/sql/SQLWarning;" />
+		<method name="isClosed()Z" />
+		<method name="isReadOnly()Z" />
+		<method name="isValid(I)Z" since="9" />
+		<method name="nativeSQL(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="prepareCall(Ljava/lang/String;)Ljava/sql/CallableStatement;" />
+		<method name="prepareCall(Ljava/lang/String;II)Ljava/sql/CallableStatement;" />
+		<method name="prepareCall(Ljava/lang/String;III)Ljava/sql/CallableStatement;" />
+		<method name="prepareStatement(Ljava/lang/String;)Ljava/sql/PreparedStatement;" />
+		<method name="prepareStatement(Ljava/lang/String;I)Ljava/sql/PreparedStatement;" />
+		<method name="prepareStatement(Ljava/lang/String;II)Ljava/sql/PreparedStatement;" />
+		<method name="prepareStatement(Ljava/lang/String;III)Ljava/sql/PreparedStatement;" />
+		<method name="prepareStatement(Ljava/lang/String;[I)Ljava/sql/PreparedStatement;" />
+		<method name="prepareStatement(Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/PreparedStatement;" />
+		<method name="releaseSavepoint(Ljava/sql/Savepoint;)V" />
+		<method name="rollback()V" />
+		<method name="rollback(Ljava/sql/Savepoint;)V" />
+		<method name="setAutoCommit(Z)V" />
+		<method name="setCatalog(Ljava/lang/String;)V" />
+		<method name="setClientInfo(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
+		<method name="setClientInfo(Ljava/util/Properties;)V" since="9" />
+		<method name="setHoldability(I)V" />
+		<method name="setReadOnly(Z)V" />
+		<method name="setSavepoint()Ljava/sql/Savepoint;" />
+		<method name="setSavepoint(Ljava/lang/String;)Ljava/sql/Savepoint;" />
+		<method name="setTransactionIsolation(I)V" />
+		<method name="setTypeMap(Ljava/util/Map;)V" />
+		<field name="TRANSACTION_NONE" />
+		<field name="TRANSACTION_READ_COMMITTED" />
+		<field name="TRANSACTION_READ_UNCOMMITTED" />
+		<field name="TRANSACTION_REPEATABLE_READ" />
+		<field name="TRANSACTION_SERIALIZABLE" />
+	</class>
+	<class name="java/sql/DataTruncation" since="1">
+		<extends name="java/sql/SQLWarning" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(IZZII)V" />
+		<method name="&lt;init>(IZZIILjava/lang/Throwable;)V" since="9" />
+		<method name="getDataSize()I" />
+		<method name="getIndex()I" />
+		<method name="getParameter()Z" />
+		<method name="getRead()Z" />
+		<method name="getTransferSize()I" />
+	</class>
+	<class name="java/sql/DatabaseMetaData" since="1">
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="allProceduresAreCallable()Z" />
+		<method name="allTablesAreSelectable()Z" />
+		<method name="autoCommitFailureClosesAllResultSets()Z" since="9" />
+		<method name="dataDefinitionCausesTransactionCommit()Z" />
+		<method name="dataDefinitionIgnoredInTransactions()Z" />
+		<method name="deletesAreDetected(I)Z" />
+		<method name="doesMaxRowSizeIncludeBlobs()Z" />
+		<method name="getAttributes(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getBestRowIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)Ljava/sql/ResultSet;" />
+		<method name="getCatalogSeparator()Ljava/lang/String;" />
+		<method name="getCatalogTerm()Ljava/lang/String;" />
+		<method name="getCatalogs()Ljava/sql/ResultSet;" />
+		<method name="getClientInfoProperties()Ljava/sql/ResultSet;" since="9" />
+		<method name="getColumnPrivileges(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getConnection()Ljava/sql/Connection;" />
+		<method name="getCrossReference(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getDatabaseMajorVersion()I" />
+		<method name="getDatabaseMinorVersion()I" />
+		<method name="getDatabaseProductName()Ljava/lang/String;" />
+		<method name="getDatabaseProductVersion()Ljava/lang/String;" />
+		<method name="getDefaultTransactionIsolation()I" />
+		<method name="getDriverMajorVersion()I" />
+		<method name="getDriverMinorVersion()I" />
+		<method name="getDriverName()Ljava/lang/String;" />
+		<method name="getDriverVersion()Ljava/lang/String;" />
+		<method name="getExportedKeys(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getExtraNameCharacters()Ljava/lang/String;" />
+		<method name="getFunctionColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" since="9" />
+		<method name="getFunctions(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" since="9" />
+		<method name="getIdentifierQuoteString()Ljava/lang/String;" />
+		<method name="getImportedKeys(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getIndexInfo(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZZ)Ljava/sql/ResultSet;" />
+		<method name="getJDBCMajorVersion()I" />
+		<method name="getJDBCMinorVersion()I" />
+		<method name="getMaxBinaryLiteralLength()I" />
+		<method name="getMaxCatalogNameLength()I" />
+		<method name="getMaxCharLiteralLength()I" />
+		<method name="getMaxColumnNameLength()I" />
+		<method name="getMaxColumnsInGroupBy()I" />
+		<method name="getMaxColumnsInIndex()I" />
+		<method name="getMaxColumnsInOrderBy()I" />
+		<method name="getMaxColumnsInSelect()I" />
+		<method name="getMaxColumnsInTable()I" />
+		<method name="getMaxConnections()I" />
+		<method name="getMaxCursorNameLength()I" />
+		<method name="getMaxIndexLength()I" />
+		<method name="getMaxProcedureNameLength()I" />
+		<method name="getMaxRowSize()I" />
+		<method name="getMaxSchemaNameLength()I" />
+		<method name="getMaxStatementLength()I" />
+		<method name="getMaxStatements()I" />
+		<method name="getMaxTableNameLength()I" />
+		<method name="getMaxTablesInSelect()I" />
+		<method name="getMaxUserNameLength()I" />
+		<method name="getNumericFunctions()Ljava/lang/String;" />
+		<method name="getPrimaryKeys(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getProcedureColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getProcedureTerm()Ljava/lang/String;" />
+		<method name="getProcedures(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getResultSetHoldability()I" />
+		<method name="getRowIdLifetime()Ljava/sql/RowIdLifetime;" since="9" />
+		<method name="getSQLKeywords()Ljava/lang/String;" />
+		<method name="getSQLStateType()I" />
+		<method name="getSchemaTerm()Ljava/lang/String;" />
+		<method name="getSchemas()Ljava/sql/ResultSet;" />
+		<method name="getSchemas(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" since="9" />
+		<method name="getSearchStringEscape()Ljava/lang/String;" />
+		<method name="getStringFunctions()Ljava/lang/String;" />
+		<method name="getSuperTables(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getSuperTypes(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getSystemFunctions()Ljava/lang/String;" />
+		<method name="getTablePrivileges(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getTableTypes()Ljava/sql/ResultSet;" />
+		<method name="getTables(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="getTimeDateFunctions()Ljava/lang/String;" />
+		<method name="getTypeInfo()Ljava/sql/ResultSet;" />
+		<method name="getUDTs(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[I)Ljava/sql/ResultSet;" />
+		<method name="getURL()Ljava/lang/String;" />
+		<method name="getUserName()Ljava/lang/String;" />
+		<method name="getVersionColumns(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="insertsAreDetected(I)Z" />
+		<method name="isCatalogAtStart()Z" />
+		<method name="isReadOnly()Z" />
+		<method name="locatorsUpdateCopy()Z" />
+		<method name="nullPlusNonNullIsNull()Z" />
+		<method name="nullsAreSortedAtEnd()Z" />
+		<method name="nullsAreSortedAtStart()Z" />
+		<method name="nullsAreSortedHigh()Z" />
+		<method name="nullsAreSortedLow()Z" />
+		<method name="othersDeletesAreVisible(I)Z" />
+		<method name="othersInsertsAreVisible(I)Z" />
+		<method name="othersUpdatesAreVisible(I)Z" />
+		<method name="ownDeletesAreVisible(I)Z" />
+		<method name="ownInsertsAreVisible(I)Z" />
+		<method name="ownUpdatesAreVisible(I)Z" />
+		<method name="storesLowerCaseIdentifiers()Z" />
+		<method name="storesLowerCaseQuotedIdentifiers()Z" />
+		<method name="storesMixedCaseIdentifiers()Z" />
+		<method name="storesMixedCaseQuotedIdentifiers()Z" />
+		<method name="storesUpperCaseIdentifiers()Z" />
+		<method name="storesUpperCaseQuotedIdentifiers()Z" />
+		<method name="supportsANSI92EntryLevelSQL()Z" />
+		<method name="supportsANSI92FullSQL()Z" />
+		<method name="supportsANSI92IntermediateSQL()Z" />
+		<method name="supportsAlterTableWithAddColumn()Z" />
+		<method name="supportsAlterTableWithDropColumn()Z" />
+		<method name="supportsBatchUpdates()Z" />
+		<method name="supportsCatalogsInDataManipulation()Z" />
+		<method name="supportsCatalogsInIndexDefinitions()Z" />
+		<method name="supportsCatalogsInPrivilegeDefinitions()Z" />
+		<method name="supportsCatalogsInProcedureCalls()Z" />
+		<method name="supportsCatalogsInTableDefinitions()Z" />
+		<method name="supportsColumnAliasing()Z" />
+		<method name="supportsConvert()Z" />
+		<method name="supportsConvert(II)Z" />
+		<method name="supportsCoreSQLGrammar()Z" />
+		<method name="supportsCorrelatedSubqueries()Z" />
+		<method name="supportsDataDefinitionAndDataManipulationTransactions()Z" />
+		<method name="supportsDataManipulationTransactionsOnly()Z" />
+		<method name="supportsDifferentTableCorrelationNames()Z" />
+		<method name="supportsExpressionsInOrderBy()Z" />
+		<method name="supportsExtendedSQLGrammar()Z" />
+		<method name="supportsFullOuterJoins()Z" />
+		<method name="supportsGetGeneratedKeys()Z" />
+		<method name="supportsGroupBy()Z" />
+		<method name="supportsGroupByBeyondSelect()Z" />
+		<method name="supportsGroupByUnrelated()Z" />
+		<method name="supportsIntegrityEnhancementFacility()Z" />
+		<method name="supportsLikeEscapeClause()Z" />
+		<method name="supportsLimitedOuterJoins()Z" />
+		<method name="supportsMinimumSQLGrammar()Z" />
+		<method name="supportsMixedCaseIdentifiers()Z" />
+		<method name="supportsMixedCaseQuotedIdentifiers()Z" />
+		<method name="supportsMultipleOpenResults()Z" />
+		<method name="supportsMultipleResultSets()Z" />
+		<method name="supportsMultipleTransactions()Z" />
+		<method name="supportsNamedParameters()Z" />
+		<method name="supportsNonNullableColumns()Z" />
+		<method name="supportsOpenCursorsAcrossCommit()Z" />
+		<method name="supportsOpenCursorsAcrossRollback()Z" />
+		<method name="supportsOpenStatementsAcrossCommit()Z" />
+		<method name="supportsOpenStatementsAcrossRollback()Z" />
+		<method name="supportsOrderByUnrelated()Z" />
+		<method name="supportsOuterJoins()Z" />
+		<method name="supportsPositionedDelete()Z" />
+		<method name="supportsPositionedUpdate()Z" />
+		<method name="supportsResultSetConcurrency(II)Z" />
+		<method name="supportsResultSetHoldability(I)Z" />
+		<method name="supportsResultSetType(I)Z" />
+		<method name="supportsSavepoints()Z" />
+		<method name="supportsSchemasInDataManipulation()Z" />
+		<method name="supportsSchemasInIndexDefinitions()Z" />
+		<method name="supportsSchemasInPrivilegeDefinitions()Z" />
+		<method name="supportsSchemasInProcedureCalls()Z" />
+		<method name="supportsSchemasInTableDefinitions()Z" />
+		<method name="supportsSelectForUpdate()Z" />
+		<method name="supportsStatementPooling()Z" />
+		<method name="supportsStoredFunctionsUsingCallSyntax()Z" since="9" />
+		<method name="supportsStoredProcedures()Z" />
+		<method name="supportsSubqueriesInComparisons()Z" />
+		<method name="supportsSubqueriesInExists()Z" />
+		<method name="supportsSubqueriesInIns()Z" />
+		<method name="supportsSubqueriesInQuantifieds()Z" />
+		<method name="supportsTableCorrelationNames()Z" />
+		<method name="supportsTransactionIsolationLevel(I)Z" />
+		<method name="supportsTransactions()Z" />
+		<method name="supportsUnion()Z" />
+		<method name="supportsUnionAll()Z" />
+		<method name="updatesAreDetected(I)Z" />
+		<method name="usesLocalFilePerTable()Z" />
+		<method name="usesLocalFiles()Z" />
+		<field name="attributeNoNulls" />
+		<field name="attributeNullable" />
+		<field name="attributeNullableUnknown" />
+		<field name="bestRowNotPseudo" />
+		<field name="bestRowPseudo" />
+		<field name="bestRowSession" />
+		<field name="bestRowTemporary" />
+		<field name="bestRowTransaction" />
+		<field name="bestRowUnknown" />
+		<field name="columnNoNulls" />
+		<field name="columnNullable" />
+		<field name="columnNullableUnknown" />
+		<field name="functionColumnIn" since="9" />
+		<field name="functionColumnInOut" since="9" />
+		<field name="functionColumnOut" since="9" />
+		<field name="functionColumnResult" since="9" />
+		<field name="functionColumnUnknown" since="9" />
+		<field name="functionNoNulls" since="9" />
+		<field name="functionNoTable" since="9" />
+		<field name="functionNullable" since="9" />
+		<field name="functionNullableUnknown" since="9" />
+		<field name="functionResultUnknown" since="9" />
+		<field name="functionReturn" since="9" />
+		<field name="functionReturnsTable" since="9" />
+		<field name="importedKeyCascade" />
+		<field name="importedKeyInitiallyDeferred" />
+		<field name="importedKeyInitiallyImmediate" />
+		<field name="importedKeyNoAction" />
+		<field name="importedKeyNotDeferrable" />
+		<field name="importedKeyRestrict" />
+		<field name="importedKeySetDefault" />
+		<field name="importedKeySetNull" />
+		<field name="procedureColumnIn" />
+		<field name="procedureColumnInOut" />
+		<field name="procedureColumnOut" />
+		<field name="procedureColumnResult" />
+		<field name="procedureColumnReturn" />
+		<field name="procedureColumnUnknown" />
+		<field name="procedureNoNulls" />
+		<field name="procedureNoResult" />
+		<field name="procedureNullable" />
+		<field name="procedureNullableUnknown" />
+		<field name="procedureResultUnknown" />
+		<field name="procedureReturnsResult" />
+		<field name="sqlStateSQL" since="9" />
+		<field name="sqlStateSQL99" />
+		<field name="sqlStateXOpen" />
+		<field name="tableIndexClustered" />
+		<field name="tableIndexHashed" />
+		<field name="tableIndexOther" />
+		<field name="tableIndexStatistic" />
+		<field name="typeNoNulls" />
+		<field name="typeNullable" />
+		<field name="typeNullableUnknown" />
+		<field name="typePredBasic" />
+		<field name="typePredChar" />
+		<field name="typePredNone" />
+		<field name="typeSearchable" />
+		<field name="versionColumnNotPseudo" />
+		<field name="versionColumnPseudo" />
+		<field name="versionColumnUnknown" />
+	</class>
+	<class name="java/sql/Date" since="1">
+		<extends name="java/util/Date" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(J)V" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/sql/Date;" />
+	</class>
+	<class name="java/sql/Driver" since="1">
+		<method name="acceptsURL(Ljava/lang/String;)Z" />
+		<method name="connect(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;" />
+		<method name="getMajorVersion()I" />
+		<method name="getMinorVersion()I" />
+		<method name="getPropertyInfo(Ljava/lang/String;Ljava/util/Properties;)[Ljava/sql/DriverPropertyInfo;" />
+		<method name="jdbcCompliant()Z" />
+	</class>
+	<class name="java/sql/DriverManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="deregisterDriver(Ljava/sql/Driver;)V" />
+		<method name="getConnection(Ljava/lang/String;)Ljava/sql/Connection;" />
+		<method name="getConnection(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;" />
+		<method name="getConnection(Ljava/lang/String;Ljava/util/Properties;)Ljava/sql/Connection;" />
+		<method name="getDriver(Ljava/lang/String;)Ljava/sql/Driver;" />
+		<method name="getDrivers()Ljava/util/Enumeration;" />
+		<method name="getLogStream()Ljava/io/PrintStream;" />
+		<method name="getLogWriter()Ljava/io/PrintWriter;" />
+		<method name="getLoginTimeout()I" />
+		<method name="println(Ljava/lang/String;)V" />
+		<method name="registerDriver(Ljava/sql/Driver;)V" />
+		<method name="setLogStream(Ljava/io/PrintStream;)V" />
+		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
+		<method name="setLoginTimeout(I)V" />
+	</class>
+	<class name="java/sql/DriverPropertyInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="choices" />
+		<field name="description" />
+		<field name="name" />
+		<field name="required" />
+		<field name="value" />
+	</class>
+	<class name="java/sql/NClob" since="9">
+		<implements name="java/sql/Clob" />
+	</class>
+	<class name="java/sql/ParameterMetaData" since="1">
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="getParameterClassName(I)Ljava/lang/String;" />
+		<method name="getParameterCount()I" />
+		<method name="getParameterMode(I)I" />
+		<method name="getParameterType(I)I" />
+		<method name="getParameterTypeName(I)Ljava/lang/String;" />
+		<method name="getPrecision(I)I" />
+		<method name="getScale(I)I" />
+		<method name="isNullable(I)I" />
+		<method name="isSigned(I)Z" />
+		<field name="parameterModeIn" />
+		<field name="parameterModeInOut" />
+		<field name="parameterModeOut" />
+		<field name="parameterModeUnknown" />
+		<field name="parameterNoNulls" />
+		<field name="parameterNullable" />
+		<field name="parameterNullableUnknown" />
+	</class>
+	<class name="java/sql/PreparedStatement" since="1">
+		<implements name="java/sql/Statement" />
+		<method name="addBatch()V" />
+		<method name="clearParameters()V" />
+		<method name="execute()Z" />
+		<method name="executeQuery()Ljava/sql/ResultSet;" />
+		<method name="executeUpdate()I" />
+		<method name="getMetaData()Ljava/sql/ResultSetMetaData;" />
+		<method name="getParameterMetaData()Ljava/sql/ParameterMetaData;" />
+		<method name="setArray(ILjava/sql/Array;)V" />
+		<method name="setAsciiStream(ILjava/io/InputStream;)V" since="9" />
+		<method name="setAsciiStream(ILjava/io/InputStream;I)V" />
+		<method name="setAsciiStream(ILjava/io/InputStream;J)V" since="9" />
+		<method name="setBigDecimal(ILjava/math/BigDecimal;)V" />
+		<method name="setBinaryStream(ILjava/io/InputStream;)V" since="9" />
+		<method name="setBinaryStream(ILjava/io/InputStream;I)V" />
+		<method name="setBinaryStream(ILjava/io/InputStream;J)V" since="9" />
+		<method name="setBlob(ILjava/io/InputStream;)V" since="9" />
+		<method name="setBlob(ILjava/io/InputStream;J)V" since="9" />
+		<method name="setBlob(ILjava/sql/Blob;)V" />
+		<method name="setBoolean(IZ)V" />
+		<method name="setByte(IB)V" />
+		<method name="setBytes(I[B)V" />
+		<method name="setCharacterStream(ILjava/io/Reader;)V" since="9" />
+		<method name="setCharacterStream(ILjava/io/Reader;I)V" />
+		<method name="setCharacterStream(ILjava/io/Reader;J)V" since="9" />
+		<method name="setClob(ILjava/io/Reader;)V" since="9" />
+		<method name="setClob(ILjava/io/Reader;J)V" since="9" />
+		<method name="setClob(ILjava/sql/Clob;)V" />
+		<method name="setDate(ILjava/sql/Date;)V" />
+		<method name="setDate(ILjava/sql/Date;Ljava/util/Calendar;)V" />
+		<method name="setDouble(ID)V" />
+		<method name="setFloat(IF)V" />
+		<method name="setInt(II)V" />
+		<method name="setLong(IJ)V" />
+		<method name="setNCharacterStream(ILjava/io/Reader;)V" since="9" />
+		<method name="setNCharacterStream(ILjava/io/Reader;J)V" since="9" />
+		<method name="setNClob(ILjava/io/Reader;)V" since="9" />
+		<method name="setNClob(ILjava/io/Reader;J)V" since="9" />
+		<method name="setNClob(ILjava/sql/NClob;)V" since="9" />
+		<method name="setNString(ILjava/lang/String;)V" since="9" />
+		<method name="setNull(II)V" />
+		<method name="setNull(IILjava/lang/String;)V" />
+		<method name="setObject(ILjava/lang/Object;)V" />
+		<method name="setObject(ILjava/lang/Object;I)V" />
+		<method name="setObject(ILjava/lang/Object;II)V" />
+		<method name="setRef(ILjava/sql/Ref;)V" />
+		<method name="setRowId(ILjava/sql/RowId;)V" since="9" />
+		<method name="setSQLXML(ILjava/sql/SQLXML;)V" since="9" />
+		<method name="setShort(IS)V" />
+		<method name="setString(ILjava/lang/String;)V" />
+		<method name="setTime(ILjava/sql/Time;)V" />
+		<method name="setTime(ILjava/sql/Time;Ljava/util/Calendar;)V" />
+		<method name="setTimestamp(ILjava/sql/Timestamp;)V" />
+		<method name="setTimestamp(ILjava/sql/Timestamp;Ljava/util/Calendar;)V" />
+		<method name="setURL(ILjava/net/URL;)V" />
+		<method name="setUnicodeStream(ILjava/io/InputStream;I)V" />
+	</class>
+	<class name="java/sql/Ref" since="1">
+		<method name="getBaseTypeName()Ljava/lang/String;" />
+		<method name="getObject()Ljava/lang/Object;" />
+		<method name="getObject(Ljava/util/Map;)Ljava/lang/Object;" />
+		<method name="setObject(Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/sql/ResultSet" since="1">
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="absolute(I)Z" />
+		<method name="afterLast()V" />
+		<method name="beforeFirst()V" />
+		<method name="cancelRowUpdates()V" />
+		<method name="clearWarnings()V" />
+		<method name="close()V" />
+		<method name="deleteRow()V" />
+		<method name="findColumn(Ljava/lang/String;)I" />
+		<method name="first()Z" />
+		<method name="getArray(I)Ljava/sql/Array;" />
+		<method name="getArray(Ljava/lang/String;)Ljava/sql/Array;" />
+		<method name="getAsciiStream(I)Ljava/io/InputStream;" />
+		<method name="getAsciiStream(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="getBigDecimal(I)Ljava/math/BigDecimal;" />
+		<method name="getBigDecimal(II)Ljava/math/BigDecimal;" />
+		<method name="getBigDecimal(Ljava/lang/String;)Ljava/math/BigDecimal;" />
+		<method name="getBigDecimal(Ljava/lang/String;I)Ljava/math/BigDecimal;" />
+		<method name="getBinaryStream(I)Ljava/io/InputStream;" />
+		<method name="getBinaryStream(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="getBlob(I)Ljava/sql/Blob;" />
+		<method name="getBlob(Ljava/lang/String;)Ljava/sql/Blob;" />
+		<method name="getBoolean(I)Z" />
+		<method name="getBoolean(Ljava/lang/String;)Z" />
+		<method name="getByte(I)B" />
+		<method name="getByte(Ljava/lang/String;)B" />
+		<method name="getBytes(I)[B" />
+		<method name="getBytes(Ljava/lang/String;)[B" />
+		<method name="getCharacterStream(I)Ljava/io/Reader;" />
+		<method name="getCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" />
+		<method name="getClob(I)Ljava/sql/Clob;" />
+		<method name="getClob(Ljava/lang/String;)Ljava/sql/Clob;" />
+		<method name="getConcurrency()I" />
+		<method name="getCursorName()Ljava/lang/String;" />
+		<method name="getDate(I)Ljava/sql/Date;" />
+		<method name="getDate(ILjava/util/Calendar;)Ljava/sql/Date;" />
+		<method name="getDate(Ljava/lang/String;)Ljava/sql/Date;" />
+		<method name="getDate(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Date;" />
+		<method name="getDouble(I)D" />
+		<method name="getDouble(Ljava/lang/String;)D" />
+		<method name="getFetchDirection()I" />
+		<method name="getFetchSize()I" />
+		<method name="getFloat(I)F" />
+		<method name="getFloat(Ljava/lang/String;)F" />
+		<method name="getHoldability()I" since="9" />
+		<method name="getInt(I)I" />
+		<method name="getInt(Ljava/lang/String;)I" />
+		<method name="getLong(I)J" />
+		<method name="getLong(Ljava/lang/String;)J" />
+		<method name="getMetaData()Ljava/sql/ResultSetMetaData;" />
+		<method name="getNCharacterStream(I)Ljava/io/Reader;" since="9" />
+		<method name="getNCharacterStream(Ljava/lang/String;)Ljava/io/Reader;" since="9" />
+		<method name="getNClob(I)Ljava/sql/NClob;" since="9" />
+		<method name="getNClob(Ljava/lang/String;)Ljava/sql/NClob;" since="9" />
+		<method name="getNString(I)Ljava/lang/String;" since="9" />
+		<method name="getNString(Ljava/lang/String;)Ljava/lang/String;" since="9" />
+		<method name="getObject(I)Ljava/lang/Object;" />
+		<method name="getObject(ILjava/util/Map;)Ljava/lang/Object;" />
+		<method name="getObject(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getObject(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/Object;" />
+		<method name="getRef(I)Ljava/sql/Ref;" />
+		<method name="getRef(Ljava/lang/String;)Ljava/sql/Ref;" />
+		<method name="getRow()I" />
+		<method name="getRowId(I)Ljava/sql/RowId;" since="9" />
+		<method name="getRowId(Ljava/lang/String;)Ljava/sql/RowId;" since="9" />
+		<method name="getSQLXML(I)Ljava/sql/SQLXML;" since="9" />
+		<method name="getSQLXML(Ljava/lang/String;)Ljava/sql/SQLXML;" since="9" />
+		<method name="getShort(I)S" />
+		<method name="getShort(Ljava/lang/String;)S" />
+		<method name="getStatement()Ljava/sql/Statement;" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getTime(I)Ljava/sql/Time;" />
+		<method name="getTime(ILjava/util/Calendar;)Ljava/sql/Time;" />
+		<method name="getTime(Ljava/lang/String;)Ljava/sql/Time;" />
+		<method name="getTime(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Time;" />
+		<method name="getTimestamp(I)Ljava/sql/Timestamp;" />
+		<method name="getTimestamp(ILjava/util/Calendar;)Ljava/sql/Timestamp;" />
+		<method name="getTimestamp(Ljava/lang/String;)Ljava/sql/Timestamp;" />
+		<method name="getTimestamp(Ljava/lang/String;Ljava/util/Calendar;)Ljava/sql/Timestamp;" />
+		<method name="getType()I" />
+		<method name="getURL(I)Ljava/net/URL;" />
+		<method name="getURL(Ljava/lang/String;)Ljava/net/URL;" />
+		<method name="getUnicodeStream(I)Ljava/io/InputStream;" />
+		<method name="getUnicodeStream(Ljava/lang/String;)Ljava/io/InputStream;" />
+		<method name="getWarnings()Ljava/sql/SQLWarning;" />
+		<method name="insertRow()V" />
+		<method name="isAfterLast()Z" />
+		<method name="isBeforeFirst()Z" />
+		<method name="isClosed()Z" since="9" />
+		<method name="isFirst()Z" />
+		<method name="isLast()Z" />
+		<method name="last()Z" />
+		<method name="moveToCurrentRow()V" />
+		<method name="moveToInsertRow()V" />
+		<method name="next()Z" />
+		<method name="previous()Z" />
+		<method name="refreshRow()V" />
+		<method name="relative(I)Z" />
+		<method name="rowDeleted()Z" />
+		<method name="rowInserted()Z" />
+		<method name="rowUpdated()Z" />
+		<method name="setFetchDirection(I)V" />
+		<method name="setFetchSize(I)V" />
+		<method name="updateArray(ILjava/sql/Array;)V" />
+		<method name="updateArray(Ljava/lang/String;Ljava/sql/Array;)V" />
+		<method name="updateAsciiStream(ILjava/io/InputStream;)V" since="9" />
+		<method name="updateAsciiStream(ILjava/io/InputStream;I)V" />
+		<method name="updateAsciiStream(ILjava/io/InputStream;J)V" since="9" />
+		<method name="updateAsciiStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="updateAsciiStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
+		<method name="updateAsciiStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="updateBigDecimal(ILjava/math/BigDecimal;)V" />
+		<method name="updateBigDecimal(Ljava/lang/String;Ljava/math/BigDecimal;)V" />
+		<method name="updateBinaryStream(ILjava/io/InputStream;)V" since="9" />
+		<method name="updateBinaryStream(ILjava/io/InputStream;I)V" />
+		<method name="updateBinaryStream(ILjava/io/InputStream;J)V" since="9" />
+		<method name="updateBinaryStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="updateBinaryStream(Ljava/lang/String;Ljava/io/InputStream;I)V" />
+		<method name="updateBinaryStream(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="updateBlob(ILjava/io/InputStream;)V" since="9" />
+		<method name="updateBlob(ILjava/io/InputStream;J)V" since="9" />
+		<method name="updateBlob(ILjava/sql/Blob;)V" />
+		<method name="updateBlob(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="updateBlob(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="updateBlob(Ljava/lang/String;Ljava/sql/Blob;)V" />
+		<method name="updateBoolean(IZ)V" />
+		<method name="updateBoolean(Ljava/lang/String;Z)V" />
+		<method name="updateByte(IB)V" />
+		<method name="updateByte(Ljava/lang/String;B)V" />
+		<method name="updateBytes(I[B)V" />
+		<method name="updateBytes(Ljava/lang/String;[B)V" />
+		<method name="updateCharacterStream(ILjava/io/Reader;)V" since="9" />
+		<method name="updateCharacterStream(ILjava/io/Reader;I)V" />
+		<method name="updateCharacterStream(ILjava/io/Reader;J)V" since="9" />
+		<method name="updateCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="updateCharacterStream(Ljava/lang/String;Ljava/io/Reader;I)V" />
+		<method name="updateCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="updateClob(ILjava/io/Reader;)V" since="9" />
+		<method name="updateClob(ILjava/io/Reader;J)V" since="9" />
+		<method name="updateClob(ILjava/sql/Clob;)V" />
+		<method name="updateClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="updateClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="updateClob(Ljava/lang/String;Ljava/sql/Clob;)V" />
+		<method name="updateDate(ILjava/sql/Date;)V" />
+		<method name="updateDate(Ljava/lang/String;Ljava/sql/Date;)V" />
+		<method name="updateDouble(ID)V" />
+		<method name="updateDouble(Ljava/lang/String;D)V" />
+		<method name="updateFloat(IF)V" />
+		<method name="updateFloat(Ljava/lang/String;F)V" />
+		<method name="updateInt(II)V" />
+		<method name="updateInt(Ljava/lang/String;I)V" />
+		<method name="updateLong(IJ)V" />
+		<method name="updateLong(Ljava/lang/String;J)V" />
+		<method name="updateNCharacterStream(ILjava/io/Reader;)V" since="9" />
+		<method name="updateNCharacterStream(ILjava/io/Reader;J)V" since="9" />
+		<method name="updateNCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="updateNCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="updateNClob(ILjava/io/Reader;)V" since="9" />
+		<method name="updateNClob(ILjava/io/Reader;J)V" since="9" />
+		<method name="updateNClob(ILjava/sql/NClob;)V" since="9" />
+		<method name="updateNClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="updateNClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="updateNClob(Ljava/lang/String;Ljava/sql/NClob;)V" since="9" />
+		<method name="updateNString(ILjava/lang/String;)V" since="9" />
+		<method name="updateNString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
+		<method name="updateNull(I)V" />
+		<method name="updateNull(Ljava/lang/String;)V" />
+		<method name="updateObject(ILjava/lang/Object;)V" />
+		<method name="updateObject(ILjava/lang/Object;I)V" />
+		<method name="updateObject(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="updateObject(Ljava/lang/String;Ljava/lang/Object;I)V" />
+		<method name="updateRef(ILjava/sql/Ref;)V" />
+		<method name="updateRef(Ljava/lang/String;Ljava/sql/Ref;)V" />
+		<method name="updateRow()V" />
+		<method name="updateRowId(ILjava/sql/RowId;)V" since="9" />
+		<method name="updateRowId(Ljava/lang/String;Ljava/sql/RowId;)V" since="9" />
+		<method name="updateSQLXML(ILjava/sql/SQLXML;)V" since="9" />
+		<method name="updateSQLXML(Ljava/lang/String;Ljava/sql/SQLXML;)V" since="9" />
+		<method name="updateShort(IS)V" />
+		<method name="updateShort(Ljava/lang/String;S)V" />
+		<method name="updateString(ILjava/lang/String;)V" />
+		<method name="updateString(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="updateTime(ILjava/sql/Time;)V" />
+		<method name="updateTime(Ljava/lang/String;Ljava/sql/Time;)V" />
+		<method name="updateTimestamp(ILjava/sql/Timestamp;)V" />
+		<method name="updateTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;)V" />
+		<method name="wasNull()Z" />
+		<field name="CLOSE_CURSORS_AT_COMMIT" />
+		<field name="CONCUR_READ_ONLY" />
+		<field name="CONCUR_UPDATABLE" />
+		<field name="FETCH_FORWARD" />
+		<field name="FETCH_REVERSE" />
+		<field name="FETCH_UNKNOWN" />
+		<field name="HOLD_CURSORS_OVER_COMMIT" />
+		<field name="TYPE_FORWARD_ONLY" />
+		<field name="TYPE_SCROLL_INSENSITIVE" />
+		<field name="TYPE_SCROLL_SENSITIVE" />
+	</class>
+	<class name="java/sql/ResultSetMetaData" since="1">
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="getCatalogName(I)Ljava/lang/String;" />
+		<method name="getColumnClassName(I)Ljava/lang/String;" />
+		<method name="getColumnCount()I" />
+		<method name="getColumnDisplaySize(I)I" />
+		<method name="getColumnLabel(I)Ljava/lang/String;" />
+		<method name="getColumnName(I)Ljava/lang/String;" />
+		<method name="getColumnType(I)I" />
+		<method name="getColumnTypeName(I)Ljava/lang/String;" />
+		<method name="getPrecision(I)I" />
+		<method name="getScale(I)I" />
+		<method name="getSchemaName(I)Ljava/lang/String;" />
+		<method name="getTableName(I)Ljava/lang/String;" />
+		<method name="isAutoIncrement(I)Z" />
+		<method name="isCaseSensitive(I)Z" />
+		<method name="isCurrency(I)Z" />
+		<method name="isDefinitelyWritable(I)Z" />
+		<method name="isNullable(I)I" />
+		<method name="isReadOnly(I)Z" />
+		<method name="isSearchable(I)Z" />
+		<method name="isSigned(I)Z" />
+		<method name="isWritable(I)Z" />
+		<field name="columnNoNulls" />
+		<field name="columnNullable" />
+		<field name="columnNullableUnknown" />
+	</class>
+	<class name="java/sql/RowId" since="9">
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getBytes()[B" />
+		<method name="hashCode()I" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="java/sql/RowIdLifetime" since="9">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/sql/RowIdLifetime;" />
+		<method name="values()[Ljava/sql/RowIdLifetime;" />
+		<field name="ROWID_UNSUPPORTED" />
+		<field name="ROWID_VALID_FOREVER" />
+		<field name="ROWID_VALID_OTHER" />
+		<field name="ROWID_VALID_SESSION" />
+		<field name="ROWID_VALID_TRANSACTION" />
+	</class>
+	<class name="java/sql/SQLClientInfoException" since="9">
+		<extends name="java/sql/SQLException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/util/Map;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/util/Map;Ljava/lang/Throwable;)V" />
+		<method name="getFailedProperties()Ljava/util/Map;" />
+	</class>
+	<class name="java/sql/SQLData" since="1">
+		<method name="getSQLTypeName()Ljava/lang/String;" />
+		<method name="readSQL(Ljava/sql/SQLInput;Ljava/lang/String;)V" />
+		<method name="writeSQL(Ljava/sql/SQLOutput;)V" />
+	</class>
+	<class name="java/sql/SQLDataException" since="9">
+		<extends name="java/sql/SQLNonTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLException" since="1">
+		<extends name="java/lang/Exception" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/lang/Iterable" since="9" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
+		<method name="getErrorCode()I" />
+		<method name="getNextException()Ljava/sql/SQLException;" />
+		<method name="getSQLState()Ljava/lang/String;" />
+		<method name="iterator()Ljava/util/Iterator;" since="9" />
+		<method name="setNextException(Ljava/sql/SQLException;)V" />
+	</class>
+	<class name="java/sql/SQLFeatureNotSupportedException" since="9">
+		<extends name="java/sql/SQLNonTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLInput" since="1">
+		<method name="readArray()Ljava/sql/Array;" />
+		<method name="readAsciiStream()Ljava/io/InputStream;" />
+		<method name="readBigDecimal()Ljava/math/BigDecimal;" />
+		<method name="readBinaryStream()Ljava/io/InputStream;" />
+		<method name="readBlob()Ljava/sql/Blob;" />
+		<method name="readBoolean()Z" />
+		<method name="readByte()B" />
+		<method name="readBytes()[B" />
+		<method name="readCharacterStream()Ljava/io/Reader;" />
+		<method name="readClob()Ljava/sql/Clob;" />
+		<method name="readDate()Ljava/sql/Date;" />
+		<method name="readDouble()D" />
+		<method name="readFloat()F" />
+		<method name="readInt()I" />
+		<method name="readLong()J" />
+		<method name="readNClob()Ljava/sql/NClob;" since="9" />
+		<method name="readNString()Ljava/lang/String;" since="9" />
+		<method name="readObject()Ljava/lang/Object;" />
+		<method name="readRef()Ljava/sql/Ref;" />
+		<method name="readRowId()Ljava/sql/RowId;" since="9" />
+		<method name="readSQLXML()Ljava/sql/SQLXML;" since="9" />
+		<method name="readShort()S" />
+		<method name="readString()Ljava/lang/String;" />
+		<method name="readTime()Ljava/sql/Time;" />
+		<method name="readTimestamp()Ljava/sql/Timestamp;" />
+		<method name="readURL()Ljava/net/URL;" />
+		<method name="wasNull()Z" />
+	</class>
+	<class name="java/sql/SQLIntegrityConstraintViolationException" since="9">
+		<extends name="java/sql/SQLNonTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLInvalidAuthorizationSpecException" since="9">
+		<extends name="java/sql/SQLNonTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLNonTransientConnectionException" since="9">
+		<extends name="java/sql/SQLNonTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLNonTransientException" since="9">
+		<extends name="java/sql/SQLException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLOutput" since="1">
+		<method name="writeArray(Ljava/sql/Array;)V" />
+		<method name="writeAsciiStream(Ljava/io/InputStream;)V" />
+		<method name="writeBigDecimal(Ljava/math/BigDecimal;)V" />
+		<method name="writeBinaryStream(Ljava/io/InputStream;)V" />
+		<method name="writeBlob(Ljava/sql/Blob;)V" />
+		<method name="writeBoolean(Z)V" />
+		<method name="writeByte(B)V" />
+		<method name="writeBytes([B)V" />
+		<method name="writeCharacterStream(Ljava/io/Reader;)V" />
+		<method name="writeClob(Ljava/sql/Clob;)V" />
+		<method name="writeDate(Ljava/sql/Date;)V" />
+		<method name="writeDouble(D)V" />
+		<method name="writeFloat(F)V" />
+		<method name="writeInt(I)V" />
+		<method name="writeLong(J)V" />
+		<method name="writeNClob(Ljava/sql/NClob;)V" since="9" />
+		<method name="writeNString(Ljava/lang/String;)V" since="9" />
+		<method name="writeObject(Ljava/sql/SQLData;)V" />
+		<method name="writeRef(Ljava/sql/Ref;)V" />
+		<method name="writeRowId(Ljava/sql/RowId;)V" since="9" />
+		<method name="writeSQLXML(Ljava/sql/SQLXML;)V" since="9" />
+		<method name="writeShort(S)V" />
+		<method name="writeString(Ljava/lang/String;)V" />
+		<method name="writeStruct(Ljava/sql/Struct;)V" />
+		<method name="writeTime(Ljava/sql/Time;)V" />
+		<method name="writeTimestamp(Ljava/sql/Timestamp;)V" />
+		<method name="writeURL(Ljava/net/URL;)V" />
+	</class>
+	<class name="java/sql/SQLPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<implements name="java/security/Guard" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/sql/SQLRecoverableException" since="9">
+		<extends name="java/sql/SQLException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLSyntaxErrorException" since="9">
+		<extends name="java/sql/SQLNonTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLTimeoutException" since="9">
+		<extends name="java/sql/SQLTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLTransactionRollbackException" since="9">
+		<extends name="java/sql/SQLTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLTransientConnectionException" since="9">
+		<extends name="java/sql/SQLTransientException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLTransientException" since="9">
+		<extends name="java/sql/SQLException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/sql/SQLWarning" since="1">
+		<extends name="java/sql/SQLException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;ILjava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" since="9" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" since="9" />
+		<method name="getNextWarning()Ljava/sql/SQLWarning;" />
+		<method name="setNextWarning(Ljava/sql/SQLWarning;)V" />
+	</class>
+	<class name="java/sql/SQLXML" since="9">
+		<method name="free()V" />
+		<method name="getBinaryStream()Ljava/io/InputStream;" />
+		<method name="getCharacterStream()Ljava/io/Reader;" />
+		<method name="getSource(Ljava/lang/Class;)LT;" />
+		<method name="getString()Ljava/lang/String;" />
+		<method name="setBinaryStream()Ljava/io/OutputStream;" />
+		<method name="setCharacterStream()Ljava/io/Writer;" />
+		<method name="setResult(Ljava/lang/Class;)LT;" />
+		<method name="setString(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/sql/Savepoint" since="1">
+		<method name="getSavepointId()I" />
+		<method name="getSavepointName()Ljava/lang/String;" />
+	</class>
+	<class name="java/sql/Statement" since="1">
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="addBatch(Ljava/lang/String;)V" />
+		<method name="cancel()V" />
+		<method name="clearBatch()V" />
+		<method name="clearWarnings()V" />
+		<method name="close()V" />
+		<method name="execute(Ljava/lang/String;)Z" />
+		<method name="execute(Ljava/lang/String;I)Z" />
+		<method name="execute(Ljava/lang/String;[I)Z" />
+		<method name="execute(Ljava/lang/String;[Ljava/lang/String;)Z" />
+		<method name="executeBatch()[I" />
+		<method name="executeQuery(Ljava/lang/String;)Ljava/sql/ResultSet;" />
+		<method name="executeUpdate(Ljava/lang/String;)I" />
+		<method name="executeUpdate(Ljava/lang/String;I)I" />
+		<method name="executeUpdate(Ljava/lang/String;[I)I" />
+		<method name="executeUpdate(Ljava/lang/String;[Ljava/lang/String;)I" />
+		<method name="getConnection()Ljava/sql/Connection;" />
+		<method name="getFetchDirection()I" />
+		<method name="getFetchSize()I" />
+		<method name="getGeneratedKeys()Ljava/sql/ResultSet;" />
+		<method name="getMaxFieldSize()I" />
+		<method name="getMaxRows()I" />
+		<method name="getMoreResults()Z" />
+		<method name="getMoreResults(I)Z" />
+		<method name="getQueryTimeout()I" />
+		<method name="getResultSet()Ljava/sql/ResultSet;" />
+		<method name="getResultSetConcurrency()I" />
+		<method name="getResultSetHoldability()I" />
+		<method name="getResultSetType()I" />
+		<method name="getUpdateCount()I" />
+		<method name="getWarnings()Ljava/sql/SQLWarning;" />
+		<method name="isClosed()Z" since="9" />
+		<method name="isPoolable()Z" since="9" />
+		<method name="setCursorName(Ljava/lang/String;)V" />
+		<method name="setEscapeProcessing(Z)V" />
+		<method name="setFetchDirection(I)V" />
+		<method name="setFetchSize(I)V" />
+		<method name="setMaxFieldSize(I)V" />
+		<method name="setMaxRows(I)V" />
+		<method name="setPoolable(Z)V" since="9" />
+		<method name="setQueryTimeout(I)V" />
+		<field name="CLOSE_ALL_RESULTS" />
+		<field name="CLOSE_CURRENT_RESULT" />
+		<field name="EXECUTE_FAILED" />
+		<field name="KEEP_CURRENT_RESULT" />
+		<field name="NO_GENERATED_KEYS" />
+		<field name="RETURN_GENERATED_KEYS" />
+		<field name="SUCCESS_NO_INFO" />
+	</class>
+	<class name="java/sql/Struct" since="1">
+		<method name="getAttributes()[Ljava/lang/Object;" />
+		<method name="getAttributes(Ljava/util/Map;)[Ljava/lang/Object;" />
+		<method name="getSQLTypeName()Ljava/lang/String;" />
+	</class>
+	<class name="java/sql/Time" since="1">
+		<extends name="java/util/Date" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(J)V" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/sql/Time;" />
+	</class>
+	<class name="java/sql/Timestamp" since="1">
+		<extends name="java/util/Date" />
+		<method name="&lt;init>(IIIIIII)V" />
+		<method name="&lt;init>(J)V" />
+		<method name="after(Ljava/sql/Timestamp;)Z" />
+		<method name="before(Ljava/sql/Timestamp;)Z" />
+		<method name="compareTo(Ljava/sql/Timestamp;)I" />
+		<method name="equals(Ljava/sql/Timestamp;)Z" />
+		<method name="getNanos()I" />
+		<method name="setNanos(I)V" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/sql/Timestamp;" />
+	</class>
+	<class name="java/sql/Types" since="1">
+		<extends name="java/lang/Object" />
+		<field name="ARRAY" />
+		<field name="BIGINT" />
+		<field name="BINARY" />
+		<field name="BIT" />
+		<field name="BLOB" />
+		<field name="BOOLEAN" />
+		<field name="CHAR" />
+		<field name="CLOB" />
+		<field name="DATALINK" />
+		<field name="DATE" />
+		<field name="DECIMAL" />
+		<field name="DISTINCT" />
+		<field name="DOUBLE" />
+		<field name="FLOAT" />
+		<field name="INTEGER" />
+		<field name="JAVA_OBJECT" />
+		<field name="LONGNVARCHAR" since="9" />
+		<field name="LONGVARBINARY" />
+		<field name="LONGVARCHAR" />
+		<field name="NCHAR" since="9" />
+		<field name="NCLOB" since="9" />
+		<field name="NULL" />
+		<field name="NUMERIC" />
+		<field name="NVARCHAR" since="9" />
+		<field name="OTHER" />
+		<field name="REAL" />
+		<field name="REF" />
+		<field name="ROWID" since="9" />
+		<field name="SMALLINT" />
+		<field name="SQLXML" since="9" />
+		<field name="STRUCT" />
+		<field name="TIME" />
+		<field name="TIMESTAMP" />
+		<field name="TINYINT" />
+		<field name="VARBINARY" />
+		<field name="VARCHAR" />
+	</class>
+	<class name="java/sql/Wrapper" since="9">
+		<method name="isWrapperFor(Ljava/lang/Class;)Z" />
+		<method name="unwrap(Ljava/lang/Class;)LT;" />
+	</class>
+	<class name="java/text/Annotation" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/Object;)V" />
+		<method name="getValue()Ljava/lang/Object;" />
+	</class>
+	<class name="java/text/AttributedCharacterIterator" since="1">
+		<implements name="java/text/CharacterIterator" />
+		<method name="getAllAttributeKeys()Ljava/util/Set;" />
+		<method name="getAttribute(Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/lang/Object;" />
+		<method name="getAttributes()Ljava/util/Map;" />
+		<method name="getRunLimit()I" />
+		<method name="getRunLimit(Ljava/text/AttributedCharacterIterator$Attribute;)I" />
+		<method name="getRunLimit(Ljava/util/Set;)I" />
+		<method name="getRunStart()I" />
+		<method name="getRunStart(Ljava/text/AttributedCharacterIterator$Attribute;)I" />
+		<method name="getRunStart(Ljava/util/Set;)I" />
+	</class>
+	<class name="java/text/AttributedCharacterIterator$Attribute" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="readResolve()Ljava/lang/Object;" />
+		<field name="INPUT_METHOD_SEGMENT" />
+		<field name="LANGUAGE" />
+		<field name="READING" />
+	</class>
+	<class name="java/text/AttributedString" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;)V" />
+		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;II)V" />
+		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;II[Ljava/text/AttributedCharacterIterator$Attribute;)V" />
+		<method name="addAttribute(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;)V" />
+		<method name="addAttribute(Ljava/text/AttributedCharacterIterator$Attribute;Ljava/lang/Object;II)V" />
+		<method name="addAttributes(Ljava/util/Map;II)V" />
+		<method name="getIterator()Ljava/text/AttributedCharacterIterator;" />
+		<method name="getIterator([Ljava/text/AttributedCharacterIterator$Attribute;)Ljava/text/AttributedCharacterIterator;" />
+		<method name="getIterator([Ljava/text/AttributedCharacterIterator$Attribute;II)Ljava/text/AttributedCharacterIterator;" />
+	</class>
+	<class name="java/text/Bidi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/text/AttributedCharacterIterator;)V" />
+		<method name="&lt;init>([CI[BIII)V" />
+		<method name="baseIsLeftToRight()Z" />
+		<method name="createLineBidi(II)Ljava/text/Bidi;" />
+		<method name="getBaseLevel()I" />
+		<method name="getLength()I" />
+		<method name="getLevelAt(I)I" />
+		<method name="getRunCount()I" />
+		<method name="getRunLevel(I)I" />
+		<method name="getRunLimit(I)I" />
+		<method name="getRunStart(I)I" />
+		<method name="isLeftToRight()Z" />
+		<method name="isMixed()Z" />
+		<method name="isRightToLeft()Z" />
+		<method name="reorderVisually([BI[Ljava/lang/Object;II)V" />
+		<method name="requiresBidi([CII)Z" />
+		<field name="DIRECTION_DEFAULT_LEFT_TO_RIGHT" />
+		<field name="DIRECTION_DEFAULT_RIGHT_TO_LEFT" />
+		<field name="DIRECTION_LEFT_TO_RIGHT" />
+		<field name="DIRECTION_RIGHT_TO_LEFT" />
+	</class>
+	<class name="java/text/BreakIterator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="current()I" />
+		<method name="first()I" />
+		<method name="following(I)I" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" />
+		<method name="getCharacterInstance()Ljava/text/BreakIterator;" />
+		<method name="getCharacterInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
+		<method name="getInt([BI)I" />
+		<method name="getLineInstance()Ljava/text/BreakIterator;" />
+		<method name="getLineInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
+		<method name="getLong([BI)J" />
+		<method name="getSentenceInstance()Ljava/text/BreakIterator;" />
+		<method name="getSentenceInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
+		<method name="getShort([BI)S" />
+		<method name="getText()Ljava/text/CharacterIterator;" />
+		<method name="getWordInstance()Ljava/text/BreakIterator;" />
+		<method name="getWordInstance(Ljava/util/Locale;)Ljava/text/BreakIterator;" />
+		<method name="isBoundary(I)Z" />
+		<method name="last()I" />
+		<method name="next()I" />
+		<method name="next(I)I" />
+		<method name="preceding(I)I" />
+		<method name="previous()I" />
+		<method name="setText(Ljava/lang/String;)V" />
+		<method name="setText(Ljava/text/CharacterIterator;)V" />
+		<field name="DONE" />
+	</class>
+	<class name="java/text/CharacterIterator" since="1">
+		<implements name="java/lang/Cloneable" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="current()C" />
+		<method name="first()C" />
+		<method name="getBeginIndex()I" />
+		<method name="getEndIndex()I" />
+		<method name="getIndex()I" />
+		<method name="last()C" />
+		<method name="next()C" />
+		<method name="previous()C" />
+		<method name="setIndex(I)C" />
+		<field name="DONE" />
+	</class>
+	<class name="java/text/ChoiceFormat" since="1">
+		<extends name="java/text/NumberFormat" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>([D[Ljava/lang/String;)V" />
+		<method name="applyPattern(Ljava/lang/String;)V" />
+		<method name="format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="getFormats()[Ljava/lang/Object;" />
+		<method name="getLimits()[D" />
+		<method name="nextDouble(D)D" />
+		<method name="nextDouble(DZ)D" />
+		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;" />
+		<method name="previousDouble(D)D" />
+		<method name="setChoices([D[Ljava/lang/String;)V" />
+		<method name="toPattern()Ljava/lang/String;" />
+	</class>
+	<class name="java/text/CollationElementIterator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getMaxExpansion(I)I" />
+		<method name="getOffset()I" />
+		<method name="next()I" />
+		<method name="previous()I" />
+		<method name="primaryOrder(I)I" />
+		<method name="reset()V" />
+		<method name="secondaryOrder(I)S" />
+		<method name="setOffset(I)V" />
+		<method name="setText(Ljava/lang/String;)V" />
+		<method name="setText(Ljava/text/CharacterIterator;)V" />
+		<method name="tertiaryOrder(I)S" />
+		<field name="NULLORDER" />
+	</class>
+	<class name="java/text/CollationKey" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" since="9" />
+		<method name="compareTo(Ljava/text/CollationKey;)I" />
+		<method name="getSourceString()Ljava/lang/String;" />
+		<method name="toByteArray()[B" />
+	</class>
+	<class name="java/text/Collator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Comparator" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="compare(Ljava/lang/Object;Ljava/lang/Object;)I" />
+		<method name="compare(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="equals(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" />
+		<method name="getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;" />
+		<method name="getDecomposition()I" />
+		<method name="getInstance()Ljava/text/Collator;" />
+		<method name="getInstance(Ljava/util/Locale;)Ljava/text/Collator;" />
+		<method name="getStrength()I" />
+		<method name="hashCode()I" />
+		<method name="setDecomposition(I)V" />
+		<method name="setStrength(I)V" />
+		<field name="CANONICAL_DECOMPOSITION" />
+		<field name="FULL_DECOMPOSITION" />
+		<field name="IDENTICAL" />
+		<field name="NO_DECOMPOSITION" />
+		<field name="PRIMARY" />
+		<field name="SECONDARY" />
+		<field name="TERTIARY" />
+	</class>
+	<class name="java/text/DateFormat" since="1">
+		<extends name="java/text/Format" />
+		<method name="&lt;init>()V" />
+		<method name="format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(Ljava/util/Date;)Ljava/lang/String;" />
+		<method name="format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" />
+		<method name="getCalendar()Ljava/util/Calendar;" />
+		<method name="getDateInstance()Ljava/text/DateFormat;" />
+		<method name="getDateInstance(I)Ljava/text/DateFormat;" />
+		<method name="getDateInstance(ILjava/util/Locale;)Ljava/text/DateFormat;" />
+		<method name="getDateTimeInstance()Ljava/text/DateFormat;" />
+		<method name="getDateTimeInstance(II)Ljava/text/DateFormat;" />
+		<method name="getDateTimeInstance(IILjava/util/Locale;)Ljava/text/DateFormat;" />
+		<method name="getInstance()Ljava/text/DateFormat;" />
+		<method name="getNumberFormat()Ljava/text/NumberFormat;" />
+		<method name="getTimeInstance()Ljava/text/DateFormat;" />
+		<method name="getTimeInstance(I)Ljava/text/DateFormat;" />
+		<method name="getTimeInstance(ILjava/util/Locale;)Ljava/text/DateFormat;" />
+		<method name="getTimeZone()Ljava/util/TimeZone;" />
+		<method name="isLenient()Z" />
+		<method name="parse(Ljava/lang/String;)Ljava/util/Date;" />
+		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;" />
+		<method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Object;" />
+		<method name="setCalendar(Ljava/util/Calendar;)V" />
+		<method name="setLenient(Z)V" />
+		<method name="setNumberFormat(Ljava/text/NumberFormat;)V" />
+		<method name="setTimeZone(Ljava/util/TimeZone;)V" />
+		<field name="AM_PM_FIELD" />
+		<field name="DATE_FIELD" />
+		<field name="DAY_OF_WEEK_FIELD" />
+		<field name="DAY_OF_WEEK_IN_MONTH_FIELD" />
+		<field name="DAY_OF_YEAR_FIELD" />
+		<field name="DEFAULT" />
+		<field name="ERA_FIELD" />
+		<field name="FULL" />
+		<field name="HOUR0_FIELD" />
+		<field name="HOUR1_FIELD" />
+		<field name="HOUR_OF_DAY0_FIELD" />
+		<field name="HOUR_OF_DAY1_FIELD" />
+		<field name="LONG" />
+		<field name="MEDIUM" />
+		<field name="MILLISECOND_FIELD" />
+		<field name="MINUTE_FIELD" />
+		<field name="MONTH_FIELD" />
+		<field name="SECOND_FIELD" />
+		<field name="SHORT" />
+		<field name="TIMEZONE_FIELD" />
+		<field name="WEEK_OF_MONTH_FIELD" />
+		<field name="WEEK_OF_YEAR_FIELD" />
+		<field name="YEAR_FIELD" />
+		<field name="calendar" />
+		<field name="numberFormat" />
+	</class>
+	<class name="java/text/DateFormat$Field" since="1">
+		<extends name="java/text/Format$Field" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="getCalendarField()I" />
+		<method name="ofCalendarField(I)Ljava/text/DateFormat$Field;" />
+		<field name="AM_PM" />
+		<field name="DAY_OF_MONTH" />
+		<field name="DAY_OF_WEEK" />
+		<field name="DAY_OF_WEEK_IN_MONTH" />
+		<field name="DAY_OF_YEAR" />
+		<field name="ERA" />
+		<field name="HOUR0" />
+		<field name="HOUR1" />
+		<field name="HOUR_OF_DAY0" />
+		<field name="HOUR_OF_DAY1" />
+		<field name="MILLISECOND" />
+		<field name="MINUTE" />
+		<field name="MONTH" />
+		<field name="SECOND" />
+		<field name="TIME_ZONE" />
+		<field name="WEEK_OF_MONTH" />
+		<field name="WEEK_OF_YEAR" />
+		<field name="YEAR" />
+	</class>
+	<class name="java/text/DateFormatSymbols" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Locale;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getAmPmStrings()[Ljava/lang/String;" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" since="9" />
+		<method name="getEras()[Ljava/lang/String;" />
+		<method name="getInstance()Ljava/text/DateFormatSymbols;" since="9" />
+		<method name="getInstance(Ljava/util/Locale;)Ljava/text/DateFormatSymbols;" since="9" />
+		<method name="getLocalPatternChars()Ljava/lang/String;" />
+		<method name="getMonths()[Ljava/lang/String;" />
+		<method name="getShortMonths()[Ljava/lang/String;" />
+		<method name="getShortWeekdays()[Ljava/lang/String;" />
+		<method name="getWeekdays()[Ljava/lang/String;" />
+		<method name="getZoneStrings()[[Ljava/lang/String;" />
+		<method name="setAmPmStrings([Ljava/lang/String;)V" />
+		<method name="setEras([Ljava/lang/String;)V" />
+		<method name="setLocalPatternChars(Ljava/lang/String;)V" />
+		<method name="setMonths([Ljava/lang/String;)V" />
+		<method name="setShortMonths([Ljava/lang/String;)V" />
+		<method name="setShortWeekdays([Ljava/lang/String;)V" />
+		<method name="setWeekdays([Ljava/lang/String;)V" />
+		<method name="setZoneStrings([[Ljava/lang/String;)V" />
+	</class>
+	<class name="java/text/DecimalFormat" since="1">
+		<extends name="java/text/NumberFormat" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/text/DecimalFormatSymbols;)V" />
+		<method name="applyLocalizedPattern(Ljava/lang/String;)V" />
+		<method name="applyPattern(Ljava/lang/String;)V" />
+		<method name="format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="getDecimalFormatSymbols()Ljava/text/DecimalFormatSymbols;" />
+		<method name="getGroupingSize()I" />
+		<method name="getMultiplier()I" />
+		<method name="getNegativePrefix()Ljava/lang/String;" />
+		<method name="getNegativeSuffix()Ljava/lang/String;" />
+		<method name="getPositivePrefix()Ljava/lang/String;" />
+		<method name="getPositiveSuffix()Ljava/lang/String;" />
+		<method name="isDecimalSeparatorAlwaysShown()Z" />
+		<method name="isParseBigDecimal()Z" />
+		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;" />
+		<method name="setDecimalFormatSymbols(Ljava/text/DecimalFormatSymbols;)V" />
+		<method name="setDecimalSeparatorAlwaysShown(Z)V" />
+		<method name="setGroupingSize(I)V" />
+		<method name="setMultiplier(I)V" />
+		<method name="setNegativePrefix(Ljava/lang/String;)V" />
+		<method name="setNegativeSuffix(Ljava/lang/String;)V" />
+		<method name="setParseBigDecimal(Z)V" />
+		<method name="setPositivePrefix(Ljava/lang/String;)V" />
+		<method name="setPositiveSuffix(Ljava/lang/String;)V" />
+		<method name="toLocalizedPattern()Ljava/lang/String;" />
+		<method name="toPattern()Ljava/lang/String;" />
+	</class>
+	<class name="java/text/DecimalFormatSymbols" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Locale;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" since="9" />
+		<method name="getCurrency()Ljava/util/Currency;" />
+		<method name="getCurrencySymbol()Ljava/lang/String;" />
+		<method name="getDecimalSeparator()C" />
+		<method name="getDigit()C" />
+		<method name="getExponentSeparator()Ljava/lang/String;" since="9" />
+		<method name="getGroupingSeparator()C" />
+		<method name="getInfinity()Ljava/lang/String;" />
+		<method name="getInstance()Ljava/text/DecimalFormatSymbols;" since="9" />
+		<method name="getInstance(Ljava/util/Locale;)Ljava/text/DecimalFormatSymbols;" since="9" />
+		<method name="getInternationalCurrencySymbol()Ljava/lang/String;" />
+		<method name="getMinusSign()C" />
+		<method name="getMonetaryDecimalSeparator()C" />
+		<method name="getNaN()Ljava/lang/String;" />
+		<method name="getPatternSeparator()C" />
+		<method name="getPerMill()C" />
+		<method name="getPercent()C" />
+		<method name="getZeroDigit()C" />
+		<method name="setCurrency(Ljava/util/Currency;)V" />
+		<method name="setCurrencySymbol(Ljava/lang/String;)V" />
+		<method name="setDecimalSeparator(C)V" />
+		<method name="setDigit(C)V" />
+		<method name="setExponentSeparator(Ljava/lang/String;)V" since="9" />
+		<method name="setGroupingSeparator(C)V" />
+		<method name="setInfinity(Ljava/lang/String;)V" />
+		<method name="setInternationalCurrencySymbol(Ljava/lang/String;)V" />
+		<method name="setMinusSign(C)V" />
+		<method name="setMonetaryDecimalSeparator(C)V" />
+		<method name="setNaN(Ljava/lang/String;)V" />
+		<method name="setPatternSeparator(C)V" />
+		<method name="setPerMill(C)V" />
+		<method name="setPercent(C)V" />
+		<method name="setZeroDigit(C)V" />
+	</class>
+	<class name="java/text/FieldPosition" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/text/Format$Field;)V" />
+		<method name="&lt;init>(Ljava/text/Format$Field;I)V" />
+		<method name="getBeginIndex()I" />
+		<method name="getEndIndex()I" />
+		<method name="getField()I" />
+		<method name="getFieldAttribute()Ljava/text/Format$Field;" />
+		<method name="setBeginIndex(I)V" />
+		<method name="setEndIndex(I)V" />
+	</class>
+	<class name="java/text/Format" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="format(Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="formatToCharacterIterator(Ljava/lang/Object;)Ljava/text/AttributedCharacterIterator;" />
+		<method name="parseObject(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Object;" />
+	</class>
+	<class name="java/text/Format$Field" since="1">
+		<extends name="java/text/AttributedCharacterIterator$Attribute" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/text/MessageFormat" since="1">
+		<extends name="java/text/Format" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Locale;)V" />
+		<method name="applyPattern(Ljava/lang/String;)V" />
+		<method name="format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="format([Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="getFormats()[Ljava/text/Format;" />
+		<method name="getFormatsByArgumentIndex()[Ljava/text/Format;" />
+		<method name="getLocale()Ljava/util/Locale;" />
+		<method name="parse(Ljava/lang/String;)[Ljava/lang/Object;" />
+		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)[Ljava/lang/Object;" />
+		<method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Object;" />
+		<method name="setFormat(ILjava/text/Format;)V" />
+		<method name="setFormatByArgumentIndex(ILjava/text/Format;)V" />
+		<method name="setFormats([Ljava/text/Format;)V" />
+		<method name="setFormatsByArgumentIndex([Ljava/text/Format;)V" />
+		<method name="setLocale(Ljava/util/Locale;)V" />
+		<method name="toPattern()Ljava/lang/String;" />
+	</class>
+	<class name="java/text/MessageFormat$Field" since="1">
+		<extends name="java/text/Format$Field" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="ARGUMENT" />
+	</class>
+	<class name="java/text/Normalizer" since="9">
+		<extends name="java/lang/Object" />
+		<method name="isNormalized(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Z" />
+		<method name="normalize(Ljava/lang/CharSequence;Ljava/text/Normalizer$Form;)Ljava/lang/String;" />
+	</class>
+	<class name="java/text/Normalizer$Form" since="9">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/text/Normalizer$Form;" />
+		<method name="values()[Ljava/text/Normalizer$Form;" />
+		<field name="NFC" />
+		<field name="NFD" />
+		<field name="NFKC" />
+		<field name="NFKD" />
+	</class>
+	<class name="java/text/NumberFormat" since="1">
+		<extends name="java/text/Format" />
+		<method name="&lt;init>()V" />
+		<method name="format(D)Ljava/lang/String;" />
+		<method name="format(DLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(J)Ljava/lang/String;" />
+		<method name="format(JLjava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="format(Ljava/lang/Object;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" />
+		<method name="getCurrency()Ljava/util/Currency;" />
+		<method name="getCurrencyInstance()Ljava/text/NumberFormat;" />
+		<method name="getCurrencyInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
+		<method name="getInstance()Ljava/text/NumberFormat;" />
+		<method name="getInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
+		<method name="getIntegerInstance()Ljava/text/NumberFormat;" />
+		<method name="getIntegerInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
+		<method name="getMaximumFractionDigits()I" />
+		<method name="getMaximumIntegerDigits()I" />
+		<method name="getMinimumFractionDigits()I" />
+		<method name="getMinimumIntegerDigits()I" />
+		<method name="getNumberInstance()Ljava/text/NumberFormat;" />
+		<method name="getNumberInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
+		<method name="getPercentInstance()Ljava/text/NumberFormat;" />
+		<method name="getPercentInstance(Ljava/util/Locale;)Ljava/text/NumberFormat;" />
+		<method name="getRoundingMode()Ljava/math/RoundingMode;" since="9" />
+		<method name="isGroupingUsed()Z" />
+		<method name="isParseIntegerOnly()Z" />
+		<method name="parse(Ljava/lang/String;)Ljava/lang/Number;" />
+		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Number;" />
+		<method name="parseObject(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/lang/Object;" />
+		<method name="setCurrency(Ljava/util/Currency;)V" />
+		<method name="setGroupingUsed(Z)V" />
+		<method name="setMaximumFractionDigits(I)V" />
+		<method name="setMaximumIntegerDigits(I)V" />
+		<method name="setMinimumFractionDigits(I)V" />
+		<method name="setMinimumIntegerDigits(I)V" />
+		<method name="setParseIntegerOnly(Z)V" />
+		<method name="setRoundingMode(Ljava/math/RoundingMode;)V" since="9" />
+		<field name="FRACTION_FIELD" />
+		<field name="INTEGER_FIELD" />
+	</class>
+	<class name="java/text/NumberFormat$Field" since="1">
+		<extends name="java/text/Format$Field" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="CURRENCY" />
+		<field name="DECIMAL_SEPARATOR" />
+		<field name="EXPONENT" />
+		<field name="EXPONENT_SIGN" />
+		<field name="EXPONENT_SYMBOL" />
+		<field name="FRACTION" />
+		<field name="GROUPING_SEPARATOR" />
+		<field name="INTEGER" />
+		<field name="PERCENT" />
+		<field name="PERMILLE" />
+		<field name="SIGN" />
+	</class>
+	<class name="java/text/ParseException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="getErrorOffset()I" />
+	</class>
+	<class name="java/text/ParsePosition" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="getErrorIndex()I" />
+		<method name="getIndex()I" />
+		<method name="setErrorIndex(I)V" />
+		<method name="setIndex(I)V" />
+	</class>
+	<class name="java/text/RuleBasedCollator" since="1">
+		<extends name="java/text/Collator" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="compare(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getCollationElementIterator(Ljava/lang/String;)Ljava/text/CollationElementIterator;" />
+		<method name="getCollationElementIterator(Ljava/text/CharacterIterator;)Ljava/text/CollationElementIterator;" />
+		<method name="getCollationKey(Ljava/lang/String;)Ljava/text/CollationKey;" />
+		<method name="getRules()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+	</class>
+	<class name="java/text/SimpleDateFormat" since="1">
+		<extends name="java/text/DateFormat" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/text/DateFormatSymbols;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Locale;)V" />
+		<method name="applyLocalizedPattern(Ljava/lang/String;)V" />
+		<method name="applyPattern(Ljava/lang/String;)V" />
+		<method name="format(Ljava/util/Date;Ljava/lang/StringBuffer;Ljava/text/FieldPosition;)Ljava/lang/StringBuffer;" />
+		<method name="get2DigitYearStart()Ljava/util/Date;" />
+		<method name="getDateFormatSymbols()Ljava/text/DateFormatSymbols;" />
+		<method name="parse(Ljava/lang/String;Ljava/text/ParsePosition;)Ljava/util/Date;" />
+		<method name="set2DigitYearStart(Ljava/util/Date;)V" />
+		<method name="setDateFormatSymbols(Ljava/text/DateFormatSymbols;)V" />
+		<method name="toLocalizedPattern()Ljava/lang/String;" />
+		<method name="toPattern()Ljava/lang/String;" />
+	</class>
+	<class name="java/text/StringCharacterIterator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/text/CharacterIterator" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;III)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="current()C" />
+		<method name="first()C" />
+		<method name="getBeginIndex()I" />
+		<method name="getEndIndex()I" />
+		<method name="getIndex()I" />
+		<method name="last()C" />
+		<method name="next()C" />
+		<method name="previous()C" />
+		<method name="setIndex(I)C" />
+		<method name="setText(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/AbstractCollection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Collection" />
+		<method name="&lt;init>()V" />
+		<method name="add(LE;)Z" />
+		<method name="addAll(Ljava/util/Collection;)Z" />
+		<method name="clear()V" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="containsAll(Ljava/util/Collection;)Z" />
+		<method name="isEmpty()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="remove(Ljava/lang/Object;)Z" />
+		<method name="removeAll(Ljava/util/Collection;)Z" />
+		<method name="retainAll(Ljava/util/Collection;)Z" />
+		<method name="size()I" />
+		<method name="toArray()[Ljava/lang/Object;" />
+		<method name="toArray([LT;)[LT;" />
+	</class>
+	<class name="java/util/AbstractList" since="1">
+		<extends name="java/util/AbstractCollection" />
+		<implements name="java/util/List" />
+		<method name="&lt;init>()V" />
+		<method name="add(ILE;)V" />
+		<method name="addAll(ILjava/util/Collection;)Z" />
+		<method name="get(I)LE;" />
+		<method name="indexOf(Ljava/lang/Object;)I" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="lastIndexOf(Ljava/lang/Object;)I" />
+		<method name="listIterator()Ljava/util/ListIterator;" />
+		<method name="listIterator(I)Ljava/util/ListIterator;" />
+		<method name="remove(I)LE;" />
+		<method name="removeRange(II)V" />
+		<method name="set(ILE;)LE;" />
+		<method name="subList(II)Ljava/util/List;" />
+		<field name="modCount" />
+	</class>
+	<class name="java/util/AbstractMap" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Map" />
+		<method name="&lt;init>()V" />
+		<method name="clear()V" />
+		<method name="containsKey(Ljava/lang/Object;)Z" />
+		<method name="containsValue(Ljava/lang/Object;)Z" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="get(Ljava/lang/Object;)LV;" />
+		<method name="isEmpty()Z" />
+		<method name="keySet()Ljava/util/Set;" />
+		<method name="put(LK;LV;)LV;" />
+		<method name="putAll(Ljava/util/Map;)V" />
+		<method name="remove(Ljava/lang/Object;)LV;" />
+		<method name="size()I" />
+		<method name="values()Ljava/util/Collection;" />
+	</class>
+	<class name="java/util/AbstractMap$SimpleEntry" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Map$Entry" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(LK;LV;)V" />
+		<method name="&lt;init>(Ljava/util/Map$Entry;)V" />
+		<method name="getKey()LK;" />
+		<method name="getValue()LV;" />
+		<method name="setValue(LV;)LV;" />
+	</class>
+	<class name="java/util/AbstractMap$SimpleImmutableEntry" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Map$Entry" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(LK;LV;)V" />
+		<method name="&lt;init>(Ljava/util/Map$Entry;)V" />
+		<method name="getKey()LK;" />
+		<method name="getValue()LV;" />
+		<method name="setValue(LV;)LV;" />
+	</class>
+	<class name="java/util/AbstractQueue" since="1">
+		<extends name="java/util/AbstractCollection" />
+		<implements name="java/util/Queue" />
+		<method name="&lt;init>()V" />
+		<method name="element()LE;" />
+		<method name="remove()LE;" />
+	</class>
+	<class name="java/util/AbstractSequentialList" since="1">
+		<extends name="java/util/AbstractList" />
+		<method name="&lt;init>()V" />
+		<method name="get(I)LE;" />
+		<method name="listIterator(I)Ljava/util/ListIterator;" />
+	</class>
+	<class name="java/util/AbstractSet" since="1">
+		<extends name="java/util/AbstractCollection" />
+		<implements name="java/util/Set" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/util/ArrayDeque" since="9">
+		<extends name="java/util/AbstractCollection" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Deque" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="addFirst(LE;)V" />
+		<method name="addLast(LE;)V" />
+		<method name="clone()Ljava/util/ArrayDeque;" />
+		<method name="descendingIterator()Ljava/util/Iterator;" />
+		<method name="element()LE;" />
+		<method name="getFirst()LE;" />
+		<method name="getLast()LE;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offerFirst(LE;)Z" />
+		<method name="offerLast(LE;)Z" />
+		<method name="peek()LE;" />
+		<method name="peekFirst()LE;" />
+		<method name="peekLast()LE;" />
+		<method name="poll()LE;" />
+		<method name="pollFirst()LE;" />
+		<method name="pollLast()LE;" />
+		<method name="pop()LE;" />
+		<method name="push(LE;)V" />
+		<method name="remove()LE;" />
+		<method name="removeFirst()LE;" />
+		<method name="removeFirstOccurrence(Ljava/lang/Object;)Z" />
+		<method name="removeLast()LE;" />
+		<method name="removeLastOccurrence(Ljava/lang/Object;)Z" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/ArrayList" since="1">
+		<extends name="java/util/AbstractList" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/List" />
+		<implements name="java/util/RandomAccess" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="ensureCapacity(I)V" />
+		<method name="get(I)LE;" />
+		<method name="size()I" />
+		<method name="trimToSize()V" />
+	</class>
+	<class name="java/util/Arrays" since="1">
+		<extends name="java/lang/Object" />
+		<method name="asList([LT;)Ljava/util/List;" />
+		<method name="binarySearch([BB)I" />
+		<method name="binarySearch([BIIB)I" since="9" />
+		<method name="binarySearch([CC)I" />
+		<method name="binarySearch([CIIC)I" since="9" />
+		<method name="binarySearch([DD)I" />
+		<method name="binarySearch([DIID)I" since="9" />
+		<method name="binarySearch([FF)I" />
+		<method name="binarySearch([FIIF)I" since="9" />
+		<method name="binarySearch([II)I" />
+		<method name="binarySearch([IIII)I" since="9" />
+		<method name="binarySearch([JIIJ)I" since="9" />
+		<method name="binarySearch([JJ)I" />
+		<method name="binarySearch([LT;IILT;Ljava/util/Comparator;)I" since="9" />
+		<method name="binarySearch([LT;LT;Ljava/util/Comparator;)I" />
+		<method name="binarySearch([Ljava/lang/Object;IILjava/lang/Object;)I" since="9" />
+		<method name="binarySearch([Ljava/lang/Object;Ljava/lang/Object;)I" />
+		<method name="binarySearch([SIIS)I" since="9" />
+		<method name="binarySearch([SS)I" />
+		<method name="copyOf([BI)[B" since="9" />
+		<method name="copyOf([CI)[C" since="9" />
+		<method name="copyOf([DI)[D" since="9" />
+		<method name="copyOf([FI)[F" since="9" />
+		<method name="copyOf([II)[I" since="9" />
+		<method name="copyOf([JI)[J" since="9" />
+		<method name="copyOf([LT;I)[LT;" since="9" />
+		<method name="copyOf([LU;ILjava/lang/Class;)[LT;" since="9" />
+		<method name="copyOf([SI)[S" since="9" />
+		<method name="copyOf([ZI)[Z" since="9" />
+		<method name="copyOfRange([BII)[B" since="9" />
+		<method name="copyOfRange([CII)[C" since="9" />
+		<method name="copyOfRange([DII)[D" since="9" />
+		<method name="copyOfRange([FII)[F" since="9" />
+		<method name="copyOfRange([III)[I" since="9" />
+		<method name="copyOfRange([JII)[J" since="9" />
+		<method name="copyOfRange([LT;II)[LT;" since="9" />
+		<method name="copyOfRange([LU;IILjava/lang/Class;)[LT;" since="9" />
+		<method name="copyOfRange([SII)[S" since="9" />
+		<method name="copyOfRange([ZII)[Z" since="9" />
+		<method name="deepEquals([Ljava/lang/Object;[Ljava/lang/Object;)Z" />
+		<method name="deepHashCode([Ljava/lang/Object;)I" />
+		<method name="deepToString([Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="equals([B[B)Z" />
+		<method name="equals([C[C)Z" />
+		<method name="equals([D[D)Z" />
+		<method name="equals([F[F)Z" />
+		<method name="equals([I[I)Z" />
+		<method name="equals([J[J)Z" />
+		<method name="equals([Ljava/lang/Object;[Ljava/lang/Object;)Z" />
+		<method name="equals([S[S)Z" />
+		<method name="equals([Z[Z)Z" />
+		<method name="fill([BB)V" />
+		<method name="fill([BIIB)V" />
+		<method name="fill([CC)V" />
+		<method name="fill([CIIC)V" />
+		<method name="fill([DD)V" />
+		<method name="fill([DIID)V" />
+		<method name="fill([FF)V" />
+		<method name="fill([FIIF)V" />
+		<method name="fill([II)V" />
+		<method name="fill([IIII)V" />
+		<method name="fill([JIIJ)V" />
+		<method name="fill([JJ)V" />
+		<method name="fill([Ljava/lang/Object;IILjava/lang/Object;)V" />
+		<method name="fill([Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="fill([SIIS)V" />
+		<method name="fill([SS)V" />
+		<method name="fill([ZIIZ)V" />
+		<method name="fill([ZZ)V" />
+		<method name="hashCode([B)I" />
+		<method name="hashCode([C)I" />
+		<method name="hashCode([D)I" />
+		<method name="hashCode([F)I" />
+		<method name="hashCode([I)I" />
+		<method name="hashCode([J)I" />
+		<method name="hashCode([Ljava/lang/Object;)I" />
+		<method name="hashCode([S)I" />
+		<method name="hashCode([Z)I" />
+		<method name="sort([B)V" />
+		<method name="sort([BII)V" />
+		<method name="sort([C)V" />
+		<method name="sort([CII)V" />
+		<method name="sort([D)V" />
+		<method name="sort([DII)V" />
+		<method name="sort([F)V" />
+		<method name="sort([FII)V" />
+		<method name="sort([I)V" />
+		<method name="sort([III)V" />
+		<method name="sort([J)V" />
+		<method name="sort([JII)V" />
+		<method name="sort([LT;IILjava/util/Comparator;)V" />
+		<method name="sort([LT;Ljava/util/Comparator;)V" />
+		<method name="sort([Ljava/lang/Object;)V" />
+		<method name="sort([Ljava/lang/Object;II)V" />
+		<method name="sort([S)V" />
+		<method name="sort([SII)V" />
+		<method name="toString([B)Ljava/lang/String;" />
+		<method name="toString([C)Ljava/lang/String;" />
+		<method name="toString([D)Ljava/lang/String;" />
+		<method name="toString([F)Ljava/lang/String;" />
+		<method name="toString([I)Ljava/lang/String;" />
+		<method name="toString([J)Ljava/lang/String;" />
+		<method name="toString([Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="toString([S)Ljava/lang/String;" />
+		<method name="toString([Z)Ljava/lang/String;" />
+	</class>
+	<class name="java/util/BitSet" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="and(Ljava/util/BitSet;)V" />
+		<method name="andNot(Ljava/util/BitSet;)V" />
+		<method name="cardinality()I" />
+		<method name="clear()V" />
+		<method name="clear(I)V" />
+		<method name="clear(II)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="flip(I)V" />
+		<method name="flip(II)V" />
+		<method name="get(I)Z" />
+		<method name="get(II)Ljava/util/BitSet;" />
+		<method name="intersects(Ljava/util/BitSet;)Z" />
+		<method name="isEmpty()Z" />
+		<method name="length()I" />
+		<method name="nextClearBit(I)I" />
+		<method name="nextSetBit(I)I" />
+		<method name="or(Ljava/util/BitSet;)V" />
+		<method name="set(I)V" />
+		<method name="set(II)V" />
+		<method name="set(IIZ)V" />
+		<method name="set(IZ)V" />
+		<method name="size()I" />
+		<method name="xor(Ljava/util/BitSet;)V" />
+	</class>
+	<class name="java/util/Calendar" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/TimeZone;Ljava/util/Locale;)V" />
+		<method name="add(II)V" />
+		<method name="after(Ljava/lang/Object;)Z" />
+		<method name="before(Ljava/lang/Object;)Z" />
+		<method name="clear()V" />
+		<method name="clear(I)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="compareTo(Ljava/util/Calendar;)I" />
+		<method name="complete()V" />
+		<method name="computeFields()V" />
+		<method name="computeTime()V" />
+		<method name="get(I)I" />
+		<method name="getActualMaximum(I)I" />
+		<method name="getActualMinimum(I)I" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" />
+		<method name="getDisplayName(IILjava/util/Locale;)Ljava/lang/String;" since="9" />
+		<method name="getDisplayNames(IILjava/util/Locale;)Ljava/util/Map;" since="9" />
+		<method name="getFirstDayOfWeek()I" />
+		<method name="getGreatestMinimum(I)I" />
+		<method name="getInstance()Ljava/util/Calendar;" />
+		<method name="getInstance(Ljava/util/Locale;)Ljava/util/Calendar;" />
+		<method name="getInstance(Ljava/util/TimeZone;)Ljava/util/Calendar;" />
+		<method name="getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar;" />
+		<method name="getLeastMaximum(I)I" />
+		<method name="getMaximum(I)I" />
+		<method name="getMinimalDaysInFirstWeek()I" />
+		<method name="getMinimum(I)I" />
+		<method name="getTime()Ljava/util/Date;" />
+		<method name="getTimeInMillis()J" />
+		<method name="getTimeZone()Ljava/util/TimeZone;" />
+		<method name="internalGet(I)I" />
+		<method name="isLenient()Z" />
+		<method name="isSet(I)Z" />
+		<method name="roll(II)V" />
+		<method name="roll(IZ)V" />
+		<method name="set(II)V" />
+		<method name="set(III)V" />
+		<method name="set(IIIII)V" />
+		<method name="set(IIIIII)V" />
+		<method name="setFirstDayOfWeek(I)V" />
+		<method name="setLenient(Z)V" />
+		<method name="setMinimalDaysInFirstWeek(I)V" />
+		<method name="setTime(Ljava/util/Date;)V" />
+		<method name="setTimeInMillis(J)V" />
+		<method name="setTimeZone(Ljava/util/TimeZone;)V" />
+		<field name="ALL_STYLES" since="9" />
+		<field name="AM" />
+		<field name="AM_PM" />
+		<field name="APRIL" />
+		<field name="AUGUST" />
+		<field name="DATE" />
+		<field name="DAY_OF_MONTH" />
+		<field name="DAY_OF_WEEK" />
+		<field name="DAY_OF_WEEK_IN_MONTH" />
+		<field name="DAY_OF_YEAR" />
+		<field name="DECEMBER" />
+		<field name="DST_OFFSET" />
+		<field name="ERA" />
+		<field name="FEBRUARY" />
+		<field name="FIELD_COUNT" />
+		<field name="FRIDAY" />
+		<field name="HOUR" />
+		<field name="HOUR_OF_DAY" />
+		<field name="JANUARY" />
+		<field name="JULY" />
+		<field name="JUNE" />
+		<field name="LONG" since="9" />
+		<field name="MARCH" />
+		<field name="MAY" />
+		<field name="MILLISECOND" />
+		<field name="MINUTE" />
+		<field name="MONDAY" />
+		<field name="MONTH" />
+		<field name="NOVEMBER" />
+		<field name="OCTOBER" />
+		<field name="PM" />
+		<field name="SATURDAY" />
+		<field name="SECOND" />
+		<field name="SEPTEMBER" />
+		<field name="SHORT" since="9" />
+		<field name="SUNDAY" />
+		<field name="THURSDAY" />
+		<field name="TUESDAY" />
+		<field name="UNDECIMBER" />
+		<field name="WEDNESDAY" />
+		<field name="WEEK_OF_MONTH" />
+		<field name="WEEK_OF_YEAR" />
+		<field name="YEAR" />
+		<field name="ZONE_OFFSET" />
+		<field name="areFieldsSet" />
+		<field name="fields" />
+		<field name="isSet" />
+		<field name="isTimeSet" />
+		<field name="time" />
+	</class>
+	<class name="java/util/Collection" since="1">
+		<implements name="java/lang/Iterable" />
+		<method name="add(LE;)Z" />
+		<method name="addAll(Ljava/util/Collection;)Z" />
+		<method name="clear()V" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="containsAll(Ljava/util/Collection;)Z" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="hashCode()I" />
+		<method name="isEmpty()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="remove(Ljava/lang/Object;)Z" />
+		<method name="removeAll(Ljava/util/Collection;)Z" />
+		<method name="retainAll(Ljava/util/Collection;)Z" />
+		<method name="size()I" />
+		<method name="toArray()[Ljava/lang/Object;" />
+		<method name="toArray([LT;)[LT;" />
+	</class>
+	<class name="java/util/Collections" since="1">
+		<extends name="java/lang/Object" />
+		<method name="addAll(Ljava/util/Collection;[LT;)Z" />
+		<method name="asLifoQueue(Ljava/util/Deque;)Ljava/util/Queue;" since="9" />
+		<method name="binarySearch(Ljava/util/List;LT;)I" />
+		<method name="binarySearch(Ljava/util/List;LT;Ljava/util/Comparator;)I" />
+		<method name="checkedCollection(Ljava/util/Collection;Ljava/lang/Class;)Ljava/util/Collection;" />
+		<method name="checkedList(Ljava/util/List;Ljava/lang/Class;)Ljava/util/List;" />
+		<method name="checkedMap(Ljava/util/Map;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/Map;" />
+		<method name="checkedSet(Ljava/util/Set;Ljava/lang/Class;)Ljava/util/Set;" />
+		<method name="checkedSortedMap(Ljava/util/SortedMap;Ljava/lang/Class;Ljava/lang/Class;)Ljava/util/SortedMap;" />
+		<method name="checkedSortedSet(Ljava/util/SortedSet;Ljava/lang/Class;)Ljava/util/SortedSet;" />
+		<method name="copy(Ljava/util/List;Ljava/util/List;)V" />
+		<method name="disjoint(Ljava/util/Collection;Ljava/util/Collection;)Z" />
+		<method name="emptyList()Ljava/util/List;" />
+		<method name="emptyMap()Ljava/util/Map;" />
+		<method name="emptySet()Ljava/util/Set;" />
+		<method name="enumeration(Ljava/util/Collection;)Ljava/util/Enumeration;" />
+		<method name="fill(Ljava/util/List;LT;)V" />
+		<method name="frequency(Ljava/util/Collection;Ljava/lang/Object;)I" />
+		<method name="indexOfSubList(Ljava/util/List;Ljava/util/List;)I" />
+		<method name="lastIndexOfSubList(Ljava/util/List;Ljava/util/List;)I" />
+		<method name="list(Ljava/util/Enumeration;)Ljava/util/ArrayList;" />
+		<method name="max(Ljava/util/Collection;)LT;" />
+		<method name="max(Ljava/util/Collection;Ljava/util/Comparator;)LT;" />
+		<method name="min(Ljava/util/Collection;)LT;" />
+		<method name="min(Ljava/util/Collection;Ljava/util/Comparator;)LT;" />
+		<method name="nCopies(ILT;)Ljava/util/List;" />
+		<method name="newSetFromMap(Ljava/util/Map;)Ljava/util/Set;" since="9" />
+		<method name="replaceAll(Ljava/util/List;LT;LT;)Z" />
+		<method name="reverse(Ljava/util/List;)V" />
+		<method name="reverseOrder()Ljava/util/Comparator;" />
+		<method name="reverseOrder(Ljava/util/Comparator;)Ljava/util/Comparator;" />
+		<method name="rotate(Ljava/util/List;I)V" />
+		<method name="shuffle(Ljava/util/List;)V" />
+		<method name="shuffle(Ljava/util/List;Ljava/util/Random;)V" />
+		<method name="singleton(LE;)Ljava/util/Set;" />
+		<method name="singletonList(LE;)Ljava/util/List;" />
+		<method name="singletonMap(LK;LV;)Ljava/util/Map;" />
+		<method name="sort(Ljava/util/List;)V" />
+		<method name="sort(Ljava/util/List;Ljava/util/Comparator;)V" />
+		<method name="swap(Ljava/util/List;II)V" />
+		<method name="synchronizedCollection(Ljava/util/Collection;)Ljava/util/Collection;" />
+		<method name="synchronizedList(Ljava/util/List;)Ljava/util/List;" />
+		<method name="synchronizedMap(Ljava/util/Map;)Ljava/util/Map;" />
+		<method name="synchronizedSet(Ljava/util/Set;)Ljava/util/Set;" />
+		<method name="synchronizedSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap;" />
+		<method name="synchronizedSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet;" />
+		<method name="unmodifiableCollection(Ljava/util/Collection;)Ljava/util/Collection;" />
+		<method name="unmodifiableList(Ljava/util/List;)Ljava/util/List;" />
+		<method name="unmodifiableMap(Ljava/util/Map;)Ljava/util/Map;" />
+		<method name="unmodifiableSet(Ljava/util/Set;)Ljava/util/Set;" />
+		<method name="unmodifiableSortedMap(Ljava/util/SortedMap;)Ljava/util/SortedMap;" />
+		<method name="unmodifiableSortedSet(Ljava/util/SortedSet;)Ljava/util/SortedSet;" />
+		<field name="EMPTY_LIST" />
+		<field name="EMPTY_MAP" />
+		<field name="EMPTY_SET" />
+	</class>
+	<class name="java/util/Comparator" since="1">
+		<method name="compare(LT;LT;)I" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+	</class>
+	<class name="java/util/ConcurrentModificationException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/Currency" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="getCurrencyCode()Ljava/lang/String;" />
+		<method name="getDefaultFractionDigits()I" />
+		<method name="getInstance(Ljava/lang/String;)Ljava/util/Currency;" />
+		<method name="getInstance(Ljava/util/Locale;)Ljava/util/Currency;" />
+		<method name="getSymbol()Ljava/lang/String;" />
+		<method name="getSymbol(Ljava/util/Locale;)Ljava/lang/String;" />
+	</class>
+	<class name="java/util/Date" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(IIIII)V" />
+		<method name="&lt;init>(IIIIII)V" />
+		<method name="&lt;init>(J)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="UTC(IIIIII)J" />
+		<method name="after(Ljava/util/Date;)Z" />
+		<method name="before(Ljava/util/Date;)Z" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="compareTo(Ljava/util/Date;)I" />
+		<method name="getDate()I" />
+		<method name="getDay()I" />
+		<method name="getHours()I" />
+		<method name="getMinutes()I" />
+		<method name="getMonth()I" />
+		<method name="getSeconds()I" />
+		<method name="getTime()J" />
+		<method name="getTimezoneOffset()I" />
+		<method name="getYear()I" />
+		<method name="parse(Ljava/lang/String;)J" />
+		<method name="setDate(I)V" />
+		<method name="setHours(I)V" />
+		<method name="setMinutes(I)V" />
+		<method name="setMonth(I)V" />
+		<method name="setSeconds(I)V" />
+		<method name="setTime(J)V" />
+		<method name="setYear(I)V" />
+		<method name="toGMTString()Ljava/lang/String;" />
+		<method name="toLocaleString()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/Deque" since="9">
+		<implements name="java/util/Queue" />
+		<method name="add(LE;)Z" since="11" />
+		<method name="addFirst(LE;)V" />
+		<method name="addLast(LE;)V" />
+		<method name="contains(Ljava/lang/Object;)Z" since="11" />
+		<method name="descendingIterator()Ljava/util/Iterator;" />
+		<method name="element()LE;" since="11" />
+		<method name="getFirst()LE;" />
+		<method name="getLast()LE;" />
+		<method name="iterator()Ljava/util/Iterator;" since="11" />
+		<method name="offer(LE;)Z" since="11" />
+		<method name="offerFirst(LE;)Z" />
+		<method name="offerLast(LE;)Z" />
+		<method name="peek()LE;" since="11" />
+		<method name="peekFirst()LE;" />
+		<method name="peekLast()LE;" />
+		<method name="poll()LE;" since="11" />
+		<method name="pollFirst()LE;" />
+		<method name="pollLast()LE;" />
+		<method name="pop()LE;" />
+		<method name="push(LE;)V" />
+		<method name="remove()LE;" since="11" />
+		<method name="remove(Ljava/lang/Object;)Z" since="11" />
+		<method name="removeFirst()LE;" />
+		<method name="removeFirstOccurrence(Ljava/lang/Object;)Z" />
+		<method name="removeLast()LE;" />
+		<method name="removeLastOccurrence(Ljava/lang/Object;)Z" />
+		<method name="size()I" since="11" />
+	</class>
+	<class name="java/util/Dictionary" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="elements()Ljava/util/Enumeration;" />
+		<method name="get(Ljava/lang/Object;)LV;" />
+		<method name="isEmpty()Z" />
+		<method name="keys()Ljava/util/Enumeration;" />
+		<method name="put(LK;LV;)LV;" />
+		<method name="remove(Ljava/lang/Object;)LV;" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/DuplicateFormatFlagsException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getFlags()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/EmptyStackException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/util/EnumMap" since="1">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Map" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Ljava/util/EnumMap;)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="clone()Ljava/util/EnumMap;" />
+		<method name="entrySet()Ljava/util/Set;" />
+	</class>
+	<class name="java/util/EnumSet" since="1">
+		<extends name="java/util/AbstractSet" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="allOf(Ljava/lang/Class;)Ljava/util/EnumSet;" />
+		<method name="clone()Ljava/util/EnumSet;" />
+		<method name="complementOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;" />
+		<method name="copyOf(Ljava/util/Collection;)Ljava/util/EnumSet;" />
+		<method name="copyOf(Ljava/util/EnumSet;)Ljava/util/EnumSet;" />
+		<method name="noneOf(Ljava/lang/Class;)Ljava/util/EnumSet;" />
+		<method name="of(LE;)Ljava/util/EnumSet;" />
+		<method name="of(LE;LE;)Ljava/util/EnumSet;" />
+		<method name="of(LE;LE;LE;)Ljava/util/EnumSet;" />
+		<method name="of(LE;LE;LE;LE;)Ljava/util/EnumSet;" />
+		<method name="of(LE;LE;LE;LE;LE;)Ljava/util/EnumSet;" />
+		<method name="of(LE;[LE;)Ljava/util/EnumSet;" />
+		<method name="range(LE;LE;)Ljava/util/EnumSet;" />
+	</class>
+	<class name="java/util/Enumeration" since="1">
+		<method name="hasMoreElements()Z" />
+		<method name="nextElement()LE;" />
+	</class>
+	<class name="java/util/EventListener" since="1">
+	</class>
+	<class name="java/util/EventListenerProxy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/EventListener" />
+		<method name="&lt;init>(Ljava/util/EventListener;)V" />
+		<method name="getListener()Ljava/util/EventListener;" />
+	</class>
+	<class name="java/util/EventObject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/Object;)V" />
+		<method name="getSource()Ljava/lang/Object;" />
+		<field name="source" />
+	</class>
+	<class name="java/util/FormatFlagsConversionMismatchException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;C)V" />
+		<method name="getConversion()C" />
+		<method name="getFlags()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/Formattable" since="1">
+		<method name="formatTo(Ljava/util/Formatter;III)V" />
+	</class>
+	<class name="java/util/FormattableFlags" since="1">
+		<extends name="java/lang/Object" />
+		<field name="ALTERNATE" />
+		<field name="LEFT_JUSTIFY" />
+		<field name="UPPERCASE" />
+	</class>
+	<class name="java/util/Formatter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Closeable" />
+		<implements name="java/io/Flushable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;Ljava/util/Locale;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/lang/String;Ljava/util/Locale;)V" />
+		<method name="&lt;init>(Ljava/io/PrintStream;)V" />
+		<method name="&lt;init>(Ljava/lang/Appendable;)V" />
+		<method name="&lt;init>(Ljava/lang/Appendable;Ljava/util/Locale;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/util/Locale;)V" />
+		<method name="&lt;init>(Ljava/util/Locale;)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;" />
+		<method name="format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;" />
+		<method name="ioException()Ljava/io/IOException;" />
+		<method name="locale()Ljava/util/Locale;" />
+		<method name="out()Ljava/lang/Appendable;" />
+	</class>
+	<class name="java/util/Formatter$BigDecimalLayoutForm" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/util/Formatter$BigDecimalLayoutForm;" />
+		<method name="values()[Ljava/util/Formatter$BigDecimalLayoutForm;" />
+		<field name="DECIMAL_FLOAT" />
+		<field name="SCIENTIFIC" />
+	</class>
+	<class name="java/util/FormatterClosedException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/util/GregorianCalendar" since="1">
+		<extends name="java/util/Calendar" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(IIIII)V" />
+		<method name="&lt;init>(IIIIII)V" />
+		<method name="&lt;init>(Ljava/util/Locale;)V" />
+		<method name="&lt;init>(Ljava/util/TimeZone;)V" />
+		<method name="&lt;init>(Ljava/util/TimeZone;Ljava/util/Locale;)V" />
+		<method name="add(II)V" />
+		<method name="computeFields()V" />
+		<method name="computeTime()V" />
+		<method name="getGreatestMinimum(I)I" />
+		<method name="getGregorianChange()Ljava/util/Date;" />
+		<method name="getLeastMaximum(I)I" />
+		<method name="getMaximum(I)I" />
+		<method name="getMinimum(I)I" />
+		<method name="isLeapYear(I)Z" />
+		<method name="roll(IZ)V" />
+		<method name="setGregorianChange(Ljava/util/Date;)V" />
+		<field name="AD" />
+		<field name="BC" />
+	</class>
+	<class name="java/util/HashMap" since="1">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Map" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="entrySet()Ljava/util/Set;" />
+	</class>
+	<class name="java/util/HashSet" since="1">
+		<extends name="java/util/AbstractSet" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/util/Set" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/Hashtable" since="1">
+		<extends name="java/util/Dictionary" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Map" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="containsKey(Ljava/lang/Object;)Z" />
+		<method name="containsValue(Ljava/lang/Object;)Z" />
+		<method name="elements()Ljava/util/Enumeration;" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="get(Ljava/lang/Object;)LV;" />
+		<method name="isEmpty()Z" />
+		<method name="keySet()Ljava/util/Set;" />
+		<method name="keys()Ljava/util/Enumeration;" />
+		<method name="put(LK;LV;)LV;" />
+		<method name="putAll(Ljava/util/Map;)V" />
+		<method name="rehash()V" />
+		<method name="remove(Ljava/lang/Object;)LV;" />
+		<method name="size()I" />
+		<method name="values()Ljava/util/Collection;" />
+	</class>
+	<class name="java/util/IdentityHashMap" since="1">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Map" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="entrySet()Ljava/util/Set;" />
+	</class>
+	<class name="java/util/IllegalFormatCodePointException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="getCodePoint()I" />
+	</class>
+	<class name="java/util/IllegalFormatConversionException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(CLjava/lang/Class;)V" />
+		<method name="getArgumentClass()Ljava/lang/Class;" />
+		<method name="getConversion()C" />
+	</class>
+	<class name="java/util/IllegalFormatException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<implements name="java/io/Serializable" />
+	</class>
+	<class name="java/util/IllegalFormatFlagsException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getFlags()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/IllegalFormatPrecisionException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(I)V" />
+		<method name="getPrecision()I" />
+	</class>
+	<class name="java/util/IllegalFormatWidthException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(I)V" />
+		<method name="getWidth()I" />
+	</class>
+	<class name="java/util/InputMismatchException" since="1">
+		<extends name="java/util/NoSuchElementException" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/InvalidPropertiesFormatException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/Iterator" since="1">
+		<method name="hasNext()Z" />
+		<method name="next()LE;" />
+		<method name="remove()V" />
+	</class>
+	<class name="java/util/LinkedHashMap" since="1">
+		<extends name="java/util/HashMap" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" />
+		<method name="&lt;init>(IFZ)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="removeEldestEntry(Ljava/util/Map$Entry;)Z" />
+	</class>
+	<class name="java/util/LinkedHashSet" since="1">
+		<extends name="java/util/HashSet" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/util/Set" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+	</class>
+	<class name="java/util/LinkedList" since="1">
+		<extends name="java/util/AbstractSequentialList" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/List" />
+		<implements name="java/util/Queue" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/util/Deque" since="9" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="addFirst(LE;)V" />
+		<method name="addLast(LE;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="descendingIterator()Ljava/util/Iterator;" since="9" />
+		<method name="element()LE;" />
+		<method name="getFirst()LE;" />
+		<method name="getLast()LE;" />
+		<method name="listIterator(I)Ljava/util/ListIterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offerFirst(LE;)Z" since="9" />
+		<method name="offerLast(LE;)Z" since="9" />
+		<method name="peek()LE;" />
+		<method name="peekFirst()LE;" since="9" />
+		<method name="peekLast()LE;" since="9" />
+		<method name="poll()LE;" />
+		<method name="pollFirst()LE;" since="9" />
+		<method name="pollLast()LE;" since="9" />
+		<method name="pop()LE;" since="9" />
+		<method name="push(LE;)V" since="9" />
+		<method name="remove()LE;" />
+		<method name="removeFirst()LE;" />
+		<method name="removeFirstOccurrence(Ljava/lang/Object;)Z" since="9" />
+		<method name="removeLast()LE;" />
+		<method name="removeLastOccurrence(Ljava/lang/Object;)Z" since="9" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/List" since="1">
+		<implements name="java/util/Collection" />
+		<method name="add(ILE;)V" />
+		<method name="add(LE;)Z" />
+		<method name="addAll(ILjava/util/Collection;)Z" />
+		<method name="addAll(Ljava/util/Collection;)Z" />
+		<method name="clear()V" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="containsAll(Ljava/util/Collection;)Z" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="get(I)LE;" />
+		<method name="hashCode()I" />
+		<method name="indexOf(Ljava/lang/Object;)I" />
+		<method name="isEmpty()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="lastIndexOf(Ljava/lang/Object;)I" />
+		<method name="listIterator()Ljava/util/ListIterator;" />
+		<method name="listIterator(I)Ljava/util/ListIterator;" />
+		<method name="remove(I)LE;" />
+		<method name="remove(Ljava/lang/Object;)Z" />
+		<method name="removeAll(Ljava/util/Collection;)Z" />
+		<method name="retainAll(Ljava/util/Collection;)Z" />
+		<method name="set(ILE;)LE;" />
+		<method name="size()I" />
+		<method name="subList(II)Ljava/util/List;" />
+		<method name="toArray()[Ljava/lang/Object;" />
+		<method name="toArray([LT;)[LT;" />
+	</class>
+	<class name="java/util/ListIterator" since="1">
+		<implements name="java/util/Iterator" />
+		<method name="add(LE;)V" />
+		<method name="hasNext()Z" />
+		<method name="hasPrevious()Z" />
+		<method name="next()LE;" />
+		<method name="nextIndex()I" />
+		<method name="previous()LE;" />
+		<method name="previousIndex()I" />
+		<method name="remove()V" />
+		<method name="set(LE;)V" />
+	</class>
+	<class name="java/util/ListResourceBundle" since="1">
+		<extends name="java/util/ResourceBundle" />
+		<method name="&lt;init>()V" />
+		<method name="getContents()[[Ljava/lang/Object;" />
+		<method name="getKeys()Ljava/util/Enumeration;" />
+		<method name="handleGetObject(Ljava/lang/String;)Ljava/lang/Object;" />
+	</class>
+	<class name="java/util/Locale" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getAvailableLocales()[Ljava/util/Locale;" />
+		<method name="getCountry()Ljava/lang/String;" />
+		<method name="getDefault()Ljava/util/Locale;" />
+		<method name="getDisplayCountry()Ljava/lang/String;" />
+		<method name="getDisplayCountry(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="getDisplayLanguage()Ljava/lang/String;" />
+		<method name="getDisplayLanguage(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="getDisplayName()Ljava/lang/String;" />
+		<method name="getDisplayName(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="getDisplayVariant()Ljava/lang/String;" />
+		<method name="getDisplayVariant(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="getISO3Country()Ljava/lang/String;" />
+		<method name="getISO3Language()Ljava/lang/String;" />
+		<method name="getISOCountries()[Ljava/lang/String;" />
+		<method name="getISOLanguages()[Ljava/lang/String;" />
+		<method name="getLanguage()Ljava/lang/String;" />
+		<method name="getVariant()Ljava/lang/String;" />
+		<method name="setDefault(Ljava/util/Locale;)V" />
+		<method name="toString()Ljava/lang/String;" />
+		<field name="CANADA" />
+		<field name="CANADA_FRENCH" />
+		<field name="CHINA" />
+		<field name="CHINESE" />
+		<field name="ENGLISH" />
+		<field name="FRANCE" />
+		<field name="FRENCH" />
+		<field name="GERMAN" />
+		<field name="GERMANY" />
+		<field name="ITALIAN" />
+		<field name="ITALY" />
+		<field name="JAPAN" />
+		<field name="JAPANESE" />
+		<field name="KOREA" />
+		<field name="KOREAN" />
+		<field name="PRC" />
+		<field name="ROOT" since="9" />
+		<field name="SIMPLIFIED_CHINESE" />
+		<field name="TAIWAN" />
+		<field name="TRADITIONAL_CHINESE" />
+		<field name="UK" />
+		<field name="US" />
+	</class>
+	<class name="java/util/Map" since="1">
+		<method name="clear()V" />
+		<method name="containsKey(Ljava/lang/Object;)Z" />
+		<method name="containsValue(Ljava/lang/Object;)Z" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="get(Ljava/lang/Object;)LV;" />
+		<method name="hashCode()I" />
+		<method name="isEmpty()Z" />
+		<method name="keySet()Ljava/util/Set;" />
+		<method name="put(LK;LV;)LV;" />
+		<method name="putAll(Ljava/util/Map;)V" />
+		<method name="remove(Ljava/lang/Object;)LV;" />
+		<method name="size()I" />
+		<method name="values()Ljava/util/Collection;" />
+	</class>
+	<class name="java/util/Map$Entry" since="1">
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getKey()LK;" />
+		<method name="getValue()LV;" />
+		<method name="hashCode()I" />
+		<method name="setValue(LV;)LV;" />
+	</class>
+	<class name="java/util/MissingFormatArgumentException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getFormatSpecifier()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/MissingFormatWidthException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getFormatSpecifier()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/MissingResourceException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getClassName()Ljava/lang/String;" />
+		<method name="getKey()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/NavigableMap" since="9">
+		<implements name="java/util/SortedMap" />
+		<method name="ceilingEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="ceilingKey(LK;)LK;" />
+		<method name="descendingKeySet()Ljava/util/NavigableSet;" />
+		<method name="descendingMap()Ljava/util/NavigableMap;" />
+		<method name="firstEntry()Ljava/util/Map$Entry;" />
+		<method name="floorEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="floorKey(LK;)LK;" />
+		<method name="headMap(LK;)Ljava/util/SortedMap;" since="11" />
+		<method name="headMap(LK;Z)Ljava/util/NavigableMap;" />
+		<method name="higherEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="higherKey(LK;)LK;" />
+		<method name="lastEntry()Ljava/util/Map$Entry;" />
+		<method name="lowerEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="lowerKey(LK;)LK;" />
+		<method name="navigableKeySet()Ljava/util/NavigableSet;" />
+		<method name="pollFirstEntry()Ljava/util/Map$Entry;" />
+		<method name="pollLastEntry()Ljava/util/Map$Entry;" />
+		<method name="subMap(LK;LK;)Ljava/util/SortedMap;" since="11" />
+		<method name="subMap(LK;ZLK;Z)Ljava/util/NavigableMap;" />
+		<method name="tailMap(LK;)Ljava/util/SortedMap;" since="11" />
+		<method name="tailMap(LK;Z)Ljava/util/NavigableMap;" />
+	</class>
+	<class name="java/util/NavigableSet" since="9">
+		<implements name="java/util/SortedSet" />
+		<method name="ceiling(LE;)LE;" />
+		<method name="descendingIterator()Ljava/util/Iterator;" />
+		<method name="descendingSet()Ljava/util/NavigableSet;" />
+		<method name="floor(LE;)LE;" />
+		<method name="headSet(LE;)Ljava/util/SortedSet;" since="11" />
+		<method name="headSet(LE;Z)Ljava/util/NavigableSet;" />
+		<method name="higher(LE;)LE;" />
+		<method name="iterator()Ljava/util/Iterator;" since="11" />
+		<method name="lower(LE;)LE;" />
+		<method name="pollFirst()LE;" />
+		<method name="pollLast()LE;" />
+		<method name="subSet(LE;LE;)Ljava/util/SortedSet;" since="11" />
+		<method name="subSet(LE;ZLE;Z)Ljava/util/NavigableSet;" />
+		<method name="tailSet(LE;)Ljava/util/SortedSet;" since="11" />
+		<method name="tailSet(LE;Z)Ljava/util/NavigableSet;" />
+	</class>
+	<class name="java/util/NoSuchElementException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/Observable" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addObserver(Ljava/util/Observer;)V" />
+		<method name="clearChanged()V" />
+		<method name="countObservers()I" />
+		<method name="deleteObserver(Ljava/util/Observer;)V" />
+		<method name="deleteObservers()V" />
+		<method name="hasChanged()Z" />
+		<method name="notifyObservers()V" />
+		<method name="notifyObservers(Ljava/lang/Object;)V" />
+		<method name="setChanged()V" />
+	</class>
+	<class name="java/util/Observer" since="1">
+		<method name="update(Ljava/util/Observable;Ljava/lang/Object;)V" />
+	</class>
+	<class name="java/util/PriorityQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/util/Comparator;)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="&lt;init>(Ljava/util/PriorityQueue;)V" />
+		<method name="&lt;init>(Ljava/util/SortedSet;)V" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/Properties" since="1">
+		<extends name="java/util/Hashtable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Properties;)V" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="list(Ljava/io/PrintStream;)V" />
+		<method name="list(Ljava/io/PrintWriter;)V" />
+		<method name="load(Ljava/io/InputStream;)V" />
+		<method name="load(Ljava/io/Reader;)V" since="9" />
+		<method name="loadFromXML(Ljava/io/InputStream;)V" />
+		<method name="propertyNames()Ljava/util/Enumeration;" />
+		<method name="save(Ljava/io/OutputStream;Ljava/lang/String;)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="store(Ljava/io/OutputStream;Ljava/lang/String;)V" />
+		<method name="store(Ljava/io/Writer;Ljava/lang/String;)V" since="9" />
+		<method name="storeToXML(Ljava/io/OutputStream;Ljava/lang/String;)V" />
+		<method name="storeToXML(Ljava/io/OutputStream;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="stringPropertyNames()Ljava/util/Set;" since="9" />
+		<field name="defaults" />
+	</class>
+	<class name="java/util/PropertyPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/PropertyResourceBundle" since="1">
+		<extends name="java/util/ResourceBundle" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" since="9" />
+		<method name="getKeys()Ljava/util/Enumeration;" />
+		<method name="handleGetObject(Ljava/lang/String;)Ljava/lang/Object;" />
+	</class>
+	<class name="java/util/Queue" since="1">
+		<implements name="java/util/Collection" />
+		<method name="add(LE;)Z" since="11" />
+		<method name="element()LE;" />
+		<method name="offer(LE;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="remove()LE;" />
+	</class>
+	<class name="java/util/Random" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(J)V" />
+		<method name="next(I)I" />
+		<method name="nextBoolean()Z" />
+		<method name="nextBytes([B)V" />
+		<method name="nextDouble()D" />
+		<method name="nextFloat()F" />
+		<method name="nextGaussian()D" />
+		<method name="nextInt()I" />
+		<method name="nextInt(I)I" />
+		<method name="nextLong()J" />
+		<method name="setSeed(J)V" />
+	</class>
+	<class name="java/util/RandomAccess" since="1">
+	</class>
+	<class name="java/util/ResourceBundle" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clearCache()V" since="9" />
+		<method name="clearCache(Ljava/lang/ClassLoader;)V" since="9" />
+		<method name="containsKey(Ljava/lang/String;)Z" since="9" />
+		<method name="getBundle(Ljava/lang/String;)Ljava/util/ResourceBundle;" />
+		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/ResourceBundle;" />
+		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;)Ljava/util/ResourceBundle;" />
+		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;" since="9" />
+		<method name="getBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;" since="9" />
+		<method name="getBundle(Ljava/lang/String;Ljava/util/ResourceBundle$Control;)Ljava/util/ResourceBundle;" since="9" />
+		<method name="getKeys()Ljava/util/Enumeration;" />
+		<method name="getLocale()Ljava/util/Locale;" />
+		<method name="getObject(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getStringArray(Ljava/lang/String;)[Ljava/lang/String;" />
+		<method name="handleGetObject(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="handleKeySet()Ljava/util/Set;" since="9" />
+		<method name="keySet()Ljava/util/Set;" since="9" />
+		<method name="setParent(Ljava/util/ResourceBundle;)V" />
+		<field name="parent" />
+	</class>
+	<class name="java/util/ResourceBundle$Control" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getCandidateLocales(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;" />
+		<method name="getControl(Ljava/util/List;)Ljava/util/ResourceBundle$Control;" />
+		<method name="getFallbackLocale(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/Locale;" />
+		<method name="getFormats(Ljava/lang/String;)Ljava/util/List;" />
+		<method name="getNoFallbackControl(Ljava/util/List;)Ljava/util/ResourceBundle$Control;" />
+		<method name="getTimeToLive(Ljava/lang/String;Ljava/util/Locale;)J" />
+		<method name="needsReload(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Ljava/util/ResourceBundle;J)Z" />
+		<method name="newBundle(Ljava/lang/String;Ljava/util/Locale;Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/util/ResourceBundle;" />
+		<method name="toBundleName(Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="toResourceName(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<field name="FORMAT_CLASS" />
+		<field name="FORMAT_DEFAULT" />
+		<field name="FORMAT_PROPERTIES" />
+		<field name="TTL_DONT_CACHE" />
+		<field name="TTL_NO_EXPIRATION_CONTROL" />
+	</class>
+	<class name="java/util/Scanner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Iterator" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Readable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/nio/channels/ReadableByteChannel;)V" />
+		<method name="&lt;init>(Ljava/nio/channels/ReadableByteChannel;Ljava/lang/String;)V" />
+		<method name="close()V" />
+		<method name="delimiter()Ljava/util/regex/Pattern;" />
+		<method name="findInLine(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="findInLine(Ljava/util/regex/Pattern;)Ljava/lang/String;" />
+		<method name="findWithinHorizon(Ljava/lang/String;I)Ljava/lang/String;" />
+		<method name="findWithinHorizon(Ljava/util/regex/Pattern;I)Ljava/lang/String;" />
+		<method name="hasNext()Z" />
+		<method name="hasNext(Ljava/lang/String;)Z" />
+		<method name="hasNext(Ljava/util/regex/Pattern;)Z" />
+		<method name="hasNextBigDecimal()Z" />
+		<method name="hasNextBigInteger()Z" />
+		<method name="hasNextBigInteger(I)Z" />
+		<method name="hasNextBoolean()Z" />
+		<method name="hasNextByte()Z" />
+		<method name="hasNextByte(I)Z" />
+		<method name="hasNextDouble()Z" />
+		<method name="hasNextFloat()Z" />
+		<method name="hasNextInt()Z" />
+		<method name="hasNextInt(I)Z" />
+		<method name="hasNextLine()Z" />
+		<method name="hasNextLong()Z" />
+		<method name="hasNextLong(I)Z" />
+		<method name="hasNextShort()Z" />
+		<method name="hasNextShort(I)Z" />
+		<method name="ioException()Ljava/io/IOException;" />
+		<method name="locale()Ljava/util/Locale;" />
+		<method name="match()Ljava/util/regex/MatchResult;" />
+		<method name="next()Ljava/lang/String;" />
+		<method name="next(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="next(Ljava/util/regex/Pattern;)Ljava/lang/String;" />
+		<method name="nextBigDecimal()Ljava/math/BigDecimal;" />
+		<method name="nextBigInteger()Ljava/math/BigInteger;" />
+		<method name="nextBigInteger(I)Ljava/math/BigInteger;" />
+		<method name="nextBoolean()Z" />
+		<method name="nextByte()B" />
+		<method name="nextByte(I)B" />
+		<method name="nextDouble()D" />
+		<method name="nextFloat()F" />
+		<method name="nextInt()I" />
+		<method name="nextInt(I)I" />
+		<method name="nextLine()Ljava/lang/String;" />
+		<method name="nextLong()J" />
+		<method name="nextLong(I)J" />
+		<method name="nextShort()S" />
+		<method name="nextShort(I)S" />
+		<method name="radix()I" />
+		<method name="remove()V" />
+		<method name="reset()Ljava/util/Scanner;" since="9" />
+		<method name="skip(Ljava/lang/String;)Ljava/util/Scanner;" />
+		<method name="skip(Ljava/util/regex/Pattern;)Ljava/util/Scanner;" />
+		<method name="useDelimiter(Ljava/lang/String;)Ljava/util/Scanner;" />
+		<method name="useDelimiter(Ljava/util/regex/Pattern;)Ljava/util/Scanner;" />
+		<method name="useLocale(Ljava/util/Locale;)Ljava/util/Scanner;" />
+		<method name="useRadix(I)Ljava/util/Scanner;" />
+	</class>
+	<class name="java/util/ServiceConfigurationError" since="9">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/ServiceLoader" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Iterable" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="load(Ljava/lang/Class;)Ljava/util/ServiceLoader;" />
+		<method name="load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/ServiceLoader;" />
+		<method name="loadInstalled(Ljava/lang/Class;)Ljava/util/ServiceLoader;" />
+		<method name="reload()V" />
+	</class>
+	<class name="java/util/Set" since="1">
+		<implements name="java/util/Collection" />
+		<method name="add(LE;)Z" />
+		<method name="addAll(Ljava/util/Collection;)Z" />
+		<method name="clear()V" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="containsAll(Ljava/util/Collection;)Z" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="hashCode()I" />
+		<method name="isEmpty()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="remove(Ljava/lang/Object;)Z" />
+		<method name="removeAll(Ljava/util/Collection;)Z" />
+		<method name="retainAll(Ljava/util/Collection;)Z" />
+		<method name="size()I" />
+		<method name="toArray()[Ljava/lang/Object;" />
+		<method name="toArray([LT;)[LT;" />
+	</class>
+	<class name="java/util/SimpleTimeZone" since="1">
+		<extends name="java/util/TimeZone" />
+		<method name="&lt;init>(ILjava/lang/String;)V" />
+		<method name="&lt;init>(ILjava/lang/String;IIIIIIII)V" />
+		<method name="&lt;init>(ILjava/lang/String;IIIIIIIII)V" />
+		<method name="&lt;init>(ILjava/lang/String;IIIIIIIIIII)V" />
+		<method name="getOffset(IIIIII)I" />
+		<method name="getRawOffset()I" />
+		<method name="inDaylightTime(Ljava/util/Date;)Z" />
+		<method name="setDSTSavings(I)V" />
+		<method name="setEndRule(III)V" />
+		<method name="setEndRule(IIII)V" />
+		<method name="setEndRule(IIIIZ)V" />
+		<method name="setRawOffset(I)V" />
+		<method name="setStartRule(III)V" />
+		<method name="setStartRule(IIII)V" />
+		<method name="setStartRule(IIIIZ)V" />
+		<method name="setStartYear(I)V" />
+		<method name="useDaylightTime()Z" />
+		<field name="STANDARD_TIME" />
+		<field name="UTC_TIME" />
+		<field name="WALL_TIME" />
+	</class>
+	<class name="java/util/SortedMap" since="1">
+		<implements name="java/util/Map" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="firstKey()LK;" />
+		<method name="headMap(LK;)Ljava/util/SortedMap;" />
+		<method name="lastKey()LK;" />
+		<method name="subMap(LK;LK;)Ljava/util/SortedMap;" />
+		<method name="tailMap(LK;)Ljava/util/SortedMap;" />
+	</class>
+	<class name="java/util/SortedSet" since="1">
+		<implements name="java/util/Set" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="first()LE;" />
+		<method name="headSet(LE;)Ljava/util/SortedSet;" />
+		<method name="last()LE;" />
+		<method name="subSet(LE;LE;)Ljava/util/SortedSet;" />
+		<method name="tailSet(LE;)Ljava/util/SortedSet;" />
+	</class>
+	<class name="java/util/Stack" since="1">
+		<extends name="java/util/Vector" />
+		<method name="&lt;init>()V" />
+		<method name="empty()Z" />
+		<method name="peek()LE;" />
+		<method name="pop()LE;" />
+		<method name="push(LE;)LE;" />
+		<method name="search(Ljava/lang/Object;)I" />
+	</class>
+	<class name="java/util/StringTokenizer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Enumeration" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Z)V" />
+		<method name="countTokens()I" />
+		<method name="hasMoreElements()Z" />
+		<method name="hasMoreTokens()Z" />
+		<method name="nextElement()Ljava/lang/Object;" />
+		<method name="nextToken()Ljava/lang/String;" />
+		<method name="nextToken(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="java/util/TimeZone" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getAvailableIDs()[Ljava/lang/String;" />
+		<method name="getAvailableIDs(I)[Ljava/lang/String;" />
+		<method name="getDSTSavings()I" />
+		<method name="getDefault()Ljava/util/TimeZone;" />
+		<method name="getDisplayName()Ljava/lang/String;" />
+		<method name="getDisplayName(Ljava/util/Locale;)Ljava/lang/String;" />
+		<method name="getDisplayName(ZI)Ljava/lang/String;" />
+		<method name="getDisplayName(ZILjava/util/Locale;)Ljava/lang/String;" />
+		<method name="getID()Ljava/lang/String;" />
+		<method name="getOffset(IIIIII)I" />
+		<method name="getOffset(J)I" />
+		<method name="getRawOffset()I" />
+		<method name="getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;" />
+		<method name="hasSameRules(Ljava/util/TimeZone;)Z" />
+		<method name="inDaylightTime(Ljava/util/Date;)Z" />
+		<method name="setDefault(Ljava/util/TimeZone;)V" />
+		<method name="setID(Ljava/lang/String;)V" />
+		<method name="setRawOffset(I)V" />
+		<method name="useDaylightTime()Z" />
+		<field name="LONG" />
+		<field name="SHORT" />
+	</class>
+	<class name="java/util/Timer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Z)V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="cancel()V" />
+		<method name="purge()I" />
+		<method name="schedule(Ljava/util/TimerTask;J)V" />
+		<method name="schedule(Ljava/util/TimerTask;JJ)V" />
+		<method name="schedule(Ljava/util/TimerTask;Ljava/util/Date;)V" />
+		<method name="schedule(Ljava/util/TimerTask;Ljava/util/Date;J)V" />
+		<method name="scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V" />
+		<method name="scheduleAtFixedRate(Ljava/util/TimerTask;Ljava/util/Date;J)V" />
+	</class>
+	<class name="java/util/TimerTask" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Runnable" />
+		<method name="&lt;init>()V" />
+		<method name="cancel()Z" />
+		<method name="run()V" />
+		<method name="scheduledExecutionTime()J" />
+	</class>
+	<class name="java/util/TooManyListenersException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/TreeMap" since="1">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/util/SortedMap" />
+		<implements name="java/util/NavigableMap" since="9" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Comparator;)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/util/SortedMap;)V" />
+		<method name="ceilingEntry(LK;)Ljava/util/Map$Entry;" since="9" />
+		<method name="ceilingKey(LK;)LK;" since="9" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="descendingKeySet()Ljava/util/NavigableSet;" since="9" />
+		<method name="descendingMap()Ljava/util/NavigableMap;" since="9" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="firstEntry()Ljava/util/Map$Entry;" since="9" />
+		<method name="firstKey()LK;" />
+		<method name="floorEntry(LK;)Ljava/util/Map$Entry;" since="9" />
+		<method name="floorKey(LK;)LK;" since="9" />
+		<method name="headMap(LK;)Ljava/util/SortedMap;" />
+		<method name="headMap(LK;Z)Ljava/util/NavigableMap;" since="9" />
+		<method name="higherEntry(LK;)Ljava/util/Map$Entry;" since="9" />
+		<method name="higherKey(LK;)LK;" since="9" />
+		<method name="lastEntry()Ljava/util/Map$Entry;" since="9" />
+		<method name="lastKey()LK;" />
+		<method name="lowerEntry(LK;)Ljava/util/Map$Entry;" since="9" />
+		<method name="lowerKey(LK;)LK;" since="9" />
+		<method name="navigableKeySet()Ljava/util/NavigableSet;" since="9" />
+		<method name="pollFirstEntry()Ljava/util/Map$Entry;" since="9" />
+		<method name="pollLastEntry()Ljava/util/Map$Entry;" since="9" />
+		<method name="subMap(LK;LK;)Ljava/util/SortedMap;" />
+		<method name="subMap(LK;ZLK;Z)Ljava/util/NavigableMap;" since="9" />
+		<method name="tailMap(LK;)Ljava/util/SortedMap;" />
+		<method name="tailMap(LK;Z)Ljava/util/NavigableMap;" since="9" />
+	</class>
+	<class name="java/util/TreeSet" since="1">
+		<extends name="java/util/AbstractSet" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<implements name="java/util/SortedSet" />
+		<implements name="java/util/NavigableSet" since="9" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="&lt;init>(Ljava/util/Comparator;)V" />
+		<method name="&lt;init>(Ljava/util/SortedSet;)V" />
+		<method name="ceiling(LE;)LE;" since="9" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="descendingIterator()Ljava/util/Iterator;" since="9" />
+		<method name="descendingSet()Ljava/util/NavigableSet;" since="9" />
+		<method name="first()LE;" />
+		<method name="floor(LE;)LE;" since="9" />
+		<method name="headSet(LE;)Ljava/util/SortedSet;" />
+		<method name="headSet(LE;Z)Ljava/util/NavigableSet;" since="9" />
+		<method name="higher(LE;)LE;" since="9" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="last()LE;" />
+		<method name="lower(LE;)LE;" since="9" />
+		<method name="pollFirst()LE;" since="9" />
+		<method name="pollLast()LE;" since="9" />
+		<method name="size()I" />
+		<method name="subSet(LE;LE;)Ljava/util/SortedSet;" />
+		<method name="subSet(LE;ZLE;Z)Ljava/util/NavigableSet;" since="9" />
+		<method name="tailSet(LE;)Ljava/util/SortedSet;" />
+		<method name="tailSet(LE;Z)Ljava/util/NavigableSet;" since="9" />
+	</class>
+	<class name="java/util/UUID" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Comparable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(JJ)V" />
+		<method name="clockSequence()I" />
+		<method name="compareTo(Ljava/util/UUID;)I" />
+		<method name="fromString(Ljava/lang/String;)Ljava/util/UUID;" />
+		<method name="getLeastSignificantBits()J" />
+		<method name="getMostSignificantBits()J" />
+		<method name="nameUUIDFromBytes([B)Ljava/util/UUID;" />
+		<method name="node()J" />
+		<method name="randomUUID()Ljava/util/UUID;" />
+		<method name="timestamp()J" />
+		<method name="variant()I" />
+		<method name="version()I" />
+	</class>
+	<class name="java/util/UnknownFormatConversionException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getConversion()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/UnknownFormatFlagsException" since="1">
+		<extends name="java/util/IllegalFormatException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getFlags()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/Vector" since="1">
+		<extends name="java/util/AbstractList" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/List" />
+		<implements name="java/util/RandomAccess" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="addElement(LE;)V" />
+		<method name="capacity()I" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="copyInto([Ljava/lang/Object;)V" />
+		<method name="elementAt(I)LE;" />
+		<method name="elements()Ljava/util/Enumeration;" />
+		<method name="ensureCapacity(I)V" />
+		<method name="firstElement()LE;" />
+		<method name="get(I)LE;" />
+		<method name="indexOf(Ljava/lang/Object;I)I" />
+		<method name="insertElementAt(LE;I)V" />
+		<method name="lastElement()LE;" />
+		<method name="lastIndexOf(Ljava/lang/Object;I)I" />
+		<method name="removeAllElements()V" />
+		<method name="removeElement(Ljava/lang/Object;)Z" />
+		<method name="removeElementAt(I)V" />
+		<method name="setElementAt(LE;I)V" />
+		<method name="setSize(I)V" />
+		<method name="size()I" />
+		<method name="trimToSize()V" />
+		<field name="capacityIncrement" />
+		<field name="elementCount" />
+		<field name="elementData" />
+	</class>
+	<class name="java/util/WeakHashMap" since="1">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/util/Map" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="entrySet()Ljava/util/Set;" />
+	</class>
+	<class name="java/util/concurrent/AbstractExecutorService" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/ExecutorService" />
+		<method name="&lt;init>()V" />
+		<method name="invokeAll(Ljava/util/Collection;)Ljava/util/List;" />
+		<method name="invokeAll(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;" />
+		<method name="invokeAny(Ljava/util/Collection;)LT;" />
+		<method name="invokeAny(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)LT;" />
+		<method name="newTaskFor(Ljava/lang/Runnable;LT;)Ljava/util/concurrent/RunnableFuture;" since="9" />
+		<method name="newTaskFor(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/RunnableFuture;" since="9" />
+		<method name="submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/lang/Runnable;LT;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" />
+	</class>
+	<class name="java/util/concurrent/ArrayBlockingQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/concurrent/BlockingQueue" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IZ)V" />
+		<method name="&lt;init>(IZLjava/util/Collection;)V" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="put(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+	</class>
+	<class name="java/util/concurrent/BlockingDeque" since="9">
+		<implements name="java/util/concurrent/BlockingQueue" />
+		<implements name="java/util/Deque" />
+		<method name="add(LE;)Z" />
+		<method name="addFirst(LE;)V" />
+		<method name="addLast(LE;)V" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="element()LE;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="offerFirst(LE;)Z" />
+		<method name="offerFirst(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="offerLast(LE;)Z" />
+		<method name="offerLast(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="pollFirst(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="pollLast(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="push(LE;)V" />
+		<method name="put(LE;)V" />
+		<method name="putFirst(LE;)V" />
+		<method name="putLast(LE;)V" />
+		<method name="remove()LE;" />
+		<method name="remove(Ljava/lang/Object;)Z" />
+		<method name="removeFirstOccurrence(Ljava/lang/Object;)Z" />
+		<method name="removeLastOccurrence(Ljava/lang/Object;)Z" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+		<method name="takeFirst()LE;" />
+		<method name="takeLast()LE;" />
+	</class>
+	<class name="java/util/concurrent/BlockingQueue" since="1">
+		<implements name="java/util/Queue" />
+		<method name="add(LE;)Z" />
+		<method name="contains(Ljava/lang/Object;)Z" since="5" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="put(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="remove(Ljava/lang/Object;)Z" since="5" />
+		<method name="take()LE;" />
+	</class>
+	<class name="java/util/concurrent/BrokenBarrierException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/concurrent/Callable" since="1">
+		<method name="call()LV;" />
+	</class>
+	<class name="java/util/concurrent/CancellationException" since="1">
+		<extends name="java/lang/IllegalStateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/concurrent/CompletionService" since="1">
+		<method name="poll()Ljava/util/concurrent/Future;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/lang/Runnable;LV;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" />
+		<method name="take()Ljava/util/concurrent/Future;" />
+	</class>
+	<class name="java/util/concurrent/ConcurrentHashMap" since="1">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/util/concurrent/ConcurrentMap" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IF)V" since="9" />
+		<method name="&lt;init>(IFI)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="elements()Ljava/util/Enumeration;" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="keys()Ljava/util/Enumeration;" />
+		<method name="putIfAbsent(LK;LV;)LV;" />
+		<method name="remove(Ljava/lang/Object;Ljava/lang/Object;)Z" />
+		<method name="replace(LK;LV;)LV;" />
+		<method name="replace(LK;LV;LV;)Z" />
+	</class>
+	<class name="java/util/concurrent/ConcurrentLinkedQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/Queue" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/concurrent/ConcurrentMap" since="1">
+		<implements name="java/util/Map" />
+		<method name="putIfAbsent(LK;LV;)LV;" />
+		<method name="remove(Ljava/lang/Object;Ljava/lang/Object;)Z" />
+		<method name="replace(LK;LV;)LV;" />
+		<method name="replace(LK;LV;LV;)Z" />
+	</class>
+	<class name="java/util/concurrent/ConcurrentNavigableMap" since="9">
+		<implements name="java/util/concurrent/ConcurrentMap" />
+		<implements name="java/util/NavigableMap" />
+		<method name="descendingKeySet()Ljava/util/NavigableSet;" />
+		<method name="descendingMap()Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="headMap(LK;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="headMap(LK;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="keySet()Ljava/util/NavigableSet;" />
+		<method name="navigableKeySet()Ljava/util/NavigableSet;" />
+		<method name="subMap(LK;LK;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="subMap(LK;ZLK;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="tailMap(LK;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="tailMap(LK;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+	</class>
+	<class name="java/util/concurrent/ConcurrentSkipListMap" since="9">
+		<extends name="java/util/AbstractMap" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/concurrent/ConcurrentNavigableMap" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Comparator;)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="&lt;init>(Ljava/util/SortedMap;)V" />
+		<method name="ceilingEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="ceilingKey(LK;)LK;" />
+		<method name="clone()Ljava/util/concurrent/ConcurrentSkipListMap;" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="descendingKeySet()Ljava/util/NavigableSet;" />
+		<method name="descendingMap()Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="firstEntry()Ljava/util/Map$Entry;" />
+		<method name="firstKey()LK;" />
+		<method name="floorEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="floorKey(LK;)LK;" />
+		<method name="headMap(LK;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="headMap(LK;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="higherEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="higherKey(LK;)LK;" />
+		<method name="lastEntry()Ljava/util/Map$Entry;" />
+		<method name="lastKey()LK;" />
+		<method name="lowerEntry(LK;)Ljava/util/Map$Entry;" />
+		<method name="lowerKey(LK;)LK;" />
+		<method name="navigableKeySet()Ljava/util/NavigableSet;" />
+		<method name="pollFirstEntry()Ljava/util/Map$Entry;" />
+		<method name="pollLastEntry()Ljava/util/Map$Entry;" />
+		<method name="putIfAbsent(LK;LV;)LV;" />
+		<method name="remove(Ljava/lang/Object;Ljava/lang/Object;)Z" />
+		<method name="replace(LK;LV;)LV;" />
+		<method name="replace(LK;LV;LV;)Z" />
+		<method name="subMap(LK;LK;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="subMap(LK;ZLK;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="tailMap(LK;)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+		<method name="tailMap(LK;Z)Ljava/util/concurrent/ConcurrentNavigableMap;" />
+	</class>
+	<class name="java/util/concurrent/ConcurrentSkipListSet" since="9">
+		<extends name="java/util/AbstractSet" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/NavigableSet" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="&lt;init>(Ljava/util/Comparator;)V" />
+		<method name="&lt;init>(Ljava/util/SortedSet;)V" />
+		<method name="ceiling(LE;)LE;" />
+		<method name="clone()Ljava/util/concurrent/ConcurrentSkipListSet;" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="descendingIterator()Ljava/util/Iterator;" />
+		<method name="descendingSet()Ljava/util/NavigableSet;" />
+		<method name="first()LE;" />
+		<method name="floor(LE;)LE;" />
+		<method name="headSet(LE;)Ljava/util/NavigableSet;" />
+		<method name="headSet(LE;Z)Ljava/util/NavigableSet;" />
+		<method name="higher(LE;)LE;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="last()LE;" />
+		<method name="lower(LE;)LE;" />
+		<method name="pollFirst()LE;" />
+		<method name="pollLast()LE;" />
+		<method name="size()I" />
+		<method name="subSet(LE;LE;)Ljava/util/NavigableSet;" />
+		<method name="subSet(LE;ZLE;Z)Ljava/util/NavigableSet;" />
+		<method name="tailSet(LE;)Ljava/util/NavigableSet;" />
+		<method name="tailSet(LE;Z)Ljava/util/NavigableSet;" />
+	</class>
+	<class name="java/util/concurrent/CopyOnWriteArrayList" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/List" />
+		<implements name="java/util/RandomAccess" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="&lt;init>([LE;)V" />
+		<method name="add(ILE;)V" />
+		<method name="add(LE;)Z" />
+		<method name="addAll(ILjava/util/Collection;)Z" />
+		<method name="addAll(Ljava/util/Collection;)Z" />
+		<method name="addAllAbsent(Ljava/util/Collection;)I" />
+		<method name="addIfAbsent(LE;)Z" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="contains(Ljava/lang/Object;)Z" />
+		<method name="containsAll(Ljava/util/Collection;)Z" />
+		<method name="get(I)LE;" />
+		<method name="indexOf(LE;I)I" />
+		<method name="indexOf(Ljava/lang/Object;)I" />
+		<method name="isEmpty()Z" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="lastIndexOf(LE;I)I" />
+		<method name="lastIndexOf(Ljava/lang/Object;)I" />
+		<method name="listIterator()Ljava/util/ListIterator;" />
+		<method name="listIterator(I)Ljava/util/ListIterator;" />
+		<method name="remove(I)LE;" />
+		<method name="remove(Ljava/lang/Object;)Z" />
+		<method name="removeAll(Ljava/util/Collection;)Z" />
+		<method name="retainAll(Ljava/util/Collection;)Z" />
+		<method name="set(ILE;)LE;" />
+		<method name="size()I" />
+		<method name="subList(II)Ljava/util/List;" />
+		<method name="toArray()[Ljava/lang/Object;" />
+		<method name="toArray([LT;)[LT;" />
+	</class>
+	<class name="java/util/concurrent/CopyOnWriteArraySet" since="1">
+		<extends name="java/util/AbstractSet" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="size()I" />
+	</class>
+	<class name="java/util/concurrent/CountDownLatch" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="await()V" />
+		<method name="await(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="countDown()V" />
+		<method name="getCount()J" />
+	</class>
+	<class name="java/util/concurrent/CyclicBarrier" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/lang/Runnable;)V" />
+		<method name="await()I" />
+		<method name="await(JLjava/util/concurrent/TimeUnit;)I" />
+		<method name="getNumberWaiting()I" />
+		<method name="getParties()I" />
+		<method name="isBroken()Z" />
+		<method name="reset()V" />
+	</class>
+	<class name="java/util/concurrent/DelayQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/concurrent/BlockingQueue" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="put(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+	</class>
+	<class name="java/util/concurrent/Delayed" since="1">
+		<implements name="java/lang/Comparable" />
+		<method name="getDelay(Ljava/util/concurrent/TimeUnit;)J" />
+	</class>
+	<class name="java/util/concurrent/Exchanger" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="exchange(LV;)LV;" />
+		<method name="exchange(LV;JLjava/util/concurrent/TimeUnit;)LV;" />
+	</class>
+	<class name="java/util/concurrent/ExecutionException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/concurrent/Executor" since="1">
+		<method name="execute(Ljava/lang/Runnable;)V" />
+	</class>
+	<class name="java/util/concurrent/ExecutorCompletionService" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/CompletionService" />
+		<method name="&lt;init>(Ljava/util/concurrent/Executor;)V" />
+		<method name="&lt;init>(Ljava/util/concurrent/Executor;Ljava/util/concurrent/BlockingQueue;)V" />
+		<method name="poll()Ljava/util/concurrent/Future;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/lang/Runnable;LV;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" />
+		<method name="take()Ljava/util/concurrent/Future;" />
+	</class>
+	<class name="java/util/concurrent/ExecutorService" since="1">
+		<implements name="java/util/concurrent/Executor" />
+		<method name="awaitTermination(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="invokeAll(Ljava/util/Collection;)Ljava/util/List;" />
+		<method name="invokeAll(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;" />
+		<method name="invokeAny(Ljava/util/Collection;)LT;" />
+		<method name="invokeAny(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)LT;" />
+		<method name="isShutdown()Z" />
+		<method name="isTerminated()Z" />
+		<method name="shutdown()V" />
+		<method name="shutdownNow()Ljava/util/List;" />
+		<method name="submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/lang/Runnable;LT;)Ljava/util/concurrent/Future;" />
+		<method name="submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" />
+	</class>
+	<class name="java/util/concurrent/Executors" since="1">
+		<extends name="java/lang/Object" />
+		<method name="callable(Ljava/lang/Runnable;)Ljava/util/concurrent/Callable;" />
+		<method name="callable(Ljava/lang/Runnable;LT;)Ljava/util/concurrent/Callable;" />
+		<method name="callable(Ljava/security/PrivilegedAction;)Ljava/util/concurrent/Callable;" />
+		<method name="callable(Ljava/security/PrivilegedExceptionAction;)Ljava/util/concurrent/Callable;" />
+		<method name="defaultThreadFactory()Ljava/util/concurrent/ThreadFactory;" />
+		<method name="newCachedThreadPool()Ljava/util/concurrent/ExecutorService;" />
+		<method name="newCachedThreadPool(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;" />
+		<method name="newFixedThreadPool(I)Ljava/util/concurrent/ExecutorService;" />
+		<method name="newFixedThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;" />
+		<method name="newScheduledThreadPool(I)Ljava/util/concurrent/ScheduledExecutorService;" />
+		<method name="newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;" />
+		<method name="newSingleThreadExecutor()Ljava/util/concurrent/ExecutorService;" />
+		<method name="newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;" />
+		<method name="newSingleThreadScheduledExecutor()Ljava/util/concurrent/ScheduledExecutorService;" />
+		<method name="newSingleThreadScheduledExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;" />
+		<method name="privilegedCallable(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;" />
+		<method name="privilegedCallableUsingCurrentClassLoader(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;" />
+		<method name="privilegedThreadFactory()Ljava/util/concurrent/ThreadFactory;" />
+		<method name="unconfigurableExecutorService(Ljava/util/concurrent/ExecutorService;)Ljava/util/concurrent/ExecutorService;" />
+		<method name="unconfigurableScheduledExecutorService(Ljava/util/concurrent/ScheduledExecutorService;)Ljava/util/concurrent/ScheduledExecutorService;" />
+	</class>
+	<class name="java/util/concurrent/Future" since="1">
+		<method name="cancel(Z)Z" />
+		<method name="get()LV;" />
+		<method name="get(JLjava/util/concurrent/TimeUnit;)LV;" />
+		<method name="isCancelled()Z" />
+		<method name="isDone()Z" />
+	</class>
+	<class name="java/util/concurrent/FutureTask" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/Future" />
+		<implements name="java/lang/Runnable" />
+		<implements name="java/util/concurrent/RunnableFuture" since="9" />
+		<method name="&lt;init>(Ljava/lang/Runnable;LV;)V" />
+		<method name="&lt;init>(Ljava/util/concurrent/Callable;)V" />
+		<method name="cancel(Z)Z" />
+		<method name="done()V" />
+		<method name="get()LV;" />
+		<method name="get(JLjava/util/concurrent/TimeUnit;)LV;" />
+		<method name="isCancelled()Z" />
+		<method name="isDone()Z" />
+		<method name="run()V" />
+		<method name="runAndReset()Z" />
+		<method name="set(LV;)V" />
+		<method name="setException(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/concurrent/LinkedBlockingDeque" since="9">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/concurrent/BlockingDeque" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="addFirst(LE;)V" />
+		<method name="addLast(LE;)V" />
+		<method name="descendingIterator()Ljava/util/Iterator;" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="getFirst()LE;" />
+		<method name="getLast()LE;" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="offerFirst(LE;)Z" />
+		<method name="offerFirst(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="offerLast(LE;)Z" />
+		<method name="offerLast(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="peekFirst()LE;" />
+		<method name="peekLast()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="pollFirst()LE;" />
+		<method name="pollFirst(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="pollLast()LE;" />
+		<method name="pollLast(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="pop()LE;" />
+		<method name="push(LE;)V" />
+		<method name="put(LE;)V" />
+		<method name="putFirst(LE;)V" />
+		<method name="putLast(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="removeFirst()LE;" />
+		<method name="removeFirstOccurrence(Ljava/lang/Object;)Z" />
+		<method name="removeLast()LE;" />
+		<method name="removeLastOccurrence(Ljava/lang/Object;)Z" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+		<method name="takeFirst()LE;" />
+		<method name="takeLast()LE;" />
+	</class>
+	<class name="java/util/concurrent/LinkedBlockingQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/concurrent/BlockingQueue" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="put(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+	</class>
+	<class name="java/util/concurrent/PriorityBlockingQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/concurrent/BlockingQueue" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/util/Comparator;)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="comparator()Ljava/util/Comparator;" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="put(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+	</class>
+	<class name="java/util/concurrent/RejectedExecutionException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/concurrent/RejectedExecutionHandler" since="1">
+		<method name="rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V" />
+	</class>
+	<class name="java/util/concurrent/RunnableFuture" since="9">
+		<implements name="java/util/concurrent/Future" />
+		<implements name="java/lang/Runnable" />
+		<method name="run()V" />
+	</class>
+	<class name="java/util/concurrent/RunnableScheduledFuture" since="9">
+		<implements name="java/util/concurrent/RunnableFuture" />
+		<implements name="java/util/concurrent/ScheduledFuture" />
+		<method name="isPeriodic()Z" />
+	</class>
+	<class name="java/util/concurrent/ScheduledExecutorService" since="1">
+		<implements name="java/util/concurrent/ExecutorService" />
+		<method name="schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+	</class>
+	<class name="java/util/concurrent/ScheduledFuture" since="1">
+		<implements name="java/util/concurrent/Delayed" />
+		<implements name="java/util/concurrent/Future" />
+	</class>
+	<class name="java/util/concurrent/ScheduledThreadPoolExecutor" since="1">
+		<extends name="java/util/concurrent/ThreadPoolExecutor" />
+		<implements name="java/util/concurrent/ScheduledExecutorService" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(ILjava/util/concurrent/RejectedExecutionHandler;)V" />
+		<method name="&lt;init>(ILjava/util/concurrent/ThreadFactory;)V" />
+		<method name="&lt;init>(ILjava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" />
+		<method name="decorateTask(Ljava/lang/Runnable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;" since="9" />
+		<method name="decorateTask(Ljava/util/concurrent/Callable;Ljava/util/concurrent/RunnableScheduledFuture;)Ljava/util/concurrent/RunnableScheduledFuture;" since="9" />
+		<method name="getContinueExistingPeriodicTasksAfterShutdownPolicy()Z" />
+		<method name="getExecuteExistingDelayedTasksAfterShutdownPolicy()Z" />
+		<method name="schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="schedule(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="scheduleWithFixedDelay(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" />
+		<method name="setContinueExistingPeriodicTasksAfterShutdownPolicy(Z)V" />
+		<method name="setExecuteExistingDelayedTasksAfterShutdownPolicy(Z)V" />
+	</class>
+	<class name="java/util/concurrent/Semaphore" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IZ)V" />
+		<method name="acquire()V" />
+		<method name="acquire(I)V" />
+		<method name="acquireUninterruptibly()V" />
+		<method name="acquireUninterruptibly(I)V" />
+		<method name="availablePermits()I" />
+		<method name="drainPermits()I" />
+		<method name="getQueueLength()I" />
+		<method name="getQueuedThreads()Ljava/util/Collection;" />
+		<method name="hasQueuedThreads()Z" />
+		<method name="isFair()Z" />
+		<method name="reducePermits(I)V" />
+		<method name="release()V" />
+		<method name="release(I)V" />
+		<method name="tryAcquire()Z" />
+		<method name="tryAcquire(I)Z" />
+		<method name="tryAcquire(IJLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="tryAcquire(JLjava/util/concurrent/TimeUnit;)Z" />
+	</class>
+	<class name="java/util/concurrent/SynchronousQueue" since="1">
+		<extends name="java/util/AbstractQueue" />
+		<implements name="java/util/concurrent/BlockingQueue" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="drainTo(Ljava/util/Collection;)I" />
+		<method name="drainTo(Ljava/util/Collection;I)I" />
+		<method name="iterator()Ljava/util/Iterator;" />
+		<method name="offer(LE;)Z" />
+		<method name="offer(LE;JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="peek()LE;" />
+		<method name="poll()LE;" />
+		<method name="poll(JLjava/util/concurrent/TimeUnit;)LE;" />
+		<method name="put(LE;)V" />
+		<method name="remainingCapacity()I" />
+		<method name="size()I" />
+		<method name="take()LE;" />
+	</class>
+	<class name="java/util/concurrent/ThreadFactory" since="1">
+		<method name="newThread(Ljava/lang/Runnable;)Ljava/lang/Thread;" />
+	</class>
+	<class name="java/util/concurrent/ThreadPoolExecutor" since="1">
+		<extends name="java/util/concurrent/AbstractExecutorService" />
+		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V" />
+		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/RejectedExecutionHandler;)V" />
+		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V" />
+		<method name="&lt;init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;)V" />
+		<method name="afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V" />
+		<method name="allowCoreThreadTimeOut(Z)V" since="9" />
+		<method name="allowsCoreThreadTimeOut()Z" since="9" />
+		<method name="awaitTermination(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V" />
+		<method name="execute(Ljava/lang/Runnable;)V" />
+		<method name="getActiveCount()I" />
+		<method name="getCompletedTaskCount()J" />
+		<method name="getCorePoolSize()I" />
+		<method name="getKeepAliveTime(Ljava/util/concurrent/TimeUnit;)J" />
+		<method name="getLargestPoolSize()I" />
+		<method name="getMaximumPoolSize()I" />
+		<method name="getPoolSize()I" />
+		<method name="getQueue()Ljava/util/concurrent/BlockingQueue;" />
+		<method name="getRejectedExecutionHandler()Ljava/util/concurrent/RejectedExecutionHandler;" />
+		<method name="getTaskCount()J" />
+		<method name="getThreadFactory()Ljava/util/concurrent/ThreadFactory;" />
+		<method name="isShutdown()Z" />
+		<method name="isTerminated()Z" />
+		<method name="isTerminating()Z" />
+		<method name="prestartAllCoreThreads()I" />
+		<method name="prestartCoreThread()Z" />
+		<method name="purge()V" />
+		<method name="remove(Ljava/lang/Runnable;)Z" />
+		<method name="setCorePoolSize(I)V" />
+		<method name="setKeepAliveTime(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="setMaximumPoolSize(I)V" />
+		<method name="setRejectedExecutionHandler(Ljava/util/concurrent/RejectedExecutionHandler;)V" />
+		<method name="setThreadFactory(Ljava/util/concurrent/ThreadFactory;)V" />
+		<method name="shutdown()V" />
+		<method name="shutdownNow()Ljava/util/List;" />
+		<method name="terminated()V" />
+	</class>
+	<class name="java/util/concurrent/ThreadPoolExecutor$AbortPolicy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/RejectedExecutionHandler" />
+		<method name="&lt;init>()V" />
+		<method name="rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V" />
+	</class>
+	<class name="java/util/concurrent/ThreadPoolExecutor$CallerRunsPolicy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/RejectedExecutionHandler" />
+		<method name="&lt;init>()V" />
+		<method name="rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V" />
+	</class>
+	<class name="java/util/concurrent/ThreadPoolExecutor$DiscardOldestPolicy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/RejectedExecutionHandler" />
+		<method name="&lt;init>()V" />
+		<method name="rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V" />
+	</class>
+	<class name="java/util/concurrent/ThreadPoolExecutor$DiscardPolicy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/RejectedExecutionHandler" />
+		<method name="&lt;init>()V" />
+		<method name="rejectedExecution(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V" />
+	</class>
+	<class name="java/util/concurrent/TimeUnit" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="convert(JLjava/util/concurrent/TimeUnit;)J" />
+		<method name="sleep(J)V" />
+		<method name="timedJoin(Ljava/lang/Thread;J)V" />
+		<method name="timedWait(Ljava/lang/Object;J)V" />
+		<method name="toDays(J)J" since="9" />
+		<method name="toHours(J)J" since="9" />
+		<method name="toMicros(J)J" />
+		<method name="toMillis(J)J" />
+		<method name="toMinutes(J)J" since="9" />
+		<method name="toNanos(J)J" />
+		<method name="toSeconds(J)J" />
+		<method name="valueOf(Ljava/lang/String;)Ljava/util/concurrent/TimeUnit;" />
+		<method name="values()[Ljava/util/concurrent/TimeUnit;" />
+		<field name="DAYS" since="9" />
+		<field name="HOURS" since="9" />
+		<field name="MICROSECONDS" />
+		<field name="MILLISECONDS" />
+		<field name="MINUTES" since="9" />
+		<field name="NANOSECONDS" />
+		<field name="SECONDS" />
+	</class>
+	<class name="java/util/concurrent/TimeoutException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicBoolean" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="compareAndSet(ZZ)Z" />
+		<method name="get()Z" />
+		<method name="getAndSet(Z)Z" />
+		<method name="lazySet(Z)V" since="9" />
+		<method name="set(Z)V" />
+		<method name="weakCompareAndSet(ZZ)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicInteger" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="addAndGet(I)I" />
+		<method name="compareAndSet(II)Z" />
+		<method name="decrementAndGet()I" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="get()I" />
+		<method name="getAndAdd(I)I" />
+		<method name="getAndDecrement()I" />
+		<method name="getAndIncrement()I" />
+		<method name="getAndSet(I)I" />
+		<method name="incrementAndGet()I" />
+		<method name="intValue()I" />
+		<method name="lazySet(I)V" since="9" />
+		<method name="longValue()J" />
+		<method name="set(I)V" />
+		<method name="weakCompareAndSet(II)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicIntegerArray" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>([I)V" />
+		<method name="addAndGet(II)I" />
+		<method name="compareAndSet(III)Z" />
+		<method name="decrementAndGet(I)I" />
+		<method name="get(I)I" />
+		<method name="getAndAdd(II)I" />
+		<method name="getAndDecrement(I)I" />
+		<method name="getAndIncrement(I)I" />
+		<method name="getAndSet(II)I" />
+		<method name="incrementAndGet(I)I" />
+		<method name="lazySet(II)V" since="9" />
+		<method name="length()I" />
+		<method name="set(II)V" />
+		<method name="weakCompareAndSet(III)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicIntegerFieldUpdater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addAndGet(LT;I)I" />
+		<method name="compareAndSet(LT;II)Z" />
+		<method name="decrementAndGet(LT;)I" />
+		<method name="get(LT;)I" />
+		<method name="getAndAdd(LT;I)I" />
+		<method name="getAndDecrement(LT;)I" />
+		<method name="getAndIncrement(LT;)I" />
+		<method name="getAndSet(LT;I)I" />
+		<method name="incrementAndGet(LT;)I" />
+		<method name="lazySet(LT;I)V" since="9" />
+		<method name="newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;" />
+		<method name="set(LT;I)V" />
+		<method name="weakCompareAndSet(LT;II)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicLong" since="1">
+		<extends name="java/lang/Number" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(J)V" />
+		<method name="addAndGet(J)J" />
+		<method name="compareAndSet(JJ)Z" />
+		<method name="decrementAndGet()J" />
+		<method name="doubleValue()D" />
+		<method name="floatValue()F" />
+		<method name="get()J" />
+		<method name="getAndAdd(J)J" />
+		<method name="getAndDecrement()J" />
+		<method name="getAndIncrement()J" />
+		<method name="getAndSet(J)J" />
+		<method name="incrementAndGet()J" />
+		<method name="intValue()I" />
+		<method name="lazySet(J)V" since="9" />
+		<method name="longValue()J" />
+		<method name="set(J)V" />
+		<method name="weakCompareAndSet(JJ)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicLongArray" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>([J)V" />
+		<method name="addAndGet(IJ)J" />
+		<method name="compareAndSet(IJJ)Z" />
+		<method name="decrementAndGet(I)J" />
+		<method name="get(I)J" />
+		<method name="getAndAdd(IJ)J" />
+		<method name="getAndDecrement(I)J" />
+		<method name="getAndIncrement(I)J" />
+		<method name="getAndSet(IJ)J" />
+		<method name="incrementAndGet(I)J" />
+		<method name="lazySet(IJ)V" since="9" />
+		<method name="length()I" />
+		<method name="set(IJ)V" />
+		<method name="weakCompareAndSet(IJJ)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicLongFieldUpdater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addAndGet(LT;J)J" />
+		<method name="compareAndSet(LT;JJ)Z" />
+		<method name="decrementAndGet(LT;)J" />
+		<method name="get(LT;)J" />
+		<method name="getAndAdd(LT;J)J" />
+		<method name="getAndDecrement(LT;)J" />
+		<method name="getAndIncrement(LT;)J" />
+		<method name="getAndSet(LT;J)J" />
+		<method name="incrementAndGet(LT;)J" />
+		<method name="lazySet(LT;J)V" since="9" />
+		<method name="newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;" />
+		<method name="set(LT;J)V" />
+		<method name="weakCompareAndSet(LT;JJ)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicMarkableReference" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(LV;Z)V" />
+		<method name="attemptMark(LV;Z)Z" />
+		<method name="compareAndSet(LV;LV;ZZ)Z" />
+		<method name="get([Z)LV;" />
+		<method name="getReference()LV;" />
+		<method name="isMarked()Z" />
+		<method name="set(LV;Z)V" />
+		<method name="weakCompareAndSet(LV;LV;ZZ)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicReference" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(LV;)V" />
+		<method name="compareAndSet(LV;LV;)Z" />
+		<method name="get()LV;" />
+		<method name="getAndSet(LV;)LV;" />
+		<method name="lazySet(LV;)V" since="9" />
+		<method name="set(LV;)V" />
+		<method name="weakCompareAndSet(LV;LV;)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicReferenceArray" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>([LE;)V" />
+		<method name="compareAndSet(ILE;LE;)Z" />
+		<method name="get(I)LE;" />
+		<method name="getAndSet(ILE;)LE;" />
+		<method name="lazySet(ILE;)V" since="9" />
+		<method name="length()I" />
+		<method name="set(ILE;)V" />
+		<method name="weakCompareAndSet(ILE;LE;)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicReferenceFieldUpdater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="compareAndSet(LT;LV;LV;)Z" />
+		<method name="get(LT;)LV;" />
+		<method name="getAndSet(LT;LV;)LV;" />
+		<method name="lazySet(LT;LV;)V" since="9" />
+		<method name="newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;" />
+		<method name="set(LT;LV;)V" />
+		<method name="weakCompareAndSet(LT;LV;LV;)Z" />
+	</class>
+	<class name="java/util/concurrent/atomic/AtomicStampedReference" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(LV;I)V" />
+		<method name="attemptStamp(LV;I)Z" />
+		<method name="compareAndSet(LV;LV;II)Z" />
+		<method name="get([I)LV;" />
+		<method name="getReference()LV;" />
+		<method name="getStamp()I" />
+		<method name="set(LV;I)V" />
+		<method name="weakCompareAndSet(LV;LV;II)Z" />
+	</class>
+	<class name="java/util/concurrent/locks/AbstractOwnableSynchronizer" since="5">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="getExclusiveOwnerThread()Ljava/lang/Thread;" />
+		<method name="setExclusiveOwnerThread(Ljava/lang/Thread;)V" />
+	</class>
+	<class name="java/util/concurrent/locks/AbstractQueuedLongSynchronizer" since="9">
+		<extends name="java/util/concurrent/locks/AbstractOwnableSynchronizer" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="acquire(J)V" />
+		<method name="acquireInterruptibly(J)V" />
+		<method name="acquireShared(J)V" />
+		<method name="acquireSharedInterruptibly(J)V" />
+		<method name="compareAndSetState(JJ)Z" />
+		<method name="getExclusiveQueuedThreads()Ljava/util/Collection;" />
+		<method name="getFirstQueuedThread()Ljava/lang/Thread;" />
+		<method name="getQueueLength()I" />
+		<method name="getQueuedThreads()Ljava/util/Collection;" />
+		<method name="getSharedQueuedThreads()Ljava/util/Collection;" />
+		<method name="getState()J" />
+		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)I" />
+		<method name="getWaitingThreads(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)Ljava/util/Collection;" />
+		<method name="hasContended()Z" />
+		<method name="hasQueuedThreads()Z" />
+		<method name="hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)Z" />
+		<method name="isHeldExclusively()Z" />
+		<method name="isQueued(Ljava/lang/Thread;)Z" />
+		<method name="owns(Ljava/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject;)Z" />
+		<method name="release(J)Z" />
+		<method name="releaseShared(J)Z" />
+		<method name="setState(J)V" />
+		<method name="tryAcquire(J)Z" />
+		<method name="tryAcquireNanos(JJ)Z" />
+		<method name="tryAcquireShared(J)J" />
+		<method name="tryAcquireSharedNanos(JJ)Z" />
+		<method name="tryRelease(J)Z" />
+		<method name="tryReleaseShared(J)Z" />
+	</class>
+	<class name="java/util/concurrent/locks/AbstractQueuedLongSynchronizer$ConditionObject" since="9">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/locks/Condition" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="await()V" />
+		<method name="await(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="awaitNanos(J)J" />
+		<method name="awaitUninterruptibly()V" />
+		<method name="awaitUntil(Ljava/util/Date;)Z" />
+		<method name="getWaitQueueLength()I" />
+		<method name="getWaitingThreads()Ljava/util/Collection;" />
+		<method name="hasWaiters()Z" />
+		<method name="signal()V" />
+		<method name="signalAll()V" />
+	</class>
+	<class name="java/util/concurrent/locks/AbstractQueuedSynchronizer" since="1">
+		<extends name="java/lang/Object" />
+		<extends name="java/util/concurrent/locks/AbstractOwnableSynchronizer" since="4" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="acquire(I)V" />
+		<method name="acquireInterruptibly(I)V" />
+		<method name="acquireShared(I)V" />
+		<method name="acquireSharedInterruptibly(I)V" />
+		<method name="compareAndSetState(II)Z" />
+		<method name="getExclusiveQueuedThreads()Ljava/util/Collection;" />
+		<method name="getFirstQueuedThread()Ljava/lang/Thread;" />
+		<method name="getQueueLength()I" />
+		<method name="getQueuedThreads()Ljava/util/Collection;" />
+		<method name="getSharedQueuedThreads()Ljava/util/Collection;" />
+		<method name="getState()I" />
+		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)I" />
+		<method name="getWaitingThreads(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Ljava/util/Collection;" />
+		<method name="hasContended()Z" />
+		<method name="hasQueuedThreads()Z" />
+		<method name="hasWaiters(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z" />
+		<method name="isHeldExclusively()Z" />
+		<method name="isQueued(Ljava/lang/Thread;)Z" />
+		<method name="owns(Ljava/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject;)Z" />
+		<method name="release(I)Z" />
+		<method name="releaseShared(I)Z" />
+		<method name="setState(I)V" />
+		<method name="tryAcquire(I)Z" />
+		<method name="tryAcquireNanos(IJ)Z" />
+		<method name="tryAcquireShared(I)I" />
+		<method name="tryAcquireSharedNanos(IJ)Z" />
+		<method name="tryRelease(I)Z" />
+		<method name="tryReleaseShared(I)Z" />
+	</class>
+	<class name="java/util/concurrent/locks/AbstractQueuedSynchronizer$ConditionObject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/locks/Condition" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="await()V" />
+		<method name="await(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="awaitNanos(J)J" />
+		<method name="awaitUninterruptibly()V" />
+		<method name="awaitUntil(Ljava/util/Date;)Z" />
+		<method name="getWaitQueueLength()I" />
+		<method name="getWaitingThreads()Ljava/util/Collection;" />
+		<method name="hasWaiters()Z" />
+		<method name="signal()V" />
+		<method name="signalAll()V" />
+	</class>
+	<class name="java/util/concurrent/locks/Condition" since="1">
+		<method name="await()V" />
+		<method name="await(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="awaitNanos(J)J" />
+		<method name="awaitUninterruptibly()V" />
+		<method name="awaitUntil(Ljava/util/Date;)Z" />
+		<method name="signal()V" />
+		<method name="signalAll()V" />
+	</class>
+	<class name="java/util/concurrent/locks/Lock" since="1">
+		<method name="lock()V" />
+		<method name="lockInterruptibly()V" />
+		<method name="newCondition()Ljava/util/concurrent/locks/Condition;" />
+		<method name="tryLock()Z" />
+		<method name="tryLock(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="unlock()V" />
+	</class>
+	<class name="java/util/concurrent/locks/LockSupport" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getBlocker(Ljava/lang/Thread;)Ljava/lang/Object;" since="9" />
+		<method name="park()V" />
+		<method name="park(Ljava/lang/Object;)V" since="9" />
+		<method name="parkNanos(J)V" />
+		<method name="parkNanos(Ljava/lang/Object;J)V" since="9" />
+		<method name="parkUntil(J)V" />
+		<method name="parkUntil(Ljava/lang/Object;J)V" since="9" />
+		<method name="unpark(Ljava/lang/Thread;)V" />
+	</class>
+	<class name="java/util/concurrent/locks/ReadWriteLock" since="1">
+		<method name="readLock()Ljava/util/concurrent/locks/Lock;" />
+		<method name="writeLock()Ljava/util/concurrent/locks/Lock;" />
+	</class>
+	<class name="java/util/concurrent/locks/ReentrantLock" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/locks/Lock" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="getHoldCount()I" />
+		<method name="getOwner()Ljava/lang/Thread;" />
+		<method name="getQueueLength()I" />
+		<method name="getQueuedThreads()Ljava/util/Collection;" />
+		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/Condition;)I" />
+		<method name="getWaitingThreads(Ljava/util/concurrent/locks/Condition;)Ljava/util/Collection;" />
+		<method name="hasQueuedThread(Ljava/lang/Thread;)Z" />
+		<method name="hasQueuedThreads()Z" />
+		<method name="hasWaiters(Ljava/util/concurrent/locks/Condition;)Z" />
+		<method name="isFair()Z" />
+		<method name="isHeldByCurrentThread()Z" />
+		<method name="isLocked()Z" />
+		<method name="lock()V" />
+		<method name="lockInterruptibly()V" />
+		<method name="newCondition()Ljava/util/concurrent/locks/Condition;" />
+		<method name="tryLock()Z" />
+		<method name="tryLock(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="unlock()V" />
+	</class>
+	<class name="java/util/concurrent/locks/ReentrantReadWriteLock" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/locks/ReadWriteLock" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="getOwner()Ljava/lang/Thread;" />
+		<method name="getQueueLength()I" />
+		<method name="getQueuedReaderThreads()Ljava/util/Collection;" />
+		<method name="getQueuedThreads()Ljava/util/Collection;" />
+		<method name="getQueuedWriterThreads()Ljava/util/Collection;" />
+		<method name="getReadHoldCount()I" since="9" />
+		<method name="getReadLockCount()I" />
+		<method name="getWaitQueueLength(Ljava/util/concurrent/locks/Condition;)I" />
+		<method name="getWaitingThreads(Ljava/util/concurrent/locks/Condition;)Ljava/util/Collection;" />
+		<method name="getWriteHoldCount()I" />
+		<method name="hasQueuedThread(Ljava/lang/Thread;)Z" />
+		<method name="hasQueuedThreads()Z" />
+		<method name="hasWaiters(Ljava/util/concurrent/locks/Condition;)Z" />
+		<method name="isFair()Z" />
+		<method name="isWriteLocked()Z" />
+		<method name="isWriteLockedByCurrentThread()Z" />
+		<method name="readLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;" />
+		<method name="writeLock()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;" />
+	</class>
+	<class name="java/util/concurrent/locks/ReentrantReadWriteLock$ReadLock" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/locks/Lock" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V" />
+		<method name="lock()V" />
+		<method name="lockInterruptibly()V" />
+		<method name="newCondition()Ljava/util/concurrent/locks/Condition;" />
+		<method name="tryLock()Z" />
+		<method name="tryLock(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="unlock()V" />
+	</class>
+	<class name="java/util/concurrent/locks/ReentrantReadWriteLock$WriteLock" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/concurrent/locks/Lock" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/util/concurrent/locks/ReentrantReadWriteLock;)V" />
+		<method name="getHoldCount()I" since="9" />
+		<method name="isHeldByCurrentThread()Z" since="9" />
+		<method name="lock()V" />
+		<method name="lockInterruptibly()V" />
+		<method name="newCondition()Ljava/util/concurrent/locks/Condition;" />
+		<method name="tryLock()Z" />
+		<method name="tryLock(JLjava/util/concurrent/TimeUnit;)Z" />
+		<method name="unlock()V" />
+	</class>
+	<class name="java/util/jar/Attributes" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/util/Map" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(Ljava/util/jar/Attributes;)V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="containsKey(Ljava/lang/Object;)Z" />
+		<method name="containsValue(Ljava/lang/Object;)Z" />
+		<method name="entrySet()Ljava/util/Set;" />
+		<method name="get(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValue(Ljava/util/jar/Attributes$Name;)Ljava/lang/String;" />
+		<method name="isEmpty()Z" />
+		<method name="keySet()Ljava/util/Set;" />
+		<method name="put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="putAll(Ljava/util/Map;)V" />
+		<method name="putValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="remove(Ljava/lang/Object;)Ljava/lang/Object;" />
+		<method name="size()I" />
+		<method name="values()Ljava/util/Collection;" />
+		<field name="map" />
+	</class>
+	<class name="java/util/jar/Attributes$Name" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<field name="CLASS_PATH" />
+		<field name="CONTENT_TYPE" />
+		<field name="EXTENSION_INSTALLATION" />
+		<field name="EXTENSION_LIST" />
+		<field name="EXTENSION_NAME" />
+		<field name="IMPLEMENTATION_TITLE" />
+		<field name="IMPLEMENTATION_URL" />
+		<field name="IMPLEMENTATION_VENDOR" />
+		<field name="IMPLEMENTATION_VENDOR_ID" />
+		<field name="IMPLEMENTATION_VERSION" />
+		<field name="MAIN_CLASS" />
+		<field name="MANIFEST_VERSION" />
+		<field name="SEALED" />
+		<field name="SIGNATURE_VERSION" />
+		<field name="SPECIFICATION_TITLE" />
+		<field name="SPECIFICATION_VENDOR" />
+		<field name="SPECIFICATION_VERSION" />
+	</class>
+	<class name="java/util/jar/JarEntry" since="1">
+		<extends name="java/util/zip/ZipEntry" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/util/jar/JarEntry;)V" />
+		<method name="&lt;init>(Ljava/util/zip/ZipEntry;)V" />
+		<method name="getAttributes()Ljava/util/jar/Attributes;" />
+		<method name="getCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getCodeSigners()[Ljava/security/CodeSigner;" />
+	</class>
+	<class name="java/util/jar/JarException" since="1">
+		<extends name="java/util/zip/ZipException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/jar/JarFile" since="1">
+		<extends name="java/util/zip/ZipFile" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;Z)V" />
+		<method name="&lt;init>(Ljava/io/File;ZI)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Z)V" />
+		<method name="getJarEntry(Ljava/lang/String;)Ljava/util/jar/JarEntry;" />
+		<method name="getManifest()Ljava/util/jar/Manifest;" />
+		<field name="MANIFEST_NAME" />
+	</class>
+	<class name="java/util/jar/JarInputStream" since="1">
+		<extends name="java/util/zip/ZipInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Z)V" />
+		<method name="getManifest()Ljava/util/jar/Manifest;" />
+		<method name="getNextJarEntry()Ljava/util/jar/JarEntry;" />
+	</class>
+	<class name="java/util/jar/JarOutputStream" since="1">
+		<extends name="java/util/zip/ZipOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/jar/Manifest;)V" />
+	</class>
+	<class name="java/util/jar/Manifest" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/util/jar/Manifest;)V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getAttributes(Ljava/lang/String;)Ljava/util/jar/Attributes;" />
+		<method name="getEntries()Ljava/util/Map;" />
+		<method name="getMainAttributes()Ljava/util/jar/Attributes;" />
+		<method name="read(Ljava/io/InputStream;)V" />
+		<method name="write(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="java/util/jar/Pack200" since="1">
+		<extends name="java/lang/Object" />
+		<method name="newPacker()Ljava/util/jar/Pack200$Packer;" />
+		<method name="newUnpacker()Ljava/util/jar/Pack200$Unpacker;" />
+	</class>
+	<class name="java/util/jar/Pack200$Packer" since="1">
+		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
+		<method name="pack(Ljava/util/jar/JarFile;Ljava/io/OutputStream;)V" />
+		<method name="pack(Ljava/util/jar/JarInputStream;Ljava/io/OutputStream;)V" />
+		<method name="properties()Ljava/util/SortedMap;" />
+		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
+		<field name="CLASS_ATTRIBUTE_PFX" />
+		<field name="CODE_ATTRIBUTE_PFX" />
+		<field name="DEFLATE_HINT" />
+		<field name="EFFORT" />
+		<field name="ERROR" />
+		<field name="FALSE" />
+		<field name="FIELD_ATTRIBUTE_PFX" />
+		<field name="KEEP" />
+		<field name="KEEP_FILE_ORDER" />
+		<field name="LATEST" />
+		<field name="METHOD_ATTRIBUTE_PFX" />
+		<field name="MODIFICATION_TIME" />
+		<field name="PASS" />
+		<field name="PASS_FILE_PFX" />
+		<field name="PROGRESS" />
+		<field name="SEGMENT_LIMIT" />
+		<field name="STRIP" />
+		<field name="TRUE" />
+		<field name="UNKNOWN_ATTRIBUTE" />
+	</class>
+	<class name="java/util/jar/Pack200$Unpacker" since="1">
+		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
+		<method name="properties()Ljava/util/SortedMap;" />
+		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
+		<method name="unpack(Ljava/io/File;Ljava/util/jar/JarOutputStream;)V" />
+		<method name="unpack(Ljava/io/InputStream;Ljava/util/jar/JarOutputStream;)V" />
+		<field name="DEFLATE_HINT" />
+		<field name="FALSE" />
+		<field name="KEEP" />
+		<field name="PROGRESS" />
+		<field name="TRUE" />
+	</class>
+	<class name="java/util/logging/ConsoleHandler" since="1">
+		<extends name="java/util/logging/StreamHandler" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="java/util/logging/ErrorManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="error(Ljava/lang/String;Ljava/lang/Exception;I)V" />
+		<field name="CLOSE_FAILURE" />
+		<field name="FLUSH_FAILURE" />
+		<field name="FORMAT_FAILURE" />
+		<field name="GENERIC_FAILURE" />
+		<field name="OPEN_FAILURE" />
+		<field name="WRITE_FAILURE" />
+	</class>
+	<class name="java/util/logging/FileHandler" since="1">
+		<extends name="java/util/logging/StreamHandler" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;II)V" />
+		<method name="&lt;init>(Ljava/lang/String;IIZ)V" />
+		<method name="&lt;init>(Ljava/lang/String;Z)V" />
+	</class>
+	<class name="java/util/logging/Filter" since="1">
+		<method name="isLoggable(Ljava/util/logging/LogRecord;)Z" />
+	</class>
+	<class name="java/util/logging/Formatter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="format(Ljava/util/logging/LogRecord;)Ljava/lang/String;" />
+		<method name="formatMessage(Ljava/util/logging/LogRecord;)Ljava/lang/String;" />
+		<method name="getHead(Ljava/util/logging/Handler;)Ljava/lang/String;" />
+		<method name="getTail(Ljava/util/logging/Handler;)Ljava/lang/String;" />
+	</class>
+	<class name="java/util/logging/Handler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getErrorManager()Ljava/util/logging/ErrorManager;" />
+		<method name="getFilter()Ljava/util/logging/Filter;" />
+		<method name="getFormatter()Ljava/util/logging/Formatter;" />
+		<method name="getLevel()Ljava/util/logging/Level;" />
+		<method name="isLoggable(Ljava/util/logging/LogRecord;)Z" />
+		<method name="publish(Ljava/util/logging/LogRecord;)V" />
+		<method name="reportError(Ljava/lang/String;Ljava/lang/Exception;I)V" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setErrorManager(Ljava/util/logging/ErrorManager;)V" />
+		<method name="setFilter(Ljava/util/logging/Filter;)V" />
+		<method name="setFormatter(Ljava/util/logging/Formatter;)V" />
+		<method name="setLevel(Ljava/util/logging/Level;)V" />
+	</class>
+	<class name="java/util/logging/Level" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="getLocalizedName()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getResourceBundleName()Ljava/lang/String;" />
+		<method name="intValue()I" />
+		<method name="parse(Ljava/lang/String;)Ljava/util/logging/Level;" />
+		<method name="toString()Ljava/lang/String;" />
+		<field name="ALL" />
+		<field name="CONFIG" />
+		<field name="FINE" />
+		<field name="FINER" />
+		<field name="FINEST" />
+		<field name="INFO" />
+		<field name="OFF" />
+		<field name="SEVERE" />
+		<field name="WARNING" />
+	</class>
+	<class name="java/util/logging/LogManager" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addLogger(Ljava/util/logging/Logger;)Z" />
+		<method name="addPropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
+		<method name="checkAccess()V" />
+		<method name="getLogManager()Ljava/util/logging/LogManager;" />
+		<method name="getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;" />
+		<method name="getLoggerNames()Ljava/util/Enumeration;" />
+		<method name="getLoggingMXBean()Ljava/util/logging/LoggingMXBean;" since="3" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="readConfiguration()V" />
+		<method name="readConfiguration(Ljava/io/InputStream;)V" />
+		<method name="removePropertyChangeListener(Ljava/beans/PropertyChangeListener;)V" since="3" />
+		<method name="reset()V" />
+		<field name="LOGGING_MXBEAN_NAME" />
+	</class>
+	<class name="java/util/logging/LogRecord" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/util/logging/Level;Ljava/lang/String;)V" />
+		<method name="getLevel()Ljava/util/logging/Level;" />
+		<method name="getLoggerName()Ljava/lang/String;" />
+		<method name="getMessage()Ljava/lang/String;" />
+		<method name="getMillis()J" />
+		<method name="getParameters()[Ljava/lang/Object;" />
+		<method name="getResourceBundle()Ljava/util/ResourceBundle;" />
+		<method name="getResourceBundleName()Ljava/lang/String;" />
+		<method name="getSequenceNumber()J" />
+		<method name="getSourceClassName()Ljava/lang/String;" />
+		<method name="getSourceMethodName()Ljava/lang/String;" />
+		<method name="getThreadID()I" />
+		<method name="getThrown()Ljava/lang/Throwable;" />
+		<method name="setLevel(Ljava/util/logging/Level;)V" />
+		<method name="setLoggerName(Ljava/lang/String;)V" />
+		<method name="setMessage(Ljava/lang/String;)V" />
+		<method name="setMillis(J)V" />
+		<method name="setParameters([Ljava/lang/Object;)V" />
+		<method name="setResourceBundle(Ljava/util/ResourceBundle;)V" />
+		<method name="setResourceBundleName(Ljava/lang/String;)V" />
+		<method name="setSequenceNumber(J)V" />
+		<method name="setSourceClassName(Ljava/lang/String;)V" />
+		<method name="setSourceMethodName(Ljava/lang/String;)V" />
+		<method name="setThreadID(I)V" />
+		<method name="setThrown(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/logging/Logger" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="addHandler(Ljava/util/logging/Handler;)V" />
+		<method name="config(Ljava/lang/String;)V" />
+		<method name="entering(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="entering(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="entering(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V" />
+		<method name="exiting(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="exiting(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="fine(Ljava/lang/String;)V" />
+		<method name="finer(Ljava/lang/String;)V" />
+		<method name="finest(Ljava/lang/String;)V" />
+		<method name="getAnonymousLogger()Ljava/util/logging/Logger;" />
+		<method name="getAnonymousLogger(Ljava/lang/String;)Ljava/util/logging/Logger;" />
+		<method name="getFilter()Ljava/util/logging/Filter;" />
+		<method name="getHandlers()[Ljava/util/logging/Handler;" />
+		<method name="getLevel()Ljava/util/logging/Level;" />
+		<method name="getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;" />
+		<method name="getLogger(Ljava/lang/String;Ljava/lang/String;)Ljava/util/logging/Logger;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParent()Ljava/util/logging/Logger;" />
+		<method name="getResourceBundle()Ljava/util/ResourceBundle;" />
+		<method name="getResourceBundleName()Ljava/lang/String;" />
+		<method name="getUseParentHandlers()Z" />
+		<method name="info(Ljava/lang/String;)V" />
+		<method name="isLoggable(Ljava/util/logging/Level;)Z" />
+		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;)V" />
+		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="log(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V" />
+		<method name="log(Ljava/util/logging/LogRecord;)V" />
+		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="logp(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V" />
+		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="logrb(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V" />
+		<method name="removeHandler(Ljava/util/logging/Handler;)V" />
+		<method name="setFilter(Ljava/util/logging/Filter;)V" />
+		<method name="setLevel(Ljava/util/logging/Level;)V" />
+		<method name="setParent(Ljava/util/logging/Logger;)V" />
+		<method name="setUseParentHandlers(Z)V" />
+		<method name="severe(Ljava/lang/String;)V" />
+		<method name="throwing(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="warning(Ljava/lang/String;)V" />
+		<field name="GLOBAL_LOGGER_NAME" since="9" />
+		<field name="global" />
+	</class>
+	<class name="java/util/logging/LoggingMXBean" since="1">
+		<method name="getLoggerLevel(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getLoggerNames()Ljava/util/List;" />
+		<method name="getParentLoggerName(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="setLoggerLevel(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/logging/LoggingPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<implements name="java/security/Guard" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/logging/MemoryHandler" since="1">
+		<extends name="java/util/logging/Handler" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/util/logging/Handler;ILjava/util/logging/Level;)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="getPushLevel()Ljava/util/logging/Level;" />
+		<method name="publish(Ljava/util/logging/LogRecord;)V" />
+		<method name="push()V" />
+		<method name="setPushLevel(Ljava/util/logging/Level;)V" />
+	</class>
+	<class name="java/util/logging/SimpleFormatter" since="1">
+		<extends name="java/util/logging/Formatter" />
+		<method name="&lt;init>()V" />
+		<method name="format(Ljava/util/logging/LogRecord;)Ljava/lang/String;" />
+	</class>
+	<class name="java/util/logging/SocketHandler" since="1">
+		<extends name="java/util/logging/StreamHandler" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+	</class>
+	<class name="java/util/logging/StreamHandler" since="1">
+		<extends name="java/util/logging/Handler" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/logging/Formatter;)V" />
+		<method name="close()V" />
+		<method name="flush()V" />
+		<method name="publish(Ljava/util/logging/LogRecord;)V" />
+		<method name="setOutputStream(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="java/util/logging/XMLFormatter" since="1">
+		<extends name="java/util/logging/Formatter" />
+		<method name="&lt;init>()V" />
+		<method name="format(Ljava/util/logging/LogRecord;)Ljava/lang/String;" />
+	</class>
+	<class name="java/util/prefs/AbstractPreferences" since="1">
+		<extends name="java/util/prefs/Preferences" />
+		<method name="&lt;init>(Ljava/util/prefs/AbstractPreferences;Ljava/lang/String;)V" />
+		<method name="absolutePath()Ljava/lang/String;" />
+		<method name="addNodeChangeListener(Ljava/util/prefs/NodeChangeListener;)V" />
+		<method name="addPreferenceChangeListener(Ljava/util/prefs/PreferenceChangeListener;)V" />
+		<method name="cachedChildren()[Ljava/util/prefs/AbstractPreferences;" />
+		<method name="childSpi(Ljava/lang/String;)Ljava/util/prefs/AbstractPreferences;" />
+		<method name="childrenNames()[Ljava/lang/String;" />
+		<method name="childrenNamesSpi()[Ljava/lang/String;" />
+		<method name="clear()V" />
+		<method name="exportNode(Ljava/io/OutputStream;)V" />
+		<method name="exportSubtree(Ljava/io/OutputStream;)V" />
+		<method name="flush()V" />
+		<method name="flushSpi()V" />
+		<method name="get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getBoolean(Ljava/lang/String;Z)Z" />
+		<method name="getByteArray(Ljava/lang/String;[B)[B" />
+		<method name="getChild(Ljava/lang/String;)Ljava/util/prefs/AbstractPreferences;" />
+		<method name="getDouble(Ljava/lang/String;D)D" />
+		<method name="getFloat(Ljava/lang/String;F)F" />
+		<method name="getInt(Ljava/lang/String;I)I" />
+		<method name="getLong(Ljava/lang/String;J)J" />
+		<method name="getSpi(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="isRemoved()Z" />
+		<method name="isUserNode()Z" />
+		<method name="keys()[Ljava/lang/String;" />
+		<method name="keysSpi()[Ljava/lang/String;" />
+		<method name="name()Ljava/lang/String;" />
+		<method name="node(Ljava/lang/String;)Ljava/util/prefs/Preferences;" />
+		<method name="nodeExists(Ljava/lang/String;)Z" />
+		<method name="parent()Ljava/util/prefs/Preferences;" />
+		<method name="put(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="putBoolean(Ljava/lang/String;Z)V" />
+		<method name="putByteArray(Ljava/lang/String;[B)V" />
+		<method name="putDouble(Ljava/lang/String;D)V" />
+		<method name="putFloat(Ljava/lang/String;F)V" />
+		<method name="putInt(Ljava/lang/String;I)V" />
+		<method name="putLong(Ljava/lang/String;J)V" />
+		<method name="putSpi(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="remove(Ljava/lang/String;)V" />
+		<method name="removeNode()V" />
+		<method name="removeNodeChangeListener(Ljava/util/prefs/NodeChangeListener;)V" />
+		<method name="removeNodeSpi()V" />
+		<method name="removePreferenceChangeListener(Ljava/util/prefs/PreferenceChangeListener;)V" />
+		<method name="removeSpi(Ljava/lang/String;)V" />
+		<method name="sync()V" />
+		<method name="syncSpi()V" />
+		<method name="toString()Ljava/lang/String;" />
+		<field name="lock" />
+		<field name="newNode" />
+	</class>
+	<class name="java/util/prefs/BackingStoreException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/prefs/InvalidPreferencesFormatException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="java/util/prefs/NodeChangeEvent" since="1">
+		<extends name="java/util/EventObject" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/util/prefs/Preferences;Ljava/util/prefs/Preferences;)V" />
+		<method name="getChild()Ljava/util/prefs/Preferences;" />
+		<method name="getParent()Ljava/util/prefs/Preferences;" />
+	</class>
+	<class name="java/util/prefs/NodeChangeListener" since="1">
+		<implements name="java/util/EventListener" />
+		<method name="childAdded(Ljava/util/prefs/NodeChangeEvent;)V" />
+		<method name="childRemoved(Ljava/util/prefs/NodeChangeEvent;)V" />
+	</class>
+	<class name="java/util/prefs/PreferenceChangeEvent" since="1">
+		<extends name="java/util/EventObject" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/util/prefs/Preferences;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getKey()Ljava/lang/String;" />
+		<method name="getNewValue()Ljava/lang/String;" />
+		<method name="getNode()Ljava/util/prefs/Preferences;" />
+	</class>
+	<class name="java/util/prefs/PreferenceChangeListener" since="1">
+		<implements name="java/util/EventListener" />
+		<method name="preferenceChange(Ljava/util/prefs/PreferenceChangeEvent;)V" />
+	</class>
+	<class name="java/util/prefs/Preferences" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="absolutePath()Ljava/lang/String;" />
+		<method name="addNodeChangeListener(Ljava/util/prefs/NodeChangeListener;)V" />
+		<method name="addPreferenceChangeListener(Ljava/util/prefs/PreferenceChangeListener;)V" />
+		<method name="childrenNames()[Ljava/lang/String;" />
+		<method name="clear()V" />
+		<method name="exportNode(Ljava/io/OutputStream;)V" />
+		<method name="exportSubtree(Ljava/io/OutputStream;)V" />
+		<method name="flush()V" />
+		<method name="get(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getBoolean(Ljava/lang/String;Z)Z" />
+		<method name="getByteArray(Ljava/lang/String;[B)[B" />
+		<method name="getDouble(Ljava/lang/String;D)D" />
+		<method name="getFloat(Ljava/lang/String;F)F" />
+		<method name="getInt(Ljava/lang/String;I)I" />
+		<method name="getLong(Ljava/lang/String;J)J" />
+		<method name="importPreferences(Ljava/io/InputStream;)V" />
+		<method name="isUserNode()Z" />
+		<method name="keys()[Ljava/lang/String;" />
+		<method name="name()Ljava/lang/String;" />
+		<method name="node(Ljava/lang/String;)Ljava/util/prefs/Preferences;" />
+		<method name="nodeExists(Ljava/lang/String;)Z" />
+		<method name="parent()Ljava/util/prefs/Preferences;" />
+		<method name="put(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="putBoolean(Ljava/lang/String;Z)V" />
+		<method name="putByteArray(Ljava/lang/String;[B)V" />
+		<method name="putDouble(Ljava/lang/String;D)V" />
+		<method name="putFloat(Ljava/lang/String;F)V" />
+		<method name="putInt(Ljava/lang/String;I)V" />
+		<method name="putLong(Ljava/lang/String;J)V" />
+		<method name="remove(Ljava/lang/String;)V" />
+		<method name="removeNode()V" />
+		<method name="removeNodeChangeListener(Ljava/util/prefs/NodeChangeListener;)V" />
+		<method name="removePreferenceChangeListener(Ljava/util/prefs/PreferenceChangeListener;)V" />
+		<method name="sync()V" />
+		<method name="systemNodeForPackage(Ljava/lang/Class;)Ljava/util/prefs/Preferences;" />
+		<method name="systemRoot()Ljava/util/prefs/Preferences;" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="userNodeForPackage(Ljava/lang/Class;)Ljava/util/prefs/Preferences;" />
+		<method name="userRoot()Ljava/util/prefs/Preferences;" />
+		<field name="MAX_KEY_LENGTH" />
+		<field name="MAX_NAME_LENGTH" />
+		<field name="MAX_VALUE_LENGTH" />
+	</class>
+	<class name="java/util/prefs/PreferencesFactory" since="1">
+		<method name="systemRoot()Ljava/util/prefs/Preferences;" />
+		<method name="userRoot()Ljava/util/prefs/Preferences;" />
+	</class>
+	<class name="java/util/regex/MatchResult" since="1">
+		<method name="end()I" />
+		<method name="end(I)I" />
+		<method name="group()Ljava/lang/String;" />
+		<method name="group(I)Ljava/lang/String;" />
+		<method name="groupCount()I" />
+		<method name="start()I" />
+		<method name="start(I)I" />
+	</class>
+	<class name="java/util/regex/Matcher" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/regex/MatchResult" />
+		<method name="appendReplacement(Ljava/lang/StringBuffer;Ljava/lang/String;)Ljava/util/regex/Matcher;" />
+		<method name="appendTail(Ljava/lang/StringBuffer;)Ljava/lang/StringBuffer;" />
+		<method name="end()I" />
+		<method name="end(I)I" />
+		<method name="find()Z" />
+		<method name="find(I)Z" />
+		<method name="group()Ljava/lang/String;" />
+		<method name="group(I)Ljava/lang/String;" />
+		<method name="groupCount()I" />
+		<method name="hasAnchoringBounds()Z" />
+		<method name="hasTransparentBounds()Z" />
+		<method name="hitEnd()Z" />
+		<method name="lookingAt()Z" />
+		<method name="matches()Z" />
+		<method name="pattern()Ljava/util/regex/Pattern;" />
+		<method name="quoteReplacement(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="region(II)Ljava/util/regex/Matcher;" />
+		<method name="regionEnd()I" />
+		<method name="regionStart()I" />
+		<method name="replaceAll(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="replaceFirst(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="requireEnd()Z" />
+		<method name="reset()Ljava/util/regex/Matcher;" />
+		<method name="reset(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;" />
+		<method name="start()I" />
+		<method name="start(I)I" />
+		<method name="toMatchResult()Ljava/util/regex/MatchResult;" />
+		<method name="useAnchoringBounds(Z)Ljava/util/regex/Matcher;" />
+		<method name="usePattern(Ljava/util/regex/Pattern;)Ljava/util/regex/Matcher;" />
+		<method name="useTransparentBounds(Z)Ljava/util/regex/Matcher;" />
+	</class>
+	<class name="java/util/regex/Pattern" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="compile(Ljava/lang/String;)Ljava/util/regex/Pattern;" />
+		<method name="compile(Ljava/lang/String;I)Ljava/util/regex/Pattern;" />
+		<method name="flags()I" />
+		<method name="matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;" />
+		<method name="matches(Ljava/lang/String;Ljava/lang/CharSequence;)Z" />
+		<method name="pattern()Ljava/lang/String;" />
+		<method name="quote(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="split(Ljava/lang/CharSequence;)[Ljava/lang/String;" />
+		<method name="split(Ljava/lang/CharSequence;I)[Ljava/lang/String;" />
+		<field name="CANON_EQ" />
+		<field name="CASE_INSENSITIVE" />
+		<field name="COMMENTS" />
+		<field name="DOTALL" />
+		<field name="LITERAL" />
+		<field name="MULTILINE" />
+		<field name="UNICODE_CASE" />
+		<field name="UNIX_LINES" />
+	</class>
+	<class name="java/util/regex/PatternSyntaxException" since="1">
+		<extends name="java/lang/IllegalArgumentException" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="getDescription()Ljava/lang/String;" />
+		<method name="getIndex()I" />
+		<method name="getPattern()Ljava/lang/String;" />
+	</class>
+	<class name="java/util/zip/Adler32" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/zip/Checksum" />
+		<method name="&lt;init>()V" />
+		<method name="getValue()J" />
+		<method name="reset()V" />
+		<method name="update(I)V" />
+		<method name="update([B)V" />
+		<method name="update([BII)V" />
+	</class>
+	<class name="java/util/zip/CRC32" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/zip/Checksum" />
+		<method name="&lt;init>()V" />
+		<method name="getValue()J" />
+		<method name="reset()V" />
+		<method name="update(I)V" />
+		<method name="update([B)V" />
+		<method name="update([BII)V" />
+	</class>
+	<class name="java/util/zip/CheckedInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Checksum;)V" />
+		<method name="getChecksum()Ljava/util/zip/Checksum;" />
+	</class>
+	<class name="java/util/zip/CheckedOutputStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Checksum;)V" />
+		<method name="getChecksum()Ljava/util/zip/Checksum;" />
+	</class>
+	<class name="java/util/zip/Checksum" since="1">
+		<method name="getValue()J" />
+		<method name="reset()V" />
+		<method name="update(I)V" />
+		<method name="update([BII)V" />
+	</class>
+	<class name="java/util/zip/DataFormatException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/zip/Deflater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(IZ)V" />
+		<method name="deflate([B)I" />
+		<method name="deflate([BII)I" />
+		<method name="end()V" />
+		<method name="finish()V" />
+		<method name="finished()Z" />
+		<method name="getAdler()I" />
+		<method name="getBytesRead()J" />
+		<method name="getBytesWritten()J" />
+		<method name="getTotalIn()I" />
+		<method name="getTotalOut()I" />
+		<method name="needsInput()Z" />
+		<method name="reset()V" />
+		<method name="setDictionary([B)V" />
+		<method name="setDictionary([BII)V" />
+		<method name="setInput([B)V" />
+		<method name="setInput([BII)V" />
+		<method name="setLevel(I)V" />
+		<method name="setStrategy(I)V" />
+		<field name="BEST_COMPRESSION" />
+		<field name="BEST_SPEED" />
+		<field name="DEFAULT_COMPRESSION" />
+		<field name="DEFAULT_STRATEGY" />
+		<field name="DEFLATED" />
+		<field name="FILTERED" />
+		<field name="HUFFMAN_ONLY" />
+		<field name="NO_COMPRESSION" />
+	</class>
+	<class name="java/util/zip/DeflaterInputStream" since="9">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Deflater;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Deflater;I)V" />
+		<field name="buf" />
+		<field name="def" />
+	</class>
+	<class name="java/util/zip/DeflaterOutputStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Deflater;I)V" />
+		<method name="deflate()V" />
+		<method name="finish()V" />
+		<field name="buf" />
+		<field name="def" />
+	</class>
+	<class name="java/util/zip/GZIPInputStream" since="1">
+		<extends name="java/util/zip/InflaterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;I)V" />
+		<field name="GZIP_MAGIC" />
+		<field name="crc" />
+		<field name="eos" />
+	</class>
+	<class name="java/util/zip/GZIPOutputStream" since="1">
+		<extends name="java/util/zip/DeflaterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;I)V" />
+		<field name="crc" />
+	</class>
+	<class name="java/util/zip/Inflater" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Z)V" />
+		<method name="end()V" />
+		<method name="finished()Z" />
+		<method name="getAdler()I" />
+		<method name="getBytesRead()J" />
+		<method name="getBytesWritten()J" />
+		<method name="getRemaining()I" />
+		<method name="getTotalIn()I" />
+		<method name="getTotalOut()I" />
+		<method name="inflate([B)I" />
+		<method name="inflate([BII)I" />
+		<method name="needsDictionary()Z" />
+		<method name="needsInput()Z" />
+		<method name="reset()V" />
+		<method name="setDictionary([B)V" />
+		<method name="setDictionary([BII)V" />
+		<method name="setInput([B)V" />
+		<method name="setInput([BII)V" />
+	</class>
+	<class name="java/util/zip/InflaterInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/util/zip/Inflater;I)V" />
+		<method name="fill()V" />
+		<field name="buf" />
+		<field name="inf" />
+		<field name="len" />
+	</class>
+	<class name="java/util/zip/InflaterOutputStream" since="9">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Inflater;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljava/util/zip/Inflater;I)V" />
+		<method name="finish()V" />
+		<field name="buf" />
+		<field name="inf" />
+	</class>
+	<class name="java/util/zip/ZipEntry" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/util/zip/ZipEntry;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getComment()Ljava/lang/String;" />
+		<method name="getCompressedSize()J" />
+		<method name="getCrc()J" />
+		<method name="getExtra()[B" />
+		<method name="getMethod()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getSize()J" />
+		<method name="getTime()J" />
+		<method name="isDirectory()Z" />
+		<method name="setComment(Ljava/lang/String;)V" />
+		<method name="setCompressedSize(J)V" />
+		<method name="setCrc(J)V" />
+		<method name="setExtra([B)V" />
+		<method name="setMethod(I)V" />
+		<method name="setSize(J)V" />
+		<method name="setTime(J)V" />
+		<field name="DEFLATED" />
+		<field name="STORED" />
+	</class>
+	<class name="java/util/zip/ZipError" since="9">
+		<extends name="java/lang/InternalError" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/zip/ZipException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="java/util/zip/ZipFile" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/File;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="close()V" />
+		<method name="entries()Ljava/util/Enumeration;" />
+		<method name="getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;" />
+		<method name="getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="size()I" />
+		<field name="OPEN_DELETE" />
+		<field name="OPEN_READ" />
+	</class>
+	<class name="java/util/zip/ZipInputStream" since="1">
+		<extends name="java/util/zip/InflaterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="closeEntry()V" />
+		<method name="createZipEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;" />
+		<method name="getNextEntry()Ljava/util/zip/ZipEntry;" />
+	</class>
+	<class name="java/util/zip/ZipOutputStream" since="1">
+		<extends name="java/util/zip/DeflaterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="closeEntry()V" />
+		<method name="putNextEntry(Ljava/util/zip/ZipEntry;)V" />
+		<method name="setComment(Ljava/lang/String;)V" />
+		<method name="setLevel(I)V" />
+		<method name="setMethod(I)V" />
+		<field name="DEFLATED" />
+		<field name="STORED" />
+	</class>
+	<class name="javax/crypto/BadPaddingException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/crypto/Cipher" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/crypto/CipherSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="doFinal()[B" />
+		<method name="doFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
+		<method name="doFinal([B)[B" />
+		<method name="doFinal([BI)I" />
+		<method name="doFinal([BII)[B" />
+		<method name="doFinal([BII[B)I" />
+		<method name="doFinal([BII[BI)I" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getBlockSize()I" />
+		<method name="getExemptionMechanism()Ljavax/crypto/ExemptionMechanism;" />
+		<method name="getIV()[B" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Cipher;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Cipher;" />
+		<method name="getMaxAllowedKeyLength(Ljava/lang/String;)I" />
+		<method name="getMaxAllowedParameterSpec(Ljava/lang/String;)Ljava/security/spec/AlgorithmParameterSpec;" />
+		<method name="getOutputSize(I)I" />
+		<method name="getParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(ILjava/security/Key;)V" />
+		<method name="init(ILjava/security/Key;Ljava/security/AlgorithmParameters;)V" />
+		<method name="init(ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V" />
+		<method name="init(ILjava/security/Key;Ljava/security/SecureRandom;)V" />
+		<method name="init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+		<method name="init(ILjava/security/cert/Certificate;)V" />
+		<method name="init(ILjava/security/cert/Certificate;Ljava/security/SecureRandom;)V" />
+		<method name="unwrap([BLjava/lang/String;I)Ljava/security/Key;" />
+		<method name="update(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
+		<method name="update([B)[B" />
+		<method name="update([BII)[B" />
+		<method name="update([BII[B)I" />
+		<method name="update([BII[BI)I" />
+		<method name="wrap(Ljava/security/Key;)[B" />
+		<field name="DECRYPT_MODE" />
+		<field name="ENCRYPT_MODE" />
+		<field name="PRIVATE_KEY" />
+		<field name="PUBLIC_KEY" />
+		<field name="SECRET_KEY" />
+		<field name="UNWRAP_MODE" />
+		<field name="WRAP_MODE" />
+	</class>
+	<class name="javax/crypto/CipherInputStream" since="1">
+		<extends name="java/io/FilterInputStream" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljavax/crypto/Cipher;)V" />
+	</class>
+	<class name="javax/crypto/CipherOutputStream" since="1">
+		<extends name="java/io/FilterOutputStream" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;Ljavax/crypto/Cipher;)V" />
+	</class>
+	<class name="javax/crypto/CipherSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineDoFinal(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
+		<method name="engineDoFinal([BII)[B" />
+		<method name="engineDoFinal([BII[BI)I" />
+		<method name="engineGetBlockSize()I" />
+		<method name="engineGetIV()[B" />
+		<method name="engineGetKeySize(Ljava/security/Key;)I" />
+		<method name="engineGetOutputSize(I)I" />
+		<method name="engineGetParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="engineInit(ILjava/security/Key;Ljava/security/AlgorithmParameters;Ljava/security/SecureRandom;)V" />
+		<method name="engineInit(ILjava/security/Key;Ljava/security/SecureRandom;)V" />
+		<method name="engineInit(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+		<method name="engineSetMode(Ljava/lang/String;)V" />
+		<method name="engineSetPadding(Ljava/lang/String;)V" />
+		<method name="engineUnwrap([BLjava/lang/String;I)Ljava/security/Key;" />
+		<method name="engineUpdate(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I" />
+		<method name="engineUpdate([BII)[B" />
+		<method name="engineUpdate([BII[BI)I" />
+		<method name="engineWrap(Ljava/security/Key;)[B" />
+	</class>
+	<class name="javax/crypto/EncryptedPrivateKeyInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;[B)V" />
+		<method name="&lt;init>(Ljava/security/AlgorithmParameters;[B)V" />
+		<method name="&lt;init>([B)V" />
+		<method name="getAlgName()Ljava/lang/String;" />
+		<method name="getAlgParameters()Ljava/security/AlgorithmParameters;" />
+		<method name="getEncoded()[B" />
+		<method name="getEncryptedData()[B" />
+		<method name="getKeySpec(Ljava/security/Key;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
+		<method name="getKeySpec(Ljava/security/Key;Ljava/lang/String;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
+		<method name="getKeySpec(Ljava/security/Key;Ljava/security/Provider;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
+		<method name="getKeySpec(Ljavax/crypto/Cipher;)Ljava/security/spec/PKCS8EncodedKeySpec;" />
+	</class>
+	<class name="javax/crypto/ExemptionMechanism" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/crypto/ExemptionMechanismSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="genExemptionBlob()[B" />
+		<method name="genExemptionBlob([B)I" />
+		<method name="genExemptionBlob([BI)I" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/ExemptionMechanism;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/ExemptionMechanism;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/ExemptionMechanism;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getOutputSize(I)I" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(Ljava/security/Key;)V" />
+		<method name="init(Ljava/security/Key;Ljava/security/AlgorithmParameters;)V" />
+		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="isCryptoAllowed(Ljava/security/Key;)Z" />
+	</class>
+	<class name="javax/crypto/ExemptionMechanismException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/crypto/ExemptionMechanismSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGenExemptionBlob()[B" />
+		<method name="engineGenExemptionBlob([BI)I" />
+		<method name="engineGetOutputSize(I)I" />
+		<method name="engineInit(Ljava/security/Key;)V" />
+		<method name="engineInit(Ljava/security/Key;Ljava/security/AlgorithmParameters;)V" />
+		<method name="engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
+	</class>
+	<class name="javax/crypto/IllegalBlockSizeException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/crypto/KeyAgreement" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/crypto/KeyAgreementSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="doPhase(Ljava/security/Key;Z)Ljava/security/Key;" />
+		<method name="generateSecret()[B" />
+		<method name="generateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;" />
+		<method name="generateSecret([BI)I" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/KeyAgreement;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyAgreement;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyAgreement;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(Ljava/security/Key;)V" />
+		<method name="init(Ljava/security/Key;Ljava/security/SecureRandom;)V" />
+		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="javax/crypto/KeyAgreementSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineDoPhase(Ljava/security/Key;Z)Ljava/security/Key;" />
+		<method name="engineGenerateSecret()[B" />
+		<method name="engineGenerateSecret(Ljava/lang/String;)Ljavax/crypto/SecretKey;" />
+		<method name="engineGenerateSecret([BI)I" />
+		<method name="engineInit(Ljava/security/Key;Ljava/security/SecureRandom;)V" />
+		<method name="engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="javax/crypto/KeyGenerator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/crypto/KeyGeneratorSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="generateKey()Ljavax/crypto/SecretKey;" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/KeyGenerator;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/KeyGenerator;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(I)V" />
+		<method name="init(ILjava/security/SecureRandom;)V" />
+		<method name="init(Ljava/security/SecureRandom;)V" />
+		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="init(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="javax/crypto/KeyGeneratorSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGenerateKey()Ljavax/crypto/SecretKey;" />
+		<method name="engineInit(ILjava/security/SecureRandom;)V" />
+		<method name="engineInit(Ljava/security/SecureRandom;)V" />
+		<method name="engineInit(Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="javax/crypto/Mac" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>(Ljavax/crypto/MacSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="doFinal()[B" />
+		<method name="doFinal([B)[B" />
+		<method name="doFinal([BI)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/Mac;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/Mac;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/Mac;" />
+		<method name="getMacLength()I" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(Ljava/security/Key;)V" />
+		<method name="init(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="reset()V" />
+		<method name="update(B)V" />
+		<method name="update(Ljava/nio/ByteBuffer;)V" />
+		<method name="update([B)V" />
+		<method name="update([BII)V" />
+	</class>
+	<class name="javax/crypto/MacSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="engineDoFinal()[B" />
+		<method name="engineGetMacLength()I" />
+		<method name="engineInit(Ljava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V" />
+		<method name="engineReset()V" />
+		<method name="engineUpdate(B)V" />
+		<method name="engineUpdate(Ljava/nio/ByteBuffer;)V" />
+		<method name="engineUpdate([BII)V" />
+	</class>
+	<class name="javax/crypto/NoSuchPaddingException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/crypto/NullCipher" since="1">
+		<extends name="javax/crypto/Cipher" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="javax/crypto/SealedObject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/io/Serializable;Ljavax/crypto/Cipher;)V" />
+		<method name="&lt;init>(Ljavax/crypto/SealedObject;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getObject(Ljava/security/Key;)Ljava/lang/Object;" />
+		<method name="getObject(Ljava/security/Key;Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getObject(Ljavax/crypto/Cipher;)Ljava/lang/Object;" />
+		<field name="encodedParams" />
+	</class>
+	<class name="javax/crypto/SecretKey" since="1">
+		<implements name="java/security/Key" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="javax/crypto/SecretKeyFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/crypto/SecretKeyFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/crypto/SecretKeyFactory;" />
+		<method name="getKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="translateKey(Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;" />
+	</class>
+	<class name="javax/crypto/SecretKeyFactorySpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGenerateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;" />
+		<method name="engineGetKeySpec(Ljavax/crypto/SecretKey;Ljava/lang/Class;)Ljava/security/spec/KeySpec;" />
+		<method name="engineTranslateKey(Ljavax/crypto/SecretKey;)Ljavax/crypto/SecretKey;" />
+	</class>
+	<class name="javax/crypto/ShortBufferException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/crypto/interfaces/DHKey" since="1">
+		<method name="getParams()Ljavax/crypto/spec/DHParameterSpec;" />
+	</class>
+	<class name="javax/crypto/interfaces/DHPrivateKey" since="1">
+		<implements name="javax/crypto/interfaces/DHKey" />
+		<implements name="java/security/PrivateKey" />
+		<method name="getX()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="javax/crypto/interfaces/DHPublicKey" since="1">
+		<implements name="javax/crypto/interfaces/DHKey" />
+		<implements name="java/security/PublicKey" />
+		<method name="getY()Ljava/math/BigInteger;" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="javax/crypto/interfaces/PBEKey" since="1">
+		<implements name="javax/crypto/SecretKey" />
+		<method name="getIterationCount()I" />
+		<method name="getPassword()[C" />
+		<method name="getSalt()[B" />
+		<field name="serialVersionUID" />
+	</class>
+	<class name="javax/crypto/spec/DESKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>([B)V" />
+		<method name="&lt;init>([BI)V" />
+		<method name="getKey()[B" />
+		<method name="isParityAdjusted([BI)Z" />
+		<method name="isWeak([BI)Z" />
+		<field name="DES_KEY_LEN" />
+	</class>
+	<class name="javax/crypto/spec/DESedeKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>([B)V" />
+		<method name="&lt;init>([BI)V" />
+		<method name="getKey()[B" />
+		<method name="isParityAdjusted([BI)Z" />
+		<field name="DES_EDE_KEY_LEN" />
+	</class>
+	<class name="javax/crypto/spec/DHGenParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(II)V" />
+		<method name="getExponentSize()I" />
+		<method name="getPrimeSize()I" />
+	</class>
+	<class name="javax/crypto/spec/DHParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;I)V" />
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getL()I" />
+		<method name="getP()Ljava/math/BigInteger;" />
+	</class>
+	<class name="javax/crypto/spec/DHPrivateKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getP()Ljava/math/BigInteger;" />
+		<method name="getX()Ljava/math/BigInteger;" />
+	</class>
+	<class name="javax/crypto/spec/DHPublicKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>(Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)V" />
+		<method name="getG()Ljava/math/BigInteger;" />
+		<method name="getP()Ljava/math/BigInteger;" />
+		<method name="getY()Ljava/math/BigInteger;" />
+	</class>
+	<class name="javax/crypto/spec/IvParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>([B)V" />
+		<method name="&lt;init>([BII)V" />
+		<method name="getIV()[B" />
+	</class>
+	<class name="javax/crypto/spec/OAEPParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/security/spec/AlgorithmParameterSpec;Ljavax/crypto/spec/PSource;)V" />
+		<method name="getDigestAlgorithm()Ljava/lang/String;" />
+		<method name="getMGFAlgorithm()Ljava/lang/String;" />
+		<method name="getMGFParameters()Ljava/security/spec/AlgorithmParameterSpec;" />
+		<method name="getPSource()Ljavax/crypto/spec/PSource;" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="javax/crypto/spec/PBEKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<method name="&lt;init>([C)V" />
+		<method name="&lt;init>([C[BI)V" />
+		<method name="&lt;init>([C[BII)V" />
+		<method name="clearPassword()V" />
+		<method name="getIterationCount()I" />
+		<method name="getKeyLength()I" />
+		<method name="getPassword()[C" />
+		<method name="getSalt()[B" />
+	</class>
+	<class name="javax/crypto/spec/PBEParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>([BI)V" />
+		<method name="getIterationCount()I" />
+		<method name="getSalt()[B" />
+	</class>
+	<class name="javax/crypto/spec/PSource" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+	</class>
+	<class name="javax/crypto/spec/PSource$PSpecified" since="1">
+		<extends name="javax/crypto/spec/PSource" />
+		<method name="&lt;init>([B)V" />
+		<method name="getValue()[B" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="javax/crypto/spec/RC2ParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(I[B)V" />
+		<method name="&lt;init>(I[BI)V" />
+		<method name="getEffectiveKeyBits()I" />
+		<method name="getIV()[B" />
+	</class>
+	<class name="javax/crypto/spec/RC5ParameterSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/AlgorithmParameterSpec" />
+		<method name="&lt;init>(III)V" />
+		<method name="&lt;init>(III[B)V" />
+		<method name="&lt;init>(III[BI)V" />
+		<method name="getIV()[B" />
+		<method name="getRounds()I" />
+		<method name="getVersion()I" />
+		<method name="getWordSize()I" />
+	</class>
+	<class name="javax/crypto/spec/SecretKeySpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/spec/KeySpec" />
+		<implements name="javax/crypto/SecretKey" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>([BIILjava/lang/String;)V" />
+		<method name="&lt;init>([BLjava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getEncoded()[B" />
+		<method name="getFormat()Ljava/lang/String;" />
+	</class>
+	<class name="javax/microedition/khronos/egl/EGL" since="1">
+	</class>
+	<class name="javax/microedition/khronos/egl/EGL10" since="1">
+		<implements name="javax/microedition/khronos/egl/EGL" />
+		<method name="eglChooseConfig(Ljavax/microedition/khronos/egl/EGLDisplay;[I[Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z" />
+		<method name="eglCopyBuffers(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;Ljava/lang/Object;)Z" />
+		<method name="eglCreateContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljavax/microedition/khronos/egl/EGLContext;[I)Ljavax/microedition/khronos/egl/EGLContext;" />
+		<method name="eglCreatePbufferSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;[I)Ljavax/microedition/khronos/egl/EGLSurface;" />
+		<method name="eglCreatePixmapSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;[I)Ljavax/microedition/khronos/egl/EGLSurface;" />
+		<method name="eglCreateWindowSurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;Ljava/lang/Object;[I)Ljavax/microedition/khronos/egl/EGLSurface;" />
+		<method name="eglDestroyContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;)Z" />
+		<method name="eglDestroySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)Z" />
+		<method name="eglGetConfigAttrib(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z" />
+		<method name="eglGetConfigs(Ljavax/microedition/khronos/egl/EGLDisplay;[Ljavax/microedition/khronos/egl/EGLConfig;I[I)Z" />
+		<method name="eglGetCurrentContext()Ljavax/microedition/khronos/egl/EGLContext;" />
+		<method name="eglGetCurrentDisplay()Ljavax/microedition/khronos/egl/EGLDisplay;" />
+		<method name="eglGetCurrentSurface(I)Ljavax/microedition/khronos/egl/EGLSurface;" />
+		<method name="eglGetDisplay(Ljava/lang/Object;)Ljavax/microedition/khronos/egl/EGLDisplay;" />
+		<method name="eglGetError()I" />
+		<method name="eglInitialize(Ljavax/microedition/khronos/egl/EGLDisplay;[I)Z" />
+		<method name="eglMakeCurrent(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLSurface;Ljavax/microedition/khronos/egl/EGLContext;)Z" />
+		<method name="eglQueryContext(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLContext;I[I)Z" />
+		<method name="eglQueryString(Ljavax/microedition/khronos/egl/EGLDisplay;I)Ljava/lang/String;" />
+		<method name="eglQuerySurface(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;I[I)Z" />
+		<method name="eglSwapBuffers(Ljavax/microedition/khronos/egl/EGLDisplay;Ljavax/microedition/khronos/egl/EGLSurface;)Z" />
+		<method name="eglTerminate(Ljavax/microedition/khronos/egl/EGLDisplay;)Z" />
+		<method name="eglWaitGL()Z" />
+		<method name="eglWaitNative(ILjava/lang/Object;)Z" />
+		<field name="EGL_ALPHA_FORMAT" />
+		<field name="EGL_ALPHA_MASK_SIZE" />
+		<field name="EGL_ALPHA_SIZE" />
+		<field name="EGL_BAD_ACCESS" />
+		<field name="EGL_BAD_ALLOC" />
+		<field name="EGL_BAD_ATTRIBUTE" />
+		<field name="EGL_BAD_CONFIG" />
+		<field name="EGL_BAD_CONTEXT" />
+		<field name="EGL_BAD_CURRENT_SURFACE" />
+		<field name="EGL_BAD_DISPLAY" />
+		<field name="EGL_BAD_MATCH" />
+		<field name="EGL_BAD_NATIVE_PIXMAP" />
+		<field name="EGL_BAD_NATIVE_WINDOW" />
+		<field name="EGL_BAD_PARAMETER" />
+		<field name="EGL_BAD_SURFACE" />
+		<field name="EGL_BLUE_SIZE" />
+		<field name="EGL_BUFFER_SIZE" />
+		<field name="EGL_COLORSPACE" />
+		<field name="EGL_COLOR_BUFFER_TYPE" />
+		<field name="EGL_CONFIG_CAVEAT" />
+		<field name="EGL_CONFIG_ID" />
+		<field name="EGL_CORE_NATIVE_ENGINE" />
+		<field name="EGL_DEFAULT_DISPLAY" />
+		<field name="EGL_DEPTH_SIZE" />
+		<field name="EGL_DONT_CARE" />
+		<field name="EGL_DRAW" />
+		<field name="EGL_EXTENSIONS" />
+		<field name="EGL_GREEN_SIZE" />
+		<field name="EGL_HEIGHT" />
+		<field name="EGL_HORIZONTAL_RESOLUTION" />
+		<field name="EGL_LARGEST_PBUFFER" />
+		<field name="EGL_LEVEL" />
+		<field name="EGL_LUMINANCE_BUFFER" />
+		<field name="EGL_LUMINANCE_SIZE" />
+		<field name="EGL_MAX_PBUFFER_HEIGHT" />
+		<field name="EGL_MAX_PBUFFER_PIXELS" />
+		<field name="EGL_MAX_PBUFFER_WIDTH" />
+		<field name="EGL_NATIVE_RENDERABLE" />
+		<field name="EGL_NATIVE_VISUAL_ID" />
+		<field name="EGL_NATIVE_VISUAL_TYPE" />
+		<field name="EGL_NONE" />
+		<field name="EGL_NON_CONFORMANT_CONFIG" />
+		<field name="EGL_NOT_INITIALIZED" />
+		<field name="EGL_NO_CONTEXT" />
+		<field name="EGL_NO_DISPLAY" />
+		<field name="EGL_NO_SURFACE" />
+		<field name="EGL_PBUFFER_BIT" />
+		<field name="EGL_PIXEL_ASPECT_RATIO" />
+		<field name="EGL_PIXMAP_BIT" />
+		<field name="EGL_READ" />
+		<field name="EGL_RED_SIZE" />
+		<field name="EGL_RENDERABLE_TYPE" />
+		<field name="EGL_RENDER_BUFFER" />
+		<field name="EGL_RGB_BUFFER" />
+		<field name="EGL_SAMPLES" />
+		<field name="EGL_SAMPLE_BUFFERS" />
+		<field name="EGL_SINGLE_BUFFER" />
+		<field name="EGL_SLOW_CONFIG" />
+		<field name="EGL_STENCIL_SIZE" />
+		<field name="EGL_SUCCESS" />
+		<field name="EGL_SURFACE_TYPE" />
+		<field name="EGL_TRANSPARENT_BLUE_VALUE" />
+		<field name="EGL_TRANSPARENT_GREEN_VALUE" />
+		<field name="EGL_TRANSPARENT_RED_VALUE" />
+		<field name="EGL_TRANSPARENT_RGB" />
+		<field name="EGL_TRANSPARENT_TYPE" />
+		<field name="EGL_VENDOR" />
+		<field name="EGL_VERSION" />
+		<field name="EGL_VERTICAL_RESOLUTION" />
+		<field name="EGL_WIDTH" />
+		<field name="EGL_WINDOW_BIT" />
+	</class>
+	<class name="javax/microedition/khronos/egl/EGL11" since="1">
+		<implements name="javax/microedition/khronos/egl/EGL10" />
+		<field name="EGL_CONTEXT_LOST" />
+	</class>
+	<class name="javax/microedition/khronos/egl/EGLConfig" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="javax/microedition/khronos/egl/EGLContext" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getEGL()Ljavax/microedition/khronos/egl/EGL;" />
+		<method name="getGL()Ljavax/microedition/khronos/opengles/GL;" />
+	</class>
+	<class name="javax/microedition/khronos/egl/EGLDisplay" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="javax/microedition/khronos/egl/EGLSurface" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="javax/microedition/khronos/opengles/GL" since="1">
+	</class>
+	<class name="javax/microedition/khronos/opengles/GL10" since="1">
+		<implements name="javax/microedition/khronos/opengles/GL" />
+		<method name="glActiveTexture(I)V" />
+		<method name="glAlphaFunc(IF)V" />
+		<method name="glAlphaFuncx(II)V" />
+		<method name="glBindTexture(II)V" />
+		<method name="glBlendFunc(II)V" />
+		<method name="glClear(I)V" />
+		<method name="glClearColor(FFFF)V" />
+		<method name="glClearColorx(IIII)V" />
+		<method name="glClearDepthf(F)V" />
+		<method name="glClearDepthx(I)V" />
+		<method name="glClearStencil(I)V" />
+		<method name="glClientActiveTexture(I)V" />
+		<method name="glColor4f(FFFF)V" />
+		<method name="glColor4x(IIII)V" />
+		<method name="glColorMask(ZZZZ)V" />
+		<method name="glColorPointer(IIILjava/nio/Buffer;)V" />
+		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCompressedTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCopyTexImage2D(IIIIIIII)V" />
+		<method name="glCopyTexSubImage2D(IIIIIIII)V" />
+		<method name="glCullFace(I)V" />
+		<method name="glDeleteTextures(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteTextures(I[II)V" />
+		<method name="glDepthFunc(I)V" />
+		<method name="glDepthMask(Z)V" />
+		<method name="glDepthRangef(FF)V" />
+		<method name="glDepthRangex(II)V" />
+		<method name="glDisable(I)V" />
+		<method name="glDisableClientState(I)V" />
+		<method name="glDrawArrays(III)V" />
+		<method name="glDrawElements(IIILjava/nio/Buffer;)V" />
+		<method name="glEnable(I)V" />
+		<method name="glEnableClientState(I)V" />
+		<method name="glFinish()V" />
+		<method name="glFlush()V" />
+		<method name="glFogf(IF)V" />
+		<method name="glFogfv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glFogfv(I[FI)V" />
+		<method name="glFogx(II)V" />
+		<method name="glFogxv(ILjava/nio/IntBuffer;)V" />
+		<method name="glFogxv(I[II)V" />
+		<method name="glFrontFace(I)V" />
+		<method name="glFrustumf(FFFFFF)V" />
+		<method name="glFrustumx(IIIIII)V" />
+		<method name="glGenTextures(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenTextures(I[II)V" />
+		<method name="glGetError()I" />
+		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetIntegerv(I[II)V" />
+		<method name="glGetString(I)Ljava/lang/String;" />
+		<method name="glHint(II)V" />
+		<method name="glLightModelf(IF)V" />
+		<method name="glLightModelfv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glLightModelfv(I[FI)V" />
+		<method name="glLightModelx(II)V" />
+		<method name="glLightModelxv(ILjava/nio/IntBuffer;)V" />
+		<method name="glLightModelxv(I[II)V" />
+		<method name="glLightf(IIF)V" />
+		<method name="glLightfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glLightfv(II[FI)V" />
+		<method name="glLightx(III)V" />
+		<method name="glLightxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glLightxv(II[II)V" />
+		<method name="glLineWidth(F)V" />
+		<method name="glLineWidthx(I)V" />
+		<method name="glLoadIdentity()V" />
+		<method name="glLoadMatrixf(Ljava/nio/FloatBuffer;)V" />
+		<method name="glLoadMatrixf([FI)V" />
+		<method name="glLoadMatrixx(Ljava/nio/IntBuffer;)V" />
+		<method name="glLoadMatrixx([II)V" />
+		<method name="glLogicOp(I)V" />
+		<method name="glMaterialf(IIF)V" />
+		<method name="glMaterialfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glMaterialfv(II[FI)V" />
+		<method name="glMaterialx(III)V" />
+		<method name="glMaterialxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glMaterialxv(II[II)V" />
+		<method name="glMatrixMode(I)V" />
+		<method name="glMultMatrixf(Ljava/nio/FloatBuffer;)V" />
+		<method name="glMultMatrixf([FI)V" />
+		<method name="glMultMatrixx(Ljava/nio/IntBuffer;)V" />
+		<method name="glMultMatrixx([II)V" />
+		<method name="glMultiTexCoord4f(IFFFF)V" />
+		<method name="glMultiTexCoord4x(IIIII)V" />
+		<method name="glNormal3f(FFF)V" />
+		<method name="glNormal3x(III)V" />
+		<method name="glNormalPointer(IILjava/nio/Buffer;)V" />
+		<method name="glOrthof(FFFFFF)V" />
+		<method name="glOrthox(IIIIII)V" />
+		<method name="glPixelStorei(II)V" />
+		<method name="glPointSize(F)V" />
+		<method name="glPointSizex(I)V" />
+		<method name="glPolygonOffset(FF)V" />
+		<method name="glPolygonOffsetx(II)V" />
+		<method name="glPopMatrix()V" />
+		<method name="glPushMatrix()V" />
+		<method name="glReadPixels(IIIIIILjava/nio/Buffer;)V" />
+		<method name="glRotatef(FFFF)V" />
+		<method name="glRotatex(IIII)V" />
+		<method name="glSampleCoverage(FZ)V" />
+		<method name="glSampleCoveragex(IZ)V" />
+		<method name="glScalef(FFF)V" />
+		<method name="glScalex(III)V" />
+		<method name="glScissor(IIII)V" />
+		<method name="glShadeModel(I)V" />
+		<method name="glStencilFunc(III)V" />
+		<method name="glStencilMask(I)V" />
+		<method name="glStencilOp(III)V" />
+		<method name="glTexCoordPointer(IIILjava/nio/Buffer;)V" />
+		<method name="glTexEnvf(IIF)V" />
+		<method name="glTexEnvfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexEnvfv(II[FI)V" />
+		<method name="glTexEnvx(III)V" />
+		<method name="glTexEnvxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexEnvxv(II[II)V" />
+		<method name="glTexImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glTexParameterf(IIF)V" />
+		<method name="glTexParameterx(III)V" />
+		<method name="glTexSubImage2D(IIIIIIIILjava/nio/Buffer;)V" />
+		<method name="glTranslatef(FFF)V" />
+		<method name="glTranslatex(III)V" />
+		<method name="glVertexPointer(IIILjava/nio/Buffer;)V" />
+		<method name="glViewport(IIII)V" />
+		<field name="GL_ADD" />
+		<field name="GL_ALIASED_LINE_WIDTH_RANGE" />
+		<field name="GL_ALIASED_POINT_SIZE_RANGE" />
+		<field name="GL_ALPHA" />
+		<field name="GL_ALPHA_BITS" />
+		<field name="GL_ALPHA_TEST" />
+		<field name="GL_ALWAYS" />
+		<field name="GL_AMBIENT" />
+		<field name="GL_AMBIENT_AND_DIFFUSE" />
+		<field name="GL_AND" />
+		<field name="GL_AND_INVERTED" />
+		<field name="GL_AND_REVERSE" />
+		<field name="GL_BACK" />
+		<field name="GL_BLEND" />
+		<field name="GL_BLUE_BITS" />
+		<field name="GL_BYTE" />
+		<field name="GL_CCW" />
+		<field name="GL_CLAMP_TO_EDGE" />
+		<field name="GL_CLEAR" />
+		<field name="GL_COLOR_ARRAY" />
+		<field name="GL_COLOR_BUFFER_BIT" />
+		<field name="GL_COLOR_LOGIC_OP" />
+		<field name="GL_COLOR_MATERIAL" />
+		<field name="GL_COMPRESSED_TEXTURE_FORMATS" />
+		<field name="GL_CONSTANT_ATTENUATION" />
+		<field name="GL_COPY" />
+		<field name="GL_COPY_INVERTED" />
+		<field name="GL_CULL_FACE" />
+		<field name="GL_CW" />
+		<field name="GL_DECAL" />
+		<field name="GL_DECR" />
+		<field name="GL_DEPTH_BITS" />
+		<field name="GL_DEPTH_BUFFER_BIT" />
+		<field name="GL_DEPTH_TEST" />
+		<field name="GL_DIFFUSE" />
+		<field name="GL_DITHER" />
+		<field name="GL_DONT_CARE" />
+		<field name="GL_DST_ALPHA" />
+		<field name="GL_DST_COLOR" />
+		<field name="GL_EMISSION" />
+		<field name="GL_EQUAL" />
+		<field name="GL_EQUIV" />
+		<field name="GL_EXP" />
+		<field name="GL_EXP2" />
+		<field name="GL_EXTENSIONS" />
+		<field name="GL_FALSE" />
+		<field name="GL_FASTEST" />
+		<field name="GL_FIXED" />
+		<field name="GL_FLAT" />
+		<field name="GL_FLOAT" />
+		<field name="GL_FOG" />
+		<field name="GL_FOG_COLOR" />
+		<field name="GL_FOG_DENSITY" />
+		<field name="GL_FOG_END" />
+		<field name="GL_FOG_HINT" />
+		<field name="GL_FOG_MODE" />
+		<field name="GL_FOG_START" />
+		<field name="GL_FRONT" />
+		<field name="GL_FRONT_AND_BACK" />
+		<field name="GL_GEQUAL" />
+		<field name="GL_GREATER" />
+		<field name="GL_GREEN_BITS" />
+		<field name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES" />
+		<field name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES" />
+		<field name="GL_INCR" />
+		<field name="GL_INVALID_ENUM" />
+		<field name="GL_INVALID_OPERATION" />
+		<field name="GL_INVALID_VALUE" />
+		<field name="GL_INVERT" />
+		<field name="GL_KEEP" />
+		<field name="GL_LEQUAL" />
+		<field name="GL_LESS" />
+		<field name="GL_LIGHT0" />
+		<field name="GL_LIGHT1" />
+		<field name="GL_LIGHT2" />
+		<field name="GL_LIGHT3" />
+		<field name="GL_LIGHT4" />
+		<field name="GL_LIGHT5" />
+		<field name="GL_LIGHT6" />
+		<field name="GL_LIGHT7" />
+		<field name="GL_LIGHTING" />
+		<field name="GL_LIGHT_MODEL_AMBIENT" />
+		<field name="GL_LIGHT_MODEL_TWO_SIDE" />
+		<field name="GL_LINEAR" />
+		<field name="GL_LINEAR_ATTENUATION" />
+		<field name="GL_LINEAR_MIPMAP_LINEAR" />
+		<field name="GL_LINEAR_MIPMAP_NEAREST" />
+		<field name="GL_LINES" />
+		<field name="GL_LINE_LOOP" />
+		<field name="GL_LINE_SMOOTH" />
+		<field name="GL_LINE_SMOOTH_HINT" />
+		<field name="GL_LINE_STRIP" />
+		<field name="GL_LUMINANCE" />
+		<field name="GL_LUMINANCE_ALPHA" />
+		<field name="GL_MAX_ELEMENTS_INDICES" />
+		<field name="GL_MAX_ELEMENTS_VERTICES" />
+		<field name="GL_MAX_LIGHTS" />
+		<field name="GL_MAX_MODELVIEW_STACK_DEPTH" />
+		<field name="GL_MAX_PROJECTION_STACK_DEPTH" />
+		<field name="GL_MAX_TEXTURE_SIZE" />
+		<field name="GL_MAX_TEXTURE_STACK_DEPTH" />
+		<field name="GL_MAX_TEXTURE_UNITS" />
+		<field name="GL_MAX_VIEWPORT_DIMS" />
+		<field name="GL_MODELVIEW" />
+		<field name="GL_MODULATE" />
+		<field name="GL_MULTISAMPLE" />
+		<field name="GL_NAND" />
+		<field name="GL_NEAREST" />
+		<field name="GL_NEAREST_MIPMAP_LINEAR" />
+		<field name="GL_NEAREST_MIPMAP_NEAREST" />
+		<field name="GL_NEVER" />
+		<field name="GL_NICEST" />
+		<field name="GL_NOOP" />
+		<field name="GL_NOR" />
+		<field name="GL_NORMALIZE" />
+		<field name="GL_NORMAL_ARRAY" />
+		<field name="GL_NOTEQUAL" />
+		<field name="GL_NO_ERROR" />
+		<field name="GL_NUM_COMPRESSED_TEXTURE_FORMATS" />
+		<field name="GL_ONE" />
+		<field name="GL_ONE_MINUS_DST_ALPHA" />
+		<field name="GL_ONE_MINUS_DST_COLOR" />
+		<field name="GL_ONE_MINUS_SRC_ALPHA" />
+		<field name="GL_ONE_MINUS_SRC_COLOR" />
+		<field name="GL_OR" />
+		<field name="GL_OR_INVERTED" />
+		<field name="GL_OR_REVERSE" />
+		<field name="GL_OUT_OF_MEMORY" />
+		<field name="GL_PACK_ALIGNMENT" />
+		<field name="GL_PALETTE4_R5_G6_B5_OES" />
+		<field name="GL_PALETTE4_RGB5_A1_OES" />
+		<field name="GL_PALETTE4_RGB8_OES" />
+		<field name="GL_PALETTE4_RGBA4_OES" />
+		<field name="GL_PALETTE4_RGBA8_OES" />
+		<field name="GL_PALETTE8_R5_G6_B5_OES" />
+		<field name="GL_PALETTE8_RGB5_A1_OES" />
+		<field name="GL_PALETTE8_RGB8_OES" />
+		<field name="GL_PALETTE8_RGBA4_OES" />
+		<field name="GL_PALETTE8_RGBA8_OES" />
+		<field name="GL_PERSPECTIVE_CORRECTION_HINT" />
+		<field name="GL_POINTS" />
+		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
+		<field name="GL_POINT_SIZE" />
+		<field name="GL_POINT_SMOOTH" />
+		<field name="GL_POINT_SMOOTH_HINT" />
+		<field name="GL_POLYGON_OFFSET_FILL" />
+		<field name="GL_POLYGON_SMOOTH_HINT" />
+		<field name="GL_POSITION" />
+		<field name="GL_PROJECTION" />
+		<field name="GL_QUADRATIC_ATTENUATION" />
+		<field name="GL_RED_BITS" />
+		<field name="GL_RENDERER" />
+		<field name="GL_REPEAT" />
+		<field name="GL_REPLACE" />
+		<field name="GL_RESCALE_NORMAL" />
+		<field name="GL_RGB" />
+		<field name="GL_RGBA" />
+		<field name="GL_SAMPLE_ALPHA_TO_COVERAGE" />
+		<field name="GL_SAMPLE_ALPHA_TO_ONE" />
+		<field name="GL_SAMPLE_COVERAGE" />
+		<field name="GL_SCISSOR_TEST" />
+		<field name="GL_SET" />
+		<field name="GL_SHININESS" />
+		<field name="GL_SHORT" />
+		<field name="GL_SMOOTH" />
+		<field name="GL_SMOOTH_LINE_WIDTH_RANGE" />
+		<field name="GL_SMOOTH_POINT_SIZE_RANGE" />
+		<field name="GL_SPECULAR" />
+		<field name="GL_SPOT_CUTOFF" />
+		<field name="GL_SPOT_DIRECTION" />
+		<field name="GL_SPOT_EXPONENT" />
+		<field name="GL_SRC_ALPHA" />
+		<field name="GL_SRC_ALPHA_SATURATE" />
+		<field name="GL_SRC_COLOR" />
+		<field name="GL_STACK_OVERFLOW" />
+		<field name="GL_STACK_UNDERFLOW" />
+		<field name="GL_STENCIL_BITS" />
+		<field name="GL_STENCIL_BUFFER_BIT" />
+		<field name="GL_STENCIL_TEST" />
+		<field name="GL_SUBPIXEL_BITS" />
+		<field name="GL_TEXTURE" />
+		<field name="GL_TEXTURE0" />
+		<field name="GL_TEXTURE1" />
+		<field name="GL_TEXTURE10" />
+		<field name="GL_TEXTURE11" />
+		<field name="GL_TEXTURE12" />
+		<field name="GL_TEXTURE13" />
+		<field name="GL_TEXTURE14" />
+		<field name="GL_TEXTURE15" />
+		<field name="GL_TEXTURE16" />
+		<field name="GL_TEXTURE17" />
+		<field name="GL_TEXTURE18" />
+		<field name="GL_TEXTURE19" />
+		<field name="GL_TEXTURE2" />
+		<field name="GL_TEXTURE20" />
+		<field name="GL_TEXTURE21" />
+		<field name="GL_TEXTURE22" />
+		<field name="GL_TEXTURE23" />
+		<field name="GL_TEXTURE24" />
+		<field name="GL_TEXTURE25" />
+		<field name="GL_TEXTURE26" />
+		<field name="GL_TEXTURE27" />
+		<field name="GL_TEXTURE28" />
+		<field name="GL_TEXTURE29" />
+		<field name="GL_TEXTURE3" />
+		<field name="GL_TEXTURE30" />
+		<field name="GL_TEXTURE31" />
+		<field name="GL_TEXTURE4" />
+		<field name="GL_TEXTURE5" />
+		<field name="GL_TEXTURE6" />
+		<field name="GL_TEXTURE7" />
+		<field name="GL_TEXTURE8" />
+		<field name="GL_TEXTURE9" />
+		<field name="GL_TEXTURE_2D" />
+		<field name="GL_TEXTURE_COORD_ARRAY" />
+		<field name="GL_TEXTURE_ENV" />
+		<field name="GL_TEXTURE_ENV_COLOR" />
+		<field name="GL_TEXTURE_ENV_MODE" />
+		<field name="GL_TEXTURE_MAG_FILTER" />
+		<field name="GL_TEXTURE_MIN_FILTER" />
+		<field name="GL_TEXTURE_WRAP_S" />
+		<field name="GL_TEXTURE_WRAP_T" />
+		<field name="GL_TRIANGLES" />
+		<field name="GL_TRIANGLE_FAN" />
+		<field name="GL_TRIANGLE_STRIP" />
+		<field name="GL_TRUE" />
+		<field name="GL_UNPACK_ALIGNMENT" />
+		<field name="GL_UNSIGNED_BYTE" />
+		<field name="GL_UNSIGNED_SHORT" />
+		<field name="GL_UNSIGNED_SHORT_4_4_4_4" />
+		<field name="GL_UNSIGNED_SHORT_5_5_5_1" />
+		<field name="GL_UNSIGNED_SHORT_5_6_5" />
+		<field name="GL_VENDOR" />
+		<field name="GL_VERSION" />
+		<field name="GL_VERTEX_ARRAY" />
+		<field name="GL_XOR" />
+		<field name="GL_ZERO" />
+	</class>
+	<class name="javax/microedition/khronos/opengles/GL10Ext" since="1">
+		<implements name="javax/microedition/khronos/opengles/GL" />
+		<method name="glQueryMatrixxOES(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I" />
+		<method name="glQueryMatrixxOES([II[II)I" />
+	</class>
+	<class name="javax/microedition/khronos/opengles/GL11" since="1">
+		<implements name="javax/microedition/khronos/opengles/GL10" />
+		<method name="glBindBuffer(II)V" />
+		<method name="glBufferData(IILjava/nio/Buffer;I)V" />
+		<method name="glBufferSubData(IIILjava/nio/Buffer;)V" />
+		<method name="glClipPlanef(ILjava/nio/FloatBuffer;)V" />
+		<method name="glClipPlanef(I[FI)V" />
+		<method name="glClipPlanex(ILjava/nio/IntBuffer;)V" />
+		<method name="glClipPlanex(I[II)V" />
+		<method name="glColor4ub(BBBB)V" />
+		<method name="glColorPointer(IIII)V" />
+		<method name="glDeleteBuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteBuffers(I[II)V" />
+		<method name="glDrawElements(IIII)V" />
+		<method name="glGenBuffers(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenBuffers(I[II)V" />
+		<method name="glGetBooleanv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetBooleanv(I[ZI)V" />
+		<method name="glGetBufferParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetBufferParameteriv(II[II)V" />
+		<method name="glGetClipPlanef(ILjava/nio/FloatBuffer;)V" />
+		<method name="glGetClipPlanef(I[FI)V" />
+		<method name="glGetClipPlanex(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetClipPlanex(I[II)V" />
+		<method name="glGetFixedv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetFixedv(I[II)V" />
+		<method name="glGetFloatv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glGetFloatv(I[FI)V" />
+		<method name="glGetLightfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetLightfv(II[FI)V" />
+		<method name="glGetLightxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetLightxv(II[II)V" />
+		<method name="glGetMaterialfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetMaterialfv(II[FI)V" />
+		<method name="glGetMaterialxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetMaterialxv(II[II)V" />
+		<method name="glGetPointerv(I[Ljava/nio/Buffer;)V" />
+		<method name="glGetTexEnviv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexEnviv(II[II)V" />
+		<method name="glGetTexEnvxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexEnvxv(II[II)V" />
+		<method name="glGetTexParameterfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetTexParameterfv(II[FI)V" />
+		<method name="glGetTexParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexParameteriv(II[II)V" />
+		<method name="glGetTexParameterxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexParameterxv(II[II)V" />
+		<method name="glIsBuffer(I)Z" />
+		<method name="glIsEnabled(I)Z" />
+		<method name="glIsTexture(I)Z" />
+		<method name="glNormalPointer(III)V" />
+		<method name="glPointParameterf(IF)V" />
+		<method name="glPointParameterfv(ILjava/nio/FloatBuffer;)V" />
+		<method name="glPointParameterfv(I[FI)V" />
+		<method name="glPointParameterx(II)V" />
+		<method name="glPointParameterxv(ILjava/nio/IntBuffer;)V" />
+		<method name="glPointParameterxv(I[II)V" />
+		<method name="glPointSizePointerOES(IILjava/nio/Buffer;)V" />
+		<method name="glTexCoordPointer(IIII)V" />
+		<method name="glTexEnvi(III)V" />
+		<method name="glTexEnviv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexEnviv(II[II)V" />
+		<method name="glTexParameterfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexParameterfv(II[FI)V" />
+		<method name="glTexParameteri(III)V" />
+		<method name="glTexParameteriv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexParameteriv(II[II)V" />
+		<method name="glTexParameterxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexParameterxv(II[II)V" />
+		<method name="glVertexPointer(IIII)V" />
+		<field name="GL_ACTIVE_TEXTURE" />
+		<field name="GL_ADD_SIGNED" />
+		<field name="GL_ALPHA_SCALE" />
+		<field name="GL_ALPHA_TEST_FUNC" />
+		<field name="GL_ALPHA_TEST_REF" />
+		<field name="GL_ARRAY_BUFFER" />
+		<field name="GL_ARRAY_BUFFER_BINDING" />
+		<field name="GL_BLEND_DST" />
+		<field name="GL_BLEND_SRC" />
+		<field name="GL_BUFFER_ACCESS" />
+		<field name="GL_BUFFER_SIZE" />
+		<field name="GL_BUFFER_USAGE" />
+		<field name="GL_CLIENT_ACTIVE_TEXTURE" />
+		<field name="GL_CLIP_PLANE0" />
+		<field name="GL_CLIP_PLANE1" />
+		<field name="GL_CLIP_PLANE2" />
+		<field name="GL_CLIP_PLANE3" />
+		<field name="GL_CLIP_PLANE4" />
+		<field name="GL_CLIP_PLANE5" />
+		<field name="GL_COLOR_ARRAY_BUFFER_BINDING" />
+		<field name="GL_COLOR_ARRAY_POINTER" />
+		<field name="GL_COLOR_ARRAY_SIZE" />
+		<field name="GL_COLOR_ARRAY_STRIDE" />
+		<field name="GL_COLOR_ARRAY_TYPE" />
+		<field name="GL_COLOR_CLEAR_VALUE" />
+		<field name="GL_COLOR_WRITEMASK" />
+		<field name="GL_COMBINE" />
+		<field name="GL_COMBINE_ALPHA" />
+		<field name="GL_COMBINE_RGB" />
+		<field name="GL_CONSTANT" />
+		<field name="GL_COORD_REPLACE_OES" />
+		<field name="GL_CULL_FACE_MODE" />
+		<field name="GL_CURRENT_COLOR" />
+		<field name="GL_CURRENT_NORMAL" />
+		<field name="GL_CURRENT_TEXTURE_COORDS" />
+		<field name="GL_DEPTH_CLEAR_VALUE" />
+		<field name="GL_DEPTH_FUNC" />
+		<field name="GL_DEPTH_RANGE" />
+		<field name="GL_DEPTH_WRITEMASK" />
+		<field name="GL_DOT3_RGB" />
+		<field name="GL_DOT3_RGBA" />
+		<field name="GL_DYNAMIC_DRAW" />
+		<field name="GL_ELEMENT_ARRAY_BUFFER" />
+		<field name="GL_ELEMENT_ARRAY_BUFFER_BINDING" />
+		<field name="GL_FRONT_FACE" />
+		<field name="GL_GENERATE_MIPMAP" />
+		<field name="GL_GENERATE_MIPMAP_HINT" />
+		<field name="GL_INTERPOLATE" />
+		<field name="GL_LINE_WIDTH" />
+		<field name="GL_LOGIC_OP_MODE" />
+		<field name="GL_MATRIX_MODE" />
+		<field name="GL_MAX_CLIP_PLANES" />
+		<field name="GL_MODELVIEW_MATRIX" />
+		<field name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_MODELVIEW_STACK_DEPTH" />
+		<field name="GL_NORMAL_ARRAY_BUFFER_BINDING" />
+		<field name="GL_NORMAL_ARRAY_POINTER" />
+		<field name="GL_NORMAL_ARRAY_STRIDE" />
+		<field name="GL_NORMAL_ARRAY_TYPE" />
+		<field name="GL_OPERAND0_ALPHA" />
+		<field name="GL_OPERAND0_RGB" />
+		<field name="GL_OPERAND1_ALPHA" />
+		<field name="GL_OPERAND1_RGB" />
+		<field name="GL_OPERAND2_ALPHA" />
+		<field name="GL_OPERAND2_RGB" />
+		<field name="GL_POINT_DISTANCE_ATTENUATION" />
+		<field name="GL_POINT_FADE_THRESHOLD_SIZE" />
+		<field name="GL_POINT_SIZE" />
+		<field name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_POINTER_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_STRIDE_OES" />
+		<field name="GL_POINT_SIZE_ARRAY_TYPE_OES" />
+		<field name="GL_POINT_SIZE_MAX" />
+		<field name="GL_POINT_SIZE_MIN" />
+		<field name="GL_POINT_SPRITE_OES" />
+		<field name="GL_POLYGON_OFFSET_FACTOR" />
+		<field name="GL_POLYGON_OFFSET_UNITS" />
+		<field name="GL_PREVIOUS" />
+		<field name="GL_PRIMARY_COLOR" />
+		<field name="GL_PROJECTION_MATRIX" />
+		<field name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_PROJECTION_STACK_DEPTH" />
+		<field name="GL_RGB_SCALE" />
+		<field name="GL_SAMPLES" />
+		<field name="GL_SAMPLE_BUFFERS" />
+		<field name="GL_SAMPLE_COVERAGE_INVERT" />
+		<field name="GL_SAMPLE_COVERAGE_VALUE" />
+		<field name="GL_SCISSOR_BOX" />
+		<field name="GL_SHADE_MODEL" />
+		<field name="GL_SRC0_ALPHA" />
+		<field name="GL_SRC0_RGB" />
+		<field name="GL_SRC1_ALPHA" />
+		<field name="GL_SRC1_RGB" />
+		<field name="GL_SRC2_ALPHA" />
+		<field name="GL_SRC2_RGB" />
+		<field name="GL_STATIC_DRAW" />
+		<field name="GL_STENCIL_CLEAR_VALUE" />
+		<field name="GL_STENCIL_FAIL" />
+		<field name="GL_STENCIL_FUNC" />
+		<field name="GL_STENCIL_PASS_DEPTH_FAIL" />
+		<field name="GL_STENCIL_PASS_DEPTH_PASS" />
+		<field name="GL_STENCIL_REF" />
+		<field name="GL_STENCIL_VALUE_MASK" />
+		<field name="GL_STENCIL_WRITEMASK" />
+		<field name="GL_SUBTRACT" />
+		<field name="GL_TEXTURE_BINDING_2D" />
+		<field name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING" />
+		<field name="GL_TEXTURE_COORD_ARRAY_POINTER" />
+		<field name="GL_TEXTURE_COORD_ARRAY_SIZE" />
+		<field name="GL_TEXTURE_COORD_ARRAY_STRIDE" />
+		<field name="GL_TEXTURE_COORD_ARRAY_TYPE" />
+		<field name="GL_TEXTURE_MATRIX" />
+		<field name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES" />
+		<field name="GL_TEXTURE_STACK_DEPTH" />
+		<field name="GL_VERTEX_ARRAY_BUFFER_BINDING" />
+		<field name="GL_VERTEX_ARRAY_POINTER" />
+		<field name="GL_VERTEX_ARRAY_SIZE" />
+		<field name="GL_VERTEX_ARRAY_STRIDE" />
+		<field name="GL_VERTEX_ARRAY_TYPE" />
+		<field name="GL_VIEWPORT" />
+		<field name="GL_WRITE_ONLY" />
+	</class>
+	<class name="javax/microedition/khronos/opengles/GL11Ext" since="1">
+		<implements name="javax/microedition/khronos/opengles/GL" />
+		<method name="glCurrentPaletteMatrixOES(I)V" />
+		<method name="glDrawTexfOES(FFFFF)V" />
+		<method name="glDrawTexfvOES(Ljava/nio/FloatBuffer;)V" />
+		<method name="glDrawTexfvOES([FI)V" />
+		<method name="glDrawTexiOES(IIIII)V" />
+		<method name="glDrawTexivOES(Ljava/nio/IntBuffer;)V" />
+		<method name="glDrawTexivOES([II)V" />
+		<method name="glDrawTexsOES(SSSSS)V" />
+		<method name="glDrawTexsvOES(Ljava/nio/ShortBuffer;)V" />
+		<method name="glDrawTexsvOES([SI)V" />
+		<method name="glDrawTexxOES(IIIII)V" />
+		<method name="glDrawTexxvOES(Ljava/nio/IntBuffer;)V" />
+		<method name="glDrawTexxvOES([II)V" />
+		<method name="glEnable(I)V" />
+		<method name="glEnableClientState(I)V" />
+		<method name="glLoadPaletteFromModelViewMatrixOES()V" />
+		<method name="glMatrixIndexPointerOES(IIII)V" />
+		<method name="glMatrixIndexPointerOES(IIILjava/nio/Buffer;)V" />
+		<method name="glTexParameterfv(II[FI)V" />
+		<method name="glWeightPointerOES(IIII)V" />
+		<method name="glWeightPointerOES(IIILjava/nio/Buffer;)V" />
+		<field name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_POINTER_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_SIZE_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES" />
+		<field name="GL_MATRIX_INDEX_ARRAY_TYPE_OES" />
+		<field name="GL_MATRIX_PALETTE_OES" />
+		<field name="GL_MAX_PALETTE_MATRICES_OES" />
+		<field name="GL_MAX_VERTEX_UNITS_OES" />
+		<field name="GL_TEXTURE_CROP_RECT_OES" />
+		<field name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES" />
+		<field name="GL_WEIGHT_ARRAY_OES" />
+		<field name="GL_WEIGHT_ARRAY_POINTER_OES" />
+		<field name="GL_WEIGHT_ARRAY_SIZE_OES" />
+		<field name="GL_WEIGHT_ARRAY_STRIDE_OES" />
+		<field name="GL_WEIGHT_ARRAY_TYPE_OES" />
+	</class>
+	<class name="javax/microedition/khronos/opengles/GL11ExtensionPack" since="1">
+		<implements name="javax/microedition/khronos/opengles/GL" />
+		<method name="glBindFramebufferOES(II)V" />
+		<method name="glBindRenderbufferOES(II)V" />
+		<method name="glBindTexture(II)V" />
+		<method name="glBlendEquation(I)V" />
+		<method name="glBlendEquationSeparate(II)V" />
+		<method name="glBlendFuncSeparate(IIII)V" />
+		<method name="glCheckFramebufferStatusOES(I)I" />
+		<method name="glCompressedTexImage2D(IIIIIIILjava/nio/Buffer;)V" />
+		<method name="glCopyTexImage2D(IIIIIIII)V" />
+		<method name="glDeleteFramebuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteFramebuffersOES(I[II)V" />
+		<method name="glDeleteRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glDeleteRenderbuffersOES(I[II)V" />
+		<method name="glEnable(I)V" />
+		<method name="glFramebufferRenderbufferOES(IIII)V" />
+		<method name="glFramebufferTexture2DOES(IIIII)V" />
+		<method name="glGenFramebuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenFramebuffersOES(I[II)V" />
+		<method name="glGenRenderbuffersOES(ILjava/nio/IntBuffer;)V" />
+		<method name="glGenRenderbuffersOES(I[II)V" />
+		<method name="glGenerateMipmapOES(I)V" />
+		<method name="glGetFramebufferAttachmentParameterivOES(IIILjava/nio/IntBuffer;)V" />
+		<method name="glGetFramebufferAttachmentParameterivOES(III[II)V" />
+		<method name="glGetIntegerv(ILjava/nio/IntBuffer;)V" />
+		<method name="glGetIntegerv(I[II)V" />
+		<method name="glGetRenderbufferParameterivOES(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetRenderbufferParameterivOES(II[II)V" />
+		<method name="glGetTexGenfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glGetTexGenfv(II[FI)V" />
+		<method name="glGetTexGeniv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexGeniv(II[II)V" />
+		<method name="glGetTexGenxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glGetTexGenxv(II[II)V" />
+		<method name="glIsFramebufferOES(I)Z" />
+		<method name="glIsRenderbufferOES(I)Z" />
+		<method name="glRenderbufferStorageOES(IIII)V" />
+		<method name="glStencilOp(III)V" />
+		<method name="glTexEnvf(IIF)V" />
+		<method name="glTexEnvfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexEnvfv(II[FI)V" />
+		<method name="glTexEnvx(III)V" />
+		<method name="glTexEnvxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexEnvxv(II[II)V" />
+		<method name="glTexGenf(IIF)V" />
+		<method name="glTexGenfv(IILjava/nio/FloatBuffer;)V" />
+		<method name="glTexGenfv(II[FI)V" />
+		<method name="glTexGeni(III)V" />
+		<method name="glTexGeniv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexGeniv(II[II)V" />
+		<method name="glTexGenx(III)V" />
+		<method name="glTexGenxv(IILjava/nio/IntBuffer;)V" />
+		<method name="glTexGenxv(II[II)V" />
+		<method name="glTexParameterf(IIF)V" />
+		<field name="GL_BLEND_DST_ALPHA" />
+		<field name="GL_BLEND_DST_RGB" />
+		<field name="GL_BLEND_EQUATION" />
+		<field name="GL_BLEND_EQUATION_ALPHA" />
+		<field name="GL_BLEND_EQUATION_RGB" />
+		<field name="GL_BLEND_SRC_ALPHA" />
+		<field name="GL_BLEND_SRC_RGB" />
+		<field name="GL_COLOR_ATTACHMENT0_OES" />
+		<field name="GL_COLOR_ATTACHMENT10_OES" />
+		<field name="GL_COLOR_ATTACHMENT11_OES" />
+		<field name="GL_COLOR_ATTACHMENT12_OES" />
+		<field name="GL_COLOR_ATTACHMENT13_OES" />
+		<field name="GL_COLOR_ATTACHMENT14_OES" />
+		<field name="GL_COLOR_ATTACHMENT15_OES" />
+		<field name="GL_COLOR_ATTACHMENT1_OES" />
+		<field name="GL_COLOR_ATTACHMENT2_OES" />
+		<field name="GL_COLOR_ATTACHMENT3_OES" />
+		<field name="GL_COLOR_ATTACHMENT4_OES" />
+		<field name="GL_COLOR_ATTACHMENT5_OES" />
+		<field name="GL_COLOR_ATTACHMENT6_OES" />
+		<field name="GL_COLOR_ATTACHMENT7_OES" />
+		<field name="GL_COLOR_ATTACHMENT8_OES" />
+		<field name="GL_COLOR_ATTACHMENT9_OES" />
+		<field name="GL_DECR_WRAP" />
+		<field name="GL_DEPTH_ATTACHMENT_OES" />
+		<field name="GL_DEPTH_COMPONENT" />
+		<field name="GL_DEPTH_COMPONENT16" />
+		<field name="GL_DEPTH_COMPONENT24" />
+		<field name="GL_DEPTH_COMPONENT32" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES" />
+		<field name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES" />
+		<field name="GL_FRAMEBUFFER_BINDING_OES" />
+		<field name="GL_FRAMEBUFFER_COMPLETE_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES" />
+		<field name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES" />
+		<field name="GL_FRAMEBUFFER_OES" />
+		<field name="GL_FRAMEBUFFER_UNSUPPORTED_OES" />
+		<field name="GL_FUNC_ADD" />
+		<field name="GL_FUNC_REVERSE_SUBTRACT" />
+		<field name="GL_FUNC_SUBTRACT" />
+		<field name="GL_INCR_WRAP" />
+		<field name="GL_INVALID_FRAMEBUFFER_OPERATION_OES" />
+		<field name="GL_MAX_COLOR_ATTACHMENTS_OES" />
+		<field name="GL_MAX_CUBE_MAP_TEXTURE_SIZE" />
+		<field name="GL_MAX_RENDERBUFFER_SIZE_OES" />
+		<field name="GL_MIRRORED_REPEAT" />
+		<field name="GL_NORMAL_MAP" />
+		<field name="GL_REFLECTION_MAP" />
+		<field name="GL_RENDERBUFFER_ALPHA_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_BINDING_OES" />
+		<field name="GL_RENDERBUFFER_BLUE_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_DEPTH_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_GREEN_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_HEIGHT_OES" />
+		<field name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES" />
+		<field name="GL_RENDERBUFFER_OES" />
+		<field name="GL_RENDERBUFFER_RED_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_STENCIL_SIZE_OES" />
+		<field name="GL_RENDERBUFFER_WIDTH_OES" />
+		<field name="GL_RGB565_OES" />
+		<field name="GL_RGB5_A1" />
+		<field name="GL_RGB8" />
+		<field name="GL_RGBA4" />
+		<field name="GL_RGBA8" />
+		<field name="GL_STENCIL_ATTACHMENT_OES" />
+		<field name="GL_STENCIL_INDEX" />
+		<field name="GL_STENCIL_INDEX1_OES" />
+		<field name="GL_STENCIL_INDEX4_OES" />
+		<field name="GL_STENCIL_INDEX8_OES" />
+		<field name="GL_STR" />
+		<field name="GL_TEXTURE_BINDING_CUBE_MAP" />
+		<field name="GL_TEXTURE_CUBE_MAP" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y" />
+		<field name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_X" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y" />
+		<field name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z" />
+		<field name="GL_TEXTURE_GEN_MODE" />
+		<field name="GL_TEXTURE_GEN_STR" />
+	</class>
+	<class name="javax/net/ServerSocketFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="createServerSocket()Ljava/net/ServerSocket;" />
+		<method name="createServerSocket(I)Ljava/net/ServerSocket;" />
+		<method name="createServerSocket(II)Ljava/net/ServerSocket;" />
+		<method name="createServerSocket(IILjava/net/InetAddress;)Ljava/net/ServerSocket;" />
+		<method name="getDefault()Ljavax/net/ServerSocketFactory;" />
+	</class>
+	<class name="javax/net/SocketFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="createSocket()Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/lang/String;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/lang/String;ILjava/net/InetAddress;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/net/InetAddress;I)Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/net/InetAddress;ILjava/net/InetAddress;I)Ljava/net/Socket;" />
+		<method name="getDefault()Ljavax/net/SocketFactory;" />
+	</class>
+	<class name="javax/net/ssl/CertPathTrustManagerParameters" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="javax/net/ssl/ManagerFactoryParameters" />
+		<method name="&lt;init>(Ljava/security/cert/CertPathParameters;)V" />
+		<method name="getParameters()Ljava/security/cert/CertPathParameters;" />
+	</class>
+	<class name="javax/net/ssl/HandshakeCompletedEvent" since="1">
+		<extends name="java/util/EventObject" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljavax/net/ssl/SSLSocket;Ljavax/net/ssl/SSLSession;)V" />
+		<method name="getCipherSuite()Ljava/lang/String;" />
+		<method name="getLocalCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getLocalPrincipal()Ljava/security/Principal;" />
+		<method name="getPeerCertificateChain()[Ljavax/security/cert/X509Certificate;" />
+		<method name="getPeerCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getPeerPrincipal()Ljava/security/Principal;" />
+		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
+		<method name="getSocket()Ljavax/net/ssl/SSLSocket;" />
+	</class>
+	<class name="javax/net/ssl/HandshakeCompletedListener" since="1">
+		<implements name="java/util/EventListener" />
+		<method name="handshakeCompleted(Ljavax/net/ssl/HandshakeCompletedEvent;)V" />
+	</class>
+	<class name="javax/net/ssl/HostnameVerifier" since="1">
+		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z" />
+	</class>
+	<class name="javax/net/ssl/HttpsURLConnection" since="1">
+		<extends name="java/net/HttpURLConnection" />
+		<method name="&lt;init>(Ljava/net/URL;)V" />
+		<method name="getCipherSuite()Ljava/lang/String;" />
+		<method name="getDefaultHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;" />
+		<method name="getDefaultSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
+		<method name="getHostnameVerifier()Ljavax/net/ssl/HostnameVerifier;" />
+		<method name="getLocalCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getLocalPrincipal()Ljava/security/Principal;" />
+		<method name="getPeerPrincipal()Ljava/security/Principal;" />
+		<method name="getSSLSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
+		<method name="getServerCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="setDefaultHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V" />
+		<method name="setDefaultSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V" />
+		<method name="setHostnameVerifier(Ljavax/net/ssl/HostnameVerifier;)V" />
+		<method name="setSSLSocketFactory(Ljavax/net/ssl/SSLSocketFactory;)V" />
+		<field name="hostnameVerifier" />
+	</class>
+	<class name="javax/net/ssl/KeyManager" since="1">
+	</class>
+	<class name="javax/net/ssl/KeyManagerFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/net/ssl/KeyManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getDefaultAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/KeyManagerFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/KeyManagerFactory;" />
+		<method name="getKeyManagers()[Ljavax/net/ssl/KeyManager;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="init(Ljava/security/KeyStore;[C)V" />
+		<method name="init(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
+	</class>
+	<class name="javax/net/ssl/KeyManagerFactorySpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGetKeyManagers()[Ljavax/net/ssl/KeyManager;" />
+		<method name="engineInit(Ljava/security/KeyStore;[C)V" />
+		<method name="engineInit(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
+	</class>
+	<class name="javax/net/ssl/KeyStoreBuilderParameters" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="javax/net/ssl/ManagerFactoryParameters" />
+		<method name="&lt;init>(Ljava/security/KeyStore$Builder;)V" />
+		<method name="&lt;init>(Ljava/util/List;)V" />
+		<method name="getParameters()Ljava/util/List;" />
+	</class>
+	<class name="javax/net/ssl/ManagerFactoryParameters" since="1">
+	</class>
+	<class name="javax/net/ssl/SSLContext" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/net/ssl/SSLContextSpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="createSSLEngine()Ljavax/net/ssl/SSLEngine;" />
+		<method name="createSSLEngine(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;" />
+		<method name="getClientSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
+		<method name="getDefault()Ljavax/net/ssl/SSLContext;" since="9" />
+		<method name="getDefaultSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/net/ssl/SSLContext;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/SSLContext;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/SSLContext;" />
+		<method name="getProtocol()Ljava/lang/String;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getServerSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
+		<method name="getServerSocketFactory()Ljavax/net/ssl/SSLServerSocketFactory;" />
+		<method name="getSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
+		<method name="getSupportedSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
+		<method name="init([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V" />
+		<method name="setDefault(Ljavax/net/ssl/SSLContext;)V" since="9" />
+	</class>
+	<class name="javax/net/ssl/SSLContextSpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineCreateSSLEngine()Ljavax/net/ssl/SSLEngine;" />
+		<method name="engineCreateSSLEngine(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;" />
+		<method name="engineGetClientSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
+		<method name="engineGetDefaultSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
+		<method name="engineGetServerSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
+		<method name="engineGetServerSocketFactory()Ljavax/net/ssl/SSLServerSocketFactory;" />
+		<method name="engineGetSocketFactory()Ljavax/net/ssl/SSLSocketFactory;" />
+		<method name="engineGetSupportedSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
+		<method name="engineInit([Ljavax/net/ssl/KeyManager;[Ljavax/net/ssl/TrustManager;Ljava/security/SecureRandom;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLEngine" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="beginHandshake()V" />
+		<method name="closeInbound()V" />
+		<method name="closeOutbound()V" />
+		<method name="getDelegatedTask()Ljava/lang/Runnable;" />
+		<method name="getEnableSessionCreation()Z" />
+		<method name="getEnabledCipherSuites()[Ljava/lang/String;" />
+		<method name="getEnabledProtocols()[Ljava/lang/String;" />
+		<method name="getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
+		<method name="getNeedClientAuth()Z" />
+		<method name="getPeerHost()Ljava/lang/String;" />
+		<method name="getPeerPort()I" />
+		<method name="getSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
+		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
+		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
+		<method name="getSupportedProtocols()[Ljava/lang/String;" />
+		<method name="getUseClientMode()Z" />
+		<method name="getWantClientAuth()Z" />
+		<method name="isInboundDone()Z" />
+		<method name="isOutboundDone()Z" />
+		<method name="setEnableSessionCreation(Z)V" />
+		<method name="setEnabledCipherSuites([Ljava/lang/String;)V" />
+		<method name="setEnabledProtocols([Ljava/lang/String;)V" />
+		<method name="setNeedClientAuth(Z)V" />
+		<method name="setSSLParameters(Ljavax/net/ssl/SSLParameters;)V" since="9" />
+		<method name="setUseClientMode(Z)V" />
+		<method name="setWantClientAuth(Z)V" />
+		<method name="unwrap(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
+		<method name="unwrap(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
+		<method name="unwrap(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;" />
+		<method name="wrap(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
+		<method name="wrap([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
+		<method name="wrap([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;" />
+	</class>
+	<class name="javax/net/ssl/SSLEngineResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/net/ssl/SSLEngineResult$Status;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;II)V" />
+		<method name="bytesConsumed()I" />
+		<method name="bytesProduced()I" />
+		<method name="getHandshakeStatus()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
+		<method name="getStatus()Ljavax/net/ssl/SSLEngineResult$Status;" />
+	</class>
+	<class name="javax/net/ssl/SSLEngineResult$HandshakeStatus" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
+		<method name="values()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;" />
+		<field name="FINISHED" />
+		<field name="NEED_TASK" />
+		<field name="NEED_UNWRAP" />
+		<field name="NEED_WRAP" />
+		<field name="NOT_HANDSHAKING" />
+	</class>
+	<class name="javax/net/ssl/SSLEngineResult$Status" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Ljavax/net/ssl/SSLEngineResult$Status;" />
+		<method name="values()[Ljavax/net/ssl/SSLEngineResult$Status;" />
+		<field name="BUFFER_OVERFLOW" />
+		<field name="BUFFER_UNDERFLOW" />
+		<field name="CLOSED" />
+		<field name="OK" />
+	</class>
+	<class name="javax/net/ssl/SSLException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLHandshakeException" since="1">
+		<extends name="javax/net/ssl/SSLException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLKeyException" since="1">
+		<extends name="javax/net/ssl/SSLException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLParameters" since="9">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([Ljava/lang/String;)V" />
+		<method name="&lt;init>([Ljava/lang/String;[Ljava/lang/String;)V" />
+		<method name="getCipherSuites()[Ljava/lang/String;" />
+		<method name="getNeedClientAuth()Z" />
+		<method name="getProtocols()[Ljava/lang/String;" />
+		<method name="getWantClientAuth()Z" />
+		<method name="setCipherSuites([Ljava/lang/String;)V" />
+		<method name="setNeedClientAuth(Z)V" />
+		<method name="setProtocols([Ljava/lang/String;)V" />
+		<method name="setWantClientAuth(Z)V" />
+	</class>
+	<class name="javax/net/ssl/SSLPeerUnverifiedException" since="1">
+		<extends name="javax/net/ssl/SSLException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLProtocolException" since="1">
+		<extends name="javax/net/ssl/SSLException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLServerSocket" since="1">
+		<extends name="java/net/ServerSocket" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="&lt;init>(II)V" />
+		<method name="&lt;init>(IILjava/net/InetAddress;)V" />
+		<method name="getEnableSessionCreation()Z" />
+		<method name="getEnabledCipherSuites()[Ljava/lang/String;" />
+		<method name="getEnabledProtocols()[Ljava/lang/String;" />
+		<method name="getNeedClientAuth()Z" />
+		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
+		<method name="getSupportedProtocols()[Ljava/lang/String;" />
+		<method name="getUseClientMode()Z" />
+		<method name="getWantClientAuth()Z" />
+		<method name="setEnableSessionCreation(Z)V" />
+		<method name="setEnabledCipherSuites([Ljava/lang/String;)V" />
+		<method name="setEnabledProtocols([Ljava/lang/String;)V" />
+		<method name="setNeedClientAuth(Z)V" />
+		<method name="setUseClientMode(Z)V" />
+		<method name="setWantClientAuth(Z)V" />
+	</class>
+	<class name="javax/net/ssl/SSLServerSocketFactory" since="1">
+		<extends name="javax/net/ServerSocketFactory" />
+		<method name="&lt;init>()V" />
+		<method name="getDefault()Ljavax/net/ServerSocketFactory;" />
+		<method name="getDefaultCipherSuites()[Ljava/lang/String;" />
+		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
+	</class>
+	<class name="javax/net/ssl/SSLSession" since="1">
+		<method name="getApplicationBufferSize()I" />
+		<method name="getCipherSuite()Ljava/lang/String;" />
+		<method name="getCreationTime()J" />
+		<method name="getId()[B" />
+		<method name="getLastAccessedTime()J" />
+		<method name="getLocalCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getLocalPrincipal()Ljava/security/Principal;" />
+		<method name="getPacketBufferSize()I" />
+		<method name="getPeerCertificateChain()[Ljavax/security/cert/X509Certificate;" />
+		<method name="getPeerCertificates()[Ljava/security/cert/Certificate;" />
+		<method name="getPeerHost()Ljava/lang/String;" />
+		<method name="getPeerPort()I" />
+		<method name="getPeerPrincipal()Ljava/security/Principal;" />
+		<method name="getProtocol()Ljava/lang/String;" />
+		<method name="getSessionContext()Ljavax/net/ssl/SSLSessionContext;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getValueNames()[Ljava/lang/String;" />
+		<method name="invalidate()V" />
+		<method name="isValid()Z" />
+		<method name="putValue(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="removeValue(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLSessionBindingEvent" since="1">
+		<extends name="java/util/EventObject" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljavax/net/ssl/SSLSession;Ljava/lang/String;)V" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
+	</class>
+	<class name="javax/net/ssl/SSLSessionBindingListener" since="1">
+		<implements name="java/util/EventListener" />
+		<method name="valueBound(Ljavax/net/ssl/SSLSessionBindingEvent;)V" />
+		<method name="valueUnbound(Ljavax/net/ssl/SSLSessionBindingEvent;)V" />
+	</class>
+	<class name="javax/net/ssl/SSLSessionContext" since="1">
+		<method name="getIds()Ljava/util/Enumeration;" />
+		<method name="getSession([B)Ljavax/net/ssl/SSLSession;" />
+		<method name="getSessionCacheSize()I" />
+		<method name="getSessionTimeout()I" />
+		<method name="setSessionCacheSize(I)V" />
+		<method name="setSessionTimeout(I)V" />
+	</class>
+	<class name="javax/net/ssl/SSLSocket" since="1">
+		<extends name="java/net/Socket" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/net/InetAddress;I)V" />
+		<method name="&lt;init>(Ljava/net/InetAddress;I)V" />
+		<method name="&lt;init>(Ljava/net/InetAddress;ILjava/net/InetAddress;I)V" />
+		<method name="addHandshakeCompletedListener(Ljavax/net/ssl/HandshakeCompletedListener;)V" />
+		<method name="getEnableSessionCreation()Z" />
+		<method name="getEnabledCipherSuites()[Ljava/lang/String;" />
+		<method name="getEnabledProtocols()[Ljava/lang/String;" />
+		<method name="getNeedClientAuth()Z" />
+		<method name="getSSLParameters()Ljavax/net/ssl/SSLParameters;" since="9" />
+		<method name="getSession()Ljavax/net/ssl/SSLSession;" />
+		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
+		<method name="getSupportedProtocols()[Ljava/lang/String;" />
+		<method name="getUseClientMode()Z" />
+		<method name="getWantClientAuth()Z" />
+		<method name="removeHandshakeCompletedListener(Ljavax/net/ssl/HandshakeCompletedListener;)V" />
+		<method name="setEnableSessionCreation(Z)V" />
+		<method name="setEnabledCipherSuites([Ljava/lang/String;)V" />
+		<method name="setEnabledProtocols([Ljava/lang/String;)V" />
+		<method name="setNeedClientAuth(Z)V" />
+		<method name="setSSLParameters(Ljavax/net/ssl/SSLParameters;)V" since="9" />
+		<method name="setUseClientMode(Z)V" />
+		<method name="setWantClientAuth(Z)V" />
+		<method name="startHandshake()V" />
+	</class>
+	<class name="javax/net/ssl/SSLSocketFactory" since="1">
+		<extends name="javax/net/SocketFactory" />
+		<method name="&lt;init>()V" />
+		<method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" />
+		<method name="getDefault()Ljavax/net/SocketFactory;" />
+		<method name="getDefaultCipherSuites()[Ljava/lang/String;" />
+		<method name="getSupportedCipherSuites()[Ljava/lang/String;" />
+	</class>
+	<class name="javax/net/ssl/TrustManager" since="1">
+	</class>
+	<class name="javax/net/ssl/TrustManagerFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljavax/net/ssl/TrustManagerFactorySpi;Ljava/security/Provider;Ljava/lang/String;)V" />
+		<method name="getAlgorithm()Ljava/lang/String;" />
+		<method name="getDefaultAlgorithm()Ljava/lang/String;" />
+		<method name="getInstance(Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/lang/String;)Ljavax/net/ssl/TrustManagerFactory;" />
+		<method name="getInstance(Ljava/lang/String;Ljava/security/Provider;)Ljavax/net/ssl/TrustManagerFactory;" />
+		<method name="getProvider()Ljava/security/Provider;" />
+		<method name="getTrustManagers()[Ljavax/net/ssl/TrustManager;" />
+		<method name="init(Ljava/security/KeyStore;)V" />
+		<method name="init(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
+	</class>
+	<class name="javax/net/ssl/TrustManagerFactorySpi" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="engineGetTrustManagers()[Ljavax/net/ssl/TrustManager;" />
+		<method name="engineInit(Ljava/security/KeyStore;)V" />
+		<method name="engineInit(Ljavax/net/ssl/ManagerFactoryParameters;)V" />
+	</class>
+	<class name="javax/net/ssl/X509ExtendedKeyManager" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="javax/net/ssl/X509KeyManager" />
+		<method name="&lt;init>()V" />
+		<method name="chooseEngineClientAlias([Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;" />
+		<method name="chooseEngineServerAlias(Ljava/lang/String;[Ljava/security/Principal;Ljavax/net/ssl/SSLEngine;)Ljava/lang/String;" />
+	</class>
+	<class name="javax/net/ssl/X509KeyManager" since="1">
+		<implements name="javax/net/ssl/KeyManager" />
+		<method name="chooseClientAlias([Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;" />
+		<method name="chooseServerAlias(Ljava/lang/String;[Ljava/security/Principal;Ljava/net/Socket;)Ljava/lang/String;" />
+		<method name="getCertificateChain(Ljava/lang/String;)[Ljava/security/cert/X509Certificate;" />
+		<method name="getClientAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;" />
+		<method name="getPrivateKey(Ljava/lang/String;)Ljava/security/PrivateKey;" />
+		<method name="getServerAliases(Ljava/lang/String;[Ljava/security/Principal;)[Ljava/lang/String;" />
+	</class>
+	<class name="javax/net/ssl/X509TrustManager" since="1">
+		<implements name="javax/net/ssl/TrustManager" />
+		<method name="checkClientTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V" />
+		<method name="checkServerTrusted([Ljava/security/cert/X509Certificate;Ljava/lang/String;)V" />
+		<method name="getAcceptedIssuers()[Ljava/security/cert/X509Certificate;" />
+	</class>
+	<class name="javax/security/auth/AuthPermission" since="1">
+		<extends name="java/security/BasicPermission" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/auth/DestroyFailedException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/auth/Destroyable" since="1">
+		<method name="destroy()V" />
+		<method name="isDestroyed()Z" />
+	</class>
+	<class name="javax/security/auth/PrivateCredentialPermission" since="1">
+		<extends name="java/security/Permission" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getActions()Ljava/lang/String;" />
+		<method name="getCredentialClass()Ljava/lang/String;" />
+		<method name="getPrincipals()[[Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="implies(Ljava/security/Permission;)Z" />
+	</class>
+	<class name="javax/security/auth/Subject" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(ZLjava/util/Set;Ljava/util/Set;Ljava/util/Set;)V" />
+		<method name="doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;)LT;" since="9" />
+		<method name="doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;)Ljava/lang/Object;" />
+		<method name="doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)LT;" since="9" />
+		<method name="doAs(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;" />
+		<method name="doAsPrivileged(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)LT;" since="9" />
+		<method name="doAsPrivileged(Ljavax/security/auth/Subject;Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;" />
+		<method name="doAsPrivileged(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)LT;" since="9" />
+		<method name="doAsPrivileged(Ljavax/security/auth/Subject;Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;" />
+		<method name="getPrincipals()Ljava/util/Set;" />
+		<method name="getPrincipals(Ljava/lang/Class;)Ljava/util/Set;" />
+		<method name="getPrivateCredentials()Ljava/util/Set;" />
+		<method name="getPrivateCredentials(Ljava/lang/Class;)Ljava/util/Set;" />
+		<method name="getPublicCredentials()Ljava/util/Set;" />
+		<method name="getPublicCredentials(Ljava/lang/Class;)Ljava/util/Set;" />
+		<method name="getSubject(Ljava/security/AccessControlContext;)Ljavax/security/auth/Subject;" />
+		<method name="isReadOnly()Z" />
+		<method name="setReadOnly()V" />
+	</class>
+	<class name="javax/security/auth/SubjectDomainCombiner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/DomainCombiner" />
+		<method name="&lt;init>(Ljavax/security/auth/Subject;)V" />
+		<method name="combine([Ljava/security/ProtectionDomain;[Ljava/security/ProtectionDomain;)[Ljava/security/ProtectionDomain;" />
+		<method name="getSubject()Ljavax/security/auth/Subject;" />
+	</class>
+	<class name="javax/security/auth/callback/Callback" since="1">
+	</class>
+	<class name="javax/security/auth/callback/CallbackHandler" since="1">
+		<method name="handle([Ljavax/security/auth/callback/Callback;)V" />
+	</class>
+	<class name="javax/security/auth/callback/PasswordCallback" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="javax/security/auth/callback/Callback" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;Z)V" />
+		<method name="clearPassword()V" />
+		<method name="getPassword()[C" />
+		<method name="getPrompt()Ljava/lang/String;" />
+		<method name="isEchoOn()Z" />
+		<method name="setPassword([C)V" />
+	</class>
+	<class name="javax/security/auth/callback/UnsupportedCallbackException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljavax/security/auth/callback/Callback;)V" />
+		<method name="&lt;init>(Ljavax/security/auth/callback/Callback;Ljava/lang/String;)V" />
+		<method name="getCallback()Ljavax/security/auth/callback/Callback;" />
+	</class>
+	<class name="javax/security/auth/login/LoginException" since="1">
+		<extends name="java/security/GeneralSecurityException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/auth/x500/X500Principal" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/Principal" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/util/Map;)V" since="9" />
+		<method name="&lt;init>([B)V" />
+		<method name="getEncoded()[B" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getName(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getName(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;" since="9" />
+		<field name="CANONICAL" />
+		<field name="RFC1779" />
+		<field name="RFC2253" />
+	</class>
+	<class name="javax/security/cert/Certificate" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getEncoded()[B" />
+		<method name="getPublicKey()Ljava/security/PublicKey;" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="verify(Ljava/security/PublicKey;)V" />
+		<method name="verify(Ljava/security/PublicKey;Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/cert/CertificateEncodingException" since="1">
+		<extends name="javax/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/cert/CertificateException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/cert/CertificateExpiredException" since="1">
+		<extends name="javax/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/cert/CertificateNotYetValidException" since="1">
+		<extends name="javax/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/cert/CertificateParsingException" since="1">
+		<extends name="javax/security/cert/CertificateException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/security/cert/X509Certificate" since="1">
+		<extends name="javax/security/cert/Certificate" />
+		<method name="&lt;init>()V" />
+		<method name="checkValidity()V" />
+		<method name="checkValidity(Ljava/util/Date;)V" />
+		<method name="getInstance(Ljava/io/InputStream;)Ljavax/security/cert/X509Certificate;" />
+		<method name="getInstance([B)Ljavax/security/cert/X509Certificate;" />
+		<method name="getIssuerDN()Ljava/security/Principal;" />
+		<method name="getNotAfter()Ljava/util/Date;" />
+		<method name="getNotBefore()Ljava/util/Date;" />
+		<method name="getSerialNumber()Ljava/math/BigInteger;" />
+		<method name="getSigAlgName()Ljava/lang/String;" />
+		<method name="getSigAlgOID()Ljava/lang/String;" />
+		<method name="getSigAlgParams()[B" />
+		<method name="getSubjectDN()Ljava/security/Principal;" />
+		<method name="getVersion()I" />
+	</class>
+	<class name="javax/sql/CommonDataSource" since="9">
+		<method name="getLogWriter()Ljava/io/PrintWriter;" />
+		<method name="getLoginTimeout()I" />
+		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
+		<method name="setLoginTimeout(I)V" />
+	</class>
+	<class name="javax/sql/ConnectionEvent" since="1">
+		<extends name="java/util/EventObject" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljavax/sql/PooledConnection;)V" />
+		<method name="&lt;init>(Ljavax/sql/PooledConnection;Ljava/sql/SQLException;)V" />
+		<method name="getSQLException()Ljava/sql/SQLException;" />
+	</class>
+	<class name="javax/sql/ConnectionEventListener" since="1">
+		<implements name="java/util/EventListener" />
+		<method name="connectionClosed(Ljavax/sql/ConnectionEvent;)V" />
+		<method name="connectionErrorOccurred(Ljavax/sql/ConnectionEvent;)V" />
+	</class>
+	<class name="javax/sql/ConnectionPoolDataSource" since="1">
+		<implements name="javax/sql/CommonDataSource" since="9" />
+		<method name="getLogWriter()Ljava/io/PrintWriter;" />
+		<method name="getLoginTimeout()I" />
+		<method name="getPooledConnection()Ljavax/sql/PooledConnection;" />
+		<method name="getPooledConnection(Ljava/lang/String;Ljava/lang/String;)Ljavax/sql/PooledConnection;" />
+		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
+		<method name="setLoginTimeout(I)V" />
+	</class>
+	<class name="javax/sql/DataSource" since="1">
+		<implements name="javax/sql/CommonDataSource" since="9" />
+		<implements name="java/sql/Wrapper" since="9" />
+		<method name="getConnection()Ljava/sql/Connection;" />
+		<method name="getConnection(Ljava/lang/String;Ljava/lang/String;)Ljava/sql/Connection;" />
+		<method name="getLogWriter()Ljava/io/PrintWriter;" />
+		<method name="getLoginTimeout()I" />
+		<method name="setLogWriter(Ljava/io/PrintWriter;)V" />
+		<method name="setLoginTimeout(I)V" />
+	</class>
+	<class name="javax/sql/PooledConnection" since="1">
+		<method name="addConnectionEventListener(Ljavax/sql/ConnectionEventListener;)V" />
+		<method name="addStatementEventListener(Ljavax/sql/StatementEventListener;)V" since="9" />
+		<method name="close()V" />
+		<method name="getConnection()Ljava/sql/Connection;" />
+		<method name="removeConnectionEventListener(Ljavax/sql/ConnectionEventListener;)V" />
+		<method name="removeStatementEventListener(Ljavax/sql/StatementEventListener;)V" since="9" />
+	</class>
+	<class name="javax/sql/RowSet" since="1">
+		<implements name="java/sql/ResultSet" />
+		<method name="addRowSetListener(Ljavax/sql/RowSetListener;)V" />
+		<method name="clearParameters()V" />
+		<method name="execute()V" />
+		<method name="getCommand()Ljava/lang/String;" />
+		<method name="getDataSourceName()Ljava/lang/String;" />
+		<method name="getEscapeProcessing()Z" />
+		<method name="getMaxFieldSize()I" />
+		<method name="getMaxRows()I" />
+		<method name="getPassword()Ljava/lang/String;" />
+		<method name="getQueryTimeout()I" />
+		<method name="getTransactionIsolation()I" />
+		<method name="getTypeMap()Ljava/util/Map;" />
+		<method name="getUrl()Ljava/lang/String;" />
+		<method name="getUsername()Ljava/lang/String;" />
+		<method name="isReadOnly()Z" />
+		<method name="removeRowSetListener(Ljavax/sql/RowSetListener;)V" />
+		<method name="setArray(ILjava/sql/Array;)V" />
+		<method name="setAsciiStream(ILjava/io/InputStream;)V" since="9" />
+		<method name="setAsciiStream(ILjava/io/InputStream;I)V" />
+		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="setAsciiStream(Ljava/lang/String;Ljava/io/InputStream;I)V" since="9" />
+		<method name="setBigDecimal(ILjava/math/BigDecimal;)V" />
+		<method name="setBigDecimal(Ljava/lang/String;Ljava/math/BigDecimal;)V" since="9" />
+		<method name="setBinaryStream(ILjava/io/InputStream;)V" since="9" />
+		<method name="setBinaryStream(ILjava/io/InputStream;I)V" />
+		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="setBinaryStream(Ljava/lang/String;Ljava/io/InputStream;I)V" since="9" />
+		<method name="setBlob(ILjava/io/InputStream;)V" since="9" />
+		<method name="setBlob(ILjava/io/InputStream;J)V" since="9" />
+		<method name="setBlob(ILjava/sql/Blob;)V" />
+		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;)V" since="9" />
+		<method name="setBlob(Ljava/lang/String;Ljava/io/InputStream;J)V" since="9" />
+		<method name="setBlob(Ljava/lang/String;Ljava/sql/Blob;)V" since="9" />
+		<method name="setBoolean(IZ)V" />
+		<method name="setBoolean(Ljava/lang/String;Z)V" since="9" />
+		<method name="setByte(IB)V" />
+		<method name="setByte(Ljava/lang/String;B)V" since="9" />
+		<method name="setBytes(I[B)V" />
+		<method name="setBytes(Ljava/lang/String;[B)V" since="9" />
+		<method name="setCharacterStream(ILjava/io/Reader;)V" since="9" />
+		<method name="setCharacterStream(ILjava/io/Reader;I)V" />
+		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setCharacterStream(Ljava/lang/String;Ljava/io/Reader;I)V" since="9" />
+		<method name="setClob(ILjava/io/Reader;)V" since="9" />
+		<method name="setClob(ILjava/io/Reader;J)V" since="9" />
+		<method name="setClob(ILjava/sql/Clob;)V" />
+		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setClob(Ljava/lang/String;Ljava/sql/Clob;)V" since="9" />
+		<method name="setCommand(Ljava/lang/String;)V" />
+		<method name="setConcurrency(I)V" />
+		<method name="setDataSourceName(Ljava/lang/String;)V" />
+		<method name="setDate(ILjava/sql/Date;)V" />
+		<method name="setDate(ILjava/sql/Date;Ljava/util/Calendar;)V" />
+		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;)V" since="9" />
+		<method name="setDate(Ljava/lang/String;Ljava/sql/Date;Ljava/util/Calendar;)V" since="9" />
+		<method name="setDouble(ID)V" />
+		<method name="setDouble(Ljava/lang/String;D)V" since="9" />
+		<method name="setEscapeProcessing(Z)V" />
+		<method name="setFloat(IF)V" />
+		<method name="setFloat(Ljava/lang/String;F)V" since="9" />
+		<method name="setInt(II)V" />
+		<method name="setInt(Ljava/lang/String;I)V" since="9" />
+		<method name="setLong(IJ)V" />
+		<method name="setLong(Ljava/lang/String;J)V" since="9" />
+		<method name="setMaxFieldSize(I)V" />
+		<method name="setMaxRows(I)V" />
+		<method name="setNCharacterStream(ILjava/io/Reader;)V" since="9" />
+		<method name="setNCharacterStream(ILjava/io/Reader;J)V" since="9" />
+		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setNCharacterStream(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setNClob(ILjava/io/Reader;)V" since="9" />
+		<method name="setNClob(ILjava/io/Reader;J)V" since="9" />
+		<method name="setNClob(ILjava/sql/NClob;)V" since="9" />
+		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;)V" since="9" />
+		<method name="setNClob(Ljava/lang/String;Ljava/io/Reader;J)V" since="9" />
+		<method name="setNClob(Ljava/lang/String;Ljava/sql/NClob;)V" since="9" />
+		<method name="setNString(ILjava/lang/String;)V" since="9" />
+		<method name="setNString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
+		<method name="setNull(II)V" />
+		<method name="setNull(IILjava/lang/String;)V" />
+		<method name="setNull(Ljava/lang/String;I)V" since="9" />
+		<method name="setNull(Ljava/lang/String;ILjava/lang/String;)V" since="9" />
+		<method name="setObject(ILjava/lang/Object;)V" />
+		<method name="setObject(ILjava/lang/Object;I)V" />
+		<method name="setObject(ILjava/lang/Object;II)V" />
+		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;)V" since="9" />
+		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;I)V" since="9" />
+		<method name="setObject(Ljava/lang/String;Ljava/lang/Object;II)V" since="9" />
+		<method name="setPassword(Ljava/lang/String;)V" />
+		<method name="setQueryTimeout(I)V" />
+		<method name="setReadOnly(Z)V" />
+		<method name="setRef(ILjava/sql/Ref;)V" />
+		<method name="setRowId(ILjava/sql/RowId;)V" since="9" />
+		<method name="setRowId(Ljava/lang/String;Ljava/sql/RowId;)V" since="9" />
+		<method name="setSQLXML(ILjava/sql/SQLXML;)V" since="9" />
+		<method name="setSQLXML(Ljava/lang/String;Ljava/sql/SQLXML;)V" since="9" />
+		<method name="setShort(IS)V" />
+		<method name="setShort(Ljava/lang/String;S)V" since="9" />
+		<method name="setString(ILjava/lang/String;)V" />
+		<method name="setString(Ljava/lang/String;Ljava/lang/String;)V" since="9" />
+		<method name="setTime(ILjava/sql/Time;)V" />
+		<method name="setTime(ILjava/sql/Time;Ljava/util/Calendar;)V" />
+		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;)V" since="9" />
+		<method name="setTime(Ljava/lang/String;Ljava/sql/Time;Ljava/util/Calendar;)V" since="9" />
+		<method name="setTimestamp(ILjava/sql/Timestamp;)V" />
+		<method name="setTimestamp(ILjava/sql/Timestamp;Ljava/util/Calendar;)V" />
+		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;)V" since="9" />
+		<method name="setTimestamp(Ljava/lang/String;Ljava/sql/Timestamp;Ljava/util/Calendar;)V" since="9" />
+		<method name="setTransactionIsolation(I)V" />
+		<method name="setType(I)V" />
+		<method name="setTypeMap(Ljava/util/Map;)V" />
+		<method name="setURL(ILjava/net/URL;)V" since="9" />
+		<method name="setUrl(Ljava/lang/String;)V" />
+		<method name="setUsername(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/sql/RowSetEvent" since="1">
+		<extends name="java/util/EventObject" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljavax/sql/RowSet;)V" />
+	</class>
+	<class name="javax/sql/RowSetInternal" since="1">
+		<method name="getConnection()Ljava/sql/Connection;" />
+		<method name="getOriginal()Ljava/sql/ResultSet;" />
+		<method name="getOriginalRow()Ljava/sql/ResultSet;" />
+		<method name="getParams()[Ljava/lang/Object;" />
+		<method name="setMetaData(Ljavax/sql/RowSetMetaData;)V" />
+	</class>
+	<class name="javax/sql/RowSetListener" since="1">
+		<implements name="java/util/EventListener" />
+		<method name="cursorMoved(Ljavax/sql/RowSetEvent;)V" />
+		<method name="rowChanged(Ljavax/sql/RowSetEvent;)V" />
+		<method name="rowSetChanged(Ljavax/sql/RowSetEvent;)V" />
+	</class>
+	<class name="javax/sql/RowSetMetaData" since="1">
+		<implements name="java/sql/ResultSetMetaData" />
+		<method name="setAutoIncrement(IZ)V" />
+		<method name="setCaseSensitive(IZ)V" />
+		<method name="setCatalogName(ILjava/lang/String;)V" />
+		<method name="setColumnCount(I)V" />
+		<method name="setColumnDisplaySize(II)V" />
+		<method name="setColumnLabel(ILjava/lang/String;)V" />
+		<method name="setColumnName(ILjava/lang/String;)V" />
+		<method name="setColumnType(II)V" />
+		<method name="setColumnTypeName(ILjava/lang/String;)V" />
+		<method name="setCurrency(IZ)V" />
+		<method name="setNullable(II)V" />
+		<method name="setPrecision(II)V" />
+		<method name="setScale(II)V" />
+		<method name="setSchemaName(ILjava/lang/String;)V" />
+		<method name="setSearchable(IZ)V" />
+		<method name="setSigned(IZ)V" />
+		<method name="setTableName(ILjava/lang/String;)V" />
+	</class>
+	<class name="javax/sql/RowSetReader" since="1">
+		<method name="readData(Ljavax/sql/RowSetInternal;)V" />
+	</class>
+	<class name="javax/sql/RowSetWriter" since="1">
+		<method name="writeData(Ljavax/sql/RowSetInternal;)Z" />
+	</class>
+	<class name="javax/sql/StatementEvent" since="9">
+		<extends name="java/util/EventObject" />
+		<method name="&lt;init>(Ljavax/sql/PooledConnection;Ljava/sql/PreparedStatement;)V" />
+		<method name="&lt;init>(Ljavax/sql/PooledConnection;Ljava/sql/PreparedStatement;Ljava/sql/SQLException;)V" />
+		<method name="getSQLException()Ljava/sql/SQLException;" />
+		<method name="getStatement()Ljava/sql/PreparedStatement;" />
+	</class>
+	<class name="javax/sql/StatementEventListener" since="9">
+		<implements name="java/util/EventListener" />
+		<method name="statementClosed(Ljavax/sql/StatementEvent;)V" />
+		<method name="statementErrorOccurred(Ljavax/sql/StatementEvent;)V" />
+	</class>
+	<class name="javax/xml/XMLConstants" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<field name="DEFAULT_NS_PREFIX" />
+		<field name="FEATURE_SECURE_PROCESSING" />
+		<field name="NULL_NS_URI" />
+		<field name="RELAXNG_NS_URI" />
+		<field name="W3C_XML_SCHEMA_INSTANCE_NS_URI" />
+		<field name="W3C_XML_SCHEMA_NS_URI" />
+		<field name="W3C_XPATH_DATATYPE_NS_URI" />
+		<field name="XMLNS_ATTRIBUTE" />
+		<field name="XMLNS_ATTRIBUTE_NS_URI" />
+		<field name="XML_DTD_NS_URI" />
+		<field name="XML_NS_PREFIX" />
+		<field name="XML_NS_URI" />
+	</class>
+	<class name="javax/xml/datatype/DatatypeConfigurationException" since="8">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/xml/datatype/DatatypeConstants" since="8">
+		<extends name="java/lang/Object" />
+		<field name="APRIL" />
+		<field name="AUGUST" />
+		<field name="DATE" />
+		<field name="DATETIME" />
+		<field name="DAYS" />
+		<field name="DECEMBER" />
+		<field name="DURATION" />
+		<field name="DURATION_DAYTIME" />
+		<field name="DURATION_YEARMONTH" />
+		<field name="EQUAL" />
+		<field name="FEBRUARY" />
+		<field name="FIELD_UNDEFINED" />
+		<field name="GDAY" />
+		<field name="GMONTH" />
+		<field name="GMONTHDAY" />
+		<field name="GREATER" />
+		<field name="GYEAR" />
+		<field name="GYEARMONTH" />
+		<field name="HOURS" />
+		<field name="INDETERMINATE" />
+		<field name="JANUARY" />
+		<field name="JULY" />
+		<field name="JUNE" />
+		<field name="LESSER" />
+		<field name="MARCH" />
+		<field name="MAX_TIMEZONE_OFFSET" />
+		<field name="MAY" />
+		<field name="MINUTES" />
+		<field name="MIN_TIMEZONE_OFFSET" />
+		<field name="MONTHS" />
+		<field name="NOVEMBER" />
+		<field name="OCTOBER" />
+		<field name="SECONDS" />
+		<field name="SEPTEMBER" />
+		<field name="TIME" />
+		<field name="YEARS" />
+	</class>
+	<class name="javax/xml/datatype/DatatypeConstants$Field" since="8">
+		<extends name="java/lang/Object" />
+		<method name="getId()I" />
+	</class>
+	<class name="javax/xml/datatype/DatatypeFactory" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="newDuration(J)Ljavax/xml/datatype/Duration;" />
+		<method name="newDuration(Ljava/lang/String;)Ljavax/xml/datatype/Duration;" />
+		<method name="newDuration(ZIIIIII)Ljavax/xml/datatype/Duration;" />
+		<method name="newDuration(ZLjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigDecimal;)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationDayTime(J)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationDayTime(Ljava/lang/String;)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationDayTime(ZIIII)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationDayTime(ZLjava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;Ljava/math/BigInteger;)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationYearMonth(J)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationYearMonth(Ljava/lang/String;)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationYearMonth(ZII)Ljavax/xml/datatype/Duration;" />
+		<method name="newDurationYearMonth(ZLjava/math/BigInteger;Ljava/math/BigInteger;)Ljavax/xml/datatype/Duration;" />
+		<method name="newInstance()Ljavax/xml/datatype/DatatypeFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/datatype/DatatypeFactory;" since="9" />
+		<method name="newXMLGregorianCalendar()Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendar(IIIIIIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendar(Ljava/lang/String;)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendar(Ljava/math/BigInteger;IIIIILjava/math/BigDecimal;I)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendar(Ljava/util/GregorianCalendar;)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendarDate(IIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendarTime(IIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendarTime(IIIII)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="newXMLGregorianCalendarTime(IIILjava/math/BigDecimal;I)Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<field name="DATATYPEFACTORY_IMPLEMENTATION_CLASS" />
+		<field name="DATATYPEFACTORY_PROPERTY" />
+	</class>
+	<class name="javax/xml/datatype/Duration" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="add(Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;" />
+		<method name="addTo(Ljava/util/Calendar;)V" />
+		<method name="addTo(Ljava/util/Date;)V" />
+		<method name="compare(Ljavax/xml/datatype/Duration;)I" />
+		<method name="getDays()I" />
+		<method name="getField(Ljavax/xml/datatype/DatatypeConstants$Field;)Ljava/lang/Number;" />
+		<method name="getHours()I" />
+		<method name="getMinutes()I" />
+		<method name="getMonths()I" />
+		<method name="getSeconds()I" />
+		<method name="getSign()I" />
+		<method name="getTimeInMillis(Ljava/util/Calendar;)J" />
+		<method name="getTimeInMillis(Ljava/util/Date;)J" />
+		<method name="getXMLSchemaType()Ljavax/xml/namespace/QName;" />
+		<method name="getYears()I" />
+		<method name="hashCode()I" />
+		<method name="isLongerThan(Ljavax/xml/datatype/Duration;)Z" />
+		<method name="isSet(Ljavax/xml/datatype/DatatypeConstants$Field;)Z" />
+		<method name="isShorterThan(Ljavax/xml/datatype/Duration;)Z" />
+		<method name="multiply(I)Ljavax/xml/datatype/Duration;" />
+		<method name="multiply(Ljava/math/BigDecimal;)Ljavax/xml/datatype/Duration;" />
+		<method name="negate()Ljavax/xml/datatype/Duration;" />
+		<method name="normalizeWith(Ljava/util/Calendar;)Ljavax/xml/datatype/Duration;" />
+		<method name="subtract(Ljavax/xml/datatype/Duration;)Ljavax/xml/datatype/Duration;" />
+	</class>
+	<class name="javax/xml/datatype/XMLGregorianCalendar" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="add(Ljavax/xml/datatype/Duration;)V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="compare(Ljavax/xml/datatype/XMLGregorianCalendar;)I" />
+		<method name="getDay()I" />
+		<method name="getEon()Ljava/math/BigInteger;" />
+		<method name="getEonAndYear()Ljava/math/BigInteger;" />
+		<method name="getFractionalSecond()Ljava/math/BigDecimal;" />
+		<method name="getHour()I" />
+		<method name="getMillisecond()I" />
+		<method name="getMinute()I" />
+		<method name="getMonth()I" />
+		<method name="getSecond()I" />
+		<method name="getTimeZone(I)Ljava/util/TimeZone;" />
+		<method name="getTimezone()I" />
+		<method name="getXMLSchemaType()Ljavax/xml/namespace/QName;" />
+		<method name="getYear()I" />
+		<method name="isValid()Z" />
+		<method name="normalize()Ljavax/xml/datatype/XMLGregorianCalendar;" />
+		<method name="reset()V" />
+		<method name="setDay(I)V" />
+		<method name="setFractionalSecond(Ljava/math/BigDecimal;)V" />
+		<method name="setHour(I)V" />
+		<method name="setMillisecond(I)V" />
+		<method name="setMinute(I)V" />
+		<method name="setMonth(I)V" />
+		<method name="setSecond(I)V" />
+		<method name="setTime(III)V" />
+		<method name="setTime(IIII)V" />
+		<method name="setTime(IIILjava/math/BigDecimal;)V" />
+		<method name="setTimezone(I)V" />
+		<method name="setYear(I)V" />
+		<method name="setYear(Ljava/math/BigInteger;)V" />
+		<method name="toGregorianCalendar()Ljava/util/GregorianCalendar;" />
+		<method name="toGregorianCalendar(Ljava/util/TimeZone;Ljava/util/Locale;Ljavax/xml/datatype/XMLGregorianCalendar;)Ljava/util/GregorianCalendar;" />
+		<method name="toXMLFormat()Ljava/lang/String;" />
+	</class>
+	<class name="javax/xml/namespace/NamespaceContext" since="8">
+		<method name="getNamespaceURI(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getPrefix(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getPrefixes(Ljava/lang/String;)Ljava/util/Iterator;" />
+	</class>
+	<class name="javax/xml/namespace/QName" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getLocalPart()Ljava/lang/String;" />
+		<method name="getNamespaceURI()Ljava/lang/String;" />
+		<method name="getPrefix()Ljava/lang/String;" />
+		<method name="hashCode()I" />
+		<method name="valueOf(Ljava/lang/String;)Ljavax/xml/namespace/QName;" />
+	</class>
+	<class name="javax/xml/parsers/DocumentBuilder" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getDOMImplementation()Lorg/w3c/dom/DOMImplementation;" />
+		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
+		<method name="isNamespaceAware()Z" />
+		<method name="isValidating()Z" />
+		<method name="isXIncludeAware()Z" />
+		<method name="newDocument()Lorg/w3c/dom/Document;" />
+		<method name="parse(Ljava/io/File;)Lorg/w3c/dom/Document;" />
+		<method name="parse(Ljava/io/InputStream;)Lorg/w3c/dom/Document;" />
+		<method name="parse(Ljava/io/InputStream;Ljava/lang/String;)Lorg/w3c/dom/Document;" />
+		<method name="parse(Ljava/lang/String;)Lorg/w3c/dom/Document;" />
+		<method name="parse(Lorg/xml/sax/InputSource;)Lorg/w3c/dom/Document;" />
+		<method name="reset()V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+	</class>
+	<class name="javax/xml/parsers/DocumentBuilderFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
+		<method name="isCoalescing()Z" />
+		<method name="isExpandEntityReferences()Z" />
+		<method name="isIgnoringComments()Z" />
+		<method name="isIgnoringElementContentWhitespace()Z" />
+		<method name="isNamespaceAware()Z" />
+		<method name="isValidating()Z" />
+		<method name="isXIncludeAware()Z" />
+		<method name="newDocumentBuilder()Ljavax/xml/parsers/DocumentBuilder;" />
+		<method name="newInstance()Ljavax/xml/parsers/DocumentBuilderFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/DocumentBuilderFactory;" since="9" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setCoalescing(Z)V" />
+		<method name="setExpandEntityReferences(Z)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setIgnoringComments(Z)V" />
+		<method name="setIgnoringElementContentWhitespace(Z)V" />
+		<method name="setNamespaceAware(Z)V" />
+		<method name="setSchema(Ljavax/xml/validation/Schema;)V" since="8" />
+		<method name="setValidating(Z)V" />
+		<method name="setXIncludeAware(Z)V" />
+	</class>
+	<class name="javax/xml/parsers/FactoryConfigurationError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/Exception;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getException()Ljava/lang/Exception;" />
+	</class>
+	<class name="javax/xml/parsers/ParserConfigurationException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/xml/parsers/SAXParser" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getParser()Lorg/xml/sax/Parser;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
+		<method name="getXMLReader()Lorg/xml/sax/XMLReader;" />
+		<method name="isNamespaceAware()Z" />
+		<method name="isValidating()Z" />
+		<method name="isXIncludeAware()Z" />
+		<method name="parse(Ljava/io/File;Lorg/xml/sax/HandlerBase;)V" />
+		<method name="parse(Ljava/io/File;Lorg/xml/sax/helpers/DefaultHandler;)V" />
+		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/HandlerBase;)V" />
+		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/HandlerBase;Ljava/lang/String;)V" />
+		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/helpers/DefaultHandler;)V" />
+		<method name="parse(Ljava/io/InputStream;Lorg/xml/sax/helpers/DefaultHandler;Ljava/lang/String;)V" />
+		<method name="parse(Ljava/lang/String;Lorg/xml/sax/HandlerBase;)V" />
+		<method name="parse(Ljava/lang/String;Lorg/xml/sax/helpers/DefaultHandler;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;Lorg/xml/sax/HandlerBase;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;Lorg/xml/sax/helpers/DefaultHandler;)V" />
+		<method name="reset()V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="javax/xml/parsers/SAXParserFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getSchema()Ljavax/xml/validation/Schema;" since="8" />
+		<method name="isNamespaceAware()Z" />
+		<method name="isValidating()Z" />
+		<method name="isXIncludeAware()Z" />
+		<method name="newInstance()Ljavax/xml/parsers/SAXParserFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/parsers/SAXParserFactory;" since="9" />
+		<method name="newSAXParser()Ljavax/xml/parsers/SAXParser;" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setNamespaceAware(Z)V" />
+		<method name="setSchema(Ljavax/xml/validation/Schema;)V" since="8" />
+		<method name="setValidating(Z)V" />
+		<method name="setXIncludeAware(Z)V" />
+	</class>
+	<class name="javax/xml/transform/ErrorListener" since="8">
+		<method name="error(Ljavax/xml/transform/TransformerException;)V" />
+		<method name="fatalError(Ljavax/xml/transform/TransformerException;)V" />
+		<method name="warning(Ljavax/xml/transform/TransformerException;)V" />
+	</class>
+	<class name="javax/xml/transform/OutputKeys" since="8">
+		<extends name="java/lang/Object" />
+		<field name="CDATA_SECTION_ELEMENTS" />
+		<field name="DOCTYPE_PUBLIC" />
+		<field name="DOCTYPE_SYSTEM" />
+		<field name="ENCODING" />
+		<field name="INDENT" />
+		<field name="MEDIA_TYPE" />
+		<field name="METHOD" />
+		<field name="OMIT_XML_DECLARATION" />
+		<field name="STANDALONE" />
+		<field name="VERSION" />
+	</class>
+	<class name="javax/xml/transform/Result" since="8">
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<field name="PI_DISABLE_OUTPUT_ESCAPING" />
+		<field name="PI_ENABLE_OUTPUT_ESCAPING" />
+	</class>
+	<class name="javax/xml/transform/Source" since="8">
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/xml/transform/SourceLocator" since="8">
+		<method name="getColumnNumber()I" />
+		<method name="getLineNumber()I" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+	</class>
+	<class name="javax/xml/transform/Templates" since="8">
+		<method name="getOutputProperties()Ljava/util/Properties;" />
+		<method name="newTransformer()Ljavax/xml/transform/Transformer;" />
+	</class>
+	<class name="javax/xml/transform/Transformer" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="clearParameters()V" />
+		<method name="getErrorListener()Ljavax/xml/transform/ErrorListener;" />
+		<method name="getOutputProperties()Ljava/util/Properties;" />
+		<method name="getOutputProperty(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getURIResolver()Ljavax/xml/transform/URIResolver;" />
+		<method name="reset()V" />
+		<method name="setErrorListener(Ljavax/xml/transform/ErrorListener;)V" />
+		<method name="setOutputProperties(Ljava/util/Properties;)V" />
+		<method name="setOutputProperty(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setURIResolver(Ljavax/xml/transform/URIResolver;)V" />
+		<method name="transform(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V" />
+	</class>
+	<class name="javax/xml/transform/TransformerConfigurationException" since="8">
+		<extends name="javax/xml/transform/TransformerException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/xml/transform/TransformerException" since="8">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljavax/xml/transform/SourceLocator;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+		<method name="getException()Ljava/lang/Throwable;" />
+		<method name="getLocationAsString()Ljava/lang/String;" />
+		<method name="getLocator()Ljavax/xml/transform/SourceLocator;" />
+		<method name="getMessageAndLocation()Ljava/lang/String;" />
+		<method name="setLocator(Ljavax/xml/transform/SourceLocator;)V" />
+	</class>
+	<class name="javax/xml/transform/TransformerFactory" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAssociatedStylesheet(Ljavax/xml/transform/Source;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/transform/Source;" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getErrorListener()Ljavax/xml/transform/ErrorListener;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getURIResolver()Ljavax/xml/transform/URIResolver;" />
+		<method name="newInstance()Ljavax/xml/transform/TransformerFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/transform/TransformerFactory;" since="9" />
+		<method name="newTemplates(Ljavax/xml/transform/Source;)Ljavax/xml/transform/Templates;" />
+		<method name="newTransformer()Ljavax/xml/transform/Transformer;" />
+		<method name="newTransformer(Ljavax/xml/transform/Source;)Ljavax/xml/transform/Transformer;" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setErrorListener(Ljavax/xml/transform/ErrorListener;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setURIResolver(Ljavax/xml/transform/URIResolver;)V" />
+	</class>
+	<class name="javax/xml/transform/TransformerFactoryConfigurationError" since="8">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/Exception;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getException()Ljava/lang/Exception;" />
+	</class>
+	<class name="javax/xml/transform/URIResolver" since="8">
+		<method name="resolve(Ljava/lang/String;Ljava/lang/String;)Ljavax/xml/transform/Source;" />
+	</class>
+	<class name="javax/xml/transform/dom/DOMLocator" since="8">
+		<implements name="javax/xml/transform/SourceLocator" />
+		<method name="getOriginatingNode()Lorg/w3c/dom/Node;" />
+	</class>
+	<class name="javax/xml/transform/dom/DOMResult" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="javax/xml/transform/Result" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/w3c/dom/Node;)V" />
+		<method name="&lt;init>(Lorg/w3c/dom/Node;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V" />
+		<method name="&lt;init>(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;Ljava/lang/String;)V" />
+		<method name="getNextSibling()Lorg/w3c/dom/Node;" />
+		<method name="getNode()Lorg/w3c/dom/Node;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setNextSibling(Lorg/w3c/dom/Node;)V" />
+		<method name="setNode(Lorg/w3c/dom/Node;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<field name="FEATURE" />
+	</class>
+	<class name="javax/xml/transform/dom/DOMSource" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="javax/xml/transform/Source" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/w3c/dom/Node;)V" />
+		<method name="&lt;init>(Lorg/w3c/dom/Node;Ljava/lang/String;)V" />
+		<method name="getNode()Lorg/w3c/dom/Node;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setNode(Lorg/w3c/dom/Node;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<field name="FEATURE" />
+	</class>
+	<class name="javax/xml/transform/sax/SAXResult" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="javax/xml/transform/Result" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="getHandler()Lorg/xml/sax/ContentHandler;" />
+		<method name="getLexicalHandler()Lorg/xml/sax/ext/LexicalHandler;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setHandler(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="setLexicalHandler(Lorg/xml/sax/ext/LexicalHandler;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<field name="FEATURE" />
+	</class>
+	<class name="javax/xml/transform/sax/SAXSource" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="javax/xml/transform/Source" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/InputSource;)V" />
+		<method name="&lt;init>(Lorg/xml/sax/XMLReader;Lorg/xml/sax/InputSource;)V" />
+		<method name="getInputSource()Lorg/xml/sax/InputSource;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="getXMLReader()Lorg/xml/sax/XMLReader;" />
+		<method name="setInputSource(Lorg/xml/sax/InputSource;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<method name="setXMLReader(Lorg/xml/sax/XMLReader;)V" />
+		<method name="sourceToInputSource(Ljavax/xml/transform/Source;)Lorg/xml/sax/InputSource;" />
+		<field name="FEATURE" />
+	</class>
+	<class name="javax/xml/transform/sax/SAXTransformerFactory" since="8">
+		<extends name="javax/xml/transform/TransformerFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newTemplatesHandler()Ljavax/xml/transform/sax/TemplatesHandler;" />
+		<method name="newTransformerHandler()Ljavax/xml/transform/sax/TransformerHandler;" />
+		<method name="newTransformerHandler(Ljavax/xml/transform/Source;)Ljavax/xml/transform/sax/TransformerHandler;" />
+		<method name="newTransformerHandler(Ljavax/xml/transform/Templates;)Ljavax/xml/transform/sax/TransformerHandler;" />
+		<method name="newXMLFilter(Ljavax/xml/transform/Source;)Lorg/xml/sax/XMLFilter;" />
+		<method name="newXMLFilter(Ljavax/xml/transform/Templates;)Lorg/xml/sax/XMLFilter;" />
+		<field name="FEATURE" />
+		<field name="FEATURE_XMLFILTER" />
+	</class>
+	<class name="javax/xml/transform/sax/TemplatesHandler" since="8">
+		<implements name="org/xml/sax/ContentHandler" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="getTemplates()Ljavax/xml/transform/Templates;" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/xml/transform/sax/TransformerHandler" since="8">
+		<implements name="org/xml/sax/ContentHandler" />
+		<implements name="org/xml/sax/DTDHandler" />
+		<implements name="org/xml/sax/ext/LexicalHandler" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="getTransformer()Ljavax/xml/transform/Transformer;" />
+		<method name="setResult(Ljavax/xml/transform/Result;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="javax/xml/transform/stream/StreamResult" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="javax/xml/transform/Result" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/OutputStream;)V" />
+		<method name="&lt;init>(Ljava/io/Writer;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getOutputStream()Ljava/io/OutputStream;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="getWriter()Ljava/io/Writer;" />
+		<method name="setOutputStream(Ljava/io/OutputStream;)V" />
+		<method name="setSystemId(Ljava/io/File;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<method name="setWriter(Ljava/io/Writer;)V" />
+		<field name="FEATURE" />
+	</class>
+	<class name="javax/xml/transform/stream/StreamSource" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="javax/xml/transform/Source" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/File;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/InputStream;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getInputStream()Ljava/io/InputStream;" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getReader()Ljava/io/Reader;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setInputStream(Ljava/io/InputStream;)V" />
+		<method name="setPublicId(Ljava/lang/String;)V" />
+		<method name="setReader(Ljava/io/Reader;)V" />
+		<method name="setSystemId(Ljava/io/File;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+		<field name="FEATURE" />
+	</class>
+	<class name="javax/xml/validation/Schema" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="newValidator()Ljavax/xml/validation/Validator;" />
+		<method name="newValidatorHandler()Ljavax/xml/validation/ValidatorHandler;" />
+	</class>
+	<class name="javax/xml/validation/SchemaFactory" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getResourceResolver()Lorg/w3c/dom/ls/LSResourceResolver;" />
+		<method name="isSchemaLanguageSupported(Ljava/lang/String;)Z" />
+		<method name="newInstance(Ljava/lang/String;)Ljavax/xml/validation/SchemaFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/validation/SchemaFactory;" since="9" />
+		<method name="newSchema()Ljavax/xml/validation/Schema;" />
+		<method name="newSchema(Ljava/io/File;)Ljavax/xml/validation/Schema;" />
+		<method name="newSchema(Ljava/net/URL;)Ljavax/xml/validation/Schema;" />
+		<method name="newSchema(Ljavax/xml/transform/Source;)Ljavax/xml/validation/Schema;" />
+		<method name="newSchema([Ljavax/xml/transform/Source;)Ljavax/xml/validation/Schema;" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setResourceResolver(Lorg/w3c/dom/ls/LSResourceResolver;)V" />
+	</class>
+	<class name="javax/xml/validation/SchemaFactoryLoader" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="newFactory(Ljava/lang/String;)Ljavax/xml/validation/SchemaFactory;" />
+	</class>
+	<class name="javax/xml/validation/TypeInfoProvider" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAttributeTypeInfo(I)Lorg/w3c/dom/TypeInfo;" />
+		<method name="getElementTypeInfo()Lorg/w3c/dom/TypeInfo;" />
+		<method name="isIdAttribute(I)Z" />
+		<method name="isSpecified(I)Z" />
+	</class>
+	<class name="javax/xml/validation/Validator" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getResourceResolver()Lorg/w3c/dom/ls/LSResourceResolver;" />
+		<method name="reset()V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setResourceResolver(Lorg/w3c/dom/ls/LSResourceResolver;)V" />
+		<method name="validate(Ljavax/xml/transform/Source;)V" />
+		<method name="validate(Ljavax/xml/transform/Source;Ljavax/xml/transform/Result;)V" />
+	</class>
+	<class name="javax/xml/validation/ValidatorHandler" since="8">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/ContentHandler" />
+		<method name="&lt;init>()V" />
+		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getResourceResolver()Lorg/w3c/dom/ls/LSResourceResolver;" />
+		<method name="getTypeInfoProvider()Ljavax/xml/validation/TypeInfoProvider;" />
+		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setResourceResolver(Lorg/w3c/dom/ls/LSResourceResolver;)V" />
+	</class>
+	<class name="javax/xml/xpath/XPath" since="8">
+		<method name="compile(Ljava/lang/String;)Ljavax/xml/xpath/XPathExpression;" />
+		<method name="evaluate(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="evaluate(Ljava/lang/String;Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
+		<method name="evaluate(Ljava/lang/String;Lorg/xml/sax/InputSource;)Ljava/lang/String;" />
+		<method name="evaluate(Ljava/lang/String;Lorg/xml/sax/InputSource;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
+		<method name="getNamespaceContext()Ljavax/xml/namespace/NamespaceContext;" />
+		<method name="getXPathFunctionResolver()Ljavax/xml/xpath/XPathFunctionResolver;" />
+		<method name="getXPathVariableResolver()Ljavax/xml/xpath/XPathVariableResolver;" />
+		<method name="reset()V" />
+		<method name="setNamespaceContext(Ljavax/xml/namespace/NamespaceContext;)V" />
+		<method name="setXPathFunctionResolver(Ljavax/xml/xpath/XPathFunctionResolver;)V" />
+		<method name="setXPathVariableResolver(Ljavax/xml/xpath/XPathVariableResolver;)V" />
+	</class>
+	<class name="javax/xml/xpath/XPathConstants" since="8">
+		<extends name="java/lang/Object" />
+		<field name="BOOLEAN" />
+		<field name="DOM_OBJECT_MODEL" />
+		<field name="NODE" />
+		<field name="NODESET" />
+		<field name="NUMBER" />
+		<field name="STRING" />
+	</class>
+	<class name="javax/xml/xpath/XPathException" since="8">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/xml/xpath/XPathExpression" since="8">
+		<method name="evaluate(Ljava/lang/Object;)Ljava/lang/String;" />
+		<method name="evaluate(Ljava/lang/Object;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
+		<method name="evaluate(Lorg/xml/sax/InputSource;)Ljava/lang/String;" />
+		<method name="evaluate(Lorg/xml/sax/InputSource;Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
+	</class>
+	<class name="javax/xml/xpath/XPathExpressionException" since="8">
+		<extends name="javax/xml/xpath/XPathException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/xml/xpath/XPathFactory" since="8">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="isObjectModelSupported(Ljava/lang/String;)Z" />
+		<method name="newInstance()Ljavax/xml/xpath/XPathFactory;" />
+		<method name="newInstance(Ljava/lang/String;)Ljavax/xml/xpath/XPathFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/String;Ljava/lang/ClassLoader;)Ljavax/xml/xpath/XPathFactory;" />
+		<method name="newXPath()Ljavax/xml/xpath/XPath;" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setXPathFunctionResolver(Ljavax/xml/xpath/XPathFunctionResolver;)V" />
+		<method name="setXPathVariableResolver(Ljavax/xml/xpath/XPathVariableResolver;)V" />
+		<field name="DEFAULT_OBJECT_MODEL_URI" />
+		<field name="DEFAULT_PROPERTY_NAME" />
+	</class>
+	<class name="javax/xml/xpath/XPathFactoryConfigurationException" since="8">
+		<extends name="javax/xml/xpath/XPathException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/xml/xpath/XPathFunction" since="8">
+		<method name="evaluate(Ljava/util/List;)Ljava/lang/Object;" />
+	</class>
+	<class name="javax/xml/xpath/XPathFunctionException" since="8">
+		<extends name="javax/xml/xpath/XPathExpressionException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="javax/xml/xpath/XPathFunctionResolver" since="8">
+		<method name="resolveFunction(Ljavax/xml/namespace/QName;I)Ljavax/xml/xpath/XPathFunction;" />
+	</class>
+	<class name="javax/xml/xpath/XPathVariableResolver" since="8">
+		<method name="resolveVariable(Ljavax/xml/namespace/QName;)Ljava/lang/Object;" />
+	</class>
+	<class name="junit/framework/Assert" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="assertEquals(BB)V" />
+		<method name="assertEquals(CC)V" />
+		<method name="assertEquals(DDD)V" />
+		<method name="assertEquals(FFF)V" />
+		<method name="assertEquals(II)V" />
+		<method name="assertEquals(JJ)V" />
+		<method name="assertEquals(Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertEquals(Ljava/lang/String;BB)V" />
+		<method name="assertEquals(Ljava/lang/String;CC)V" />
+		<method name="assertEquals(Ljava/lang/String;DDD)V" />
+		<method name="assertEquals(Ljava/lang/String;FFF)V" />
+		<method name="assertEquals(Ljava/lang/String;II)V" />
+		<method name="assertEquals(Ljava/lang/String;JJ)V" />
+		<method name="assertEquals(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertEquals(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="assertEquals(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="assertEquals(Ljava/lang/String;SS)V" />
+		<method name="assertEquals(Ljava/lang/String;ZZ)V" />
+		<method name="assertEquals(SS)V" />
+		<method name="assertEquals(ZZ)V" />
+		<method name="assertFalse(Ljava/lang/String;Z)V" />
+		<method name="assertFalse(Z)V" />
+		<method name="assertNotNull(Ljava/lang/Object;)V" />
+		<method name="assertNotNull(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="assertNotSame(Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertNotSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertNull(Ljava/lang/Object;)V" />
+		<method name="assertNull(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="assertSame(Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertSame(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" />
+		<method name="assertTrue(Ljava/lang/String;Z)V" />
+		<method name="assertTrue(Z)V" />
+		<method name="fail()V" />
+		<method name="fail(Ljava/lang/String;)V" />
+	</class>
+	<class name="junit/framework/AssertionFailedError" since="1">
+		<extends name="java/lang/Error" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="junit/framework/ComparisonFailure" since="1">
+		<extends name="junit/framework/AssertionFailedError" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="junit/framework/Protectable" since="1">
+		<method name="protect()V" />
+	</class>
+	<class name="junit/framework/Test" since="1">
+		<method name="countTestCases()I" />
+		<method name="run(Ljunit/framework/TestResult;)V" />
+	</class>
+	<class name="junit/framework/TestCase" since="1">
+		<extends name="junit/framework/Assert" />
+		<implements name="junit/framework/Test" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="countTestCases()I" />
+		<method name="createResult()Ljunit/framework/TestResult;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="run()Ljunit/framework/TestResult;" />
+		<method name="run(Ljunit/framework/TestResult;)V" />
+		<method name="runBare()V" />
+		<method name="runTest()V" />
+		<method name="setName(Ljava/lang/String;)V" />
+		<method name="setUp()V" />
+		<method name="tearDown()V" />
+	</class>
+	<class name="junit/framework/TestFailure" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
+		<method name="exceptionMessage()Ljava/lang/String;" />
+		<method name="failedTest()Ljunit/framework/Test;" />
+		<method name="isFailure()Z" />
+		<method name="thrownException()Ljava/lang/Throwable;" />
+		<method name="trace()Ljava/lang/String;" />
+		<field name="fFailedTest" />
+		<field name="fThrownException" />
+	</class>
+	<class name="junit/framework/TestListener" since="1">
+		<method name="addError(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
+		<method name="addFailure(Ljunit/framework/Test;Ljunit/framework/AssertionFailedError;)V" />
+		<method name="endTest(Ljunit/framework/Test;)V" />
+		<method name="startTest(Ljunit/framework/Test;)V" />
+	</class>
+	<class name="junit/framework/TestResult" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="addError(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
+		<method name="addFailure(Ljunit/framework/Test;Ljunit/framework/AssertionFailedError;)V" />
+		<method name="addListener(Ljunit/framework/TestListener;)V" />
+		<method name="endTest(Ljunit/framework/Test;)V" />
+		<method name="errorCount()I" />
+		<method name="errors()Ljava/util/Enumeration;" />
+		<method name="failureCount()I" />
+		<method name="failures()Ljava/util/Enumeration;" />
+		<method name="removeListener(Ljunit/framework/TestListener;)V" />
+		<method name="run(Ljunit/framework/TestCase;)V" />
+		<method name="runCount()I" />
+		<method name="runProtected(Ljunit/framework/Test;Ljunit/framework/Protectable;)V" />
+		<method name="shouldStop()Z" />
+		<method name="startTest(Ljunit/framework/Test;)V" />
+		<method name="stop()V" />
+		<method name="wasSuccessful()Z" />
+		<field name="fErrors" />
+		<field name="fFailures" />
+		<field name="fListeners" />
+		<field name="fRunTests" />
+	</class>
+	<class name="junit/framework/TestSuite" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="junit/framework/Test" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Class;)V" />
+		<method name="&lt;init>(Ljava/lang/Class;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="addTest(Ljunit/framework/Test;)V" />
+		<method name="addTestSuite(Ljava/lang/Class;)V" />
+		<method name="countTestCases()I" />
+		<method name="createTest(Ljava/lang/Class;Ljava/lang/String;)Ljunit/framework/Test;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getTestConstructor(Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" />
+		<method name="run(Ljunit/framework/TestResult;)V" />
+		<method name="runTest(Ljunit/framework/Test;Ljunit/framework/TestResult;)V" />
+		<method name="setName(Ljava/lang/String;)V" />
+		<method name="testAt(I)Ljunit/framework/Test;" />
+		<method name="testCount()I" />
+		<method name="tests()Ljava/util/Enumeration;" />
+	</class>
+	<class name="junit/runner/BaseTestRunner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="junit/framework/TestListener" />
+		<method name="&lt;init>()V" />
+		<method name="addError(Ljunit/framework/Test;Ljava/lang/Throwable;)V" />
+		<method name="addFailure(Ljunit/framework/Test;Ljunit/framework/AssertionFailedError;)V" />
+		<method name="clearStatus()V" />
+		<method name="elapsedTimeAsString(J)Ljava/lang/String;" />
+		<method name="endTest(Ljunit/framework/Test;)V" />
+		<method name="extractClassName(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getFilteredTrace(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getFilteredTrace(Ljava/lang/Throwable;)Ljava/lang/String;" />
+		<method name="getLoader()Ljunit/runner/TestSuiteLoader;" />
+		<method name="getPreference(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getPreference(Ljava/lang/String;I)I" />
+		<method name="getPreferences()Ljava/util/Properties;" />
+		<method name="getTest(Ljava/lang/String;)Ljunit/framework/Test;" />
+		<method name="inVAJava()Z" />
+		<method name="loadSuiteClass(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="processArguments([Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="runFailed(Ljava/lang/String;)V" />
+		<method name="savePreferences()V" />
+		<method name="setLoading(Z)V" />
+		<method name="setPreference(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setPreferences(Ljava/util/Properties;)V" />
+		<method name="showStackRaw()Z" />
+		<method name="startTest(Ljunit/framework/Test;)V" />
+		<method name="testEnded(Ljava/lang/String;)V" />
+		<method name="testFailed(ILjunit/framework/Test;Ljava/lang/Throwable;)V" />
+		<method name="testStarted(Ljava/lang/String;)V" />
+		<method name="truncate(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="useReloadingTestSuiteLoader()Z" />
+		<field name="SUITE_METHODNAME" />
+	</class>
+	<class name="junit/runner/TestSuiteLoader" since="1">
+		<method name="load(Ljava/lang/String;)Ljava/lang/Class;" />
+		<method name="reload(Ljava/lang/Class;)Ljava/lang/Class;" />
+	</class>
+	<class name="junit/runner/Version" since="1">
+		<extends name="java/lang/Object" />
+		<method name="id()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/commons/logging/Log" since="1">
+		<method name="debug(Ljava/lang/Object;)V" />
+		<method name="debug(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
+		<method name="error(Ljava/lang/Object;)V" />
+		<method name="error(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
+		<method name="fatal(Ljava/lang/Object;)V" />
+		<method name="fatal(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
+		<method name="info(Ljava/lang/Object;)V" />
+		<method name="info(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
+		<method name="isDebugEnabled()Z" />
+		<method name="isErrorEnabled()Z" />
+		<method name="isFatalEnabled()Z" />
+		<method name="isInfoEnabled()Z" />
+		<method name="isTraceEnabled()Z" />
+		<method name="isWarnEnabled()Z" />
+		<method name="trace(Ljava/lang/Object;)V" />
+		<method name="trace(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
+		<method name="warn(Ljava/lang/Object;)V" />
+		<method name="warn(Ljava/lang/Object;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/ConnectionClosedException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/ConnectionReuseStrategy" since="1">
+		<method name="keepAlive(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/FormattedHeader" since="1">
+		<implements name="org/apache/http/Header" />
+		<method name="getBuffer()Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="getValuePos()I" />
+	</class>
+	<class name="org/apache/http/Header" since="1">
+		<method name="getElements()[Lorg/apache/http/HeaderElement;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getValue()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/HeaderElement" since="1">
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParameter(I)Lorg/apache/http/NameValuePair;" />
+		<method name="getParameterByName(Ljava/lang/String;)Lorg/apache/http/NameValuePair;" />
+		<method name="getParameterCount()I" />
+		<method name="getParameters()[Lorg/apache/http/NameValuePair;" />
+		<method name="getValue()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/HeaderElementIterator" since="1">
+		<implements name="java/util/Iterator" />
+		<method name="hasNext()Z" />
+		<method name="nextElement()Lorg/apache/http/HeaderElement;" />
+	</class>
+	<class name="org/apache/http/HeaderIterator" since="1">
+		<implements name="java/util/Iterator" />
+		<method name="hasNext()Z" />
+		<method name="nextHeader()Lorg/apache/http/Header;" />
+	</class>
+	<class name="org/apache/http/HttpClientConnection" since="1">
+		<implements name="org/apache/http/HttpConnection" />
+		<method name="flush()V" />
+		<method name="isResponseAvailable(I)Z" />
+		<method name="receiveResponseEntity(Lorg/apache/http/HttpResponse;)V" />
+		<method name="receiveResponseHeader()Lorg/apache/http/HttpResponse;" />
+		<method name="sendRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
+		<method name="sendRequestHeader(Lorg/apache/http/HttpRequest;)V" />
+	</class>
+	<class name="org/apache/http/HttpConnection" since="1">
+		<method name="close()V" />
+		<method name="getMetrics()Lorg/apache/http/HttpConnectionMetrics;" />
+		<method name="getSocketTimeout()I" />
+		<method name="isOpen()Z" />
+		<method name="isStale()Z" />
+		<method name="setSocketTimeout(I)V" />
+		<method name="shutdown()V" />
+	</class>
+	<class name="org/apache/http/HttpConnectionMetrics" since="1">
+		<method name="getMetric(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getReceivedBytesCount()J" />
+		<method name="getRequestCount()J" />
+		<method name="getResponseCount()J" />
+		<method name="getSentBytesCount()J" />
+		<method name="reset()V" />
+	</class>
+	<class name="org/apache/http/HttpEntity" since="1">
+		<method name="consumeContent()V" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentEncoding()Lorg/apache/http/Header;" />
+		<method name="getContentLength()J" />
+		<method name="getContentType()Lorg/apache/http/Header;" />
+		<method name="isChunked()Z" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="org/apache/http/HttpEntityEnclosingRequest" since="1">
+		<implements name="org/apache/http/HttpRequest" />
+		<method name="expectContinue()Z" />
+		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
+		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
+	</class>
+	<class name="org/apache/http/HttpException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/HttpHost" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getHostName()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="getSchemeName()Ljava/lang/String;" />
+		<method name="toHostString()Ljava/lang/String;" />
+		<method name="toURI()Ljava/lang/String;" />
+		<field name="DEFAULT_SCHEME_NAME" />
+		<field name="hostname" />
+		<field name="lcHostname" />
+		<field name="port" />
+		<field name="schemeName" />
+	</class>
+	<class name="org/apache/http/HttpInetConnection" since="1">
+		<implements name="org/apache/http/HttpConnection" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
+		<method name="getRemotePort()I" />
+	</class>
+	<class name="org/apache/http/HttpMessage" since="1">
+		<method name="addHeader(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="addHeader(Lorg/apache/http/Header;)V" />
+		<method name="containsHeader(Ljava/lang/String;)Z" />
+		<method name="getAllHeaders()[Lorg/apache/http/Header;" />
+		<method name="getFirstHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="getHeaders(Ljava/lang/String;)[Lorg/apache/http/Header;" />
+		<method name="getLastHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="headerIterator()Lorg/apache/http/HeaderIterator;" />
+		<method name="headerIterator(Ljava/lang/String;)Lorg/apache/http/HeaderIterator;" />
+		<method name="removeHeader(Lorg/apache/http/Header;)V" />
+		<method name="removeHeaders(Ljava/lang/String;)V" />
+		<method name="setHeader(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setHeader(Lorg/apache/http/Header;)V" />
+		<method name="setHeaders([Lorg/apache/http/Header;)V" />
+		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/HttpRequest" since="1">
+		<implements name="org/apache/http/HttpMessage" />
+		<method name="getRequestLine()Lorg/apache/http/RequestLine;" />
+	</class>
+	<class name="org/apache/http/HttpRequestFactory" since="1">
+		<method name="newHttpRequest(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/http/HttpRequest;" />
+		<method name="newHttpRequest(Lorg/apache/http/RequestLine;)Lorg/apache/http/HttpRequest;" />
+	</class>
+	<class name="org/apache/http/HttpRequestInterceptor" since="1">
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/HttpResponse" since="1">
+		<implements name="org/apache/http/HttpMessage" />
+		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
+		<method name="getLocale()Ljava/util/Locale;" />
+		<method name="getStatusLine()Lorg/apache/http/StatusLine;" />
+		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
+		<method name="setLocale(Ljava/util/Locale;)V" />
+		<method name="setReasonPhrase(Ljava/lang/String;)V" />
+		<method name="setStatusCode(I)V" />
+		<method name="setStatusLine(Lorg/apache/http/ProtocolVersion;I)V" />
+		<method name="setStatusLine(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
+		<method name="setStatusLine(Lorg/apache/http/StatusLine;)V" />
+	</class>
+	<class name="org/apache/http/HttpResponseFactory" since="1">
+		<method name="newHttpResponse(Lorg/apache/http/ProtocolVersion;ILorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="newHttpResponse(Lorg/apache/http/StatusLine;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+	</class>
+	<class name="org/apache/http/HttpResponseInterceptor" since="1">
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/HttpServerConnection" since="1">
+		<implements name="org/apache/http/HttpConnection" />
+		<method name="flush()V" />
+		<method name="receiveRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
+		<method name="receiveRequestHeader()Lorg/apache/http/HttpRequest;" />
+		<method name="sendResponseEntity(Lorg/apache/http/HttpResponse;)V" />
+		<method name="sendResponseHeader(Lorg/apache/http/HttpResponse;)V" />
+	</class>
+	<class name="org/apache/http/HttpStatus" since="1">
+		<field name="SC_ACCEPTED" />
+		<field name="SC_BAD_GATEWAY" />
+		<field name="SC_BAD_REQUEST" />
+		<field name="SC_CONFLICT" />
+		<field name="SC_CONTINUE" />
+		<field name="SC_CREATED" />
+		<field name="SC_EXPECTATION_FAILED" />
+		<field name="SC_FAILED_DEPENDENCY" />
+		<field name="SC_FORBIDDEN" />
+		<field name="SC_GATEWAY_TIMEOUT" />
+		<field name="SC_GONE" />
+		<field name="SC_HTTP_VERSION_NOT_SUPPORTED" />
+		<field name="SC_INSUFFICIENT_SPACE_ON_RESOURCE" />
+		<field name="SC_INSUFFICIENT_STORAGE" />
+		<field name="SC_INTERNAL_SERVER_ERROR" />
+		<field name="SC_LENGTH_REQUIRED" />
+		<field name="SC_LOCKED" />
+		<field name="SC_METHOD_FAILURE" />
+		<field name="SC_METHOD_NOT_ALLOWED" />
+		<field name="SC_MOVED_PERMANENTLY" />
+		<field name="SC_MOVED_TEMPORARILY" />
+		<field name="SC_MULTIPLE_CHOICES" />
+		<field name="SC_MULTI_STATUS" />
+		<field name="SC_NON_AUTHORITATIVE_INFORMATION" />
+		<field name="SC_NOT_ACCEPTABLE" />
+		<field name="SC_NOT_FOUND" />
+		<field name="SC_NOT_IMPLEMENTED" />
+		<field name="SC_NOT_MODIFIED" />
+		<field name="SC_NO_CONTENT" />
+		<field name="SC_OK" />
+		<field name="SC_PARTIAL_CONTENT" />
+		<field name="SC_PAYMENT_REQUIRED" />
+		<field name="SC_PRECONDITION_FAILED" />
+		<field name="SC_PROCESSING" />
+		<field name="SC_PROXY_AUTHENTICATION_REQUIRED" />
+		<field name="SC_REQUESTED_RANGE_NOT_SATISFIABLE" />
+		<field name="SC_REQUEST_TIMEOUT" />
+		<field name="SC_REQUEST_TOO_LONG" />
+		<field name="SC_REQUEST_URI_TOO_LONG" />
+		<field name="SC_RESET_CONTENT" />
+		<field name="SC_SEE_OTHER" />
+		<field name="SC_SERVICE_UNAVAILABLE" />
+		<field name="SC_SWITCHING_PROTOCOLS" />
+		<field name="SC_TEMPORARY_REDIRECT" />
+		<field name="SC_UNAUTHORIZED" />
+		<field name="SC_UNPROCESSABLE_ENTITY" />
+		<field name="SC_UNSUPPORTED_MEDIA_TYPE" />
+		<field name="SC_USE_PROXY" />
+	</class>
+	<class name="org/apache/http/HttpVersion" since="1">
+		<extends name="org/apache/http/ProtocolVersion" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(II)V" />
+		<field name="HTTP" />
+		<field name="HTTP_0_9" />
+		<field name="HTTP_1_0" />
+		<field name="HTTP_1_1" />
+	</class>
+	<class name="org/apache/http/MalformedChunkCodingException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/MethodNotSupportedException" since="1">
+		<extends name="org/apache/http/HttpException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/NameValuePair" since="1">
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getValue()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/NoHttpResponseException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/ParseException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/ProtocolException" since="1">
+		<extends name="org/apache/http/HttpException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/ProtocolVersion" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>(Ljava/lang/String;II)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="compareToVersion(Lorg/apache/http/ProtocolVersion;)I" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="forVersion(II)Lorg/apache/http/ProtocolVersion;" />
+		<method name="getMajor()I" />
+		<method name="getMinor()I" />
+		<method name="getProtocol()Ljava/lang/String;" />
+		<method name="greaterEquals(Lorg/apache/http/ProtocolVersion;)Z" />
+		<method name="hashCode()I" />
+		<method name="isComparable(Lorg/apache/http/ProtocolVersion;)Z" />
+		<method name="lessEquals(Lorg/apache/http/ProtocolVersion;)Z" />
+		<field name="major" />
+		<field name="minor" />
+		<field name="protocol" />
+	</class>
+	<class name="org/apache/http/ReasonPhraseCatalog" since="1">
+		<method name="getReason(ILjava/util/Locale;)Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/RequestLine" since="1">
+		<method name="getMethod()Ljava/lang/String;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getUri()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/StatusLine" since="1">
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getReasonPhrase()Ljava/lang/String;" />
+		<method name="getStatusCode()I" />
+	</class>
+	<class name="org/apache/http/TokenIterator" since="1">
+		<implements name="java/util/Iterator" />
+		<method name="hasNext()Z" />
+		<method name="nextToken()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/UnsupportedHttpVersionException" since="1">
+		<extends name="org/apache/http/ProtocolException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/auth/AUTH" since="1">
+		<extends name="java/lang/Object" />
+		<field name="PROXY_AUTH" />
+		<field name="PROXY_AUTH_RESP" />
+		<field name="WWW_AUTH" />
+		<field name="WWW_AUTH_RESP" />
+	</class>
+	<class name="org/apache/http/auth/AuthScheme" since="1">
+		<method name="authenticate(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getRealm()Ljava/lang/String;" />
+		<method name="getSchemeName()Ljava/lang/String;" />
+		<method name="isComplete()Z" />
+		<method name="isConnectionBased()Z" />
+		<method name="processChallenge(Lorg/apache/http/Header;)V" />
+	</class>
+	<class name="org/apache/http/auth/AuthSchemeFactory" since="1">
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/auth/AuthScheme;" />
+	</class>
+	<class name="org/apache/http/auth/AuthSchemeRegistry" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAuthScheme(Ljava/lang/String;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/auth/AuthScheme;" />
+		<method name="getSchemeNames()Ljava/util/List;" />
+		<method name="register(Ljava/lang/String;Lorg/apache/http/auth/AuthSchemeFactory;)V" />
+		<method name="setItems(Ljava/util/Map;)V" />
+		<method name="unregister(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/auth/AuthScope" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;I)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Lorg/apache/http/auth/AuthScope;)V" />
+		<method name="getHost()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="getRealm()Ljava/lang/String;" />
+		<method name="getScheme()Ljava/lang/String;" />
+		<method name="match(Lorg/apache/http/auth/AuthScope;)I" />
+		<field name="ANY" />
+		<field name="ANY_HOST" />
+		<field name="ANY_PORT" />
+		<field name="ANY_REALM" />
+		<field name="ANY_SCHEME" />
+	</class>
+	<class name="org/apache/http/auth/AuthState" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getAuthScheme()Lorg/apache/http/auth/AuthScheme;" />
+		<method name="getAuthScope()Lorg/apache/http/auth/AuthScope;" />
+		<method name="getCredentials()Lorg/apache/http/auth/Credentials;" />
+		<method name="invalidate()V" />
+		<method name="isValid()Z" />
+		<method name="setAuthScheme(Lorg/apache/http/auth/AuthScheme;)V" />
+		<method name="setAuthScope(Lorg/apache/http/auth/AuthScope;)V" />
+		<method name="setCredentials(Lorg/apache/http/auth/Credentials;)V" />
+	</class>
+	<class name="org/apache/http/auth/AuthenticationException" since="1">
+		<extends name="org/apache/http/ProtocolException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/auth/BasicUserPrincipal" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/Principal" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getName()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/auth/Credentials" since="1">
+		<method name="getPassword()Ljava/lang/String;" />
+		<method name="getUserPrincipal()Ljava/security/Principal;" />
+	</class>
+	<class name="org/apache/http/auth/InvalidCredentialsException" since="1">
+		<extends name="org/apache/http/auth/AuthenticationException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/auth/MalformedChallengeException" since="1">
+		<extends name="org/apache/http/ProtocolException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/auth/NTCredentials" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/auth/Credentials" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getDomain()Ljava/lang/String;" />
+		<method name="getPassword()Ljava/lang/String;" />
+		<method name="getUserName()Ljava/lang/String;" />
+		<method name="getUserPrincipal()Ljava/security/Principal;" />
+		<method name="getWorkstation()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/auth/NTUserPrincipal" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/security/Principal" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getDomain()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getUsername()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/auth/UsernamePasswordCredentials" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/auth/Credentials" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getPassword()Ljava/lang/String;" />
+		<method name="getUserName()Ljava/lang/String;" />
+		<method name="getUserPrincipal()Ljava/security/Principal;" />
+	</class>
+	<class name="org/apache/http/auth/params/AuthPNames" since="1">
+		<field name="CREDENTIAL_CHARSET" />
+	</class>
+	<class name="org/apache/http/auth/params/AuthParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setCredentialCharset(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/auth/params/AuthParams" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getCredentialCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
+		<method name="setCredentialCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/client/AuthenticationHandler" since="1">
+		<method name="getChallenges(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/util/Map;" />
+		<method name="isAuthenticationRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+		<method name="selectScheme(Ljava/util/Map;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/auth/AuthScheme;" />
+	</class>
+	<class name="org/apache/http/client/CircularRedirectException" since="1">
+		<extends name="org/apache/http/client/RedirectException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/client/ClientProtocolException" since="1">
+		<extends name="java/io/IOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+		<method name="&lt;init>(Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/client/CookieStore" since="1">
+		<method name="addCookie(Lorg/apache/http/cookie/Cookie;)V" />
+		<method name="clear()V" />
+		<method name="clearExpired(Ljava/util/Date;)Z" />
+		<method name="getCookies()Ljava/util/List;" />
+	</class>
+	<class name="org/apache/http/client/CredentialsProvider" since="1">
+		<method name="clear()V" />
+		<method name="getCredentials(Lorg/apache/http/auth/AuthScope;)Lorg/apache/http/auth/Credentials;" />
+		<method name="setCredentials(Lorg/apache/http/auth/AuthScope;Lorg/apache/http/auth/Credentials;)V" />
+	</class>
+	<class name="org/apache/http/client/HttpClient" since="1">
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;)LT;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)LT;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;)LT;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)LT;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="getConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
+		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
+	</class>
+	<class name="org/apache/http/client/HttpRequestRetryHandler" since="1">
+		<method name="retryRequest(Ljava/io/IOException;ILorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/client/HttpResponseException" since="1">
+		<extends name="org/apache/http/client/ClientProtocolException" />
+		<method name="&lt;init>(ILjava/lang/String;)V" />
+		<method name="getStatusCode()I" />
+	</class>
+	<class name="org/apache/http/client/NonRepeatableRequestException" since="1">
+		<extends name="org/apache/http/ProtocolException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/client/RedirectException" since="1">
+		<extends name="org/apache/http/ProtocolException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/client/RedirectHandler" since="1">
+		<method name="getLocationURI(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/net/URI;" />
+		<method name="isRedirectRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/client/RequestDirector" since="1">
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+	</class>
+	<class name="org/apache/http/client/ResponseHandler" since="1">
+		<method name="handleResponse(Lorg/apache/http/HttpResponse;)LT;" />
+	</class>
+	<class name="org/apache/http/client/UserTokenHandler" since="1">
+		<method name="getUserToken(Lorg/apache/http/protocol/HttpContext;)Ljava/lang/Object;" />
+	</class>
+	<class name="org/apache/http/client/entity/UrlEncodedFormEntity" since="1">
+		<extends name="org/apache/http/entity/StringEntity" />
+		<method name="&lt;init>(Ljava/util/List;)V" />
+		<method name="&lt;init>(Ljava/util/List;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/client/methods/AbortableHttpRequest" since="1">
+		<method name="abort()V" />
+		<method name="setConnectionRequest(Lorg/apache/http/conn/ClientConnectionRequest;)V" />
+		<method name="setReleaseTrigger(Lorg/apache/http/conn/ConnectionReleaseTrigger;)V" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpDelete" since="1">
+		<extends name="org/apache/http/client/methods/HttpRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpEntityEnclosingRequestBase" since="1">
+		<extends name="org/apache/http/client/methods/HttpRequestBase" />
+		<implements name="org/apache/http/HttpEntityEnclosingRequest" />
+		<method name="&lt;init>()V" />
+		<method name="expectContinue()Z" />
+		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
+		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpGet" since="1">
+		<extends name="org/apache/http/client/methods/HttpRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpHead" since="1">
+		<extends name="org/apache/http/client/methods/HttpRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpOptions" since="1">
+		<extends name="org/apache/http/client/methods/HttpRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getAllowedMethods(Lorg/apache/http/HttpResponse;)Ljava/util/Set;" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpPost" since="1">
+		<extends name="org/apache/http/client/methods/HttpEntityEnclosingRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpPut" since="1">
+		<extends name="org/apache/http/client/methods/HttpEntityEnclosingRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpRequestBase" since="1">
+		<extends name="org/apache/http/message/AbstractHttpMessage" />
+		<implements name="org/apache/http/client/methods/AbortableHttpRequest" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/client/methods/HttpUriRequest" />
+		<method name="&lt;init>()V" />
+		<method name="abort()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getRequestLine()Lorg/apache/http/RequestLine;" />
+		<method name="getURI()Ljava/net/URI;" />
+		<method name="isAborted()Z" />
+		<method name="setConnectionRequest(Lorg/apache/http/conn/ClientConnectionRequest;)V" />
+		<method name="setReleaseTrigger(Lorg/apache/http/conn/ConnectionReleaseTrigger;)V" />
+		<method name="setURI(Ljava/net/URI;)V" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpTrace" since="1">
+		<extends name="org/apache/http/client/methods/HttpRequestBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/net/URI;)V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<field name="METHOD_NAME" />
+	</class>
+	<class name="org/apache/http/client/methods/HttpUriRequest" since="1">
+		<implements name="org/apache/http/HttpRequest" />
+		<method name="abort()V" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<method name="getURI()Ljava/net/URI;" />
+		<method name="isAborted()Z" />
+	</class>
+	<class name="org/apache/http/client/params/AllClientPNames" since="1">
+		<implements name="org/apache/http/auth/params/AuthPNames" />
+		<implements name="org/apache/http/client/params/ClientPNames" />
+		<implements name="org/apache/http/conn/params/ConnConnectionPNames" />
+		<implements name="org/apache/http/conn/params/ConnManagerPNames" />
+		<implements name="org/apache/http/conn/params/ConnRoutePNames" />
+		<implements name="org/apache/http/cookie/params/CookieSpecPNames" />
+		<implements name="org/apache/http/params/CoreConnectionPNames" />
+		<implements name="org/apache/http/params/CoreProtocolPNames" />
+	</class>
+	<class name="org/apache/http/client/params/AuthPolicy" since="1">
+		<extends name="java/lang/Object" />
+		<field name="BASIC" />
+		<field name="DIGEST" />
+		<field name="NTLM" />
+	</class>
+	<class name="org/apache/http/client/params/ClientPNames" since="1">
+		<field name="ALLOW_CIRCULAR_REDIRECTS" />
+		<field name="CONNECTION_MANAGER_FACTORY" />
+		<field name="CONNECTION_MANAGER_FACTORY_CLASS_NAME" />
+		<field name="COOKIE_POLICY" />
+		<field name="DEFAULT_HEADERS" />
+		<field name="DEFAULT_HOST" />
+		<field name="HANDLE_AUTHENTICATION" />
+		<field name="HANDLE_REDIRECTS" />
+		<field name="MAX_REDIRECTS" />
+		<field name="REJECT_RELATIVE_REDIRECT" />
+		<field name="VIRTUAL_HOST" />
+	</class>
+	<class name="org/apache/http/client/params/ClientParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setAllowCircularRedirects(Z)V" />
+		<method name="setConnectionManagerFactory(Lorg/apache/http/conn/ClientConnectionManagerFactory;)V" />
+		<method name="setConnectionManagerFactoryClassName(Ljava/lang/String;)V" />
+		<method name="setCookiePolicy(Ljava/lang/String;)V" />
+		<method name="setDefaultHeaders(Ljava/util/Collection;)V" />
+		<method name="setDefaultHost(Lorg/apache/http/HttpHost;)V" />
+		<method name="setHandleAuthentication(Z)V" />
+		<method name="setHandleRedirects(Z)V" />
+		<method name="setMaxRedirects(I)V" />
+		<method name="setRejectRelativeRedirect(Z)V" />
+		<method name="setVirtualHost(Lorg/apache/http/HttpHost;)V" />
+	</class>
+	<class name="org/apache/http/client/params/CookiePolicy" since="1">
+		<extends name="java/lang/Object" />
+		<field name="BEST_MATCH" />
+		<field name="BROWSER_COMPATIBILITY" />
+		<field name="NETSCAPE" />
+		<field name="RFC_2109" />
+		<field name="RFC_2965" />
+	</class>
+	<class name="org/apache/http/client/params/HttpClientParams" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getCookiePolicy(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
+		<method name="isAuthenticating(Lorg/apache/http/params/HttpParams;)Z" />
+		<method name="isRedirecting(Lorg/apache/http/params/HttpParams;)Z" />
+		<method name="setAuthenticating(Lorg/apache/http/params/HttpParams;Z)V" />
+		<method name="setCookiePolicy(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
+		<method name="setRedirecting(Lorg/apache/http/params/HttpParams;Z)V" />
+	</class>
+	<class name="org/apache/http/client/protocol/ClientContext" since="1">
+		<field name="AUTHSCHEME_REGISTRY" />
+		<field name="AUTH_SCHEME_PREF" />
+		<field name="COOKIESPEC_REGISTRY" />
+		<field name="COOKIE_ORIGIN" />
+		<field name="COOKIE_SPEC" />
+		<field name="COOKIE_STORE" />
+		<field name="CREDS_PROVIDER" />
+		<field name="PROXY_AUTH_STATE" />
+		<field name="TARGET_AUTH_STATE" />
+		<field name="USER_TOKEN" />
+	</class>
+	<class name="org/apache/http/client/protocol/ClientContextConfigurer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/protocol/ClientContext" />
+		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="setAuthSchemePref(Ljava/util/List;)V" />
+		<method name="setAuthSchemeRegistry(Lorg/apache/http/auth/AuthSchemeRegistry;)V" />
+		<method name="setCookieSpecRegistry(Lorg/apache/http/cookie/CookieSpecRegistry;)V" />
+		<method name="setCookieStore(Lorg/apache/http/client/CookieStore;)V" />
+		<method name="setCredentialsProvider(Lorg/apache/http/client/CredentialsProvider;)V" />
+	</class>
+	<class name="org/apache/http/client/protocol/RequestAddCookies" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/client/protocol/RequestDefaultHeaders" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/client/protocol/RequestProxyAuthentication" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/client/protocol/RequestTargetAuthentication" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/client/protocol/ResponseProcessCookies" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpResponseInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/client/utils/CloneUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="clone(Ljava/lang/Object;)Ljava/lang/Object;" />
+	</class>
+	<class name="org/apache/http/client/utils/URIUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="createURI(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/net/URI;" />
+		<method name="resolve(Ljava/net/URI;Ljava/lang/String;)Ljava/net/URI;" />
+		<method name="resolve(Ljava/net/URI;Ljava/net/URI;)Ljava/net/URI;" />
+		<method name="rewriteURI(Ljava/net/URI;Lorg/apache/http/HttpHost;)Ljava/net/URI;" />
+		<method name="rewriteURI(Ljava/net/URI;Lorg/apache/http/HttpHost;Z)Ljava/net/URI;" />
+	</class>
+	<class name="org/apache/http/client/utils/URLEncodedUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="format(Ljava/util/List;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="isEncoded(Lorg/apache/http/HttpEntity;)Z" />
+		<method name="parse(Ljava/net/URI;Ljava/lang/String;)Ljava/util/List;" />
+		<method name="parse(Ljava/util/List;Ljava/util/Scanner;Ljava/lang/String;)V" />
+		<method name="parse(Lorg/apache/http/HttpEntity;)Ljava/util/List;" />
+		<field name="CONTENT_TYPE" />
+	</class>
+	<class name="org/apache/http/conn/BasicEofSensorWatcher" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/EofSensorWatcher" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ManagedClientConnection;Z)V" />
+		<method name="eofDetected(Ljava/io/InputStream;)Z" />
+		<method name="streamAbort(Ljava/io/InputStream;)Z" />
+		<method name="streamClosed(Ljava/io/InputStream;)Z" />
+		<field name="attemptReuse" />
+		<field name="managedConn" />
+	</class>
+	<class name="org/apache/http/conn/BasicManagedEntity" since="1">
+		<extends name="org/apache/http/entity/HttpEntityWrapper" />
+		<implements name="org/apache/http/conn/ConnectionReleaseTrigger" />
+		<implements name="org/apache/http/conn/EofSensorWatcher" />
+		<method name="&lt;init>(Lorg/apache/http/HttpEntity;Lorg/apache/http/conn/ManagedClientConnection;Z)V" />
+		<method name="abortConnection()V" />
+		<method name="eofDetected(Ljava/io/InputStream;)Z" />
+		<method name="releaseConnection()V" />
+		<method name="releaseManagedConnection()V" />
+		<method name="streamAbort(Ljava/io/InputStream;)Z" />
+		<method name="streamClosed(Ljava/io/InputStream;)Z" />
+		<field name="attemptReuse" />
+		<field name="managedConn" />
+	</class>
+	<class name="org/apache/http/conn/ClientConnectionManager" since="1">
+		<method name="closeExpiredConnections()V" />
+		<method name="closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="getSchemeRegistry()Lorg/apache/http/conn/scheme/SchemeRegistry;" />
+		<method name="releaseConnection(Lorg/apache/http/conn/ManagedClientConnection;JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="requestConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ClientConnectionRequest;" />
+		<method name="shutdown()V" />
+	</class>
+	<class name="org/apache/http/conn/ClientConnectionManagerFactory" since="1">
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionManager;" />
+	</class>
+	<class name="org/apache/http/conn/ClientConnectionOperator" since="1">
+		<method name="createConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
+		<method name="openConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="updateSecureConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/conn/ClientConnectionRequest" since="1">
+		<method name="abortRequest()V" />
+		<method name="getConnection(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/conn/ManagedClientConnection;" />
+	</class>
+	<class name="org/apache/http/conn/ConnectTimeoutException" since="1">
+		<extends name="java/io/InterruptedIOException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/conn/ConnectionKeepAliveStrategy" since="1">
+		<method name="getKeepAliveDuration(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)J" />
+	</class>
+	<class name="org/apache/http/conn/ConnectionPoolTimeoutException" since="1">
+		<extends name="org/apache/http/conn/ConnectTimeoutException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/conn/ConnectionReleaseTrigger" since="1">
+		<method name="abortConnection()V" />
+		<method name="releaseConnection()V" />
+	</class>
+	<class name="org/apache/http/conn/EofSensorInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<implements name="org/apache/http/conn/ConnectionReleaseTrigger" />
+		<method name="&lt;init>(Ljava/io/InputStream;Lorg/apache/http/conn/EofSensorWatcher;)V" />
+		<method name="abortConnection()V" />
+		<method name="checkAbort()V" />
+		<method name="checkClose()V" />
+		<method name="checkEOF(I)V" />
+		<method name="isReadAllowed()Z" />
+		<method name="read()I" />
+		<method name="releaseConnection()V" />
+		<field name="wrappedStream" />
+	</class>
+	<class name="org/apache/http/conn/EofSensorWatcher" since="1">
+		<method name="eofDetected(Ljava/io/InputStream;)Z" />
+		<method name="streamAbort(Ljava/io/InputStream;)Z" />
+		<method name="streamClosed(Ljava/io/InputStream;)Z" />
+	</class>
+	<class name="org/apache/http/conn/HttpHostConnectException" since="1">
+		<extends name="java/net/ConnectException" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/ConnectException;)V" />
+		<method name="getHost()Lorg/apache/http/HttpHost;" />
+	</class>
+	<class name="org/apache/http/conn/ManagedClientConnection" since="1">
+		<implements name="org/apache/http/conn/ConnectionReleaseTrigger" />
+		<implements name="org/apache/http/HttpClientConnection" />
+		<implements name="org/apache/http/HttpInetConnection" />
+		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="getSSLSession()Ljavax/net/ssl/SSLSession;" />
+		<method name="getState()Ljava/lang/Object;" />
+		<method name="isMarkedReusable()Z" />
+		<method name="isSecure()Z" />
+		<method name="layerProtocol(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="markReusable()V" />
+		<method name="open(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setIdleDuration(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="setState(Ljava/lang/Object;)V" />
+		<method name="tunnelProxy(Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
+		<method name="tunnelTarget(ZLorg/apache/http/params/HttpParams;)V" />
+		<method name="unmarkReusable()V" />
+	</class>
+	<class name="org/apache/http/conn/MultihomePlainSocketFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/scheme/SocketFactory" />
+		<method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;" />
+		<method name="createSocket()Ljava/net/Socket;" />
+		<method name="getSocketFactory()Lorg/apache/http/conn/MultihomePlainSocketFactory;" />
+		<method name="isSecure(Ljava/net/Socket;)Z" />
+	</class>
+	<class name="org/apache/http/conn/OperatedClientConnection" since="1">
+		<implements name="org/apache/http/HttpClientConnection" />
+		<implements name="org/apache/http/HttpInetConnection" />
+		<method name="getSocket()Ljava/net/Socket;" />
+		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
+		<method name="isSecure()Z" />
+		<method name="openCompleted(ZLorg/apache/http/params/HttpParams;)V" />
+		<method name="opening(Ljava/net/Socket;Lorg/apache/http/HttpHost;)V" />
+		<method name="update(Ljava/net/Socket;Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnConnectionPNames" since="1">
+		<field name="MAX_STATUS_LINE_GARBAGE" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnConnectionParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setMaxStatusLineGarbage(I)V" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnManagerPNames" since="1">
+		<field name="MAX_CONNECTIONS_PER_ROUTE" />
+		<field name="MAX_TOTAL_CONNECTIONS" />
+		<field name="TIMEOUT" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnManagerParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setConnectionsPerRoute(Lorg/apache/http/conn/params/ConnPerRouteBean;)V" />
+		<method name="setMaxTotalConnections(I)V" />
+		<method name="setTimeout(J)V" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnManagerParams" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/params/ConnManagerPNames" />
+		<method name="&lt;init>()V" />
+		<method name="getMaxConnectionsPerRoute(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/conn/params/ConnPerRoute;" />
+		<method name="getMaxTotalConnections(Lorg/apache/http/params/HttpParams;)I" />
+		<method name="getTimeout(Lorg/apache/http/params/HttpParams;)J" />
+		<method name="setMaxConnectionsPerRoute(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/params/ConnPerRoute;)V" />
+		<method name="setMaxTotalConnections(Lorg/apache/http/params/HttpParams;I)V" />
+		<method name="setTimeout(Lorg/apache/http/params/HttpParams;J)V" />
+		<field name="DEFAULT_MAX_TOTAL_CONNECTIONS" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnPerRoute" since="1">
+		<method name="getMaxForRoute(Lorg/apache/http/conn/routing/HttpRoute;)I" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnPerRouteBean" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/params/ConnPerRoute" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(I)V" />
+		<method name="getDefaultMax()I" />
+		<method name="getMaxForRoute(Lorg/apache/http/conn/routing/HttpRoute;)I" />
+		<method name="setDefaultMaxPerRoute(I)V" />
+		<method name="setMaxForRoute(Lorg/apache/http/conn/routing/HttpRoute;I)V" />
+		<method name="setMaxForRoutes(Ljava/util/Map;)V" />
+		<field name="DEFAULT_MAX_CONNECTIONS_PER_ROUTE" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnRoutePNames" since="1">
+		<field name="DEFAULT_PROXY" />
+		<field name="FORCED_ROUTE" />
+		<field name="LOCAL_ADDRESS" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnRouteParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setDefaultProxy(Lorg/apache/http/HttpHost;)V" />
+		<method name="setForcedRoute(Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="setLocalAddress(Ljava/net/InetAddress;)V" />
+	</class>
+	<class name="org/apache/http/conn/params/ConnRouteParams" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/params/ConnRoutePNames" />
+		<method name="getDefaultProxy(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/HttpHost;" />
+		<method name="getForcedRoute(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="getLocalAddress(Lorg/apache/http/params/HttpParams;)Ljava/net/InetAddress;" />
+		<method name="setDefaultProxy(Lorg/apache/http/params/HttpParams;Lorg/apache/http/HttpHost;)V" />
+		<method name="setForcedRoute(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="setLocalAddress(Lorg/apache/http/params/HttpParams;Ljava/net/InetAddress;)V" />
+		<field name="NO_HOST" />
+		<field name="NO_ROUTE" />
+	</class>
+	<class name="org/apache/http/conn/routing/BasicRouteDirector" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/routing/HttpRouteDirector" />
+		<method name="&lt;init>()V" />
+		<method name="directStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
+		<method name="firstStep(Lorg/apache/http/conn/routing/RouteInfo;)I" />
+		<method name="nextStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
+		<method name="proxiedStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
+	</class>
+	<class name="org/apache/http/conn/routing/HttpRoute" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/conn/routing/RouteInfo" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;)V" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/HttpHost;Z)V" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/HttpHost;ZLorg/apache/http/conn/routing/RouteInfo$TunnelType;Lorg/apache/http/conn/routing/RouteInfo$LayerType;)V" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Z)V" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;[Lorg/apache/http/HttpHost;ZLorg/apache/http/conn/routing/RouteInfo$TunnelType;Lorg/apache/http/conn/routing/RouteInfo$LayerType;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getHopCount()I" />
+		<method name="getHopTarget(I)Lorg/apache/http/HttpHost;" />
+		<method name="getLayerType()Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getProxyHost()Lorg/apache/http/HttpHost;" />
+		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
+		<method name="getTunnelType()Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
+		<method name="hashCode()I" />
+		<method name="isLayered()Z" />
+		<method name="isSecure()Z" />
+		<method name="isTunnelled()Z" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/conn/routing/HttpRouteDirector" since="1">
+		<method name="nextStep(Lorg/apache/http/conn/routing/RouteInfo;Lorg/apache/http/conn/routing/RouteInfo;)I" />
+		<field name="COMPLETE" />
+		<field name="CONNECT_PROXY" />
+		<field name="CONNECT_TARGET" />
+		<field name="LAYER_PROTOCOL" />
+		<field name="TUNNEL_PROXY" />
+		<field name="TUNNEL_TARGET" />
+		<field name="UNREACHABLE" />
+	</class>
+	<class name="org/apache/http/conn/routing/HttpRoutePlanner" since="1">
+		<method name="determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;" />
+	</class>
+	<class name="org/apache/http/conn/routing/RouteInfo" since="1">
+		<method name="getHopCount()I" />
+		<method name="getHopTarget(I)Lorg/apache/http/HttpHost;" />
+		<method name="getLayerType()Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getProxyHost()Lorg/apache/http/HttpHost;" />
+		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
+		<method name="getTunnelType()Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
+		<method name="isLayered()Z" />
+		<method name="isSecure()Z" />
+		<method name="isTunnelled()Z" />
+	</class>
+	<class name="org/apache/http/conn/routing/RouteInfo$LayerType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
+		<method name="values()[Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
+		<field name="LAYERED" />
+		<field name="PLAIN" />
+	</class>
+	<class name="org/apache/http/conn/routing/RouteInfo$TunnelType" since="1">
+		<extends name="java/lang/Enum" />
+		<method name="valueOf(Ljava/lang/String;)Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
+		<method name="values()[Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
+		<field name="PLAIN" />
+		<field name="TUNNELLED" />
+	</class>
+	<class name="org/apache/http/conn/routing/RouteTracker" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/conn/routing/RouteInfo" />
+		<method name="&lt;init>(Lorg/apache/http/HttpHost;Ljava/net/InetAddress;)V" />
+		<method name="&lt;init>(Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="connectProxy(Lorg/apache/http/HttpHost;Z)V" />
+		<method name="connectTarget(Z)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getHopCount()I" />
+		<method name="getHopTarget(I)Lorg/apache/http/HttpHost;" />
+		<method name="getLayerType()Lorg/apache/http/conn/routing/RouteInfo$LayerType;" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getProxyHost()Lorg/apache/http/HttpHost;" />
+		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
+		<method name="getTunnelType()Lorg/apache/http/conn/routing/RouteInfo$TunnelType;" />
+		<method name="hashCode()I" />
+		<method name="isConnected()Z" />
+		<method name="isLayered()Z" />
+		<method name="isSecure()Z" />
+		<method name="isTunnelled()Z" />
+		<method name="layerProtocol(Z)V" />
+		<method name="toRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="tunnelProxy(Lorg/apache/http/HttpHost;Z)V" />
+		<method name="tunnelTarget(Z)V" />
+	</class>
+	<class name="org/apache/http/conn/scheme/HostNameResolver" since="1">
+		<method name="resolve(Ljava/lang/String;)Ljava/net/InetAddress;" />
+	</class>
+	<class name="org/apache/http/conn/scheme/LayeredSocketFactory" since="1">
+		<implements name="org/apache/http/conn/scheme/SocketFactory" />
+		<method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" />
+	</class>
+	<class name="org/apache/http/conn/scheme/PlainSocketFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/scheme/SocketFactory" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/apache/http/conn/scheme/HostNameResolver;)V" />
+		<method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;" />
+		<method name="createSocket()Ljava/net/Socket;" />
+		<method name="getSocketFactory()Lorg/apache/http/conn/scheme/PlainSocketFactory;" />
+		<method name="isSecure(Ljava/net/Socket;)Z" />
+	</class>
+	<class name="org/apache/http/conn/scheme/Scheme" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Lorg/apache/http/conn/scheme/SocketFactory;I)V" />
+		<method name="equals(Ljava/lang/Object;)Z" />
+		<method name="getDefaultPort()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getSocketFactory()Lorg/apache/http/conn/scheme/SocketFactory;" />
+		<method name="isLayered()Z" />
+		<method name="resolvePort(I)I" />
+		<method name="toString()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/conn/scheme/SchemeRegistry" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="get(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme;" />
+		<method name="getScheme(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme;" />
+		<method name="getScheme(Lorg/apache/http/HttpHost;)Lorg/apache/http/conn/scheme/Scheme;" />
+		<method name="getSchemeNames()Ljava/util/List;" />
+		<method name="register(Lorg/apache/http/conn/scheme/Scheme;)Lorg/apache/http/conn/scheme/Scheme;" />
+		<method name="setItems(Ljava/util/Map;)V" />
+		<method name="unregister(Ljava/lang/String;)Lorg/apache/http/conn/scheme/Scheme;" />
+	</class>
+	<class name="org/apache/http/conn/scheme/SocketFactory" since="1">
+		<method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;" />
+		<method name="createSocket()Ljava/net/Socket;" />
+		<method name="isSecure(Ljava/net/Socket;)Z" />
+	</class>
+	<class name="org/apache/http/conn/ssl/AbstractVerifier" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/ssl/X509HostnameVerifier" />
+		<method name="&lt;init>()V" />
+		<method name="acceptableCountryWildcard(Ljava/lang/String;)Z" />
+		<method name="countDots(Ljava/lang/String;)I" />
+		<method name="getCNs(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;" />
+		<method name="getDNSSubjectAlts(Ljava/security/cert/X509Certificate;)[Ljava/lang/String;" />
+		<method name="verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)V" />
+		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z" />
+		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSocket;)V" />
+		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;Z)V" />
+	</class>
+	<class name="org/apache/http/conn/ssl/AllowAllHostnameVerifier" since="1">
+		<extends name="org/apache/http/conn/ssl/AbstractVerifier" />
+		<method name="&lt;init>()V" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/conn/ssl/BrowserCompatHostnameVerifier" since="1">
+		<extends name="org/apache/http/conn/ssl/AbstractVerifier" />
+		<method name="&lt;init>()V" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/conn/ssl/SSLSocketFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/scheme/LayeredSocketFactory" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;Ljava/security/SecureRandom;Lorg/apache/http/conn/scheme/HostNameResolver;)V" />
+		<method name="&lt;init>(Ljava/security/KeyStore;)V" />
+		<method name="&lt;init>(Ljava/security/KeyStore;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/security/KeyStore;Ljava/lang/String;Ljava/security/KeyStore;)V" />
+		<method name="connectSocket(Ljava/net/Socket;Ljava/lang/String;ILjava/net/InetAddress;ILorg/apache/http/params/HttpParams;)Ljava/net/Socket;" />
+		<method name="createSocket()Ljava/net/Socket;" />
+		<method name="createSocket(Ljava/net/Socket;Ljava/lang/String;IZ)Ljava/net/Socket;" />
+		<method name="getHostnameVerifier()Lorg/apache/http/conn/ssl/X509HostnameVerifier;" />
+		<method name="getSocketFactory()Lorg/apache/http/conn/ssl/SSLSocketFactory;" />
+		<method name="isSecure(Ljava/net/Socket;)Z" />
+		<method name="setHostnameVerifier(Lorg/apache/http/conn/ssl/X509HostnameVerifier;)V" />
+		<field name="ALLOW_ALL_HOSTNAME_VERIFIER" />
+		<field name="BROWSER_COMPATIBLE_HOSTNAME_VERIFIER" />
+		<field name="SSL" />
+		<field name="SSLV2" />
+		<field name="STRICT_HOSTNAME_VERIFIER" />
+		<field name="TLS" />
+	</class>
+	<class name="org/apache/http/conn/ssl/StrictHostnameVerifier" since="1">
+		<extends name="org/apache/http/conn/ssl/AbstractVerifier" />
+		<method name="&lt;init>()V" />
+		<method name="toString()Ljava/lang/String;" />
+		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/conn/ssl/X509HostnameVerifier" since="1">
+		<implements name="javax/net/ssl/HostnameVerifier" />
+		<method name="verify(Ljava/lang/String;Ljava/security/cert/X509Certificate;)V" />
+		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSession;)Z" />
+		<method name="verify(Ljava/lang/String;Ljavax/net/ssl/SSLSocket;)V" />
+		<method name="verify(Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/conn/util/InetAddressUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="isIPv4Address(Ljava/lang/String;)Z" />
+		<method name="isIPv6Address(Ljava/lang/String;)Z" />
+		<method name="isIPv6HexCompressedAddress(Ljava/lang/String;)Z" />
+		<method name="isIPv6StdAddress(Ljava/lang/String;)Z" />
+	</class>
+	<class name="org/apache/http/cookie/ClientCookie" since="1">
+		<implements name="org/apache/http/cookie/Cookie" />
+		<method name="containsAttribute(Ljava/lang/String;)Z" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
+		<field name="COMMENTURL_ATTR" />
+		<field name="COMMENT_ATTR" />
+		<field name="DISCARD_ATTR" />
+		<field name="DOMAIN_ATTR" />
+		<field name="EXPIRES_ATTR" />
+		<field name="MAX_AGE_ATTR" />
+		<field name="PATH_ATTR" />
+		<field name="PORT_ATTR" />
+		<field name="SECURE_ATTR" />
+		<field name="VERSION_ATTR" />
+	</class>
+	<class name="org/apache/http/cookie/Cookie" since="1">
+		<method name="getComment()Ljava/lang/String;" />
+		<method name="getCommentURL()Ljava/lang/String;" />
+		<method name="getDomain()Ljava/lang/String;" />
+		<method name="getExpiryDate()Ljava/util/Date;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPorts()[I" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="getVersion()I" />
+		<method name="isExpired(Ljava/util/Date;)Z" />
+		<method name="isPersistent()Z" />
+		<method name="isSecure()Z" />
+	</class>
+	<class name="org/apache/http/cookie/CookieAttributeHandler" since="1">
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/cookie/CookieIdentityComparator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Comparator" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="compare(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/Cookie;)I" />
+	</class>
+	<class name="org/apache/http/cookie/CookieOrigin" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;ILjava/lang/String;Z)V" />
+		<method name="getHost()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPort()I" />
+		<method name="isSecure()Z" />
+	</class>
+	<class name="org/apache/http/cookie/CookiePathComparator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/util/Comparator" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="compare(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/Cookie;)I" />
+	</class>
+	<class name="org/apache/http/cookie/CookieSpec" since="1">
+		<method name="formatCookies(Ljava/util/List;)Ljava/util/List;" />
+		<method name="getVersion()I" />
+		<method name="getVersionHeader()Lorg/apache/http/Header;" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/Header;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/cookie/CookieSpecFactory" since="1">
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+	</class>
+	<class name="org/apache/http/cookie/CookieSpecRegistry" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getCookieSpec(Ljava/lang/String;)Lorg/apache/http/cookie/CookieSpec;" />
+		<method name="getCookieSpec(Ljava/lang/String;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+		<method name="getSpecNames()Ljava/util/List;" />
+		<method name="register(Ljava/lang/String;Lorg/apache/http/cookie/CookieSpecFactory;)V" />
+		<method name="setItems(Ljava/util/Map;)V" />
+		<method name="unregister(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/cookie/MalformedCookieException" since="1">
+		<extends name="org/apache/http/ProtocolException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/cookie/SM" since="1">
+		<field name="COOKIE" />
+		<field name="COOKIE2" />
+		<field name="SET_COOKIE" />
+		<field name="SET_COOKIE2" />
+	</class>
+	<class name="org/apache/http/cookie/SetCookie" since="1">
+		<implements name="org/apache/http/cookie/Cookie" />
+		<method name="setComment(Ljava/lang/String;)V" />
+		<method name="setDomain(Ljava/lang/String;)V" />
+		<method name="setExpiryDate(Ljava/util/Date;)V" />
+		<method name="setPath(Ljava/lang/String;)V" />
+		<method name="setSecure(Z)V" />
+		<method name="setValue(Ljava/lang/String;)V" />
+		<method name="setVersion(I)V" />
+	</class>
+	<class name="org/apache/http/cookie/SetCookie2" since="1">
+		<implements name="org/apache/http/cookie/SetCookie" />
+		<method name="setCommentURL(Ljava/lang/String;)V" />
+		<method name="setDiscard(Z)V" />
+		<method name="setPorts([I)V" />
+	</class>
+	<class name="org/apache/http/cookie/params/CookieSpecPNames" since="1">
+		<field name="DATE_PATTERNS" />
+		<field name="SINGLE_COOKIE_HEADER" />
+	</class>
+	<class name="org/apache/http/cookie/params/CookieSpecParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setDatePatterns(Ljava/util/Collection;)V" />
+		<method name="setSingleHeader(Z)V" />
+	</class>
+	<class name="org/apache/http/entity/AbstractHttpEntity" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpEntity" />
+		<method name="&lt;init>()V" />
+		<method name="consumeContent()V" />
+		<method name="getContentEncoding()Lorg/apache/http/Header;" />
+		<method name="getContentType()Lorg/apache/http/Header;" />
+		<method name="isChunked()Z" />
+		<method name="setChunked(Z)V" />
+		<method name="setContentEncoding(Ljava/lang/String;)V" />
+		<method name="setContentEncoding(Lorg/apache/http/Header;)V" />
+		<method name="setContentType(Ljava/lang/String;)V" />
+		<method name="setContentType(Lorg/apache/http/Header;)V" />
+		<field name="chunked" />
+		<field name="contentEncoding" />
+		<field name="contentType" />
+	</class>
+	<class name="org/apache/http/entity/BasicHttpEntity" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<method name="&lt;init>()V" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="setContent(Ljava/io/InputStream;)V" />
+		<method name="setContentLength(J)V" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="org/apache/http/entity/BufferedHttpEntity" since="1">
+		<extends name="org/apache/http/entity/HttpEntityWrapper" />
+		<method name="&lt;init>(Lorg/apache/http/HttpEntity;)V" />
+	</class>
+	<class name="org/apache/http/entity/ByteArrayEntity" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>([B)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+		<field name="content" />
+	</class>
+	<class name="org/apache/http/entity/ContentLengthStrategy" since="1">
+		<method name="determineLength(Lorg/apache/http/HttpMessage;)J" />
+		<field name="CHUNKED" />
+		<field name="IDENTITY" />
+	</class>
+	<class name="org/apache/http/entity/ContentProducer" since="1">
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="org/apache/http/entity/EntityTemplate" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<method name="&lt;init>(Lorg/apache/http/entity/ContentProducer;)V" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="org/apache/http/entity/FileEntity" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>(Ljava/io/File;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+		<field name="file" />
+	</class>
+	<class name="org/apache/http/entity/HttpEntityWrapper" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpEntity" />
+		<method name="&lt;init>(Lorg/apache/http/HttpEntity;)V" />
+		<method name="consumeContent()V" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentEncoding()Lorg/apache/http/Header;" />
+		<method name="getContentLength()J" />
+		<method name="getContentType()Lorg/apache/http/Header;" />
+		<method name="isChunked()Z" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+		<field name="wrappedEntity" />
+	</class>
+	<class name="org/apache/http/entity/InputStreamEntity" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<method name="&lt;init>(Ljava/io/InputStream;J)V" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="org/apache/http/entity/SerializableEntity" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<method name="&lt;init>(Ljava/io/Serializable;Z)V" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+	</class>
+	<class name="org/apache/http/entity/StringEntity" since="1">
+		<extends name="org/apache/http/entity/AbstractHttpEntity" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getContent()Ljava/io/InputStream;" />
+		<method name="getContentLength()J" />
+		<method name="isRepeatable()Z" />
+		<method name="isStreaming()Z" />
+		<method name="writeTo(Ljava/io/OutputStream;)V" />
+		<field name="content" />
+	</class>
+	<class name="org/apache/http/impl/AbstractHttpClientConnection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpClientConnection" />
+		<method name="&lt;init>()V" />
+		<method name="assertOpen()V" />
+		<method name="createEntityDeserializer()Lorg/apache/http/impl/entity/EntityDeserializer;" />
+		<method name="createEntitySerializer()Lorg/apache/http/impl/entity/EntitySerializer;" />
+		<method name="createHttpResponseFactory()Lorg/apache/http/HttpResponseFactory;" />
+		<method name="createRequestWriter(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageWriter;" />
+		<method name="createResponseParser(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpResponseFactory;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageParser;" />
+		<method name="doFlush()V" />
+		<method name="flush()V" />
+		<method name="getMetrics()Lorg/apache/http/HttpConnectionMetrics;" />
+		<method name="init(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="isResponseAvailable(I)Z" />
+		<method name="isStale()Z" />
+		<method name="receiveResponseEntity(Lorg/apache/http/HttpResponse;)V" />
+		<method name="receiveResponseHeader()Lorg/apache/http/HttpResponse;" />
+		<method name="sendRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
+		<method name="sendRequestHeader(Lorg/apache/http/HttpRequest;)V" />
+	</class>
+	<class name="org/apache/http/impl/AbstractHttpServerConnection" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpServerConnection" />
+		<method name="&lt;init>()V" />
+		<method name="assertOpen()V" />
+		<method name="createEntityDeserializer()Lorg/apache/http/impl/entity/EntityDeserializer;" />
+		<method name="createEntitySerializer()Lorg/apache/http/impl/entity/EntitySerializer;" />
+		<method name="createHttpRequestFactory()Lorg/apache/http/HttpRequestFactory;" />
+		<method name="createRequestParser(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpRequestFactory;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageParser;" />
+		<method name="createResponseWriter(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/io/HttpMessageWriter;" />
+		<method name="doFlush()V" />
+		<method name="flush()V" />
+		<method name="getMetrics()Lorg/apache/http/HttpConnectionMetrics;" />
+		<method name="init(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="isStale()Z" />
+		<method name="receiveRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
+		<method name="receiveRequestHeader()Lorg/apache/http/HttpRequest;" />
+		<method name="sendResponseEntity(Lorg/apache/http/HttpResponse;)V" />
+		<method name="sendResponseHeader(Lorg/apache/http/HttpResponse;)V" />
+	</class>
+	<class name="org/apache/http/impl/DefaultConnectionReuseStrategy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/ConnectionReuseStrategy" />
+		<method name="&lt;init>()V" />
+		<method name="createTokenIterator(Lorg/apache/http/HeaderIterator;)Lorg/apache/http/TokenIterator;" />
+		<method name="keepAlive(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/impl/DefaultHttpClientConnection" since="1">
+		<extends name="org/apache/http/impl/SocketHttpClientConnection" />
+		<method name="&lt;init>()V" />
+		<method name="bind(Ljava/net/Socket;Lorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/impl/DefaultHttpRequestFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newHttpRequest(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/http/HttpRequest;" />
+		<method name="newHttpRequest(Lorg/apache/http/RequestLine;)Lorg/apache/http/HttpRequest;" />
+	</class>
+	<class name="org/apache/http/impl/DefaultHttpResponseFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpResponseFactory" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/apache/http/ReasonPhraseCatalog;)V" />
+		<method name="determineLocale(Lorg/apache/http/protocol/HttpContext;)Ljava/util/Locale;" />
+		<method name="newHttpResponse(Lorg/apache/http/ProtocolVersion;ILorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="newHttpResponse(Lorg/apache/http/StatusLine;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<field name="reasonCatalog" />
+	</class>
+	<class name="org/apache/http/impl/DefaultHttpServerConnection" since="1">
+		<extends name="org/apache/http/impl/SocketHttpServerConnection" />
+		<method name="&lt;init>()V" />
+		<method name="bind(Ljava/net/Socket;Lorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/impl/EnglishReasonPhraseCatalog" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/ReasonPhraseCatalog" />
+		<method name="&lt;init>()V" />
+		<method name="getReason(ILjava/util/Locale;)Ljava/lang/String;" />
+		<field name="INSTANCE" />
+	</class>
+	<class name="org/apache/http/impl/HttpConnectionMetricsImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpConnectionMetrics" />
+		<method name="&lt;init>(Lorg/apache/http/io/HttpTransportMetrics;Lorg/apache/http/io/HttpTransportMetrics;)V" />
+		<method name="getMetric(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getReceivedBytesCount()J" />
+		<method name="getRequestCount()J" />
+		<method name="getResponseCount()J" />
+		<method name="getSentBytesCount()J" />
+		<method name="incrementRequestCount()V" />
+		<method name="incrementResponseCount()V" />
+		<method name="reset()V" />
+		<method name="setMetric(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<field name="RECEIVED_BYTES_COUNT" />
+		<field name="REQUEST_COUNT" />
+		<field name="RESPONSE_COUNT" />
+		<field name="SENT_BYTES_COUNT" />
+	</class>
+	<class name="org/apache/http/impl/NoConnectionReuseStrategy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/ConnectionReuseStrategy" />
+		<method name="&lt;init>()V" />
+		<method name="keepAlive(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/impl/SocketHttpClientConnection" since="1">
+		<extends name="org/apache/http/impl/AbstractHttpClientConnection" />
+		<implements name="org/apache/http/HttpInetConnection" />
+		<method name="&lt;init>()V" />
+		<method name="assertNotOpen()V" />
+		<method name="assertOpen()V" />
+		<method name="bind(Ljava/net/Socket;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="close()V" />
+		<method name="createSessionInputBuffer(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionInputBuffer;" />
+		<method name="createSessionOutputBuffer(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionOutputBuffer;" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
+		<method name="getRemotePort()I" />
+		<method name="getSocket()Ljava/net/Socket;" />
+		<method name="getSocketTimeout()I" />
+		<method name="isOpen()Z" />
+		<method name="setSocketTimeout(I)V" />
+		<method name="shutdown()V" />
+	</class>
+	<class name="org/apache/http/impl/SocketHttpServerConnection" since="1">
+		<extends name="org/apache/http/impl/AbstractHttpServerConnection" />
+		<implements name="org/apache/http/HttpInetConnection" />
+		<method name="&lt;init>()V" />
+		<method name="assertNotOpen()V" />
+		<method name="assertOpen()V" />
+		<method name="bind(Ljava/net/Socket;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="close()V" />
+		<method name="createHttpDataReceiver(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionInputBuffer;" />
+		<method name="createHttpDataTransmitter(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)Lorg/apache/http/io/SessionOutputBuffer;" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
+		<method name="getRemotePort()I" />
+		<method name="getSocket()Ljava/net/Socket;" />
+		<method name="getSocketTimeout()I" />
+		<method name="isOpen()Z" />
+		<method name="setSocketTimeout(I)V" />
+		<method name="shutdown()V" />
+	</class>
+	<class name="org/apache/http/impl/auth/AuthSchemeBase" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/auth/AuthScheme" />
+		<method name="&lt;init>()V" />
+		<method name="isProxy()Z" />
+		<method name="parseChallenge(Lorg/apache/http/util/CharArrayBuffer;II)V" />
+		<method name="processChallenge(Lorg/apache/http/Header;)V" />
+	</class>
+	<class name="org/apache/http/impl/auth/BasicScheme" since="1">
+		<extends name="org/apache/http/impl/auth/RFC2617Scheme" />
+		<method name="&lt;init>()V" />
+		<method name="authenticate(Lorg/apache/http/auth/Credentials;Ljava/lang/String;Z)Lorg/apache/http/Header;" />
+		<method name="authenticate(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;" />
+		<method name="getSchemeName()Ljava/lang/String;" />
+		<method name="isComplete()Z" />
+		<method name="isConnectionBased()Z" />
+	</class>
+	<class name="org/apache/http/impl/auth/BasicSchemeFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/auth/AuthSchemeFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/auth/AuthScheme;" />
+	</class>
+	<class name="org/apache/http/impl/auth/DigestScheme" since="1">
+		<extends name="org/apache/http/impl/auth/RFC2617Scheme" />
+		<method name="&lt;init>()V" />
+		<method name="authenticate(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;" />
+		<method name="createCnonce()Ljava/lang/String;" />
+		<method name="getSchemeName()Ljava/lang/String;" />
+		<method name="isComplete()Z" />
+		<method name="isConnectionBased()Z" />
+		<method name="overrideParamter(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/auth/DigestSchemeFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/auth/AuthSchemeFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/auth/AuthScheme;" />
+	</class>
+	<class name="org/apache/http/impl/auth/NTLMEngine" since="1">
+		<method name="generateType1Msg(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="generateType3Msg(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/impl/auth/NTLMEngineException" since="1">
+		<extends name="org/apache/http/auth/AuthenticationException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/impl/auth/NTLMScheme" since="1">
+		<extends name="org/apache/http/impl/auth/AuthSchemeBase" />
+		<method name="&lt;init>(Lorg/apache/http/impl/auth/NTLMEngine;)V" />
+		<method name="authenticate(Lorg/apache/http/auth/Credentials;Lorg/apache/http/HttpRequest;)Lorg/apache/http/Header;" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getRealm()Ljava/lang/String;" />
+		<method name="getSchemeName()Ljava/lang/String;" />
+		<method name="isComplete()Z" />
+		<method name="isConnectionBased()Z" />
+		<method name="parseChallenge(Lorg/apache/http/util/CharArrayBuffer;II)V" />
+	</class>
+	<class name="org/apache/http/impl/auth/RFC2617Scheme" since="1">
+		<extends name="org/apache/http/impl/auth/AuthSchemeBase" />
+		<method name="&lt;init>()V" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getParameters()Ljava/util/Map;" />
+		<method name="getRealm()Ljava/lang/String;" />
+		<method name="parseChallenge(Lorg/apache/http/util/CharArrayBuffer;II)V" />
+	</class>
+	<class name="org/apache/http/impl/auth/UnsupportedDigestAlgorithmException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/impl/client/AbstractAuthenticationHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/AuthenticationHandler" />
+		<method name="&lt;init>()V" />
+		<method name="getAuthPreferences()Ljava/util/List;" />
+		<method name="parseChallenges([Lorg/apache/http/Header;)Ljava/util/Map;" />
+		<method name="selectScheme(Ljava/util/Map;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/auth/AuthScheme;" />
+	</class>
+	<class name="org/apache/http/impl/client/AbstractHttpClient" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/HttpClient" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
+		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
+		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
+		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
+		<method name="clearRequestInterceptors()V" />
+		<method name="clearResponseInterceptors()V" />
+		<method name="createAuthSchemeRegistry()Lorg/apache/http/auth/AuthSchemeRegistry;" />
+		<method name="createClientConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
+		<method name="createClientRequestDirector(Lorg/apache/http/protocol/HttpRequestExecutor;Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/ConnectionReuseStrategy;Lorg/apache/http/conn/ConnectionKeepAliveStrategy;Lorg/apache/http/conn/routing/HttpRoutePlanner;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/client/HttpRequestRetryHandler;Lorg/apache/http/client/RedirectHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/UserTokenHandler;Lorg/apache/http/params/HttpParams;)Lorg/apache/http/client/RequestDirector;" />
+		<method name="createConnectionKeepAliveStrategy()Lorg/apache/http/conn/ConnectionKeepAliveStrategy;" />
+		<method name="createConnectionReuseStrategy()Lorg/apache/http/ConnectionReuseStrategy;" />
+		<method name="createCookieSpecRegistry()Lorg/apache/http/cookie/CookieSpecRegistry;" />
+		<method name="createCookieStore()Lorg/apache/http/client/CookieStore;" />
+		<method name="createCredentialsProvider()Lorg/apache/http/client/CredentialsProvider;" />
+		<method name="createHttpContext()Lorg/apache/http/protocol/HttpContext;" />
+		<method name="createHttpParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="createHttpProcessor()Lorg/apache/http/protocol/BasicHttpProcessor;" />
+		<method name="createHttpRequestRetryHandler()Lorg/apache/http/client/HttpRequestRetryHandler;" />
+		<method name="createHttpRoutePlanner()Lorg/apache/http/conn/routing/HttpRoutePlanner;" />
+		<method name="createProxyAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
+		<method name="createRedirectHandler()Lorg/apache/http/client/RedirectHandler;" />
+		<method name="createRequestExecutor()Lorg/apache/http/protocol/HttpRequestExecutor;" />
+		<method name="createTargetAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
+		<method name="createUserTokenHandler()Lorg/apache/http/client/UserTokenHandler;" />
+		<method name="determineParams(Lorg/apache/http/HttpRequest;)Lorg/apache/http/params/HttpParams;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;)LT;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)LT;" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;)LT;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/client/ResponseHandler;Lorg/apache/http/protocol/HttpContext;)LT;" />
+		<method name="execute(Lorg/apache/http/client/methods/HttpUriRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="getAuthSchemes()Lorg/apache/http/auth/AuthSchemeRegistry;" />
+		<method name="getConnectionKeepAliveStrategy()Lorg/apache/http/conn/ConnectionKeepAliveStrategy;" />
+		<method name="getConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
+		<method name="getConnectionReuseStrategy()Lorg/apache/http/ConnectionReuseStrategy;" />
+		<method name="getCookieSpecs()Lorg/apache/http/cookie/CookieSpecRegistry;" />
+		<method name="getCookieStore()Lorg/apache/http/client/CookieStore;" />
+		<method name="getCredentialsProvider()Lorg/apache/http/client/CredentialsProvider;" />
+		<method name="getHttpProcessor()Lorg/apache/http/protocol/BasicHttpProcessor;" />
+		<method name="getHttpRequestRetryHandler()Lorg/apache/http/client/HttpRequestRetryHandler;" />
+		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="getProxyAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
+		<method name="getRedirectHandler()Lorg/apache/http/client/RedirectHandler;" />
+		<method name="getRequestExecutor()Lorg/apache/http/protocol/HttpRequestExecutor;" />
+		<method name="getRequestInterceptor(I)Lorg/apache/http/HttpRequestInterceptor;" />
+		<method name="getRequestInterceptorCount()I" />
+		<method name="getResponseInterceptor(I)Lorg/apache/http/HttpResponseInterceptor;" />
+		<method name="getResponseInterceptorCount()I" />
+		<method name="getRoutePlanner()Lorg/apache/http/conn/routing/HttpRoutePlanner;" />
+		<method name="getTargetAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
+		<method name="getUserTokenHandler()Lorg/apache/http/client/UserTokenHandler;" />
+		<method name="removeRequestInterceptorByClass(Ljava/lang/Class;)V" />
+		<method name="removeResponseInterceptorByClass(Ljava/lang/Class;)V" />
+		<method name="setAuthSchemes(Lorg/apache/http/auth/AuthSchemeRegistry;)V" />
+		<method name="setCookieSpecs(Lorg/apache/http/cookie/CookieSpecRegistry;)V" />
+		<method name="setCookieStore(Lorg/apache/http/client/CookieStore;)V" />
+		<method name="setCredentialsProvider(Lorg/apache/http/client/CredentialsProvider;)V" />
+		<method name="setHttpRequestRetryHandler(Lorg/apache/http/client/HttpRequestRetryHandler;)V" />
+		<method name="setKeepAliveStrategy(Lorg/apache/http/conn/ConnectionKeepAliveStrategy;)V" />
+		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setProxyAuthenticationHandler(Lorg/apache/http/client/AuthenticationHandler;)V" />
+		<method name="setRedirectHandler(Lorg/apache/http/client/RedirectHandler;)V" />
+		<method name="setReuseStrategy(Lorg/apache/http/ConnectionReuseStrategy;)V" />
+		<method name="setRoutePlanner(Lorg/apache/http/conn/routing/HttpRoutePlanner;)V" />
+		<method name="setTargetAuthenticationHandler(Lorg/apache/http/client/AuthenticationHandler;)V" />
+		<method name="setUserTokenHandler(Lorg/apache/http/client/UserTokenHandler;)V" />
+	</class>
+	<class name="org/apache/http/impl/client/BasicCookieStore" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/CookieStore" />
+		<method name="&lt;init>()V" />
+		<method name="addCookie(Lorg/apache/http/cookie/Cookie;)V" />
+		<method name="addCookies([Lorg/apache/http/cookie/Cookie;)V" />
+		<method name="clear()V" />
+		<method name="clearExpired(Ljava/util/Date;)Z" />
+		<method name="getCookies()Ljava/util/List;" />
+	</class>
+	<class name="org/apache/http/impl/client/BasicCredentialsProvider" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/CredentialsProvider" />
+		<method name="&lt;init>()V" />
+		<method name="clear()V" />
+		<method name="getCredentials(Lorg/apache/http/auth/AuthScope;)Lorg/apache/http/auth/Credentials;" />
+		<method name="setCredentials(Lorg/apache/http/auth/AuthScope;Lorg/apache/http/auth/Credentials;)V" />
+	</class>
+	<class name="org/apache/http/impl/client/BasicResponseHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/ResponseHandler" />
+		<method name="&lt;init>()V" />
+		<method name="handleResponse(Lorg/apache/http/HttpResponse;)Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/impl/client/ClientParamsStack" since="1">
+		<extends name="org/apache/http/params/AbstractHttpParams" />
+		<method name="&lt;init>(Lorg/apache/http/impl/client/ClientParamsStack;)V" />
+		<method name="&lt;init>(Lorg/apache/http/impl/client/ClientParamsStack;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="copy()Lorg/apache/http/params/HttpParams;" />
+		<method name="getApplicationParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="getClientParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="getOverrideParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getRequestParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="removeParameter(Ljava/lang/String;)Z" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;" />
+		<field name="applicationParams" />
+		<field name="clientParams" />
+		<field name="overrideParams" />
+		<field name="requestParams" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultConnectionKeepAliveStrategy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/ConnectionKeepAliveStrategy" />
+		<method name="&lt;init>()V" />
+		<method name="getKeepAliveDuration(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)J" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultHttpClient" since="1">
+		<extends name="org/apache/http/impl/client/AbstractHttpClient" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="createAuthSchemeRegistry()Lorg/apache/http/auth/AuthSchemeRegistry;" />
+		<method name="createClientConnectionManager()Lorg/apache/http/conn/ClientConnectionManager;" />
+		<method name="createConnectionKeepAliveStrategy()Lorg/apache/http/conn/ConnectionKeepAliveStrategy;" />
+		<method name="createConnectionReuseStrategy()Lorg/apache/http/ConnectionReuseStrategy;" />
+		<method name="createCookieSpecRegistry()Lorg/apache/http/cookie/CookieSpecRegistry;" />
+		<method name="createCookieStore()Lorg/apache/http/client/CookieStore;" />
+		<method name="createCredentialsProvider()Lorg/apache/http/client/CredentialsProvider;" />
+		<method name="createHttpContext()Lorg/apache/http/protocol/HttpContext;" />
+		<method name="createHttpParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="createHttpProcessor()Lorg/apache/http/protocol/BasicHttpProcessor;" />
+		<method name="createHttpRequestRetryHandler()Lorg/apache/http/client/HttpRequestRetryHandler;" />
+		<method name="createHttpRoutePlanner()Lorg/apache/http/conn/routing/HttpRoutePlanner;" />
+		<method name="createProxyAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
+		<method name="createRedirectHandler()Lorg/apache/http/client/RedirectHandler;" />
+		<method name="createRequestExecutor()Lorg/apache/http/protocol/HttpRequestExecutor;" />
+		<method name="createTargetAuthenticationHandler()Lorg/apache/http/client/AuthenticationHandler;" />
+		<method name="createUserTokenHandler()Lorg/apache/http/client/UserTokenHandler;" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultHttpRequestRetryHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/HttpRequestRetryHandler" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(IZ)V" />
+		<method name="getRetryCount()I" />
+		<method name="isRequestSentRetryEnabled()Z" />
+		<method name="retryRequest(Ljava/io/IOException;ILorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultProxyAuthenticationHandler" since="1">
+		<extends name="org/apache/http/impl/client/AbstractAuthenticationHandler" />
+		<method name="&lt;init>()V" />
+		<method name="getChallenges(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/util/Map;" />
+		<method name="isAuthenticationRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultRedirectHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/RedirectHandler" />
+		<method name="&lt;init>()V" />
+		<method name="getLocationURI(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/net/URI;" />
+		<method name="isRedirectRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultRequestDirector" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/RequestDirector" />
+		<method name="&lt;init>(Lorg/apache/http/protocol/HttpRequestExecutor;Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/ConnectionReuseStrategy;Lorg/apache/http/conn/ConnectionKeepAliveStrategy;Lorg/apache/http/conn/routing/HttpRoutePlanner;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/client/HttpRequestRetryHandler;Lorg/apache/http/client/RedirectHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/AuthenticationHandler;Lorg/apache/http/client/UserTokenHandler;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="createConnectRequest(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpRequest;" />
+		<method name="createTunnelToProxy(Lorg/apache/http/conn/routing/HttpRoute;ILorg/apache/http/protocol/HttpContext;)Z" />
+		<method name="createTunnelToTarget(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;)Z" />
+		<method name="determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="establishRoute(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="execute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="handleResponse(Lorg/apache/http/impl/client/RoutedRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/impl/client/RoutedRequest;" />
+		<method name="releaseConnection()V" />
+		<method name="rewriteRequestURI(Lorg/apache/http/impl/client/RequestWrapper;Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<field name="connManager" />
+		<field name="httpProcessor" />
+		<field name="keepAliveStrategy" />
+		<field name="managedConn" />
+		<field name="params" />
+		<field name="redirectHandler" />
+		<field name="requestExec" />
+		<field name="retryHandler" />
+		<field name="reuseStrategy" />
+		<field name="routePlanner" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultTargetAuthenticationHandler" since="1">
+		<extends name="org/apache/http/impl/client/AbstractAuthenticationHandler" />
+		<method name="&lt;init>()V" />
+		<method name="getChallenges(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Ljava/util/Map;" />
+		<method name="isAuthenticationRequested(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)Z" />
+	</class>
+	<class name="org/apache/http/impl/client/DefaultUserTokenHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/client/UserTokenHandler" />
+		<method name="&lt;init>()V" />
+		<method name="getUserToken(Lorg/apache/http/protocol/HttpContext;)Ljava/lang/Object;" />
+	</class>
+	<class name="org/apache/http/impl/client/EntityEnclosingRequestWrapper" since="1">
+		<extends name="org/apache/http/impl/client/RequestWrapper" />
+		<implements name="org/apache/http/HttpEntityEnclosingRequest" />
+		<method name="&lt;init>(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
+		<method name="expectContinue()Z" />
+		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
+		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
+	</class>
+	<class name="org/apache/http/impl/client/RedirectLocations" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="add(Ljava/net/URI;)V" />
+		<method name="contains(Ljava/net/URI;)Z" />
+		<method name="remove(Ljava/net/URI;)Z" />
+	</class>
+	<class name="org/apache/http/impl/client/RequestWrapper" since="1">
+		<extends name="org/apache/http/message/AbstractHttpMessage" />
+		<implements name="org/apache/http/client/methods/HttpUriRequest" />
+		<method name="&lt;init>(Lorg/apache/http/HttpRequest;)V" />
+		<method name="abort()V" />
+		<method name="getExecCount()I" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<method name="getOriginal()Lorg/apache/http/HttpRequest;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getRequestLine()Lorg/apache/http/RequestLine;" />
+		<method name="getURI()Ljava/net/URI;" />
+		<method name="incrementExecCount()V" />
+		<method name="isAborted()Z" />
+		<method name="isRepeatable()Z" />
+		<method name="resetHeaders()V" />
+		<method name="setMethod(Ljava/lang/String;)V" />
+		<method name="setProtocolVersion(Lorg/apache/http/ProtocolVersion;)V" />
+		<method name="setURI(Ljava/net/URI;)V" />
+	</class>
+	<class name="org/apache/http/impl/client/RoutedRequest" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/impl/client/RequestWrapper;Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="getRequest()Lorg/apache/http/impl/client/RequestWrapper;" />
+		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+		<field name="request" />
+		<field name="route" />
+	</class>
+	<class name="org/apache/http/impl/client/TunnelRefusedException" since="1">
+		<extends name="org/apache/http/HttpException" />
+		<method name="&lt;init>(Ljava/lang/String;Lorg/apache/http/HttpResponse;)V" />
+		<method name="getResponse()Lorg/apache/http/HttpResponse;" />
+	</class>
+	<class name="org/apache/http/impl/conn/AbstractClientConnAdapter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/ManagedClientConnection" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/conn/OperatedClientConnection;)V" />
+		<method name="abortConnection()V" />
+		<method name="assertNotAborted()V" />
+		<method name="assertValid(Lorg/apache/http/conn/OperatedClientConnection;)V" />
+		<method name="detach()V" />
+		<method name="flush()V" />
+		<method name="getLocalAddress()Ljava/net/InetAddress;" />
+		<method name="getLocalPort()I" />
+		<method name="getManager()Lorg/apache/http/conn/ClientConnectionManager;" />
+		<method name="getMetrics()Lorg/apache/http/HttpConnectionMetrics;" />
+		<method name="getRemoteAddress()Ljava/net/InetAddress;" />
+		<method name="getRemotePort()I" />
+		<method name="getSSLSession()Ljavax/net/ssl/SSLSession;" />
+		<method name="getSocketTimeout()I" />
+		<method name="getWrappedConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
+		<method name="isMarkedReusable()Z" />
+		<method name="isOpen()Z" />
+		<method name="isResponseAvailable(I)Z" />
+		<method name="isSecure()Z" />
+		<method name="isStale()Z" />
+		<method name="markReusable()V" />
+		<method name="receiveResponseEntity(Lorg/apache/http/HttpResponse;)V" />
+		<method name="receiveResponseHeader()Lorg/apache/http/HttpResponse;" />
+		<method name="releaseConnection()V" />
+		<method name="sendRequestEntity(Lorg/apache/http/HttpEntityEnclosingRequest;)V" />
+		<method name="sendRequestHeader(Lorg/apache/http/HttpRequest;)V" />
+		<method name="setIdleDuration(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="setSocketTimeout(I)V" />
+		<method name="unmarkReusable()V" />
+	</class>
+	<class name="org/apache/http/impl/conn/AbstractPoolEntry" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionOperator;Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="getState()Ljava/lang/Object;" />
+		<method name="layerProtocol(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="open(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setState(Ljava/lang/Object;)V" />
+		<method name="shutdownEntry()V" />
+		<method name="tunnelProxy(Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
+		<method name="tunnelTarget(ZLorg/apache/http/params/HttpParams;)V" />
+		<field name="connOperator" />
+		<field name="connection" />
+		<field name="route" />
+		<field name="state" />
+		<field name="tracker" />
+	</class>
+	<class name="org/apache/http/impl/conn/AbstractPooledConnAdapter" since="1">
+		<extends name="org/apache/http/impl/conn/AbstractClientConnAdapter" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionManager;Lorg/apache/http/impl/conn/AbstractPoolEntry;)V" />
+		<method name="assertAttached()V" />
+		<method name="close()V" />
+		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="getState()Ljava/lang/Object;" />
+		<method name="layerProtocol(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="open(Lorg/apache/http/conn/routing/HttpRoute;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setState(Ljava/lang/Object;)V" />
+		<method name="shutdown()V" />
+		<method name="tunnelProxy(Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
+		<method name="tunnelTarget(ZLorg/apache/http/params/HttpParams;)V" />
+		<field name="poolEntry" />
+	</class>
+	<class name="org/apache/http/impl/conn/DefaultClientConnection" since="1">
+		<extends name="org/apache/http/impl/SocketHttpClientConnection" />
+		<implements name="org/apache/http/conn/OperatedClientConnection" />
+		<method name="&lt;init>()V" />
+		<method name="getSocket()Ljava/net/Socket;" />
+		<method name="getTargetHost()Lorg/apache/http/HttpHost;" />
+		<method name="isSecure()Z" />
+		<method name="openCompleted(ZLorg/apache/http/params/HttpParams;)V" />
+		<method name="opening(Ljava/net/Socket;Lorg/apache/http/HttpHost;)V" />
+		<method name="update(Ljava/net/Socket;Lorg/apache/http/HttpHost;ZLorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/impl/conn/DefaultClientConnectionOperator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/ClientConnectionOperator" />
+		<method name="&lt;init>(Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
+		<method name="createConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
+		<method name="openConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Ljava/net/InetAddress;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="prepareSocket(Ljava/net/Socket;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="updateSecureConnection(Lorg/apache/http/conn/OperatedClientConnection;Lorg/apache/http/HttpHost;Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/params/HttpParams;)V" />
+		<field name="schemeRegistry" />
+	</class>
+	<class name="org/apache/http/impl/conn/DefaultHttpRoutePlanner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/routing/HttpRoutePlanner" />
+		<method name="&lt;init>(Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
+		<method name="determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;" />
+		<field name="schemeRegistry" />
+	</class>
+	<class name="org/apache/http/impl/conn/DefaultResponseParser" since="1">
+		<extends name="org/apache/http/impl/io/AbstractMessageParser" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/HttpResponseFactory;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="parseHead(Lorg/apache/http/io/SessionInputBuffer;)Lorg/apache/http/HttpMessage;" />
+	</class>
+	<class name="org/apache/http/impl/conn/IdleConnectionHandler" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="add(Lorg/apache/http/HttpConnection;JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="closeExpiredConnections()V" />
+		<method name="closeIdleConnections(J)V" />
+		<method name="remove(Lorg/apache/http/HttpConnection;)Z" />
+		<method name="removeAll()V" />
+	</class>
+	<class name="org/apache/http/impl/conn/LoggingSessionInputBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/SessionInputBuffer" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/impl/conn/Wire;)V" />
+		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
+		<method name="isDataAvailable(I)Z" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLine(Lorg/apache/http/util/CharArrayBuffer;)I" />
+	</class>
+	<class name="org/apache/http/impl/conn/LoggingSessionOutputBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/SessionOutputBuffer" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/impl/conn/Wire;)V" />
+		<method name="flush()V" />
+		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+		<method name="writeLine(Ljava/lang/String;)V" />
+		<method name="writeLine(Lorg/apache/http/util/CharArrayBuffer;)V" />
+	</class>
+	<class name="org/apache/http/impl/conn/ProxySelectorRoutePlanner" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/routing/HttpRoutePlanner" />
+		<method name="&lt;init>(Lorg/apache/http/conn/scheme/SchemeRegistry;Ljava/net/ProxySelector;)V" />
+		<method name="chooseProxy(Ljava/util/List;Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Ljava/net/Proxy;" />
+		<method name="determineProxy(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpHost;" />
+		<method name="determineRoute(Lorg/apache/http/HttpHost;Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="getHost(Ljava/net/InetSocketAddress;)Ljava/lang/String;" />
+		<method name="getProxySelector()Ljava/net/ProxySelector;" />
+		<method name="setProxySelector(Ljava/net/ProxySelector;)V" />
+		<field name="proxySelector" />
+		<field name="schemeRegistry" />
+	</class>
+	<class name="org/apache/http/impl/conn/SingleClientConnManager" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/ClientConnectionManager" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
+		<method name="assertStillUp()V" />
+		<method name="closeExpiredConnections()V" />
+		<method name="closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="createConnectionOperator(Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionOperator;" />
+		<method name="getConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ManagedClientConnection;" />
+		<method name="getSchemeRegistry()Lorg/apache/http/conn/scheme/SchemeRegistry;" />
+		<method name="releaseConnection(Lorg/apache/http/conn/ManagedClientConnection;JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="requestConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ClientConnectionRequest;" />
+		<method name="revokeConnection()V" />
+		<method name="shutdown()V" />
+		<field name="MISUSE_MESSAGE" />
+		<field name="alwaysShutDown" />
+		<field name="connOperator" />
+		<field name="connectionExpiresTime" />
+		<field name="isShutDown" />
+		<field name="lastReleaseTime" />
+		<field name="managedConn" />
+		<field name="schemeRegistry" />
+		<field name="uniquePoolEntry" />
+	</class>
+	<class name="org/apache/http/impl/conn/SingleClientConnManager$ConnAdapter" since="1">
+		<extends name="org/apache/http/impl/conn/AbstractPooledConnAdapter" />
+		<method name="&lt;init>(Lorg/apache/http/impl/conn/SingleClientConnManager$PoolEntry;Lorg/apache/http/conn/routing/HttpRoute;)V" />
+	</class>
+	<class name="org/apache/http/impl/conn/SingleClientConnManager$PoolEntry" since="1">
+		<extends name="org/apache/http/impl/conn/AbstractPoolEntry" />
+		<method name="&lt;init>()V" />
+		<method name="close()V" />
+		<method name="shutdown()V" />
+	</class>
+	<class name="org/apache/http/impl/conn/Wire" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/commons/logging/Log;)V" />
+		<method name="enabled()Z" />
+		<method name="input(I)V" />
+		<method name="input(Ljava/io/InputStream;)V" />
+		<method name="input(Ljava/lang/String;)V" />
+		<method name="input([B)V" />
+		<method name="input([BII)V" />
+		<method name="output(I)V" />
+		<method name="output(Ljava/io/InputStream;)V" />
+		<method name="output(Ljava/lang/String;)V" />
+		<method name="output([B)V" />
+		<method name="output([BII)V" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/AbstractConnPool" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/impl/conn/tsccm/RefQueueHandler" />
+		<method name="&lt;init>()V" />
+		<method name="closeConnection(Lorg/apache/http/conn/OperatedClientConnection;)V" />
+		<method name="closeExpiredConnections()V" />
+		<method name="closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="deleteClosedConnections()V" />
+		<method name="enableConnectionGC()V" />
+		<method name="freeEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;ZJLjava/util/concurrent/TimeUnit;)V" />
+		<method name="getEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
+		<method name="handleLostEntry(Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="handleReference(Ljava/lang/ref/Reference;)V" />
+		<method name="requestPoolEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/PoolEntryRequest;" />
+		<method name="shutdown()V" />
+		<field name="idleConnHandler" />
+		<field name="isShutDown" />
+		<field name="issuedConnections" />
+		<field name="numConnections" />
+		<field name="poolLock" />
+		<field name="refQueue" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/BasicPoolEntry" since="1">
+		<extends name="org/apache/http/impl/conn/AbstractPoolEntry" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionOperator;Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/ref/ReferenceQueue;)V" />
+		<method name="getConnection()Lorg/apache/http/conn/OperatedClientConnection;" />
+		<method name="getPlannedRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="getWeakRef()Lorg/apache/http/impl/conn/tsccm/BasicPoolEntryRef;" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/BasicPoolEntryRef" since="1">
+		<extends name="java/lang/ref/WeakReference" />
+		<method name="&lt;init>(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;Ljava/lang/ref/ReferenceQueue;)V" />
+		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/BasicPooledConnAdapter" since="1">
+		<extends name="org/apache/http/impl/conn/AbstractPooledConnAdapter" />
+		<method name="&lt;init>(Lorg/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager;Lorg/apache/http/impl/conn/AbstractPoolEntry;)V" />
+		<method name="getPoolEntry()Lorg/apache/http/impl/conn/AbstractPoolEntry;" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/ConnPoolByRoute" since="1">
+		<extends name="org/apache/http/impl/conn/tsccm/AbstractConnPool" />
+		<method name="&lt;init>(Lorg/apache/http/conn/ClientConnectionOperator;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="createEntry(Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;Lorg/apache/http/conn/ClientConnectionOperator;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
+		<method name="createFreeConnQueue()Ljava/util/Queue;" />
+		<method name="createRouteToPoolMap()Ljava/util/Map;" />
+		<method name="createWaitingThreadQueue()Ljava/util/Queue;" />
+		<method name="deleteClosedConnections()V" />
+		<method name="deleteEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V" />
+		<method name="deleteLeastUsedEntry()V" />
+		<method name="freeEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;ZJLjava/util/concurrent/TimeUnit;)V" />
+		<method name="getConnectionsInPool(Lorg/apache/http/conn/routing/HttpRoute;)I" />
+		<method name="getEntryBlocking(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;Lorg/apache/http/impl/conn/tsccm/WaitingThreadAborter;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
+		<method name="getFreeEntry(Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
+		<method name="getRoutePool(Lorg/apache/http/conn/routing/HttpRoute;Z)Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;" />
+		<method name="handleLostEntry(Lorg/apache/http/conn/routing/HttpRoute;)V" />
+		<method name="newRouteSpecificPool(Lorg/apache/http/conn/routing/HttpRoute;)Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;" />
+		<method name="newWaitingThread(Ljava/util/concurrent/locks/Condition;Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;)Lorg/apache/http/impl/conn/tsccm/WaitingThread;" />
+		<method name="notifyWaitingThread(Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;)V" />
+		<method name="requestPoolEntry(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/PoolEntryRequest;" />
+		<field name="freeConnections" />
+		<field name="maxTotalConnections" />
+		<field name="operator" />
+		<field name="routeToPool" />
+		<field name="waitingThreads" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/PoolEntryRequest" since="1">
+		<method name="abortRequest()V" />
+		<method name="getPoolEntry(JLjava/util/concurrent/TimeUnit;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/RefQueueHandler" since="1">
+		<method name="handleReference(Ljava/lang/ref/Reference;)V" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/RefQueueWorker" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Runnable" />
+		<method name="&lt;init>(Ljava/lang/ref/ReferenceQueue;Lorg/apache/http/impl/conn/tsccm/RefQueueHandler;)V" />
+		<method name="run()V" />
+		<method name="shutdown()V" />
+		<field name="refHandler" />
+		<field name="refQueue" />
+		<field name="workerThread" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/RouteSpecificPool" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/conn/routing/HttpRoute;I)V" />
+		<method name="allocEntry(Ljava/lang/Object;)Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;" />
+		<method name="createdEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V" />
+		<method name="deleteEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)Z" />
+		<method name="dropEntry()V" />
+		<method name="freeEntry(Lorg/apache/http/impl/conn/tsccm/BasicPoolEntry;)V" />
+		<method name="getCapacity()I" />
+		<method name="getEntryCount()I" />
+		<method name="getMaxEntries()I" />
+		<method name="getRoute()Lorg/apache/http/conn/routing/HttpRoute;" />
+		<method name="hasThread()Z" />
+		<method name="isUnused()Z" />
+		<method name="nextThread()Lorg/apache/http/impl/conn/tsccm/WaitingThread;" />
+		<method name="queueThread(Lorg/apache/http/impl/conn/tsccm/WaitingThread;)V" />
+		<method name="removeThread(Lorg/apache/http/impl/conn/tsccm/WaitingThread;)V" />
+		<field name="freeEntries" />
+		<field name="maxEntries" />
+		<field name="numEntries" />
+		<field name="route" />
+		<field name="waitingThreads" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/ThreadSafeClientConnManager" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/conn/ClientConnectionManager" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/conn/scheme/SchemeRegistry;)V" />
+		<method name="closeExpiredConnections()V" />
+		<method name="closeIdleConnections(JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="createConnectionOperator(Lorg/apache/http/conn/scheme/SchemeRegistry;)Lorg/apache/http/conn/ClientConnectionOperator;" />
+		<method name="createConnectionPool(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/impl/conn/tsccm/AbstractConnPool;" />
+		<method name="getConnectionsInPool()I" />
+		<method name="getConnectionsInPool(Lorg/apache/http/conn/routing/HttpRoute;)I" />
+		<method name="getSchemeRegistry()Lorg/apache/http/conn/scheme/SchemeRegistry;" />
+		<method name="releaseConnection(Lorg/apache/http/conn/ManagedClientConnection;JLjava/util/concurrent/TimeUnit;)V" />
+		<method name="requestConnection(Lorg/apache/http/conn/routing/HttpRoute;Ljava/lang/Object;)Lorg/apache/http/conn/ClientConnectionRequest;" />
+		<method name="shutdown()V" />
+		<field name="connOperator" />
+		<field name="connectionPool" />
+		<field name="schemeRegistry" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/WaitingThread" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/util/concurrent/locks/Condition;Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;)V" />
+		<method name="await(Ljava/util/Date;)Z" />
+		<method name="getCondition()Ljava/util/concurrent/locks/Condition;" />
+		<method name="getPool()Lorg/apache/http/impl/conn/tsccm/RouteSpecificPool;" />
+		<method name="getThread()Ljava/lang/Thread;" />
+		<method name="interrupt()V" />
+		<method name="wakeup()V" />
+	</class>
+	<class name="org/apache/http/impl/conn/tsccm/WaitingThreadAborter" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="abort()V" />
+		<method name="setWaitingThread(Lorg/apache/http/impl/conn/tsccm/WaitingThread;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/AbstractCookieSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpec" />
+		<method name="&lt;init>()V" />
+		<method name="findAttribHandler(Ljava/lang/String;)Lorg/apache/http/cookie/CookieAttributeHandler;" />
+		<method name="getAttribHandler(Ljava/lang/String;)Lorg/apache/http/cookie/CookieAttributeHandler;" />
+		<method name="getAttribHandlers()Ljava/util/Collection;" />
+		<method name="registerAttribHandler(Ljava/lang/String;Lorg/apache/http/cookie/CookieAttributeHandler;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicClientCookie" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/ClientCookie" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/cookie/SetCookie" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="containsAttribute(Ljava/lang/String;)Z" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getComment()Ljava/lang/String;" />
+		<method name="getCommentURL()Ljava/lang/String;" />
+		<method name="getDomain()Ljava/lang/String;" />
+		<method name="getExpiryDate()Ljava/util/Date;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getPath()Ljava/lang/String;" />
+		<method name="getPorts()[I" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="getVersion()I" />
+		<method name="isExpired(Ljava/util/Date;)Z" />
+		<method name="isPersistent()Z" />
+		<method name="isSecure()Z" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setComment(Ljava/lang/String;)V" />
+		<method name="setDomain(Ljava/lang/String;)V" />
+		<method name="setExpiryDate(Ljava/util/Date;)V" />
+		<method name="setPath(Ljava/lang/String;)V" />
+		<method name="setSecure(Z)V" />
+		<method name="setValue(Ljava/lang/String;)V" />
+		<method name="setVersion(I)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicClientCookie2" since="1">
+		<extends name="org/apache/http/impl/cookie/BasicClientCookie" />
+		<implements name="org/apache/http/cookie/SetCookie2" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setCommentURL(Ljava/lang/String;)V" />
+		<method name="setDiscard(Z)V" />
+		<method name="setPorts([I)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicCommentHandler" since="1">
+		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicDomainHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicExpiresHandler" since="1">
+		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
+		<method name="&lt;init>([Ljava/lang/String;)V" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicMaxAgeHandler" since="1">
+		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicPathHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BasicSecureHandler" since="1">
+		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BestMatchSpec" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpec" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([Ljava/lang/String;Z)V" />
+		<method name="formatCookies(Ljava/util/List;)Ljava/util/List;" />
+		<method name="getVersion()I" />
+		<method name="getVersionHeader()Lorg/apache/http/Header;" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/Header;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BestMatchSpecFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpecFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BrowserCompatSpec" since="1">
+		<extends name="org/apache/http/impl/cookie/CookieSpecBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([Ljava/lang/String;)V" />
+		<method name="formatCookies(Ljava/util/List;)Ljava/util/List;" />
+		<method name="getVersion()I" />
+		<method name="getVersionHeader()Lorg/apache/http/Header;" />
+		<method name="parse(Lorg/apache/http/Header;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
+		<field name="DATE_PATTERNS" />
+	</class>
+	<class name="org/apache/http/impl/cookie/BrowserCompatSpecFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpecFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+	</class>
+	<class name="org/apache/http/impl/cookie/CookieSpecBase" since="1">
+		<extends name="org/apache/http/impl/cookie/AbstractCookieSpec" />
+		<method name="&lt;init>()V" />
+		<method name="getDefaultDomain(Lorg/apache/http/cookie/CookieOrigin;)Ljava/lang/String;" />
+		<method name="getDefaultPath(Lorg/apache/http/cookie/CookieOrigin;)Ljava/lang/String;" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse([Lorg/apache/http/HeaderElement;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/DateParseException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/DateUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="formatDate(Ljava/util/Date;)Ljava/lang/String;" />
+		<method name="formatDate(Ljava/util/Date;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="parseDate(Ljava/lang/String;)Ljava/util/Date;" />
+		<method name="parseDate(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/Date;" />
+		<method name="parseDate(Ljava/lang/String;[Ljava/lang/String;Ljava/util/Date;)Ljava/util/Date;" />
+		<field name="GMT" />
+		<field name="PATTERN_ASCTIME" />
+		<field name="PATTERN_RFC1036" />
+		<field name="PATTERN_RFC1123" />
+	</class>
+	<class name="org/apache/http/impl/cookie/NetscapeDomainHandler" since="1">
+		<extends name="org/apache/http/impl/cookie/BasicDomainHandler" />
+		<method name="&lt;init>()V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/NetscapeDraftHeaderParser" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="parseHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/HeaderElement;" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="org/apache/http/impl/cookie/NetscapeDraftSpec" since="1">
+		<extends name="org/apache/http/impl/cookie/CookieSpecBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([Ljava/lang/String;)V" />
+		<method name="formatCookies(Ljava/util/List;)Ljava/util/List;" />
+		<method name="getVersion()I" />
+		<method name="getVersionHeader()Lorg/apache/http/Header;" />
+		<method name="parse(Lorg/apache/http/Header;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
+		<field name="EXPIRES_PATTERN" />
+	</class>
+	<class name="org/apache/http/impl/cookie/NetscapeDraftSpecFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpecFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2109DomainHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2109Spec" since="1">
+		<extends name="org/apache/http/impl/cookie/CookieSpecBase" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([Ljava/lang/String;Z)V" />
+		<method name="formatCookieAsVer(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/cookie/Cookie;I)V" />
+		<method name="formatCookies(Ljava/util/List;)Ljava/util/List;" />
+		<method name="formatParamAsVer(Lorg/apache/http/util/CharArrayBuffer;Ljava/lang/String;Ljava/lang/String;I)V" />
+		<method name="getVersion()I" />
+		<method name="getVersionHeader()Lorg/apache/http/Header;" />
+		<method name="parse(Lorg/apache/http/Header;Lorg/apache/http/cookie/CookieOrigin;)Ljava/util/List;" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2109SpecFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpecFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2109VersionHandler" since="1">
+		<extends name="org/apache/http/impl/cookie/AbstractCookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965CommentUrlAttributeHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965DiscardAttributeHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965DomainAttributeHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="domainMatch(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965PortAttributeHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965Spec" since="1">
+		<extends name="org/apache/http/impl/cookie/RFC2109Spec" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>([Ljava/lang/String;Z)V" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965SpecFactory" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieSpecFactory" />
+		<method name="&lt;init>()V" />
+		<method name="newInstance(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/cookie/CookieSpec;" />
+	</class>
+	<class name="org/apache/http/impl/cookie/RFC2965VersionAttributeHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/cookie/CookieAttributeHandler" />
+		<method name="&lt;init>()V" />
+		<method name="match(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)Z" />
+		<method name="parse(Lorg/apache/http/cookie/SetCookie;Ljava/lang/String;)V" />
+		<method name="validate(Lorg/apache/http/cookie/Cookie;Lorg/apache/http/cookie/CookieOrigin;)V" />
+	</class>
+	<class name="org/apache/http/impl/entity/EntityDeserializer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/entity/ContentLengthStrategy;)V" />
+		<method name="deserialize(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpMessage;)Lorg/apache/http/HttpEntity;" />
+		<method name="doDeserialize(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/HttpMessage;)Lorg/apache/http/entity/BasicHttpEntity;" />
+	</class>
+	<class name="org/apache/http/impl/entity/EntitySerializer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/entity/ContentLengthStrategy;)V" />
+		<method name="doSerialize(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/HttpMessage;)Ljava/io/OutputStream;" />
+		<method name="serialize(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/HttpMessage;Lorg/apache/http/HttpEntity;)V" />
+	</class>
+	<class name="org/apache/http/impl/entity/LaxContentLengthStrategy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/entity/ContentLengthStrategy" />
+		<method name="&lt;init>()V" />
+		<method name="determineLength(Lorg/apache/http/HttpMessage;)J" />
+	</class>
+	<class name="org/apache/http/impl/entity/StrictContentLengthStrategy" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/entity/ContentLengthStrategy" />
+		<method name="&lt;init>()V" />
+		<method name="determineLength(Lorg/apache/http/HttpMessage;)J" />
+	</class>
+	<class name="org/apache/http/impl/io/AbstractMessageParser" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/HttpMessageParser" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="parse()Lorg/apache/http/HttpMessage;" />
+		<method name="parseHead(Lorg/apache/http/io/SessionInputBuffer;)Lorg/apache/http/HttpMessage;" />
+		<method name="parseHeaders(Lorg/apache/http/io/SessionInputBuffer;IILorg/apache/http/message/LineParser;)[Lorg/apache/http/Header;" />
+		<field name="lineParser" />
+	</class>
+	<class name="org/apache/http/impl/io/AbstractMessageWriter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/HttpMessageWriter" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/message/LineFormatter;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="write(Lorg/apache/http/HttpMessage;)V" />
+		<method name="writeHeadLine(Lorg/apache/http/HttpMessage;)V" />
+		<field name="lineBuf" />
+		<field name="lineFormatter" />
+		<field name="sessionBuffer" />
+	</class>
+	<class name="org/apache/http/impl/io/AbstractSessionInputBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/SessionInputBuffer" />
+		<method name="&lt;init>()V" />
+		<method name="fillBuffer()I" />
+		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
+		<method name="hasBufferedData()Z" />
+		<method name="init(Ljava/io/InputStream;ILorg/apache/http/params/HttpParams;)V" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLine(Lorg/apache/http/util/CharArrayBuffer;)I" />
+	</class>
+	<class name="org/apache/http/impl/io/AbstractSessionOutputBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/SessionOutputBuffer" />
+		<method name="&lt;init>()V" />
+		<method name="flush()V" />
+		<method name="flushBuffer()V" />
+		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
+		<method name="init(Ljava/io/OutputStream;ILorg/apache/http/params/HttpParams;)V" />
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+		<method name="writeLine(Ljava/lang/String;)V" />
+		<method name="writeLine(Lorg/apache/http/util/CharArrayBuffer;)V" />
+	</class>
+	<class name="org/apache/http/impl/io/ChunkedInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;)V" />
+		<method name="getFooters()[Lorg/apache/http/Header;" />
+		<method name="read()I" />
+	</class>
+	<class name="org/apache/http/impl/io/ChunkedOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;)V" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;I)V" />
+		<method name="finish()V" />
+		<method name="flushCache()V" />
+		<method name="flushCacheWithAppend([BII)V" />
+		<method name="write(I)V" />
+		<method name="writeClosingChunk()V" />
+	</class>
+	<class name="org/apache/http/impl/io/ContentLengthInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;J)V" />
+		<method name="read()I" />
+	</class>
+	<class name="org/apache/http/impl/io/ContentLengthOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;J)V" />
+		<method name="write(I)V" />
+	</class>
+	<class name="org/apache/http/impl/io/HttpRequestParser" since="1">
+		<extends name="org/apache/http/impl/io/AbstractMessageParser" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/HttpRequestFactory;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="parseHead(Lorg/apache/http/io/SessionInputBuffer;)Lorg/apache/http/HttpMessage;" />
+	</class>
+	<class name="org/apache/http/impl/io/HttpRequestWriter" since="1">
+		<extends name="org/apache/http/impl/io/AbstractMessageWriter" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/message/LineFormatter;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="writeHeadLine(Lorg/apache/http/HttpMessage;)V" />
+	</class>
+	<class name="org/apache/http/impl/io/HttpResponseParser" since="1">
+		<extends name="org/apache/http/impl/io/AbstractMessageParser" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;Lorg/apache/http/message/LineParser;Lorg/apache/http/HttpResponseFactory;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="parseHead(Lorg/apache/http/io/SessionInputBuffer;)Lorg/apache/http/HttpMessage;" />
+	</class>
+	<class name="org/apache/http/impl/io/HttpResponseWriter" since="1">
+		<extends name="org/apache/http/impl/io/AbstractMessageWriter" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;Lorg/apache/http/message/LineFormatter;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="writeHeadLine(Lorg/apache/http/HttpMessage;)V" />
+	</class>
+	<class name="org/apache/http/impl/io/HttpTransportMetricsImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/io/HttpTransportMetrics" />
+		<method name="&lt;init>()V" />
+		<method name="getBytesTransferred()J" />
+		<method name="incrementBytesTransferred(J)V" />
+		<method name="reset()V" />
+		<method name="setBytesTransferred(J)V" />
+	</class>
+	<class name="org/apache/http/impl/io/IdentityInputStream" since="1">
+		<extends name="java/io/InputStream" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionInputBuffer;)V" />
+		<method name="read()I" />
+	</class>
+	<class name="org/apache/http/impl/io/IdentityOutputStream" since="1">
+		<extends name="java/io/OutputStream" />
+		<method name="&lt;init>(Lorg/apache/http/io/SessionOutputBuffer;)V" />
+		<method name="write(I)V" />
+	</class>
+	<class name="org/apache/http/impl/io/SocketInputBuffer" since="1">
+		<extends name="org/apache/http/impl/io/AbstractSessionInputBuffer" />
+		<method name="&lt;init>(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)V" />
+		<method name="isDataAvailable(I)Z" />
+	</class>
+	<class name="org/apache/http/impl/io/SocketOutputBuffer" since="1">
+		<extends name="org/apache/http/impl/io/AbstractSessionOutputBuffer" />
+		<method name="&lt;init>(Ljava/net/Socket;ILorg/apache/http/params/HttpParams;)V" />
+	</class>
+	<class name="org/apache/http/io/HttpMessageParser" since="1">
+		<method name="parse()Lorg/apache/http/HttpMessage;" />
+	</class>
+	<class name="org/apache/http/io/HttpMessageWriter" since="1">
+		<method name="write(Lorg/apache/http/HttpMessage;)V" />
+	</class>
+	<class name="org/apache/http/io/HttpTransportMetrics" since="1">
+		<method name="getBytesTransferred()J" />
+		<method name="reset()V" />
+	</class>
+	<class name="org/apache/http/io/SessionInputBuffer" since="1">
+		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
+		<method name="isDataAvailable(I)Z" />
+		<method name="read()I" />
+		<method name="read([B)I" />
+		<method name="read([BII)I" />
+		<method name="readLine()Ljava/lang/String;" />
+		<method name="readLine(Lorg/apache/http/util/CharArrayBuffer;)I" />
+	</class>
+	<class name="org/apache/http/io/SessionOutputBuffer" since="1">
+		<method name="flush()V" />
+		<method name="getMetrics()Lorg/apache/http/io/HttpTransportMetrics;" />
+		<method name="write(I)V" />
+		<method name="write([B)V" />
+		<method name="write([BII)V" />
+		<method name="writeLine(Ljava/lang/String;)V" />
+		<method name="writeLine(Lorg/apache/http/util/CharArrayBuffer;)V" />
+	</class>
+	<class name="org/apache/http/message/AbstractHttpMessage" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpMessage" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="addHeader(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="addHeader(Lorg/apache/http/Header;)V" />
+		<method name="containsHeader(Ljava/lang/String;)Z" />
+		<method name="getAllHeaders()[Lorg/apache/http/Header;" />
+		<method name="getFirstHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="getHeaders(Ljava/lang/String;)[Lorg/apache/http/Header;" />
+		<method name="getLastHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="headerIterator()Lorg/apache/http/HeaderIterator;" />
+		<method name="headerIterator(Ljava/lang/String;)Lorg/apache/http/HeaderIterator;" />
+		<method name="removeHeader(Lorg/apache/http/Header;)V" />
+		<method name="removeHeaders(Ljava/lang/String;)V" />
+		<method name="setHeader(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setHeader(Lorg/apache/http/Header;)V" />
+		<method name="setHeaders([Lorg/apache/http/Header;)V" />
+		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
+		<field name="headergroup" />
+		<field name="params" />
+	</class>
+	<class name="org/apache/http/message/BasicHeader" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/Header" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getElements()[Lorg/apache/http/HeaderElement;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getValue()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/message/BasicHeaderElement" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/HeaderElement" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;[Lorg/apache/http/NameValuePair;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getParameter(I)Lorg/apache/http/NameValuePair;" />
+		<method name="getParameterByName(Ljava/lang/String;)Lorg/apache/http/NameValuePair;" />
+		<method name="getParameterCount()I" />
+		<method name="getParameters()[Lorg/apache/http/NameValuePair;" />
+		<method name="getValue()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/message/BasicHeaderElementIterator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HeaderElementIterator" />
+		<method name="&lt;init>(Lorg/apache/http/HeaderIterator;)V" />
+		<method name="&lt;init>(Lorg/apache/http/HeaderIterator;Lorg/apache/http/message/HeaderValueParser;)V" />
+		<method name="hasNext()Z" />
+		<method name="next()Ljava/lang/Object;" />
+		<method name="nextElement()Lorg/apache/http/HeaderElement;" />
+		<method name="remove()V" />
+	</class>
+	<class name="org/apache/http/message/BasicHeaderIterator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HeaderIterator" />
+		<method name="&lt;init>([Lorg/apache/http/Header;Ljava/lang/String;)V" />
+		<method name="filterHeader(I)Z" />
+		<method name="findNext(I)I" />
+		<method name="hasNext()Z" />
+		<method name="next()Ljava/lang/Object;" />
+		<method name="nextHeader()Lorg/apache/http/Header;" />
+		<method name="remove()V" />
+		<field name="allHeaders" />
+		<field name="currentIndex" />
+		<field name="headerName" />
+	</class>
+	<class name="org/apache/http/message/BasicHeaderValueFormatter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/message/HeaderValueFormatter" />
+		<method name="&lt;init>()V" />
+		<method name="doFormatValue(Lorg/apache/http/util/CharArrayBuffer;Ljava/lang/String;Z)V" />
+		<method name="estimateElementsLen([Lorg/apache/http/HeaderElement;)I" />
+		<method name="estimateHeaderElementLen(Lorg/apache/http/HeaderElement;)I" />
+		<method name="estimateNameValuePairLen(Lorg/apache/http/NameValuePair;)I" />
+		<method name="estimateParametersLen([Lorg/apache/http/NameValuePair;)I" />
+		<method name="formatElements(Lorg/apache/http/util/CharArrayBuffer;[Lorg/apache/http/HeaderElement;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatElements([Lorg/apache/http/HeaderElement;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
+		<method name="formatHeaderElement(Lorg/apache/http/HeaderElement;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
+		<method name="formatHeaderElement(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/HeaderElement;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatNameValuePair(Lorg/apache/http/NameValuePair;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
+		<method name="formatNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/NameValuePair;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatParameters(Lorg/apache/http/util/CharArrayBuffer;[Lorg/apache/http/NameValuePair;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatParameters([Lorg/apache/http/NameValuePair;ZLorg/apache/http/message/HeaderValueFormatter;)Ljava/lang/String;" />
+		<method name="isSeparator(C)Z" />
+		<method name="isUnsafe(C)Z" />
+		<field name="DEFAULT" />
+		<field name="SEPARATORS" />
+		<field name="UNSAFE_CHARS" />
+	</class>
+	<class name="org/apache/http/message/BasicHeaderValueParser" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/message/HeaderValueParser" />
+		<method name="&lt;init>()V" />
+		<method name="createHeaderElement(Ljava/lang/String;Ljava/lang/String;[Lorg/apache/http/NameValuePair;)Lorg/apache/http/HeaderElement;" />
+		<method name="createNameValuePair(Ljava/lang/String;Ljava/lang/String;)Lorg/apache/http/NameValuePair;" />
+		<method name="parseElements(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)[Lorg/apache/http/HeaderElement;" />
+		<method name="parseElements(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)[Lorg/apache/http/HeaderElement;" />
+		<method name="parseHeaderElement(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)Lorg/apache/http/HeaderElement;" />
+		<method name="parseHeaderElement(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/HeaderElement;" />
+		<method name="parseNameValuePair(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)Lorg/apache/http/NameValuePair;" />
+		<method name="parseNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/NameValuePair;" />
+		<method name="parseNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;[C)Lorg/apache/http/NameValuePair;" />
+		<method name="parseParameters(Ljava/lang/String;Lorg/apache/http/message/HeaderValueParser;)[Lorg/apache/http/NameValuePair;" />
+		<method name="parseParameters(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)[Lorg/apache/http/NameValuePair;" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="org/apache/http/message/BasicHttpEntityEnclosingRequest" since="1">
+		<extends name="org/apache/http/message/BasicHttpRequest" />
+		<implements name="org/apache/http/HttpEntityEnclosingRequest" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)V" />
+		<method name="&lt;init>(Lorg/apache/http/RequestLine;)V" />
+		<method name="expectContinue()Z" />
+		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
+		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
+	</class>
+	<class name="org/apache/http/message/BasicHttpRequest" since="1">
+		<extends name="org/apache/http/message/AbstractHttpMessage" />
+		<implements name="org/apache/http/HttpRequest" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)V" />
+		<method name="&lt;init>(Lorg/apache/http/RequestLine;)V" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getRequestLine()Lorg/apache/http/RequestLine;" />
+	</class>
+	<class name="org/apache/http/message/BasicHttpResponse" since="1">
+		<extends name="org/apache/http/message/AbstractHttpMessage" />
+		<implements name="org/apache/http/HttpResponse" />
+		<method name="&lt;init>(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
+		<method name="&lt;init>(Lorg/apache/http/StatusLine;)V" />
+		<method name="&lt;init>(Lorg/apache/http/StatusLine;Lorg/apache/http/ReasonPhraseCatalog;Ljava/util/Locale;)V" />
+		<method name="getEntity()Lorg/apache/http/HttpEntity;" />
+		<method name="getLocale()Ljava/util/Locale;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getReason(I)Ljava/lang/String;" />
+		<method name="getStatusLine()Lorg/apache/http/StatusLine;" />
+		<method name="setEntity(Lorg/apache/http/HttpEntity;)V" />
+		<method name="setLocale(Ljava/util/Locale;)V" />
+		<method name="setReasonPhrase(Ljava/lang/String;)V" />
+		<method name="setStatusCode(I)V" />
+		<method name="setStatusLine(Lorg/apache/http/ProtocolVersion;I)V" />
+		<method name="setStatusLine(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
+		<method name="setStatusLine(Lorg/apache/http/StatusLine;)V" />
+	</class>
+	<class name="org/apache/http/message/BasicLineFormatter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/message/LineFormatter" />
+		<method name="&lt;init>()V" />
+		<method name="appendProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/ProtocolVersion;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="doFormatHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/Header;)V" />
+		<method name="doFormatRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/RequestLine;)V" />
+		<method name="doFormatStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/StatusLine;)V" />
+		<method name="estimateProtocolVersionLen(Lorg/apache/http/ProtocolVersion;)I" />
+		<method name="formatHeader(Lorg/apache/http/Header;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
+		<method name="formatHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/Header;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatProtocolVersion(Lorg/apache/http/ProtocolVersion;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
+		<method name="formatRequestLine(Lorg/apache/http/RequestLine;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
+		<method name="formatRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/RequestLine;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatStatusLine(Lorg/apache/http/StatusLine;Lorg/apache/http/message/LineFormatter;)Ljava/lang/String;" />
+		<method name="formatStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/StatusLine;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="initBuffer(Lorg/apache/http/util/CharArrayBuffer;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<field name="DEFAULT" />
+	</class>
+	<class name="org/apache/http/message/BasicLineParser" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/message/LineParser" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/apache/http/ProtocolVersion;)V" />
+		<method name="createProtocolVersion(II)Lorg/apache/http/ProtocolVersion;" />
+		<method name="createRequestLine(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)Lorg/apache/http/RequestLine;" />
+		<method name="createStatusLine(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)Lorg/apache/http/StatusLine;" />
+		<method name="hasProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Z" />
+		<method name="parseHeader(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/Header;" />
+		<method name="parseHeader(Lorg/apache/http/util/CharArrayBuffer;)Lorg/apache/http/Header;" />
+		<method name="parseProtocolVersion(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/ProtocolVersion;" />
+		<method name="parseProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/ProtocolVersion;" />
+		<method name="parseRequestLine(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/RequestLine;" />
+		<method name="parseRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/RequestLine;" />
+		<method name="parseStatusLine(Ljava/lang/String;Lorg/apache/http/message/LineParser;)Lorg/apache/http/StatusLine;" />
+		<method name="parseStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/StatusLine;" />
+		<method name="skipWhitespace(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)V" />
+		<field name="DEFAULT" />
+		<field name="protocol" />
+	</class>
+	<class name="org/apache/http/message/BasicListHeaderIterator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HeaderIterator" />
+		<method name="&lt;init>(Ljava/util/List;Ljava/lang/String;)V" />
+		<method name="filterHeader(I)Z" />
+		<method name="findNext(I)I" />
+		<method name="hasNext()Z" />
+		<method name="next()Ljava/lang/Object;" />
+		<method name="nextHeader()Lorg/apache/http/Header;" />
+		<method name="remove()V" />
+		<field name="allHeaders" />
+		<field name="currentIndex" />
+		<field name="headerName" />
+		<field name="lastIndex" />
+	</class>
+	<class name="org/apache/http/message/BasicNameValuePair" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/NameValuePair" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getValue()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/message/BasicRequestLine" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/RequestLine" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Lorg/apache/http/ProtocolVersion;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getMethod()Ljava/lang/String;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getUri()Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/message/BasicStatusLine" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/StatusLine" />
+		<method name="&lt;init>(Lorg/apache/http/ProtocolVersion;ILjava/lang/String;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getProtocolVersion()Lorg/apache/http/ProtocolVersion;" />
+		<method name="getReasonPhrase()Ljava/lang/String;" />
+		<method name="getStatusCode()I" />
+	</class>
+	<class name="org/apache/http/message/BasicTokenIterator" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/TokenIterator" />
+		<method name="&lt;init>(Lorg/apache/http/HeaderIterator;)V" />
+		<method name="createToken(Ljava/lang/String;II)Ljava/lang/String;" />
+		<method name="findNext(I)I" />
+		<method name="findTokenEnd(I)I" />
+		<method name="findTokenSeparator(I)I" />
+		<method name="findTokenStart(I)I" />
+		<method name="hasNext()Z" />
+		<method name="isHttpSeparator(C)Z" />
+		<method name="isTokenChar(C)Z" />
+		<method name="isTokenSeparator(C)Z" />
+		<method name="isWhitespace(C)Z" />
+		<method name="next()Ljava/lang/Object;" />
+		<method name="nextToken()Ljava/lang/String;" />
+		<method name="remove()V" />
+		<field name="HTTP_SEPARATORS" />
+		<field name="currentHeader" />
+		<field name="currentToken" />
+		<field name="headerIt" />
+		<field name="searchPos" />
+	</class>
+	<class name="org/apache/http/message/BufferedHeader" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/FormattedHeader" />
+		<method name="&lt;init>(Lorg/apache/http/util/CharArrayBuffer;)V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="getBuffer()Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="getElements()[Lorg/apache/http/HeaderElement;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="getValuePos()I" />
+	</class>
+	<class name="org/apache/http/message/HeaderGroup" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<method name="&lt;init>()V" />
+		<method name="addHeader(Lorg/apache/http/Header;)V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="containsHeader(Ljava/lang/String;)Z" />
+		<method name="copy()Lorg/apache/http/message/HeaderGroup;" />
+		<method name="getAllHeaders()[Lorg/apache/http/Header;" />
+		<method name="getCondensedHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="getFirstHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="getHeaders(Ljava/lang/String;)[Lorg/apache/http/Header;" />
+		<method name="getLastHeader(Ljava/lang/String;)Lorg/apache/http/Header;" />
+		<method name="iterator()Lorg/apache/http/HeaderIterator;" />
+		<method name="iterator(Ljava/lang/String;)Lorg/apache/http/HeaderIterator;" />
+		<method name="removeHeader(Lorg/apache/http/Header;)V" />
+		<method name="setHeaders([Lorg/apache/http/Header;)V" />
+		<method name="updateHeader(Lorg/apache/http/Header;)V" />
+	</class>
+	<class name="org/apache/http/message/HeaderValueFormatter" since="1">
+		<method name="formatElements(Lorg/apache/http/util/CharArrayBuffer;[Lorg/apache/http/HeaderElement;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatHeaderElement(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/HeaderElement;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/NameValuePair;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatParameters(Lorg/apache/http/util/CharArrayBuffer;[Lorg/apache/http/NameValuePair;Z)Lorg/apache/http/util/CharArrayBuffer;" />
+	</class>
+	<class name="org/apache/http/message/HeaderValueParser" since="1">
+		<method name="parseElements(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)[Lorg/apache/http/HeaderElement;" />
+		<method name="parseHeaderElement(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/HeaderElement;" />
+		<method name="parseNameValuePair(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/NameValuePair;" />
+		<method name="parseParameters(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)[Lorg/apache/http/NameValuePair;" />
+	</class>
+	<class name="org/apache/http/message/LineFormatter" since="1">
+		<method name="appendProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/ProtocolVersion;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatHeader(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/Header;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/RequestLine;)Lorg/apache/http/util/CharArrayBuffer;" />
+		<method name="formatStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/StatusLine;)Lorg/apache/http/util/CharArrayBuffer;" />
+	</class>
+	<class name="org/apache/http/message/LineParser" since="1">
+		<method name="hasProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Z" />
+		<method name="parseHeader(Lorg/apache/http/util/CharArrayBuffer;)Lorg/apache/http/Header;" />
+		<method name="parseProtocolVersion(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/ProtocolVersion;" />
+		<method name="parseRequestLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/RequestLine;" />
+		<method name="parseStatusLine(Lorg/apache/http/util/CharArrayBuffer;Lorg/apache/http/message/ParserCursor;)Lorg/apache/http/StatusLine;" />
+	</class>
+	<class name="org/apache/http/message/ParserCursor" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(II)V" />
+		<method name="atEnd()Z" />
+		<method name="getLowerBound()I" />
+		<method name="getPos()I" />
+		<method name="getUpperBound()I" />
+		<method name="updatePos(I)V" />
+	</class>
+	<class name="org/apache/http/params/AbstractHttpParams" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/params/HttpParams" />
+		<method name="&lt;init>()V" />
+		<method name="getBooleanParameter(Ljava/lang/String;Z)Z" />
+		<method name="getDoubleParameter(Ljava/lang/String;D)D" />
+		<method name="getIntParameter(Ljava/lang/String;I)I" />
+		<method name="getLongParameter(Ljava/lang/String;J)J" />
+		<method name="isParameterFalse(Ljava/lang/String;)Z" />
+		<method name="isParameterTrue(Ljava/lang/String;)Z" />
+		<method name="setBooleanParameter(Ljava/lang/String;Z)Lorg/apache/http/params/HttpParams;" />
+		<method name="setDoubleParameter(Ljava/lang/String;D)Lorg/apache/http/params/HttpParams;" />
+		<method name="setIntParameter(Ljava/lang/String;I)Lorg/apache/http/params/HttpParams;" />
+		<method name="setLongParameter(Ljava/lang/String;J)Lorg/apache/http/params/HttpParams;" />
+	</class>
+	<class name="org/apache/http/params/BasicHttpParams" since="1">
+		<extends name="org/apache/http/params/AbstractHttpParams" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="java/io/Serializable" />
+		<method name="&lt;init>()V" />
+		<method name="clear()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="copy()Lorg/apache/http/params/HttpParams;" />
+		<method name="copyParams(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="isParameterSet(Ljava/lang/String;)Z" />
+		<method name="isParameterSetLocally(Ljava/lang/String;)Z" />
+		<method name="removeParameter(Ljava/lang/String;)Z" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;" />
+		<method name="setParameters([Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="org/apache/http/params/CoreConnectionPNames" since="1">
+		<field name="CONNECTION_TIMEOUT" />
+		<field name="MAX_HEADER_COUNT" />
+		<field name="MAX_LINE_LENGTH" />
+		<field name="SOCKET_BUFFER_SIZE" />
+		<field name="SO_LINGER" />
+		<field name="SO_TIMEOUT" />
+		<field name="STALE_CONNECTION_CHECK" />
+		<field name="TCP_NODELAY" />
+	</class>
+	<class name="org/apache/http/params/CoreProtocolPNames" since="1">
+		<field name="HTTP_CONTENT_CHARSET" />
+		<field name="HTTP_ELEMENT_CHARSET" />
+		<field name="ORIGIN_SERVER" />
+		<field name="PROTOCOL_VERSION" />
+		<field name="STRICT_TRANSFER_ENCODING" />
+		<field name="USER_AGENT" />
+		<field name="USE_EXPECT_CONTINUE" />
+		<field name="WAIT_FOR_CONTINUE" />
+	</class>
+	<class name="org/apache/http/params/DefaultedHttpParams" since="1">
+		<extends name="org/apache/http/params/AbstractHttpParams" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;Lorg/apache/http/params/HttpParams;)V" />
+		<method name="copy()Lorg/apache/http/params/HttpParams;" />
+		<method name="getDefaults()Lorg/apache/http/params/HttpParams;" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="removeParameter(Ljava/lang/String;)Z" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;" />
+	</class>
+	<class name="org/apache/http/params/HttpAbstractParamBean" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<field name="params" />
+	</class>
+	<class name="org/apache/http/params/HttpConnectionParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setConnectionTimeout(I)V" />
+		<method name="setLinger(I)V" />
+		<method name="setSoTimeout(I)V" />
+		<method name="setSocketBufferSize(I)V" />
+		<method name="setStaleCheckingEnabled(Z)V" />
+		<method name="setTcpNoDelay(Z)V" />
+	</class>
+	<class name="org/apache/http/params/HttpConnectionParams" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/params/CoreConnectionPNames" />
+		<method name="getConnectionTimeout(Lorg/apache/http/params/HttpParams;)I" />
+		<method name="getLinger(Lorg/apache/http/params/HttpParams;)I" />
+		<method name="getSoTimeout(Lorg/apache/http/params/HttpParams;)I" />
+		<method name="getSocketBufferSize(Lorg/apache/http/params/HttpParams;)I" />
+		<method name="getTcpNoDelay(Lorg/apache/http/params/HttpParams;)Z" />
+		<method name="isStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;)Z" />
+		<method name="setConnectionTimeout(Lorg/apache/http/params/HttpParams;I)V" />
+		<method name="setLinger(Lorg/apache/http/params/HttpParams;I)V" />
+		<method name="setSoTimeout(Lorg/apache/http/params/HttpParams;I)V" />
+		<method name="setSocketBufferSize(Lorg/apache/http/params/HttpParams;I)V" />
+		<method name="setStaleCheckingEnabled(Lorg/apache/http/params/HttpParams;Z)V" />
+		<method name="setTcpNoDelay(Lorg/apache/http/params/HttpParams;Z)V" />
+	</class>
+	<class name="org/apache/http/params/HttpParams" since="1">
+		<method name="copy()Lorg/apache/http/params/HttpParams;" />
+		<method name="getBooleanParameter(Ljava/lang/String;Z)Z" />
+		<method name="getDoubleParameter(Ljava/lang/String;D)D" />
+		<method name="getIntParameter(Ljava/lang/String;I)I" />
+		<method name="getLongParameter(Ljava/lang/String;J)J" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="isParameterFalse(Ljava/lang/String;)Z" />
+		<method name="isParameterTrue(Ljava/lang/String;)Z" />
+		<method name="removeParameter(Ljava/lang/String;)Z" />
+		<method name="setBooleanParameter(Ljava/lang/String;Z)Lorg/apache/http/params/HttpParams;" />
+		<method name="setDoubleParameter(Ljava/lang/String;D)Lorg/apache/http/params/HttpParams;" />
+		<method name="setIntParameter(Ljava/lang/String;I)Lorg/apache/http/params/HttpParams;" />
+		<method name="setLongParameter(Ljava/lang/String;J)Lorg/apache/http/params/HttpParams;" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/http/params/HttpParams;" />
+	</class>
+	<class name="org/apache/http/params/HttpProtocolParamBean" since="1">
+		<extends name="org/apache/http/params/HttpAbstractParamBean" />
+		<method name="&lt;init>(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setContentCharset(Ljava/lang/String;)V" />
+		<method name="setHttpElementCharset(Ljava/lang/String;)V" />
+		<method name="setUseExpectContinue(Z)V" />
+		<method name="setUserAgent(Ljava/lang/String;)V" />
+		<method name="setVersion(Lorg/apache/http/HttpVersion;)V" />
+	</class>
+	<class name="org/apache/http/params/HttpProtocolParams" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/params/CoreProtocolPNames" />
+		<method name="getContentCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
+		<method name="getHttpElementCharset(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
+		<method name="getUserAgent(Lorg/apache/http/params/HttpParams;)Ljava/lang/String;" />
+		<method name="getVersion(Lorg/apache/http/params/HttpParams;)Lorg/apache/http/ProtocolVersion;" />
+		<method name="setContentCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
+		<method name="setHttpElementCharset(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
+		<method name="setUseExpectContinue(Lorg/apache/http/params/HttpParams;Z)V" />
+		<method name="setUserAgent(Lorg/apache/http/params/HttpParams;Ljava/lang/String;)V" />
+		<method name="setVersion(Lorg/apache/http/params/HttpParams;Lorg/apache/http/ProtocolVersion;)V" />
+		<method name="useExpectContinue(Lorg/apache/http/params/HttpParams;)Z" />
+	</class>
+	<class name="org/apache/http/protocol/BasicHttpContext" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/protocol/HttpContext" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="removeAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="org/apache/http/protocol/BasicHttpProcessor" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="java/lang/Cloneable" />
+		<implements name="org/apache/http/protocol/HttpProcessor" />
+		<implements name="org/apache/http/protocol/HttpRequestInterceptorList" />
+		<implements name="org/apache/http/protocol/HttpResponseInterceptorList" />
+		<method name="&lt;init>()V" />
+		<method name="addInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
+		<method name="addInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
+		<method name="addInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
+		<method name="addInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
+		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
+		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
+		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
+		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
+		<method name="clearInterceptors()V" />
+		<method name="clearRequestInterceptors()V" />
+		<method name="clearResponseInterceptors()V" />
+		<method name="clone()Ljava/lang/Object;" />
+		<method name="copy()Lorg/apache/http/protocol/BasicHttpProcessor;" />
+		<method name="copyInterceptors(Lorg/apache/http/protocol/BasicHttpProcessor;)V" />
+		<method name="getRequestInterceptor(I)Lorg/apache/http/HttpRequestInterceptor;" />
+		<method name="getRequestInterceptorCount()I" />
+		<method name="getResponseInterceptor(I)Lorg/apache/http/HttpResponseInterceptor;" />
+		<method name="getResponseInterceptorCount()I" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="removeRequestInterceptorByClass(Ljava/lang/Class;)V" />
+		<method name="removeResponseInterceptorByClass(Ljava/lang/Class;)V" />
+		<method name="setInterceptors(Ljava/util/List;)V" />
+		<field name="requestInterceptors" />
+		<field name="responseInterceptors" />
+	</class>
+	<class name="org/apache/http/protocol/DefaultedHttpContext" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/protocol/HttpContext" />
+		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getDefaults()Lorg/apache/http/protocol/HttpContext;" />
+		<method name="removeAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="org/apache/http/protocol/ExecutionContext" since="1">
+		<field name="HTTP_CONNECTION" />
+		<field name="HTTP_PROXY_HOST" />
+		<field name="HTTP_REQUEST" />
+		<field name="HTTP_REQ_SENT" />
+		<field name="HTTP_RESPONSE" />
+		<field name="HTTP_TARGET_HOST" />
+	</class>
+	<class name="org/apache/http/protocol/HTTP" since="1">
+		<extends name="java/lang/Object" />
+		<method name="isWhitespace(C)Z" />
+		<field name="ASCII" />
+		<field name="CHARSET_PARAM" />
+		<field name="CHUNK_CODING" />
+		<field name="CONN_CLOSE" />
+		<field name="CONN_DIRECTIVE" />
+		<field name="CONN_KEEP_ALIVE" />
+		<field name="CONTENT_ENCODING" />
+		<field name="CONTENT_LEN" />
+		<field name="CONTENT_TYPE" />
+		<field name="CR" />
+		<field name="DATE_HEADER" />
+		<field name="DEFAULT_CONTENT_CHARSET" />
+		<field name="DEFAULT_CONTENT_TYPE" />
+		<field name="DEFAULT_PROTOCOL_CHARSET" />
+		<field name="EXPECT_CONTINUE" />
+		<field name="EXPECT_DIRECTIVE" />
+		<field name="HT" />
+		<field name="IDENTITY_CODING" />
+		<field name="ISO_8859_1" />
+		<field name="LF" />
+		<field name="OCTET_STREAM_TYPE" />
+		<field name="PLAIN_TEXT_TYPE" />
+		<field name="SERVER_HEADER" />
+		<field name="SP" />
+		<field name="TARGET_HOST" />
+		<field name="TRANSFER_ENCODING" />
+		<field name="USER_AGENT" />
+		<field name="US_ASCII" />
+		<field name="UTF_16" />
+		<field name="UTF_8" />
+	</class>
+	<class name="org/apache/http/protocol/HttpContext" since="1">
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="removeAttribute(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<field name="RESERVED_PREFIX" />
+	</class>
+	<class name="org/apache/http/protocol/HttpDateGenerator" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getCurrentDate()Ljava/lang/String;" />
+		<field name="GMT" />
+		<field name="PATTERN_RFC1123" />
+	</class>
+	<class name="org/apache/http/protocol/HttpExpectationVerifier" since="1">
+		<method name="verify(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/HttpProcessor" since="1">
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<implements name="org/apache/http/HttpResponseInterceptor" />
+	</class>
+	<class name="org/apache/http/protocol/HttpRequestExecutor" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="canResponseHaveBody(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;)Z" />
+		<method name="doReceiveResponse(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpClientConnection;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="doSendRequest(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpClientConnection;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="execute(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpClientConnection;Lorg/apache/http/protocol/HttpContext;)Lorg/apache/http/HttpResponse;" />
+		<method name="postProcess(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="preProcess(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/HttpRequestHandler" since="1">
+		<method name="handle(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/HttpRequestHandlerRegistry" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/protocol/HttpRequestHandlerResolver" />
+		<method name="&lt;init>()V" />
+		<method name="lookup(Ljava/lang/String;)Lorg/apache/http/protocol/HttpRequestHandler;" />
+		<method name="matchUriRequestPattern(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="register(Ljava/lang/String;Lorg/apache/http/protocol/HttpRequestHandler;)V" />
+		<method name="setHandlers(Ljava/util/Map;)V" />
+		<method name="unregister(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/protocol/HttpRequestHandlerResolver" since="1">
+		<method name="lookup(Ljava/lang/String;)Lorg/apache/http/protocol/HttpRequestHandler;" />
+	</class>
+	<class name="org/apache/http/protocol/HttpRequestInterceptorList" since="1">
+		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;)V" />
+		<method name="addRequestInterceptor(Lorg/apache/http/HttpRequestInterceptor;I)V" />
+		<method name="clearRequestInterceptors()V" />
+		<method name="getRequestInterceptor(I)Lorg/apache/http/HttpRequestInterceptor;" />
+		<method name="getRequestInterceptorCount()I" />
+		<method name="removeRequestInterceptorByClass(Ljava/lang/Class;)V" />
+		<method name="setInterceptors(Ljava/util/List;)V" />
+	</class>
+	<class name="org/apache/http/protocol/HttpResponseInterceptorList" since="1">
+		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;)V" />
+		<method name="addResponseInterceptor(Lorg/apache/http/HttpResponseInterceptor;I)V" />
+		<method name="clearResponseInterceptors()V" />
+		<method name="getResponseInterceptor(I)Lorg/apache/http/HttpResponseInterceptor;" />
+		<method name="getResponseInterceptorCount()I" />
+		<method name="removeResponseInterceptorByClass(Ljava/lang/Class;)V" />
+		<method name="setInterceptors(Ljava/util/List;)V" />
+	</class>
+	<class name="org/apache/http/protocol/HttpService" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Lorg/apache/http/protocol/HttpProcessor;Lorg/apache/http/ConnectionReuseStrategy;Lorg/apache/http/HttpResponseFactory;)V" />
+		<method name="doService(Lorg/apache/http/HttpRequest;Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="getParams()Lorg/apache/http/params/HttpParams;" />
+		<method name="handleException(Lorg/apache/http/HttpException;Lorg/apache/http/HttpResponse;)V" />
+		<method name="handleRequest(Lorg/apache/http/HttpServerConnection;Lorg/apache/http/protocol/HttpContext;)V" />
+		<method name="setConnReuseStrategy(Lorg/apache/http/ConnectionReuseStrategy;)V" />
+		<method name="setExpectationVerifier(Lorg/apache/http/protocol/HttpExpectationVerifier;)V" />
+		<method name="setHandlerResolver(Lorg/apache/http/protocol/HttpRequestHandlerResolver;)V" />
+		<method name="setHttpProcessor(Lorg/apache/http/protocol/HttpProcessor;)V" />
+		<method name="setParams(Lorg/apache/http/params/HttpParams;)V" />
+		<method name="setResponseFactory(Lorg/apache/http/HttpResponseFactory;)V" />
+	</class>
+	<class name="org/apache/http/protocol/RequestConnControl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/RequestContent" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/RequestDate" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/RequestExpectContinue" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/RequestTargetHost" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/RequestUserAgent" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpRequestInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpRequest;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/ResponseConnControl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpResponseInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/ResponseContent" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpResponseInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/ResponseDate" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpResponseInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/ResponseServer" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/apache/http/HttpResponseInterceptor" />
+		<method name="&lt;init>()V" />
+		<method name="process(Lorg/apache/http/HttpResponse;Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/SyncBasicHttpContext" since="1">
+		<extends name="org/apache/http/protocol/BasicHttpContext" />
+		<method name="&lt;init>(Lorg/apache/http/protocol/HttpContext;)V" />
+	</class>
+	<class name="org/apache/http/protocol/UriPatternMatcher" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="lookup(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="matchUriRequestPattern(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="register(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="setHandlers(Ljava/util/Map;)V" />
+		<method name="unregister(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/apache/http/util/ByteArrayBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="append(I)V" />
+		<method name="append(Lorg/apache/http/util/CharArrayBuffer;II)V" />
+		<method name="append([BII)V" />
+		<method name="append([CII)V" />
+		<method name="buffer()[B" />
+		<method name="byteAt(I)I" />
+		<method name="capacity()I" />
+		<method name="clear()V" />
+		<method name="isEmpty()Z" />
+		<method name="isFull()Z" />
+		<method name="length()I" />
+		<method name="setLength(I)V" />
+		<method name="toByteArray()[B" />
+	</class>
+	<class name="org/apache/http/util/CharArrayBuffer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(I)V" />
+		<method name="append(C)V" />
+		<method name="append(Ljava/lang/Object;)V" />
+		<method name="append(Ljava/lang/String;)V" />
+		<method name="append(Lorg/apache/http/util/ByteArrayBuffer;II)V" />
+		<method name="append(Lorg/apache/http/util/CharArrayBuffer;)V" />
+		<method name="append(Lorg/apache/http/util/CharArrayBuffer;II)V" />
+		<method name="append([BII)V" />
+		<method name="append([CII)V" />
+		<method name="buffer()[C" />
+		<method name="capacity()I" />
+		<method name="charAt(I)C" />
+		<method name="clear()V" />
+		<method name="ensureCapacity(I)V" />
+		<method name="indexOf(I)I" />
+		<method name="indexOf(III)I" />
+		<method name="isEmpty()Z" />
+		<method name="isFull()Z" />
+		<method name="length()I" />
+		<method name="setLength(I)V" />
+		<method name="substring(II)Ljava/lang/String;" />
+		<method name="substringTrimmed(II)Ljava/lang/String;" />
+		<method name="toCharArray()[C" />
+	</class>
+	<class name="org/apache/http/util/EncodingUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getAsciiBytes(Ljava/lang/String;)[B" />
+		<method name="getAsciiString([B)Ljava/lang/String;" />
+		<method name="getAsciiString([BII)Ljava/lang/String;" />
+		<method name="getBytes(Ljava/lang/String;Ljava/lang/String;)[B" />
+		<method name="getString([BIILjava/lang/String;)Ljava/lang/String;" />
+		<method name="getString([BLjava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/util/EntityUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="getContentCharSet(Lorg/apache/http/HttpEntity;)Ljava/lang/String;" />
+		<method name="toByteArray(Lorg/apache/http/HttpEntity;)[B" />
+		<method name="toString(Lorg/apache/http/HttpEntity;)Ljava/lang/String;" />
+		<method name="toString(Lorg/apache/http/HttpEntity;Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="org/apache/http/util/ExceptionUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="initCause(Ljava/lang/Throwable;Ljava/lang/Throwable;)V" />
+	</class>
+	<class name="org/apache/http/util/LangUtils" since="1">
+		<extends name="java/lang/Object" />
+		<method name="equals(Ljava/lang/Object;Ljava/lang/Object;)Z" />
+		<method name="equals([Ljava/lang/Object;[Ljava/lang/Object;)Z" />
+		<method name="hashCode(II)I" />
+		<method name="hashCode(ILjava/lang/Object;)I" />
+		<method name="hashCode(IZ)I" />
+		<field name="HASH_OFFSET" />
+		<field name="HASH_SEED" />
+	</class>
+	<class name="org/apache/http/util/VersionInfo" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="fromMap(Ljava/lang/String;Ljava/util/Map;Ljava/lang/ClassLoader;)Lorg/apache/http/util/VersionInfo;" />
+		<method name="getClassloader()Ljava/lang/String;" />
+		<method name="getModule()Ljava/lang/String;" />
+		<method name="getPackage()Ljava/lang/String;" />
+		<method name="getRelease()Ljava/lang/String;" />
+		<method name="getTimestamp()Ljava/lang/String;" />
+		<method name="loadVersionInfo(Ljava/lang/String;Ljava/lang/ClassLoader;)Lorg/apache/http/util/VersionInfo;" />
+		<method name="loadVersionInfo([Ljava/lang/String;Ljava/lang/ClassLoader;)[Lorg/apache/http/util/VersionInfo;" />
+		<field name="PROPERTY_MODULE" />
+		<field name="PROPERTY_RELEASE" />
+		<field name="PROPERTY_TIMESTAMP" />
+		<field name="UNAVAILABLE" />
+		<field name="VERSION_PROPERTY_FILE" />
+	</class>
+	<class name="org/json/JSONArray" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/util/Collection;)V" />
+		<method name="&lt;init>(Lorg/json/JSONTokener;)V" />
+		<method name="get(I)Ljava/lang/Object;" />
+		<method name="getBoolean(I)Z" />
+		<method name="getDouble(I)D" />
+		<method name="getInt(I)I" />
+		<method name="getJSONArray(I)Lorg/json/JSONArray;" />
+		<method name="getJSONObject(I)Lorg/json/JSONObject;" />
+		<method name="getLong(I)J" />
+		<method name="getString(I)Ljava/lang/String;" />
+		<method name="isNull(I)Z" />
+		<method name="join(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="length()I" />
+		<method name="opt(I)Ljava/lang/Object;" />
+		<method name="optBoolean(I)Z" />
+		<method name="optBoolean(IZ)Z" />
+		<method name="optDouble(I)D" />
+		<method name="optDouble(ID)D" />
+		<method name="optInt(I)I" />
+		<method name="optInt(II)I" />
+		<method name="optJSONArray(I)Lorg/json/JSONArray;" />
+		<method name="optJSONObject(I)Lorg/json/JSONObject;" />
+		<method name="optLong(I)J" />
+		<method name="optLong(IJ)J" />
+		<method name="optString(I)Ljava/lang/String;" />
+		<method name="optString(ILjava/lang/String;)Ljava/lang/String;" />
+		<method name="put(D)Lorg/json/JSONArray;" />
+		<method name="put(I)Lorg/json/JSONArray;" />
+		<method name="put(ID)Lorg/json/JSONArray;" />
+		<method name="put(II)Lorg/json/JSONArray;" />
+		<method name="put(IJ)Lorg/json/JSONArray;" />
+		<method name="put(ILjava/lang/Object;)Lorg/json/JSONArray;" />
+		<method name="put(IZ)Lorg/json/JSONArray;" />
+		<method name="put(J)Lorg/json/JSONArray;" />
+		<method name="put(Ljava/lang/Object;)Lorg/json/JSONArray;" />
+		<method name="put(Z)Lorg/json/JSONArray;" />
+		<method name="toJSONObject(Lorg/json/JSONArray;)Lorg/json/JSONObject;" />
+		<method name="toString(I)Ljava/lang/String;" />
+	</class>
+	<class name="org/json/JSONException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/json/JSONObject" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/util/Map;)V" />
+		<method name="&lt;init>(Lorg/json/JSONObject;[Ljava/lang/String;)V" />
+		<method name="&lt;init>(Lorg/json/JSONTokener;)V" />
+		<method name="accumulate(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;" />
+		<method name="get(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getBoolean(Ljava/lang/String;)Z" />
+		<method name="getDouble(Ljava/lang/String;)D" />
+		<method name="getInt(Ljava/lang/String;)I" />
+		<method name="getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;" />
+		<method name="getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;" />
+		<method name="getLong(Ljava/lang/String;)J" />
+		<method name="getString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="has(Ljava/lang/String;)Z" />
+		<method name="isNull(Ljava/lang/String;)Z" />
+		<method name="keys()Ljava/util/Iterator;" />
+		<method name="length()I" />
+		<method name="names()Lorg/json/JSONArray;" />
+		<method name="numberToString(Ljava/lang/Number;)Ljava/lang/String;" />
+		<method name="opt(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="optBoolean(Ljava/lang/String;)Z" />
+		<method name="optBoolean(Ljava/lang/String;Z)Z" />
+		<method name="optDouble(Ljava/lang/String;)D" />
+		<method name="optDouble(Ljava/lang/String;D)D" />
+		<method name="optInt(Ljava/lang/String;)I" />
+		<method name="optInt(Ljava/lang/String;I)I" />
+		<method name="optJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;" />
+		<method name="optJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;" />
+		<method name="optLong(Ljava/lang/String;)J" />
+		<method name="optLong(Ljava/lang/String;J)J" />
+		<method name="optString(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="put(Ljava/lang/String;D)Lorg/json/JSONObject;" />
+		<method name="put(Ljava/lang/String;I)Lorg/json/JSONObject;" />
+		<method name="put(Ljava/lang/String;J)Lorg/json/JSONObject;" />
+		<method name="put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;" />
+		<method name="put(Ljava/lang/String;Z)Lorg/json/JSONObject;" />
+		<method name="putOpt(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;" />
+		<method name="quote(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="remove(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="toJSONArray(Lorg/json/JSONArray;)Lorg/json/JSONArray;" />
+		<method name="toString(I)Ljava/lang/String;" />
+		<field name="NULL" />
+	</class>
+	<class name="org/json/JSONStringer" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="array()Lorg/json/JSONStringer;" />
+		<method name="endArray()Lorg/json/JSONStringer;" />
+		<method name="endObject()Lorg/json/JSONStringer;" />
+		<method name="key(Ljava/lang/String;)Lorg/json/JSONStringer;" />
+		<method name="object()Lorg/json/JSONStringer;" />
+		<method name="value(D)Lorg/json/JSONStringer;" />
+		<method name="value(J)Lorg/json/JSONStringer;" />
+		<method name="value(Ljava/lang/Object;)Lorg/json/JSONStringer;" />
+		<method name="value(Z)Lorg/json/JSONStringer;" />
+	</class>
+	<class name="org/json/JSONTokener" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="back()V" />
+		<method name="dehexchar(C)I" />
+		<method name="more()Z" />
+		<method name="next()C" />
+		<method name="next(C)C" />
+		<method name="next(I)Ljava/lang/String;" />
+		<method name="nextClean()C" />
+		<method name="nextString(C)Ljava/lang/String;" />
+		<method name="nextTo(C)Ljava/lang/String;" />
+		<method name="nextTo(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="nextValue()Ljava/lang/Object;" />
+		<method name="skipPast(Ljava/lang/String;)V" />
+		<method name="skipTo(C)C" />
+		<method name="syntaxError(Ljava/lang/String;)Lorg/json/JSONException;" />
+	</class>
+	<class name="org/w3c/dom/Attr" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getOwnerElement()Lorg/w3c/dom/Element;" />
+		<method name="getSchemaTypeInfo()Lorg/w3c/dom/TypeInfo;" since="8" />
+		<method name="getSpecified()Z" />
+		<method name="getValue()Ljava/lang/String;" />
+		<method name="isId()Z" since="8" />
+		<method name="setValue(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/w3c/dom/CDATASection" since="1">
+		<implements name="org/w3c/dom/Text" />
+	</class>
+	<class name="org/w3c/dom/CharacterData" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="appendData(Ljava/lang/String;)V" />
+		<method name="deleteData(II)V" />
+		<method name="getData()Ljava/lang/String;" />
+		<method name="getLength()I" />
+		<method name="insertData(ILjava/lang/String;)V" />
+		<method name="replaceData(IILjava/lang/String;)V" />
+		<method name="setData(Ljava/lang/String;)V" />
+		<method name="substringData(II)Ljava/lang/String;" />
+	</class>
+	<class name="org/w3c/dom/Comment" since="1">
+		<implements name="org/w3c/dom/CharacterData" />
+	</class>
+	<class name="org/w3c/dom/DOMConfiguration" since="8">
+		<method name="canSetParameter(Ljava/lang/String;Ljava/lang/Object;)Z" />
+		<method name="getParameter(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getParameterNames()Lorg/w3c/dom/DOMStringList;" />
+		<method name="setParameter(Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="org/w3c/dom/DOMError" since="8">
+		<method name="getLocation()Lorg/w3c/dom/DOMLocator;" />
+		<method name="getMessage()Ljava/lang/String;" />
+		<method name="getRelatedData()Ljava/lang/Object;" />
+		<method name="getRelatedException()Ljava/lang/Object;" />
+		<method name="getSeverity()S" />
+		<method name="getType()Ljava/lang/String;" />
+		<field name="SEVERITY_ERROR" />
+		<field name="SEVERITY_FATAL_ERROR" />
+		<field name="SEVERITY_WARNING" />
+	</class>
+	<class name="org/w3c/dom/DOMErrorHandler" since="8">
+		<method name="handleError(Lorg/w3c/dom/DOMError;)Z" />
+	</class>
+	<class name="org/w3c/dom/DOMException" since="1">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(SLjava/lang/String;)V" />
+		<field name="DOMSTRING_SIZE_ERR" />
+		<field name="HIERARCHY_REQUEST_ERR" />
+		<field name="INDEX_SIZE_ERR" />
+		<field name="INUSE_ATTRIBUTE_ERR" />
+		<field name="INVALID_ACCESS_ERR" />
+		<field name="INVALID_CHARACTER_ERR" />
+		<field name="INVALID_MODIFICATION_ERR" />
+		<field name="INVALID_STATE_ERR" />
+		<field name="NAMESPACE_ERR" />
+		<field name="NOT_FOUND_ERR" />
+		<field name="NOT_SUPPORTED_ERR" />
+		<field name="NO_DATA_ALLOWED_ERR" />
+		<field name="NO_MODIFICATION_ALLOWED_ERR" />
+		<field name="SYNTAX_ERR" />
+		<field name="TYPE_MISMATCH_ERR" since="8" />
+		<field name="VALIDATION_ERR" since="8" />
+		<field name="WRONG_DOCUMENT_ERR" />
+		<field name="code" />
+	</class>
+	<class name="org/w3c/dom/DOMImplementation" since="1">
+		<method name="createDocument(Ljava/lang/String;Ljava/lang/String;Lorg/w3c/dom/DocumentType;)Lorg/w3c/dom/Document;" />
+		<method name="createDocumentType(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/DocumentType;" />
+		<method name="getFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" since="8" />
+		<method name="hasFeature(Ljava/lang/String;Ljava/lang/String;)Z" />
+	</class>
+	<class name="org/w3c/dom/DOMImplementationList" since="8">
+		<method name="getLength()I" />
+		<method name="item(I)Lorg/w3c/dom/DOMImplementation;" />
+	</class>
+	<class name="org/w3c/dom/DOMImplementationSource" since="8">
+		<method name="getDOMImplementation(Ljava/lang/String;)Lorg/w3c/dom/DOMImplementation;" />
+		<method name="getDOMImplementationList(Ljava/lang/String;)Lorg/w3c/dom/DOMImplementationList;" />
+	</class>
+	<class name="org/w3c/dom/DOMLocator" since="8">
+		<method name="getByteOffset()I" />
+		<method name="getColumnNumber()I" />
+		<method name="getLineNumber()I" />
+		<method name="getRelatedNode()Lorg/w3c/dom/Node;" />
+		<method name="getUri()Ljava/lang/String;" />
+		<method name="getUtf16Offset()I" />
+	</class>
+	<class name="org/w3c/dom/DOMStringList" since="8">
+		<method name="contains(Ljava/lang/String;)Z" />
+		<method name="getLength()I" />
+		<method name="item(I)Ljava/lang/String;" />
+	</class>
+	<class name="org/w3c/dom/Document" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="adoptNode(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" since="8" />
+		<method name="createAttribute(Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
+		<method name="createAttributeNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
+		<method name="createCDATASection(Ljava/lang/String;)Lorg/w3c/dom/CDATASection;" />
+		<method name="createComment(Ljava/lang/String;)Lorg/w3c/dom/Comment;" />
+		<method name="createDocumentFragment()Lorg/w3c/dom/DocumentFragment;" />
+		<method name="createElement(Ljava/lang/String;)Lorg/w3c/dom/Element;" />
+		<method name="createElementNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Element;" />
+		<method name="createEntityReference(Ljava/lang/String;)Lorg/w3c/dom/EntityReference;" />
+		<method name="createProcessingInstruction(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/ProcessingInstruction;" />
+		<method name="createTextNode(Ljava/lang/String;)Lorg/w3c/dom/Text;" />
+		<method name="getDoctype()Lorg/w3c/dom/DocumentType;" />
+		<method name="getDocumentElement()Lorg/w3c/dom/Element;" />
+		<method name="getDocumentURI()Ljava/lang/String;" since="8" />
+		<method name="getDomConfig()Lorg/w3c/dom/DOMConfiguration;" since="8" />
+		<method name="getElementById(Ljava/lang/String;)Lorg/w3c/dom/Element;" />
+		<method name="getElementsByTagName(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
+		<method name="getElementsByTagNameNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
+		<method name="getImplementation()Lorg/w3c/dom/DOMImplementation;" />
+		<method name="getInputEncoding()Ljava/lang/String;" since="8" />
+		<method name="getStrictErrorChecking()Z" since="8" />
+		<method name="getXmlEncoding()Ljava/lang/String;" since="8" />
+		<method name="getXmlStandalone()Z" since="8" />
+		<method name="getXmlVersion()Ljava/lang/String;" since="8" />
+		<method name="importNode(Lorg/w3c/dom/Node;Z)Lorg/w3c/dom/Node;" />
+		<method name="normalizeDocument()V" since="8" />
+		<method name="renameNode(Lorg/w3c/dom/Node;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Node;" since="8" />
+		<method name="setDocumentURI(Ljava/lang/String;)V" since="8" />
+		<method name="setStrictErrorChecking(Z)V" since="8" />
+		<method name="setXmlStandalone(Z)V" since="8" />
+		<method name="setXmlVersion(Ljava/lang/String;)V" since="8" />
+	</class>
+	<class name="org/w3c/dom/DocumentFragment" since="1">
+		<implements name="org/w3c/dom/Node" />
+	</class>
+	<class name="org/w3c/dom/DocumentType" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="getEntities()Lorg/w3c/dom/NamedNodeMap;" />
+		<method name="getInternalSubset()Ljava/lang/String;" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getNotations()Lorg/w3c/dom/NamedNodeMap;" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+	</class>
+	<class name="org/w3c/dom/Element" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="getAttribute(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getAttributeNS(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getAttributeNode(Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
+		<method name="getAttributeNodeNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Attr;" />
+		<method name="getElementsByTagName(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
+		<method name="getElementsByTagNameNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/NodeList;" />
+		<method name="getSchemaTypeInfo()Lorg/w3c/dom/TypeInfo;" since="8" />
+		<method name="getTagName()Ljava/lang/String;" />
+		<method name="hasAttribute(Ljava/lang/String;)Z" />
+		<method name="hasAttributeNS(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="removeAttribute(Ljava/lang/String;)V" />
+		<method name="removeAttributeNS(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="removeAttributeNode(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;" />
+		<method name="setAttribute(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setAttributeNS(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setAttributeNode(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;" />
+		<method name="setAttributeNodeNS(Lorg/w3c/dom/Attr;)Lorg/w3c/dom/Attr;" />
+		<method name="setIdAttribute(Ljava/lang/String;Z)V" since="8" />
+		<method name="setIdAttributeNS(Ljava/lang/String;Ljava/lang/String;Z)V" since="8" />
+		<method name="setIdAttributeNode(Lorg/w3c/dom/Attr;Z)V" since="8" />
+	</class>
+	<class name="org/w3c/dom/Entity" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="getInputEncoding()Ljava/lang/String;" since="8" />
+		<method name="getNotationName()Ljava/lang/String;" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="getXmlEncoding()Ljava/lang/String;" since="8" />
+		<method name="getXmlVersion()Ljava/lang/String;" since="8" />
+	</class>
+	<class name="org/w3c/dom/EntityReference" since="1">
+		<implements name="org/w3c/dom/Node" />
+	</class>
+	<class name="org/w3c/dom/NameList" since="8">
+		<method name="contains(Ljava/lang/String;)Z" />
+		<method name="containsNS(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="getLength()I" />
+		<method name="getName(I)Ljava/lang/String;" />
+		<method name="getNamespaceURI(I)Ljava/lang/String;" />
+	</class>
+	<class name="org/w3c/dom/NamedNodeMap" since="1">
+		<method name="getLength()I" />
+		<method name="getNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;" />
+		<method name="getNamedItemNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Node;" />
+		<method name="item(I)Lorg/w3c/dom/Node;" />
+		<method name="removeNamedItem(Ljava/lang/String;)Lorg/w3c/dom/Node;" />
+		<method name="removeNamedItemNS(Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/Node;" />
+		<method name="setNamedItem(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
+		<method name="setNamedItemNS(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
+	</class>
+	<class name="org/w3c/dom/Node" since="1">
+		<method name="appendChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
+		<method name="cloneNode(Z)Lorg/w3c/dom/Node;" />
+		<method name="compareDocumentPosition(Lorg/w3c/dom/Node;)S" since="8" />
+		<method name="getAttributes()Lorg/w3c/dom/NamedNodeMap;" />
+		<method name="getBaseURI()Ljava/lang/String;" since="8" />
+		<method name="getChildNodes()Lorg/w3c/dom/NodeList;" />
+		<method name="getFeature(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" since="8" />
+		<method name="getFirstChild()Lorg/w3c/dom/Node;" />
+		<method name="getLastChild()Lorg/w3c/dom/Node;" />
+		<method name="getLocalName()Ljava/lang/String;" />
+		<method name="getNamespaceURI()Ljava/lang/String;" />
+		<method name="getNextSibling()Lorg/w3c/dom/Node;" />
+		<method name="getNodeName()Ljava/lang/String;" />
+		<method name="getNodeType()S" />
+		<method name="getNodeValue()Ljava/lang/String;" />
+		<method name="getOwnerDocument()Lorg/w3c/dom/Document;" />
+		<method name="getParentNode()Lorg/w3c/dom/Node;" />
+		<method name="getPrefix()Ljava/lang/String;" />
+		<method name="getPreviousSibling()Lorg/w3c/dom/Node;" />
+		<method name="getTextContent()Ljava/lang/String;" since="8" />
+		<method name="getUserData(Ljava/lang/String;)Ljava/lang/Object;" since="8" />
+		<method name="hasAttributes()Z" />
+		<method name="hasChildNodes()Z" />
+		<method name="insertBefore(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
+		<method name="isDefaultNamespace(Ljava/lang/String;)Z" since="8" />
+		<method name="isEqualNode(Lorg/w3c/dom/Node;)Z" since="8" />
+		<method name="isSameNode(Lorg/w3c/dom/Node;)Z" since="8" />
+		<method name="isSupported(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="lookupNamespaceURI(Ljava/lang/String;)Ljava/lang/String;" since="8" />
+		<method name="lookupPrefix(Ljava/lang/String;)Ljava/lang/String;" since="8" />
+		<method name="normalize()V" />
+		<method name="removeChild(Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
+		<method name="replaceChild(Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)Lorg/w3c/dom/Node;" />
+		<method name="setNodeValue(Ljava/lang/String;)V" />
+		<method name="setPrefix(Ljava/lang/String;)V" />
+		<method name="setTextContent(Ljava/lang/String;)V" since="8" />
+		<method name="setUserData(Ljava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/UserDataHandler;)Ljava/lang/Object;" since="8" />
+		<field name="ATTRIBUTE_NODE" />
+		<field name="CDATA_SECTION_NODE" />
+		<field name="COMMENT_NODE" />
+		<field name="DOCUMENT_FRAGMENT_NODE" />
+		<field name="DOCUMENT_NODE" />
+		<field name="DOCUMENT_POSITION_CONTAINED_BY" since="8" />
+		<field name="DOCUMENT_POSITION_CONTAINS" since="8" />
+		<field name="DOCUMENT_POSITION_DISCONNECTED" since="8" />
+		<field name="DOCUMENT_POSITION_FOLLOWING" since="8" />
+		<field name="DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC" since="8" />
+		<field name="DOCUMENT_POSITION_PRECEDING" since="8" />
+		<field name="DOCUMENT_TYPE_NODE" />
+		<field name="ELEMENT_NODE" />
+		<field name="ENTITY_NODE" />
+		<field name="ENTITY_REFERENCE_NODE" />
+		<field name="NOTATION_NODE" />
+		<field name="PROCESSING_INSTRUCTION_NODE" />
+		<field name="TEXT_NODE" />
+	</class>
+	<class name="org/w3c/dom/NodeList" since="1">
+		<method name="getLength()I" />
+		<method name="item(I)Lorg/w3c/dom/Node;" />
+	</class>
+	<class name="org/w3c/dom/Notation" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+	</class>
+	<class name="org/w3c/dom/ProcessingInstruction" since="1">
+		<implements name="org/w3c/dom/Node" />
+		<method name="getData()Ljava/lang/String;" />
+		<method name="getTarget()Ljava/lang/String;" />
+		<method name="setData(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/w3c/dom/Text" since="1">
+		<implements name="org/w3c/dom/CharacterData" />
+		<method name="getWholeText()Ljava/lang/String;" since="8" />
+		<method name="isElementContentWhitespace()Z" since="8" />
+		<method name="replaceWholeText(Ljava/lang/String;)Lorg/w3c/dom/Text;" since="8" />
+		<method name="splitText(I)Lorg/w3c/dom/Text;" />
+	</class>
+	<class name="org/w3c/dom/TypeInfo" since="8">
+		<method name="getTypeName()Ljava/lang/String;" />
+		<method name="getTypeNamespace()Ljava/lang/String;" />
+		<method name="isDerivedFrom(Ljava/lang/String;Ljava/lang/String;I)Z" />
+		<field name="DERIVATION_EXTENSION" />
+		<field name="DERIVATION_LIST" />
+		<field name="DERIVATION_RESTRICTION" />
+		<field name="DERIVATION_UNION" />
+	</class>
+	<class name="org/w3c/dom/UserDataHandler" since="8">
+		<method name="handle(SLjava/lang/String;Ljava/lang/Object;Lorg/w3c/dom/Node;Lorg/w3c/dom/Node;)V" />
+		<field name="NODE_ADOPTED" />
+		<field name="NODE_CLONED" />
+		<field name="NODE_DELETED" />
+		<field name="NODE_IMPORTED" />
+		<field name="NODE_RENAMED" />
+	</class>
+	<class name="org/w3c/dom/ls/DOMImplementationLS" since="8">
+		<method name="createLSInput()Lorg/w3c/dom/ls/LSInput;" />
+		<method name="createLSOutput()Lorg/w3c/dom/ls/LSOutput;" />
+		<method name="createLSParser(SLjava/lang/String;)Lorg/w3c/dom/ls/LSParser;" />
+		<method name="createLSSerializer()Lorg/w3c/dom/ls/LSSerializer;" />
+		<field name="MODE_ASYNCHRONOUS" />
+		<field name="MODE_SYNCHRONOUS" />
+	</class>
+	<class name="org/w3c/dom/ls/LSException" since="8">
+		<extends name="java/lang/RuntimeException" />
+		<method name="&lt;init>(SLjava/lang/String;)V" />
+		<field name="PARSE_ERR" />
+		<field name="SERIALIZE_ERR" />
+		<field name="code" />
+	</class>
+	<class name="org/w3c/dom/ls/LSInput" since="8">
+		<method name="getBaseURI()Ljava/lang/String;" />
+		<method name="getByteStream()Ljava/io/InputStream;" />
+		<method name="getCertifiedText()Z" />
+		<method name="getCharacterStream()Ljava/io/Reader;" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getStringData()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setBaseURI(Ljava/lang/String;)V" />
+		<method name="setByteStream(Ljava/io/InputStream;)V" />
+		<method name="setCertifiedText(Z)V" />
+		<method name="setCharacterStream(Ljava/io/Reader;)V" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setPublicId(Ljava/lang/String;)V" />
+		<method name="setStringData(Ljava/lang/String;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/w3c/dom/ls/LSOutput" since="8">
+		<method name="getByteStream()Ljava/io/OutputStream;" />
+		<method name="getCharacterStream()Ljava/io/Writer;" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setByteStream(Ljava/io/OutputStream;)V" />
+		<method name="setCharacterStream(Ljava/io/Writer;)V" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/w3c/dom/ls/LSParser" since="8">
+		<method name="abort()V" />
+		<method name="getAsync()Z" />
+		<method name="getBusy()Z" />
+		<method name="getDomConfig()Lorg/w3c/dom/DOMConfiguration;" />
+		<method name="getFilter()Lorg/w3c/dom/ls/LSParserFilter;" />
+		<method name="parse(Lorg/w3c/dom/ls/LSInput;)Lorg/w3c/dom/Document;" />
+		<method name="parseURI(Ljava/lang/String;)Lorg/w3c/dom/Document;" />
+		<method name="parseWithContext(Lorg/w3c/dom/ls/LSInput;Lorg/w3c/dom/Node;S)Lorg/w3c/dom/Node;" />
+		<method name="setFilter(Lorg/w3c/dom/ls/LSParserFilter;)V" />
+		<field name="ACTION_APPEND_AS_CHILDREN" />
+		<field name="ACTION_INSERT_AFTER" />
+		<field name="ACTION_INSERT_BEFORE" />
+		<field name="ACTION_REPLACE" />
+		<field name="ACTION_REPLACE_CHILDREN" />
+	</class>
+	<class name="org/w3c/dom/ls/LSParserFilter" since="8">
+		<method name="acceptNode(Lorg/w3c/dom/Node;)S" />
+		<method name="getWhatToShow()I" />
+		<method name="startElement(Lorg/w3c/dom/Element;)S" />
+		<field name="FILTER_ACCEPT" />
+		<field name="FILTER_INTERRUPT" />
+		<field name="FILTER_REJECT" />
+		<field name="FILTER_SKIP" />
+	</class>
+	<class name="org/w3c/dom/ls/LSResourceResolver" since="8">
+		<method name="resolveResource(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/w3c/dom/ls/LSInput;" />
+	</class>
+	<class name="org/w3c/dom/ls/LSSerializer" since="8">
+		<method name="getDomConfig()Lorg/w3c/dom/DOMConfiguration;" />
+		<method name="getNewLine()Ljava/lang/String;" />
+		<method name="setNewLine(Ljava/lang/String;)V" />
+		<method name="write(Lorg/w3c/dom/Node;Lorg/w3c/dom/ls/LSOutput;)Z" />
+		<method name="writeToString(Lorg/w3c/dom/Node;)Ljava/lang/String;" />
+		<method name="writeToURI(Lorg/w3c/dom/Node;Ljava/lang/String;)Z" />
+	</class>
+	<class name="org/xml/sax/AttributeList" since="1">
+		<method name="getLength()I" />
+		<method name="getName(I)Ljava/lang/String;" />
+		<method name="getType(I)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValue(I)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="org/xml/sax/Attributes" since="1">
+		<method name="getIndex(Ljava/lang/String;)I" />
+		<method name="getIndex(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getLength()I" />
+		<method name="getLocalName(I)Ljava/lang/String;" />
+		<method name="getQName(I)Ljava/lang/String;" />
+		<method name="getType(I)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getURI(I)Ljava/lang/String;" />
+		<method name="getValue(I)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+	</class>
+	<class name="org/xml/sax/ContentHandler" since="1">
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="endPrefixMapping(Ljava/lang/String;)V" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="skippedEntity(Ljava/lang/String;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V" />
+		<method name="startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/DTDHandler" since="1">
+		<method name="notationDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="unparsedEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/DocumentHandler" since="1">
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;)V" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Lorg/xml/sax/AttributeList;)V" />
+	</class>
+	<class name="org/xml/sax/EntityResolver" since="1">
+		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+	</class>
+	<class name="org/xml/sax/ErrorHandler" since="1">
+		<method name="error(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="fatalError(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="warning(Lorg/xml/sax/SAXParseException;)V" />
+	</class>
+	<class name="org/xml/sax/HandlerBase" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/DTDHandler" />
+		<implements name="org/xml/sax/DocumentHandler" />
+		<implements name="org/xml/sax/EntityResolver" />
+		<implements name="org/xml/sax/ErrorHandler" />
+		<method name="&lt;init>()V" />
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;)V" />
+		<method name="error(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="fatalError(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="notationDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Lorg/xml/sax/AttributeList;)V" />
+		<method name="unparsedEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="warning(Lorg/xml/sax/SAXParseException;)V" />
+	</class>
+	<class name="org/xml/sax/InputSource" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/io/InputStream;)V" />
+		<method name="&lt;init>(Ljava/io/Reader;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="getByteStream()Ljava/io/InputStream;" />
+		<method name="getCharacterStream()Ljava/io/Reader;" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setByteStream(Ljava/io/InputStream;)V" />
+		<method name="setCharacterStream(Ljava/io/Reader;)V" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setPublicId(Ljava/lang/String;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/Locator" since="1">
+		<method name="getColumnNumber()I" />
+		<method name="getLineNumber()I" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+	</class>
+	<class name="org/xml/sax/Parser" since="1">
+		<method name="parse(Ljava/lang/String;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;)V" />
+		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
+		<method name="setDocumentHandler(Lorg/xml/sax/DocumentHandler;)V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setLocale(Ljava/util/Locale;)V" />
+	</class>
+	<class name="org/xml/sax/SAXException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/Exception;)V" />
+		<method name="getException()Ljava/lang/Exception;" />
+	</class>
+	<class name="org/xml/sax/SAXNotRecognizedException" since="1">
+		<extends name="org/xml/sax/SAXException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/SAXNotSupportedException" since="1">
+		<extends name="org/xml/sax/SAXException" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/SAXParseException" since="1">
+		<extends name="org/xml/sax/SAXException" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V" />
+		<method name="&lt;init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/Exception;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Lorg/xml/sax/Locator;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Lorg/xml/sax/Locator;Ljava/lang/Exception;)V" />
+		<method name="getColumnNumber()I" />
+		<method name="getLineNumber()I" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+	</class>
+	<class name="org/xml/sax/XMLFilter" since="1">
+		<implements name="org/xml/sax/XMLReader" />
+		<method name="getParent()Lorg/xml/sax/XMLReader;" />
+		<method name="setParent(Lorg/xml/sax/XMLReader;)V" />
+	</class>
+	<class name="org/xml/sax/XMLReader" since="1">
+		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
+		<method name="getDTDHandler()Lorg/xml/sax/DTDHandler;" />
+		<method name="getEntityResolver()Lorg/xml/sax/EntityResolver;" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="parse(Ljava/lang/String;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;)V" />
+		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+	</class>
+	<class name="org/xml/sax/ext/Attributes2" since="1">
+		<implements name="org/xml/sax/Attributes" />
+		<method name="isDeclared(I)Z" />
+		<method name="isDeclared(Ljava/lang/String;)Z" />
+		<method name="isDeclared(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="isSpecified(I)Z" />
+		<method name="isSpecified(Ljava/lang/String;)Z" />
+		<method name="isSpecified(Ljava/lang/String;Ljava/lang/String;)Z" />
+	</class>
+	<class name="org/xml/sax/ext/Attributes2Impl" since="1">
+		<extends name="org/xml/sax/helpers/AttributesImpl" />
+		<implements name="org/xml/sax/ext/Attributes2" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/Attributes;)V" />
+		<method name="isDeclared(I)Z" />
+		<method name="isDeclared(Ljava/lang/String;)Z" />
+		<method name="isDeclared(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="isSpecified(I)Z" />
+		<method name="isSpecified(Ljava/lang/String;)Z" />
+		<method name="isSpecified(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="setDeclared(IZ)V" />
+		<method name="setSpecified(IZ)V" />
+	</class>
+	<class name="org/xml/sax/ext/DeclHandler" since="1">
+		<method name="attributeDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="elementDecl(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="externalEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="internalEntityDecl(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/ext/DefaultHandler2" since="1">
+		<extends name="org/xml/sax/helpers/DefaultHandler" />
+		<implements name="org/xml/sax/ext/DeclHandler" />
+		<implements name="org/xml/sax/ext/EntityResolver2" />
+		<implements name="org/xml/sax/ext/LexicalHandler" />
+		<method name="&lt;init>()V" />
+		<method name="attributeDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="comment([CII)V" />
+		<method name="elementDecl(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="endCDATA()V" />
+		<method name="endDTD()V" />
+		<method name="endEntity(Ljava/lang/String;)V" />
+		<method name="externalEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getExternalSubset(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+		<method name="internalEntityDecl(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+		<method name="startCDATA()V" />
+		<method name="startDTD(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="startEntity(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/ext/EntityResolver2" since="1">
+		<implements name="org/xml/sax/EntityResolver" />
+		<method name="getExternalSubset(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+	</class>
+	<class name="org/xml/sax/ext/LexicalHandler" since="1">
+		<method name="comment([CII)V" />
+		<method name="endCDATA()V" />
+		<method name="endDTD()V" />
+		<method name="endEntity(Ljava/lang/String;)V" />
+		<method name="startCDATA()V" />
+		<method name="startDTD(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="startEntity(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/ext/Locator2" since="1">
+		<implements name="org/xml/sax/Locator" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getXMLVersion()Ljava/lang/String;" />
+	</class>
+	<class name="org/xml/sax/ext/Locator2Impl" since="1">
+		<extends name="org/xml/sax/helpers/LocatorImpl" />
+		<implements name="org/xml/sax/ext/Locator2" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/Locator;)V" />
+		<method name="getEncoding()Ljava/lang/String;" />
+		<method name="getXMLVersion()Ljava/lang/String;" />
+		<method name="setEncoding(Ljava/lang/String;)V" />
+		<method name="setXMLVersion(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/AttributeListImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/AttributeList" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/AttributeList;)V" />
+		<method name="addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clear()V" />
+		<method name="getLength()I" />
+		<method name="getName(I)Ljava/lang/String;" />
+		<method name="getType(I)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValue(I)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="removeAttribute(Ljava/lang/String;)V" />
+		<method name="setAttributeList(Lorg/xml/sax/AttributeList;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/AttributesImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/Attributes" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/Attributes;)V" />
+		<method name="addAttribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="clear()V" />
+		<method name="getIndex(Ljava/lang/String;)I" />
+		<method name="getIndex(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getLength()I" />
+		<method name="getLocalName(I)Ljava/lang/String;" />
+		<method name="getQName(I)Ljava/lang/String;" />
+		<method name="getType(I)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getURI(I)Ljava/lang/String;" />
+		<method name="getValue(I)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="removeAttribute(I)V" />
+		<method name="setAttribute(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setAttributes(Lorg/xml/sax/Attributes;)V" />
+		<method name="setLocalName(ILjava/lang/String;)V" />
+		<method name="setQName(ILjava/lang/String;)V" />
+		<method name="setType(ILjava/lang/String;)V" />
+		<method name="setURI(ILjava/lang/String;)V" />
+		<method name="setValue(ILjava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/DefaultHandler" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/ContentHandler" />
+		<implements name="org/xml/sax/DTDHandler" />
+		<implements name="org/xml/sax/EntityResolver" />
+		<implements name="org/xml/sax/ErrorHandler" />
+		<method name="&lt;init>()V" />
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="endPrefixMapping(Ljava/lang/String;)V" />
+		<method name="error(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="fatalError(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="notationDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="skippedEntity(Ljava/lang/String;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V" />
+		<method name="startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="unparsedEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="warning(Lorg/xml/sax/SAXParseException;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/LocatorImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/Locator" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/Locator;)V" />
+		<method name="getColumnNumber()I" />
+		<method name="getLineNumber()I" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="setColumnNumber(I)V" />
+		<method name="setLineNumber(I)V" />
+		<method name="setPublicId(Ljava/lang/String;)V" />
+		<method name="setSystemId(Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/NamespaceSupport" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="declarePrefix(Ljava/lang/String;Ljava/lang/String;)Z" />
+		<method name="getDeclaredPrefixes()Ljava/util/Enumeration;" />
+		<method name="getPrefix(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getPrefixes()Ljava/util/Enumeration;" />
+		<method name="getPrefixes(Ljava/lang/String;)Ljava/util/Enumeration;" />
+		<method name="getURI(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="isNamespaceDeclUris()Z" />
+		<method name="popContext()V" />
+		<method name="processName(Ljava/lang/String;[Ljava/lang/String;Z)[Ljava/lang/String;" />
+		<method name="pushContext()V" />
+		<method name="reset()V" />
+		<method name="setNamespaceDeclUris(Z)V" />
+		<field name="NSDECL" />
+		<field name="XMLNS" />
+	</class>
+	<class name="org/xml/sax/helpers/ParserAdapter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/DocumentHandler" />
+		<implements name="org/xml/sax/XMLReader" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/Parser;)V" />
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;)V" />
+		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
+		<method name="getDTDHandler()Lorg/xml/sax/DTDHandler;" />
+		<method name="getEntityResolver()Lorg/xml/sax/EntityResolver;" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="parse(Ljava/lang/String;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Lorg/xml/sax/AttributeList;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/ParserFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="makeParser()Lorg/xml/sax/Parser;" />
+		<method name="makeParser(Ljava/lang/String;)Lorg/xml/sax/Parser;" />
+	</class>
+	<class name="org/xml/sax/helpers/XMLFilterImpl" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/ContentHandler" />
+		<implements name="org/xml/sax/DTDHandler" />
+		<implements name="org/xml/sax/EntityResolver" />
+		<implements name="org/xml/sax/ErrorHandler" />
+		<implements name="org/xml/sax/XMLFilter" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/XMLReader;)V" />
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="endPrefixMapping(Ljava/lang/String;)V" />
+		<method name="error(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="fatalError(Lorg/xml/sax/SAXParseException;)V" />
+		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
+		<method name="getDTDHandler()Lorg/xml/sax/DTDHandler;" />
+		<method name="getEntityResolver()Lorg/xml/sax/EntityResolver;" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getParent()Lorg/xml/sax/XMLReader;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="notationDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="parse(Ljava/lang/String;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="resolveEntity(Ljava/lang/String;Ljava/lang/String;)Lorg/xml/sax/InputSource;" />
+		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setParent(Lorg/xml/sax/XMLReader;)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="skippedEntity(Ljava/lang/String;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V" />
+		<method name="startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="unparsedEntityDecl(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="warning(Lorg/xml/sax/SAXParseException;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/XMLReaderAdapter" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/ContentHandler" />
+		<implements name="org/xml/sax/Parser" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xml/sax/XMLReader;)V" />
+		<method name="characters([CII)V" />
+		<method name="endDocument()V" />
+		<method name="endElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="endPrefixMapping(Ljava/lang/String;)V" />
+		<method name="ignorableWhitespace([CII)V" />
+		<method name="parse(Ljava/lang/String;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;)V" />
+		<method name="processingInstruction(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
+		<method name="setDocumentHandler(Lorg/xml/sax/DocumentHandler;)V" />
+		<method name="setDocumentLocator(Lorg/xml/sax/Locator;)V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setLocale(Ljava/util/Locale;)V" />
+		<method name="skippedEntity(Ljava/lang/String;)V" />
+		<method name="startDocument()V" />
+		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Attributes;)V" />
+		<method name="startPrefixMapping(Ljava/lang/String;Ljava/lang/String;)V" />
+	</class>
+	<class name="org/xml/sax/helpers/XMLReaderFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="createXMLReader()Lorg/xml/sax/XMLReader;" />
+		<method name="createXMLReader(Ljava/lang/String;)Lorg/xml/sax/XMLReader;" />
+	</class>
+	<class name="org/xmlpull/v1/XmlPullParser" since="1">
+		<method name="defineEntityReplacementText(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="getAttributeCount()I" />
+		<method name="getAttributeName(I)Ljava/lang/String;" />
+		<method name="getAttributeNamespace(I)Ljava/lang/String;" />
+		<method name="getAttributePrefix(I)Ljava/lang/String;" />
+		<method name="getAttributeType(I)Ljava/lang/String;" />
+		<method name="getAttributeValue(I)Ljava/lang/String;" />
+		<method name="getAttributeValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getColumnNumber()I" />
+		<method name="getDepth()I" />
+		<method name="getEventType()I" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getInputEncoding()Ljava/lang/String;" />
+		<method name="getLineNumber()I" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getNamespace()Ljava/lang/String;" />
+		<method name="getNamespace(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getNamespaceCount(I)I" />
+		<method name="getNamespacePrefix(I)Ljava/lang/String;" />
+		<method name="getNamespaceUri(I)Ljava/lang/String;" />
+		<method name="getPositionDescription()Ljava/lang/String;" />
+		<method name="getPrefix()Ljava/lang/String;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getText()Ljava/lang/String;" />
+		<method name="getTextCharacters([I)[C" />
+		<method name="isAttributeDefault(I)Z" />
+		<method name="isEmptyElementTag()Z" />
+		<method name="isWhitespace()Z" />
+		<method name="next()I" />
+		<method name="nextTag()I" />
+		<method name="nextText()Ljava/lang/String;" />
+		<method name="nextToken()I" />
+		<method name="require(ILjava/lang/String;Ljava/lang/String;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setInput(Ljava/io/InputStream;Ljava/lang/String;)V" />
+		<method name="setInput(Ljava/io/Reader;)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<field name="CDSECT" />
+		<field name="COMMENT" />
+		<field name="DOCDECL" />
+		<field name="END_DOCUMENT" />
+		<field name="END_TAG" />
+		<field name="ENTITY_REF" />
+		<field name="FEATURE_PROCESS_DOCDECL" />
+		<field name="FEATURE_PROCESS_NAMESPACES" />
+		<field name="FEATURE_REPORT_NAMESPACE_ATTRIBUTES" />
+		<field name="FEATURE_VALIDATION" />
+		<field name="IGNORABLE_WHITESPACE" />
+		<field name="NO_NAMESPACE" />
+		<field name="PROCESSING_INSTRUCTION" />
+		<field name="START_DOCUMENT" />
+		<field name="START_TAG" />
+		<field name="TEXT" />
+		<field name="TYPES" />
+	</class>
+	<class name="org/xmlpull/v1/XmlPullParserException" since="1">
+		<extends name="java/lang/Exception" />
+		<method name="&lt;init>(Ljava/lang/String;)V" />
+		<method name="&lt;init>(Ljava/lang/String;Lorg/xmlpull/v1/XmlPullParser;Ljava/lang/Throwable;)V" />
+		<method name="getColumnNumber()I" />
+		<method name="getDetail()Ljava/lang/Throwable;" />
+		<method name="getLineNumber()I" />
+		<field name="column" />
+		<field name="detail" />
+		<field name="row" />
+	</class>
+	<class name="org/xmlpull/v1/XmlPullParserFactory" since="1">
+		<extends name="java/lang/Object" />
+		<method name="&lt;init>()V" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="isNamespaceAware()Z" />
+		<method name="isValidating()Z" />
+		<method name="newInstance()Lorg/xmlpull/v1/XmlPullParserFactory;" />
+		<method name="newInstance(Ljava/lang/String;Ljava/lang/Class;)Lorg/xmlpull/v1/XmlPullParserFactory;" />
+		<method name="newPullParser()Lorg/xmlpull/v1/XmlPullParser;" />
+		<method name="newSerializer()Lorg/xmlpull/v1/XmlSerializer;" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setNamespaceAware(Z)V" />
+		<method name="setValidating(Z)V" />
+		<field name="PROPERTY_NAME" />
+		<field name="classNamesLocation" />
+		<field name="features" />
+		<field name="parserClasses" />
+		<field name="serializerClasses" />
+	</class>
+	<class name="org/xmlpull/v1/XmlSerializer" since="1">
+		<method name="attribute(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
+		<method name="cdsect(Ljava/lang/String;)V" />
+		<method name="comment(Ljava/lang/String;)V" />
+		<method name="docdecl(Ljava/lang/String;)V" />
+		<method name="endDocument()V" />
+		<method name="endTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
+		<method name="entityRef(Ljava/lang/String;)V" />
+		<method name="flush()V" />
+		<method name="getDepth()I" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getName()Ljava/lang/String;" />
+		<method name="getNamespace()Ljava/lang/String;" />
+		<method name="getPrefix(Ljava/lang/String;Z)Ljava/lang/String;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="ignorableWhitespace(Ljava/lang/String;)V" />
+		<method name="processingInstruction(Ljava/lang/String;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setOutput(Ljava/io/OutputStream;Ljava/lang/String;)V" />
+		<method name="setOutput(Ljava/io/Writer;)V" />
+		<method name="setPrefix(Ljava/lang/String;Ljava/lang/String;)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="startDocument(Ljava/lang/String;Ljava/lang/Boolean;)V" />
+		<method name="startTag(Ljava/lang/String;Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
+		<method name="text(Ljava/lang/String;)Lorg/xmlpull/v1/XmlSerializer;" />
+		<method name="text([CII)Lorg/xmlpull/v1/XmlSerializer;" />
+	</class>
+	<class name="org/xmlpull/v1/sax2/Driver" since="1">
+		<extends name="java/lang/Object" />
+		<implements name="org/xml/sax/Attributes" />
+		<implements name="org/xml/sax/Locator" />
+		<implements name="org/xml/sax/XMLReader" />
+		<method name="&lt;init>()V" />
+		<method name="&lt;init>(Lorg/xmlpull/v1/XmlPullParser;)V" />
+		<method name="getColumnNumber()I" />
+		<method name="getContentHandler()Lorg/xml/sax/ContentHandler;" />
+		<method name="getDTDHandler()Lorg/xml/sax/DTDHandler;" />
+		<method name="getEntityResolver()Lorg/xml/sax/EntityResolver;" />
+		<method name="getErrorHandler()Lorg/xml/sax/ErrorHandler;" />
+		<method name="getFeature(Ljava/lang/String;)Z" />
+		<method name="getIndex(Ljava/lang/String;)I" />
+		<method name="getIndex(Ljava/lang/String;Ljava/lang/String;)I" />
+		<method name="getLength()I" />
+		<method name="getLineNumber()I" />
+		<method name="getLocalName(I)Ljava/lang/String;" />
+		<method name="getProperty(Ljava/lang/String;)Ljava/lang/Object;" />
+		<method name="getPublicId()Ljava/lang/String;" />
+		<method name="getQName(I)Ljava/lang/String;" />
+		<method name="getSystemId()Ljava/lang/String;" />
+		<method name="getType(I)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getType(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getURI(I)Ljava/lang/String;" />
+		<method name="getValue(I)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="getValue(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" />
+		<method name="parse(Ljava/lang/String;)V" />
+		<method name="parse(Lorg/xml/sax/InputSource;)V" />
+		<method name="parseSubTree(Lorg/xmlpull/v1/XmlPullParser;)V" />
+		<method name="setContentHandler(Lorg/xml/sax/ContentHandler;)V" />
+		<method name="setDTDHandler(Lorg/xml/sax/DTDHandler;)V" />
+		<method name="setEntityResolver(Lorg/xml/sax/EntityResolver;)V" />
+		<method name="setErrorHandler(Lorg/xml/sax/ErrorHandler;)V" />
+		<method name="setFeature(Ljava/lang/String;Z)V" />
+		<method name="setProperty(Ljava/lang/String;Ljava/lang/Object;)V" />
+		<method name="startElement(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" />
+		<field name="APACHE_DYNAMIC_VALIDATION_FEATURE" />
+		<field name="APACHE_SCHEMA_VALIDATION_FEATURE" />
+		<field name="DECLARATION_HANDLER_PROPERTY" />
+		<field name="LEXICAL_HANDLER_PROPERTY" />
+		<field name="NAMESPACES_FEATURE" />
+		<field name="NAMESPACE_PREFIXES_FEATURE" />
+		<field name="VALIDATION_FEATURE" />
+		<field name="contentHandler" />
+		<field name="errorHandler" />
+		<field name="pp" />
+		<field name="systemId" />
+	</class>
+</api>
diff --git a/sdk/doc_source.prop_template b/sdk/doc_source.prop_template
new file mode 100644
index 0000000..d3cdfd5
--- /dev/null
+++ b/sdk/doc_source.prop_template
@@ -0,0 +1,4 @@
+Pkg.UserSrc=false
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
diff --git a/sdk/doc_source.properties b/sdk/doc_source.properties
deleted file mode 100644
index 5b3dce6..0000000
--- a/sdk/doc_source.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-Pkg.UserSrc=false
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
-
diff --git a/sdk/images_armeabi-v7a_source.prop_template b/sdk/images_armeabi-v7a_source.prop_template
new file mode 100644
index 0000000..ae67647
--- /dev/null
+++ b/sdk/images_armeabi-v7a_source.prop_template
@@ -0,0 +1,6 @@
+Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
+Pkg.UserSrc=false
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
+SystemImage.Abi=armeabi-v7a
diff --git a/sdk/images_armeabi-v7a_source.properties b/sdk/images_armeabi-v7a_source.properties
deleted file mode 100644
index 2392a00..0000000
--- a/sdk/images_armeabi-v7a_source.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-Pkg.Desc=Android SDK Platform 4.0.3
-Pkg.UserSrc=false
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
-SystemImage.Abi=armeabi-v7a
diff --git a/sdk/images_armeabi_source.prop_template b/sdk/images_armeabi_source.prop_template
new file mode 100644
index 0000000..b100e53
--- /dev/null
+++ b/sdk/images_armeabi_source.prop_template
@@ -0,0 +1,6 @@
+Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
+Pkg.UserSrc=false
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
+SystemImage.Abi=armeabi
diff --git a/sdk/images_armeabi_source.properties b/sdk/images_armeabi_source.properties
deleted file mode 100644
index 4af4b5d..0000000
--- a/sdk/images_armeabi_source.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-Pkg.Desc=Android SDK Platform 4.0.3
-Pkg.UserSrc=false
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
-SystemImage.Abi=armeabi
diff --git a/sdk/images_x86_source.prop_template b/sdk/images_x86_source.prop_template
new file mode 100644
index 0000000..62e2e0d
--- /dev/null
+++ b/sdk/images_x86_source.prop_template
@@ -0,0 +1,6 @@
+Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
+Pkg.UserSrc=false
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
+SystemImage.Abi=x86
diff --git a/sdk/images_x86_source.properties b/sdk/images_x86_source.properties
deleted file mode 100644
index 7a17964..0000000
--- a/sdk/images_x86_source.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-Pkg.Desc=Android SDK Platform 4.0.3
-Pkg.UserSrc=false
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
-SystemImage.Abi=x86
diff --git a/sdk/plat_tools_source.properties b/sdk/plat_tools_source.properties
index 3da9448..488c0d5 100644
--- a/sdk/plat_tools_source.properties
+++ b/sdk/plat_tools_source.properties
@@ -1,2 +1,2 @@
 Pkg.UserSrc=false
-Pkg.Revision=10
\ No newline at end of file
+Pkg.Revision=11
\ No newline at end of file
diff --git a/sdk/platform_source.prop_template b/sdk/platform_source.prop_template
new file mode 100644
index 0000000..17a5e4e
--- /dev/null
+++ b/sdk/platform_source.prop_template
@@ -0,0 +1,9 @@
+Pkg.Desc=Android SDK Platform ${PLATFORM_VERSION}
+Pkg.UserSrc=false
+Platform.Version=${PLATFORM_VERSION}
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
+Layoutlib.Api=7
+Layoutlib.Revision=1
+Platform.MinToolsRev=15
diff --git a/sdk/platform_source.properties b/sdk/platform_source.properties
deleted file mode 100644
index a0a26b8..0000000
--- a/sdk/platform_source.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-Pkg.Desc=Android SDK Platform 4.0.3
-Pkg.UserSrc=false
-Platform.Version=4.0.3
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
-Layoutlib.Api=7
-Layoutlib.Revision=1
-Platform.MinToolsRev=15
diff --git a/sdk/prebuilt/v7/gridlayout/.classpath b/sdk/prebuilt/v7/gridlayout/.classpath
new file mode 100644
index 0000000..a4f1e40
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<classpath>

+	<classpathentry kind="src" path="src"/>

+	<classpathentry kind="src" path="gen"/>

+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>

+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>

+	<classpathentry kind="output" path="bin/classes"/>

+</classpath>

diff --git a/sdk/prebuilt/v7/gridlayout/.project b/sdk/prebuilt/v7/gridlayout/.project
new file mode 100644
index 0000000..ed51f1d
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/.project
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>gridlayout_v7</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>org.eclipse.jdt.core.javabuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+		<buildCommand>

+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>

+		<nature>org.eclipse.jdt.core.javanature</nature>

+	</natures>

+</projectDescription>

diff --git a/sdk/prebuilt/v7/gridlayout/AndroidManifest.xml b/sdk/prebuilt/v7/gridlayout/AndroidManifest.xml
new file mode 100644
index 0000000..c3f7168
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/AndroidManifest.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="android.support.v7.gridlayout"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk android:minSdkVersion="7" />
+
+</manifest>
diff --git a/sdk/prebuilt/v7/gridlayout/README.txt b/sdk/prebuilt/v7/gridlayout/README.txt
new file mode 100644
index 0000000..86853b0
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/README.txt
@@ -0,0 +1,8 @@
+Library Project including GridLayout.
+
+This can be used by an Android project to provide
+access to GridLayout on applications running on API 7+
+
+There is technically no source, but the src folder is necessary
+to ensure that the build system works. The content is actually
+located in libs/android-support-v7-gridlayout.jar
diff --git a/sdk/prebuilt/v7/gridlayout/libs/android-support-v7-gridlayout.jar b/sdk/prebuilt/v7/gridlayout/libs/android-support-v7-gridlayout.jar
new file mode 100644
index 0000000..ecef47d
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/libs/android-support-v7-gridlayout.jar
Binary files differ
diff --git a/sdk/prebuilt/v7/gridlayout/project.properties b/sdk/prebuilt/v7/gridlayout/project.properties
new file mode 100644
index 0000000..5ca3505
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-7
+android.library=true
diff --git a/sdk/prebuilt/v7/gridlayout/res/values/attrs.xml b/sdk/prebuilt/v7/gridlayout/res/values/attrs.xml
new file mode 100644
index 0000000..ad2ef4e
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/res/values/attrs.xml
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <declare-styleable name="GridLayout">
+
+        <!--
+              support versions. All attributes not present in ViewGroup/View are
+              redefined in the support library namespace.
+        -->
+
+
+        <!--
+        The orientation property is not used during layout. It is only used to
+        allocate row and column parameters when they are not specified by its children's
+        layout parameters. GridLayout works like LinearLayout in this case;
+        putting all the components either in a single row or in a single column -
+        depending on the value of this flag. In the horizontal case, a columnCount
+        property may be additionally supplied to force new rows to be created when a
+        row is full. The rowCount attribute may be used similarly in the vertical case.
+        The default is horizontal.
+        -->
+        <attr name="orientation">
+
+            <!-- Defines an horizontal widget. -->
+            <enum name="horizontal" value="0" />
+            <!-- Defines a vertical widget. -->
+            <enum name="vertical" value="1" />
+        </attr>
+        <!-- The maximum number of rows to create when automatically positioning children. -->
+        <attr name="rowCount" format="integer" />
+        <!-- The maximum number of columns to create when automatically positioning children. -->
+        <attr name="columnCount" format="integer" />
+        <!--
+        When set to true, tells GridLayout to use default margins when none are specified
+        in a view's layout parameters.
+        The default value is false.
+        See {@link android.widget.GridLayout#setUseDefaultMargins(boolean)}.
+        -->
+        <attr name="useDefaultMargins" format="boolean" />
+        <!--
+        When set to alignMargins, causes alignment to take place between the outer
+        boundary of a view, as defined by its margins. When set to alignBounds,
+        causes alignment to take place between the edges of the view.
+        The default is alignMargins.
+        See {@link android.widget.GridLayout#setAlignmentMode(int)}.
+        -->
+        <attr name="alignmentMode">
+
+            <!--
+            Align the bounds of the children.
+            See {@link android.widget.GridLayout#ALIGN_BOUNDS}.
+            -->
+            <enum name="alignBounds" value="0" />
+            <!--
+            Align the margins of the children.
+            See {@link android.widget.GridLayout#ALIGN_MARGINS}.
+            -->
+            <enum name="alignMargins" value="1" />
+        </attr>
+        <!--
+        When set to true, forces row boundaries to appear in the same order
+        as row indices.
+        The default is true.
+        See {@link android.widget.GridLayout#setRowOrderPreserved(boolean)}.
+        -->
+        <attr name="rowOrderPreserved" format="boolean" />
+        <!--
+        When set to true, forces column boundaries to appear in the same order
+        as column indices.
+        The default is true.
+        See {@link android.widget.GridLayout#setColumnOrderPreserved(boolean)}.
+        -->
+        <attr name="columnOrderPreserved" format="boolean" />
+    </declare-styleable>
+    <declare-styleable name="GridLayout_Layout">
+
+        <!--
+              support versions. All attributes not present in MarginLayout are
+              redefined in the support library name space.
+        -->
+
+
+        <!-- START MarginLayout layoutparams -->
+
+        <attr name="android:layout_width" />
+        <attr name="android:layout_height" />
+        <!--
+              Specifies extra space on the left, top, right and bottom
+              sides of this view. This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_margin" />
+        <!--
+              Specifies extra space on the left side of this view.
+              This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_marginLeft" />
+        <!--
+              Specifies extra space on the top side of this view.
+              This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_marginTop" />
+        <!--
+              Specifies extra space on the right side of this view.
+              This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_marginRight" />
+        <!--
+              Specifies extra space on the bottom side of this view.
+              This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_marginBottom" />
+        <!--
+              Specifies extra space on the start side of this view.
+              This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_marginStart" />
+        <!--
+              Specifies extra space on the end side of this view.
+              This space is outside this view's bounds.
+        -->
+        <attr name="android:layout_marginEnd" />
+
+        <!-- END MarginLayout layoutparams -->
+
+
+        <!--
+        The row boundary delimiting the top of the group of cells
+        occupied by this view.
+        -->
+        <attr name="layout_row" format="integer" />
+        <!--
+        The row span: the difference between the bottom and top
+        boundaries delimiting the group of cells occupied by this view.
+        The default is one.
+        See {@link android.widget.GridLayout.Spec}.
+        -->
+        <attr name="layout_rowSpan" format="integer" min="1" />
+        <!--
+        The column boundary delimiting the left of the group of cells
+        occupied by this view.
+        -->
+        <attr name="layout_column" format="integer" />
+        <!--
+        The column span: the difference between the right and left
+        boundaries delimiting the group of cells occupied by this view.
+        The default is one.
+        See {@link android.widget.GridLayout.Spec}.
+        -->
+        <attr name="layout_columnSpan" format="integer" min="1" />
+        <!--
+        Gravity specifies how a component should be placed in its group of cells.
+        The default is LEFT | BASELINE.
+        See {@link android.widget.GridLayout.LayoutParams#setGravity(int)}.
+        -->
+        <attr name="layout_gravity">
+
+            <!-- Push object to the top of its container, not changing its size. -->
+            <flag name="top" value="0x30" />
+            <!-- Push object to the bottom of its container, not changing its size. -->
+            <flag name="bottom" value="0x50" />
+            <!-- Push object to the left of its container, not changing its size. -->
+            <flag name="left" value="0x03" />
+            <!-- Push object to the right of its container, not changing its size. -->
+            <flag name="right" value="0x05" />
+            <!-- Place object in the vertical center of its container, not changing its size. -->
+            <flag name="center_vertical" value="0x10" />
+            <!-- Grow the vertical size of the object if needed so it completely fills its container. -->
+            <flag name="fill_vertical" value="0x70" />
+            <!-- Place object in the horizontal center of its container, not changing its size. -->
+            <flag name="center_horizontal" value="0x01" />
+            <!-- Grow the horizontal size of the object if needed so it completely fills its container. -->
+            <flag name="fill_horizontal" value="0x07" />
+            <!-- Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. -->
+            <flag name="center" value="0x11" />
+            <!-- Grow the horizontal and vertical size of the object if needed so it completely fills its container. -->
+            <flag name="fill" value="0x77" />
+            <!--
+             Additional option that can be set to have the top and/or bottom edges of
+             the child clipped to its container's bounds.
+             The clip will be based on the vertical gravity: a top gravity will clip the bottom
+             edge, a bottom gravity will clip the top edge, and neither will clip both edges.
+            -->
+            <flag name="clip_vertical" value="0x80" />
+            <!--
+             Additional option that can be set to have the left and/or right edges of
+             the child clipped to its container's bounds.
+             The clip will be based on the horizontal gravity: a left gravity will clip the right
+             edge, a right gravity will clip the left edge, and neither will clip both edges.
+            -->
+            <flag name="clip_horizontal" value="0x08" />
+            <!-- Push object to the beginning of its container, not changing its size. -->
+            <flag name="start" value="0x00800003" />
+            <!-- Push object to the end of its container, not changing its size. -->
+            <flag name="end" value="0x00800005" />
+        </attr>
+    </declare-styleable>
+
+</resources>
diff --git a/sdk/prebuilt/v7/gridlayout/res/values/dimens.xml b/sdk/prebuilt/v7/gridlayout/res/values/dimens.xml
new file mode 100644
index 0000000..fda3feb
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/res/values/dimens.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <!-- The default gap between components in a layout. -->
+    <dimen name="default_gap">16dip</dimen>
+
+</resources>
diff --git a/sdk/prebuilt/v7/gridlayout/src/.readme b/sdk/prebuilt/v7/gridlayout/src/.readme
new file mode 100644
index 0000000..4bcebad
--- /dev/null
+++ b/sdk/prebuilt/v7/gridlayout/src/.readme
@@ -0,0 +1,2 @@
+This hidden file is there to ensure there is an src folder.
+Once we support binary library this will go away.
\ No newline at end of file
diff --git a/sdk/source_source.prop_template b/sdk/source_source.prop_template
new file mode 100644
index 0000000..d3cdfd5
--- /dev/null
+++ b/sdk/source_source.prop_template
@@ -0,0 +1,4 @@
+Pkg.UserSrc=false
+Pkg.Revision=1
+AndroidVersion.ApiLevel=${PLATFORM_SDK_VERSION}
+AndroidVersion.CodeName=${PLATFORM_VERSION_CODENAME}
diff --git a/sdk/source_source.properties b/sdk/source_source.properties
deleted file mode 100644
index d0b390b..0000000
--- a/sdk/source_source.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-Pkg.UserSrc=false
-Pkg.Revision=1
-AndroidVersion.ApiLevel=15
-#AndroidVersion.CodeName=
diff --git a/sdk/support_source.properties b/sdk/support_source.properties
index 32bdbe3..7ea8c5d 100644
--- a/sdk/support_source.properties
+++ b/sdk/support_source.properties
@@ -1,6 +1,9 @@
 Pkg.UserSrc=false
-Pkg.Revision=6
+Pkg.Revision=7
 Extra.Vendor=android
+Extra.VendorId=android
+Extra.VendorDisplay=Android
+Extra.NameDisplay=Android Support Library
 Extra.Path=support
 Extra.OldPaths=compatibility
 
diff --git a/tools/emulator/opengl/Android.mk b/tools/emulator/opengl/Android.mk
index 2c1cb64..3a23395 100644
--- a/tools/emulator/opengl/Android.mk
+++ b/tools/emulator/opengl/Android.mk
@@ -47,12 +47,6 @@
 # module that hasn't been declared yet anyway.
 #
 
-# First, build the emugen host source-generation tool
-#
-# It will be used by other modules to generate wire protocol encode/decoder
-# source files (see all emugl-gen-decoder/encoder in common.mk)
-#
-include $(EMUGL_PATH)/host/tools/emugen/Android.mk
 include $(EMUGL_PATH)/shared/OpenglOsUtils/Android.mk
 include $(EMUGL_PATH)/shared/OpenglCodecCommon/Android.mk
 
@@ -69,26 +63,4 @@
 include $(EMUGL_PATH)/system/gralloc/Android.mk
 include $(EMUGL_PATH)/system/egl/Android.mk
 
-# Host static libraries
-include $(EMUGL_PATH)/host/libs/GLESv1_dec/Android.mk
-include $(EMUGL_PATH)/host/libs/GLESv2_dec/Android.mk
-include $(EMUGL_PATH)/host/libs/renderControl_dec/Android.mk
-include $(EMUGL_PATH)/tests/ut_rendercontrol_dec/Android.mk
-include $(EMUGL_PATH)/host/libs/Translator/GLcommon/Android.mk
-include $(EMUGL_PATH)/host/libs/Translator/GLES_CM/Android.mk
-include $(EMUGL_PATH)/host/libs/Translator/GLES_V2/Android.mk
-include $(EMUGL_PATH)/host/libs/Translator/EGL/Android.mk
-
-# Host shared libraries
-include $(EMUGL_PATH)/host/libs/libOpenglRender/Android.mk
-
-# Host executables
-include $(EMUGL_PATH)/host/renderer/Android.mk
-
-# Host unit-test for the renderer.
-
-include $(EMUGL_PATH)/tests/translator_tests/MacCommon/Android.mk
-include $(EMUGL_PATH)/tests/translator_tests/GLES_CM/Android.mk
-include $(EMUGL_PATH)/tests/translator_tests/GLES_V2/Android.mk
-
 endif # BUILD_EMULATOR_OPENGL == true
diff --git a/tools/emulator/opengl/DESIGN b/tools/emulator/opengl/DESIGN
deleted file mode 100644
index 1da44b7..0000000
--- a/tools/emulator/opengl/DESIGN
+++ /dev/null
@@ -1,593 +0,0 @@
-Android Hardware OpenGLES emulation design overview
-===================================================
-
-Introduction:
--------------
-
-Hardware GLES emulation in the Android platform is implemented with a mix
-of components, which are:
-
-  - Several host "translator" libraries. They implement the EGL, GLES 1.1 and
-    GLES 2.0 ABIs defined by Khronos, and translate the corresponding function
-    calls into calls to the appropriate desktop APIs, i.e.:
-
-      - Xgl (Linux), AGL (OS X) or WGL (Windows) for EGL
-      - desktop GL 2.0 for GLES 1.1 and GLES 2.0
-
-         _________            __________          __________
-        |         |          |          |        |          |     HOST
-        |TRANSLATOR          |TRANSLATOR|        |TRANSLATOR|     HOST
-        |   EGL   |          | GLES 1.1 |        | GLES 2.0 |     TRANSLATOR
-        |_________|          |__________|        |__________|     LIBRARIES
-             |                    |                    |
-       - - - | - - - - - - - - -  | - - - - - - - - -  | - - - - -
-             |                    |                    |
-         ____v____            ____v_____          _____v____      HOST
-        |         |          |          |        |          |     SYSTEM
-        |   Xgl   |          |  GL 2.0  |        |  GL 2.0  |     LIBRARIES
-        |_________|          |__________|        |__________|
-
-
-
-  - Several system libraries inside the emulated guest system that implement
-    the same EGL / GLES 1.1 and GLES 2.0 ABIs.
-
-    They collect the sequence of EGL/GLES function calls and translate then
-    into a custom wire protocol stream that is sent to the emulator program
-    through a high-speed communication channel called a "QEMU Pipe".
-
-    For now, all you need to know is that the pipe is implemented with a
-    custom kernel driver, and provides for _very_ fast bandwidth. All read()
-    and writes() from/to the pipes are essentially instantaneous from the
-    guest's point of view.
-
-
-         _________            __________          __________
-        |         |          |          |        |          |
-        |EMULATION|          |EMULATION |        |EMULATION |     GUEST
-        |   EGL   |          | GLES 1.1 |        | GLES 2.0 |     SYSTEM
-        |_________|          |__________|        |__________|     LIBRARIES
-             |                    |                    |
-       - - - | - - - - - - - - -  | - - - - - - - - -  | - - - - -
-             |                    |                    |
-         ____v____________________v____________________v____      GUEST
-        |                                                   |     KERNEL
-        |                       QEMU PIPE                   |
-        |___________________________________________________|
-                                  |
-       - - - - - - - - - - - - - -|- - - - - - - - - - - - - - - -
-                                  |
-                                  v
-                               EMULATOR
-
-  - Specific code inside the emulator program that is capable of transmitting
-    the wire protocol stream to a special rendering library or process (called
-    the "renderer" here), which understands the format.
-
-                                 |
-                                 |    PROTOCOL BYTE STREAM
-                            _____v_____
-                           |           |
-                           |  EMULATOR |
-                           |___________|
-                                 |
-                                 |   UNMODIFIED PROTOCOL BYTE STREAM
-                            _____v_____
-                           |           |
-                           |  RENDERER |
-                           |___________|
-
-
-  - The renderer decodes the EGL/GLES commands from the wire
-    protocol stream, and dispatches them to the translator libraries
-    appropriately.
-
-                                 |
-                                 |   PROTOCOL BYTE STREAM
-                            _____v_____
-                           |           |
-                           |  RENDERER |
-                           |___________|
-                               | |  |
-             +-----------------+ |  +-----------------+
-             |                   |                    |
-         ____v____            ___v______          ____v_____
-        |         |          |          |        |          |     HOST
-        |TRANSLATOR          |TRANSLATOR|        |TRANSLATOR|     HOST
-        |   EGL   |          | GLES 1.1 |        | GLES 2.0 |     TRANSLATOR
-        |_________|          |__________|        |__________|     LIBRARIES
-
-
-
-  - In reality, the protocol stream flows in both directions, even though most
-    of the commands result in data going from the guest to the host. A complete
-    picture of the emulation would thus be:
-
-
-
-
-
-         _________            __________          __________
-        |         |          |          |        |          |
-        |EMULATION|          |EMULATION |        |EMULATION |     GUEST
-        |   EGL   |          | GLES 1.1 |        | GLES 2.0 |     SYSTEM
-        |_________|          |__________|        |__________|     LIBRARIES
-             ^                    ^                    ^
-             |                    |                    |
-       - - - | - - - - - - - - -  | - - - - - - - - -  | - - - - -
-             |                    |                    |
-         ____v____________________v____________________v____      GUEST
-        |                                                   |     KERNEL
-        |                       QEMU PIPE                   |
-        |___________________________________________________|
-                                 ^
-                                 |
-      - - - - - - - - - - - - - -|- - - - - - - - - - - - - - - -
-                                 |
-                                 |    PROTOCOL BYTE STREAM
-                            _____v_____
-                           |           |
-                           |  EMULATOR |
-                           |___________|
-                                 ^
-                                 |   UNMODIFIED PROTOCOL BYTE STREAM
-                            _____v_____
-                           |           |
-                           |  RENDERER |
-                           |___________|
-                               ^ ^  ^
-                               | |  |
-             +-----------------+ |  +-----------------+
-             |                   |                    |
-         ____v____            ___v______          ____v_____
-        |         |          |          |        |          |
-        |TRANSLATOR          |TRANSLATOR|        |TRANSLATOR|     HOST
-        |   EGL   |          | GLES 1.1 |        | GLES 2.0 |     TRANSLATOR
-        |_________|          |__________|        |__________|     LIBRARIES
-             ^                    ^                    ^
-             |                    |                    |
-       - - - | - - - - - - - - -  | - - - - - - - - -  | - - - - -
-             |                    |                    |
-         ____v____            ____v_____          _____v____      HOST 
-        |         |          |          |        |          |     SYSTEM
-        |   Xgl   |          |  GL 2.0  |        |  GL 2.0  |     LIBRARIES
-        |_________|          |__________|        |__________|
-
-    (NOTE: 'Xgl' is for Linux only, replace 'AGL' on OS X, and 'WGL' on Windows).
-
-
-Note that, in the above graphics, only the host system libraries at the bottom
-are _not_ provided by Android.
-
-
-Design Requirements:
---------------------
-
-The above design comes from several important requirements that were decided
-early in the project:
-
-1 - The ability to run the renderer in a separate process from the emulator
-    itself is important.
-
-    For various practical reasons, we plan to completely separate the core QEMU
-    emulation from the UI window by using two distinct processes. As such, the
-    renderer will be implemented as a library inside the UI program, but will
-    need to receive protocol bytes from the QEMU process.
-
-    The communication channel will be either a fast Unix socket or a Win32
-    named pipe between these two. A shared memory segment with appropriate
-    synchronization primitives might also be used if performance becomes
-    an issue.
-
-    This explains why the emulator doesn't alter or even try to parse the
-    protocol byte stream. It only acts as a dumb proxy between the guest
-    system and the renderer. This also avoids adding lots of GLES-specific
-    code inside the QEMU code base which is terribly complex.
-
-2 - The ability to use vendor-specific desktop EGL/GLES libraries is
-    important.
-
-    GPU vendors like NVidia, AMD or ARM all provide host versions of the
-    EGL/GLES libraries that emulate their respectivie embedded graphics
-    chipset.
-
-    The renderer library can be configured to use these instead of the
-    translator libraries provided with this project. This can be useful to
-    more accurately emulate the behaviour of specific devices.
-
-    Moreover, these vendor libraries typically expose vendor-specific
-    extensions that are not provided by the translator libraries. We cannot
-    expose them without modifying our code, but it's important to be able
-    to do so without too much pain.
-
-
-Code organization:
-------------------
-
-All source code for the components above is spread over multiple directories
-in the Android source trees:
-
-  - The emulator sources are under $ANDROID/external/qemu, which we'll
-    call $QEMU in the rest of this document.
-
-  - The guest and system libraries are under
-    $ANDROID/development/tools/emulator/opengl, which we'll call $EMUGL
-
-  - The QEMU Pipe kernel driver is under $KERNEL/drivers/misc/qemupipe
-
-Where $ANDROID is the top of the open-source Android source tree, and
-$KERNEL is the top of the qemu-specific kernel source tree (using one
-of the android-goldfish-xxxx branches here).
-
-The emulator sources related to this projects are:
-
-   $QEMU/hw/goldfish_pipe.c  -> implement QEMU pipe virtual hardware
-   $QEMU/hw/opengles.c       -> implement GLES initialization
-   $QEMU/hw/hw-pipe-net.c    -> implements the communication channel
-                                between the QEMU Pipe and the renderer library
-
-The other sources are:
-
-   $EMUGL/system   -> system libraries
-   $EMUGL/host     -> host libraries (translator + renderer)
-   $EMUGL/shared   -> shared libraries, used both in the guest and the host
-   $EMUGL/tests    -> various test programs
-
-
-Translator libraries:
----------------------
-
-There are three translator host libraries provided by this project:
-
-   libEGL_translator       -> EGL 1.2 translation
-   libGLES_CM_translator   -> GLES 1.1 translation
-   libGLES_V2_translator   -> GLES 2.0 translation
-
-The full name of the library will depend on the host system.
-For simplicity, only the library name suffix will change (i.e. the
-'lib' prefix is not dropped on Windows), i.e.:
-
-   libEGL_translator.so    -> for Linux
-   libEGL_translator.dylib -> for OS X
-   libEGL_translator.dll   -> for Windows
-
-The source code for these libraries is located under the following
-path in the Android source tree:
-
-   $EMUGL/host/libs/Translator/EGL
-   $EMUGL/host/libs/Translator/GLES_CM
-   $EMUGL/host/libs/Translator/GLES_V2
-
-The translator libraries also use a common routines defined under:
-
-   $EMUGL/host/libs/Translator/GLcommon
-
-
-Wire Protocol Overiew:
-----------------------
-
-The "wire protocol" is implemented as follows:
-
-  - EGL/GLES function calls are described through several "specification"
-    files, which describes the types, function signatures and various
-    attributes for each one of them.
-
-  - These files are read by a tool called "emugen" which generates C
-    source files and headers based on the specification. These correspond
-    to both encoding, decoding and "wrappers" (more on this later).
-
-  - System "encoder" static libraries are built using some of these generated
-    files. They contain code that can serialize EGL/GLES calls into simple
-    byte messages and send it through a generic "IOStream" object.
-
-  - Host "decoder" static libraries are also built using some of these
-    generated files. Their code retrieves byte messages from an "IOStream"
-    object, and translates them into function callbacks.
-
-IOStream abstraction:
-- - - - - - - - - - -
-
-The "IOStream" is a very simple abstract class used to send byte messages
-both in the guest and host. It is defined through a shared header under
-$EMUGL/host/include/libOpenglRender/IOStream.h
-
-Note that despite the path, this header is included by *both* host and guest
-source code. The main idea around IOStream's design is that to send a message,
-one does the following:
-
-  1/ call stream->allocBuffer(size), which returns the address of a
-     memory buffer of at least 'size' bytes.
-
-  2/ write the content of the serialized command (usually a header + some
-     payload) directly into the buffer
-
-  3/ call stream->commitBuffer() to send it.
-
-Alternatively, one can also pack several commands into a single buffer with
-stream->alloc() and stream->flush(), as in:
-
-  1/ buf1 =  stream->alloc(size1)
-  2/ write first command bytes into buf1
-  3/ buf2 = stream->alloc(size2)
-  4/ write second command bytes into buf2
-  5/ stream->flush()
-
-Finally, there are also explict read/write methods like stream->readFully()
-or stream->writeFully() which can be used when you don't want an intermediate
-buffer. This is used in certain cases by the implementation, e.g. to avoid
-an intermediate memory copy when sending texture data from the guest to the
-host.
-
-The host IOStream implementations are under $EMUGL/shared/OpenglCodecCommon/,
-see in particular:
-
-   $EMUGL/shared/OpenglCodecCommon/TcpStream.cpp  -> using local TCP sockets
-   $EMUGL/shared/OpenglCodecCommon/UnixStream.cpp -> using Unix sockets
-   $EMUGL/shared/OpenglCodecCommon/Win32PipeStream.cpp -> using Win32 named pipes
-
-The guest IOStream implementation uses the TcpStream.cpp above, as well as
-an alternative QEMU-specific source:
-
-   $EMUGL/system/OpenglSystemCommon/QemuPipeStream.cpp -> uses QEMU pipe from the guest
-
-The QEMU Pipe implementation is _significantly_ faster (about 20x) due to
-several reasons:
-
-  - all succesful read() and write() operations through it are instantaneous
-    from the guest's point of view.
-
-  - all buffer/memory copies are performed directly by the emulator, and thus
-    much faster than performing the same thing inside the kernel with emulated
-    ARM instructions.
-
-  - it doesn't need to go through a kernel TCP/IP stack that will wrap the
-    data into TCP/IP/MAC packets, send them to an emulated ethernet device,
-    which is itself connected to an internal firewall implementation that
-    will unwrap the packets, re-assemble them, then send them through BSD
-    sockets to the host kernel.
-
-However, would it be necessary, you could write a guest IOStream implementation
-that uses a different transport. If you do, please look at
-$EMUGL/system/OpenglCodecCommon/HostConnection.cpp which contains the code
-used to connect the guest to the host, on a per-thread basis.
-
-
-Source code auto-generation:
-- - - - - - - - - - - - - -
-
-The 'emugen' tool is located under $EMUGL/host/tools/emugen. There is a README
-file that explains how it works.
-
-You can also look at the following specifications files:
-
-For GLES 1.1:
-    $EMUGL/system/GLESv1_enc/gl.types
-    $EMUGL/system/GLESv1_enc/gl.in
-    $EMUGL/system/GLESv1_enc/gl.attrib
-    $EMUGL/system/GLESv1_enc/gl.addon
-
-For GLES 2.0:
-    $EMUGL/system/GLESv2_enc/gl2.types
-    $EMUGL/system/GLESv2_enc/gl2.in
-    $EMUGL/system/GLESv2_enc/gl2.attrib
-    $EMUGL/system/GLESv2_enc/gl2.addon
-
-For EGL:
-    $EMUGL/system/renderControl_enc/renderControl.types
-    $EMUGL/system/renderControl_enc/renderControl.in
-    $EMUGL/system/renderControl_enc/renderControl.attrib
-    $EMUGL/system/renderControl_enc/renderControl.addon
-
-Note that the EGL specification files are under a directory named
-"renderControl_enc" and have filenames that begin with "renderControl"
-
-This is mainly for historic reasons now, but is also related to the fact that
-this part of the wire protocol contains support functions/calls/specifications
-that are not part of the EGL specification itself, but add a few features
-required to make everything works. For example, they have calls related to
-the "gralloc" system library module used to manage graphics surfaces at a
-lower level than EGL.
-
-Generally speaking, guest encoder sources are located under directories
-named $EMUGL/system/<name>_enc/, while the corresponding host decoder
-sources will be under $EMUGL/host/libs/<name>_dec/
-
-However, all these sources use the same spec files located under the
-encoding directories. The decoders may even need to include a few
-non-auto-generated header files from the encoder directories.
-
-
-
-System libraries:
------------------
-
-Meta EGL/GLES system libraries, and egl.cfg:
-- - - - - - - - - - - - - - - - - - - - - -
-
-It is important to understand that the emulation-specific EGL/GLES libraries
-are not directly linked by applications at runtime. Instead, the system
-provides a set of "meta" EGL/GLES libraries that will load the appropriate
-hardware-specific libraries on first use.
-
-More specifically, the system libEGL.so contains a "loader" which will try
-to load:
-
-  - hardware-specific EGL/GLES libraries
-  - the software-based rendering libraries (called "libagl")
-
-The system libEGL.so is also capable of merging the EGL configs of both the
-hardware and software libraries transparently to the application. The system
-libGLESv1_CM.so and libGLESv2.so, work with it to ensure that the thread's
-current context will be linked to either the hardware or software libraries
-depending on the config selected.
-
-For the record, the loader's source code in under
-frameworks/base/opengl/libs/EGL/Loader.cpp. It depends on a file named
-/system/lib/egl/egl.cfg which must contain two lines that look like:
-
-    0 1 <name>
-    0 0 android
-
-The first number in each line is a display number, and must be 0 since the
-system's EGL/GLES libraries don't support anything else.
-
-The second number must be 1 to indicate hardware libraries, and 0 to indicate
-a software one. The line corresponding to the hardware library, if any, must
-always appear before the one for the software library.
-
-The third field is a name corresponding to a shared library suffix. It really
-means that the corresponding libraries will be named libEGL_<name>.so,
-libGLESv1_CM_<name>.so and libGLESv2_<name>.so. Moreover these libraries must
-be placed under /system/lib/egl/
-
-The name "android" is reserved for the system software renderer.
-
-The egl.cfg that comes with this project uses the name "emulation" for the
-hardware libraries. This means that it provides an egl.cfg file that contains
-the following lines:
-
-   0 1 emulation
-   0 0 android
-
-See $EMUGL/system/egl/egl.cfg and more generally the following build files:
-
-   $EMUGL/system/egl/Android.mk
-   $EMUGL/system/GLESv1/Android.mk
-   $EMUGL/system/GLESv2/Android.mk
-
-to see how the libraries are named and placed under /system/lib/egl/ by the
-build system.
-
-
-Emulation libraries:
-- - - - - - - - - - -
-
-The emulator-specific libraries are under the following:
-
-  $EMUGL/system/egl/
-  $EMUGL/system/GLESv1/
-  $EMUGL/system/GLESv2/
-
-The code for GLESv1 and GLESv2 is pretty small, since it mostly link against
-the static encoding libraries.
-
-The code for EGL is a bit more complex, because it needs to deal with
-extensions dynamically. I.e. if an extension is not available on the host
-it shouldn't be exposed by the library at runtime. So the EGL code queries
-the host for the list of available extensions in order to return them to
-clients. Similarly, it must query the list of valid EGLConfigs for the
-current host system.
-
-
-"gralloc" module implementation:
-- - - - - - - - - - - - - - - - -
-
-In addition to EGL/GLES libraries, the Android system requires a
-hardware-specific library to manage graphics surfaces at a level lower than
-EGL. This library must be what is called in Android land as a "HAL module".
-
-A "HAL module" must provide interfaces defined by Android's HAL
-(Hardware Abstraction Library). These interface definitions can be found
-under $ANDROID/hardware/libhardware/include/
-
-Of all possible HAL modules, the "gralloc" one is used by the system's
-SurfaceFlinger to allocate framebuffers and other graphics memory regions,
-as well as eventually lock/unlock/swap them when needed.
-
-The code under $EMUGL/system/gralloc/ implements the module required by the
-GLES emulation project. It's not very long, but there are a few things to
-notice here:
-
-- first, it will probe the guest system to determine if the emulator that
-  is running the virtual device really supports GPU emulation. In certain
-  circumstances this may not be possible.
-
-  If this is the case, then the module will redirect all calls to the
-  "default" gralloc module that is normally used by the system when
-  software-only rendering is enabled.
-
-  The probing happens in the function "fallback_init" which gets called
-  when the module is first opened. This initializes the 'sFallback' variable
-  to a pointer to the default gralloc module when required.
-
-- second, this module is used by SurfaceFlinger to display "software surfaces",
-  i.e. those that are backed by system memory pixel buffers, and written to
-  directly through the Skia graphics library (i.e. the non-accelerated ones).
-
-  the default module simply copies the pixel data from the surface to the
-  virtual framebuffer i/o memory, but this project's gralloc module sends it
-  to the renderer through the QEMU Pipe instead.
-
-  It turns out that this results in _faster_ rendering/frame-rates overall,
-  because memory copies inside the guest are slow, while QEMU pipe transfers
-  are done directly in the emulator.
-
-
-Host Renderer:
---------------
-
-The host renderer library is located under $EMUGL/host/libs/libOpenglRender,
-and it provides an interface described by the headers under
-$EMUGL/host/include/libOpenglRender/render_api.h (e.g. for use by the emulator).
-
-In a nutshell, the rendering library is responsible for the following:
-
-  - Providing a virtual off-screen video surface where everything will get
-    rendered at runtime. Its dimensions are fixed by the call to
-    initOpenglRender() that must happen just after the library is
-    initialized.
-
-  - Provide a way to display the virtual video surface on a host application's
-    UI. This is done by calling createOpenGLSubWindow() which takes as argument
-    the window ID or handle of a parent window, some display dimensions and
-    a rotation angle. This allows the surface to be scaled/rotated when it is
-    displayed, even if the dimensions of the video surface do not change.
-
-  - Provide a way to listen to incoming EGL/GLES commands from the guest.
-    This is done by providing a so-called "port number" to initOpenglRender().
-
-    By default, the port number corresponds to a local TCP port number that the
-    renderer will bind to and listen. Every new connection to this port will
-    correspond to the creation of a new guest host connection, each such
-    connection corresponding to a distinct thread in the guest system.
-
-    For performance reasons, it is possible to listen to either Unix sockets
-    (on Linux and OS X), or to a Win32 named pipe (on Windows). To do so, one
-    had to call setStreamType() between library initialization
-    (i.e. initLibrary()) and construction (i.e. initOpenglRender()).
-
-    Note that in these modes, the port number is still used to differentiate
-    between several emulator instances. These details are normally handled by
-    the emulator code so you shouldn't care too much.
-
-Note that an earlier version of the interface allowed a client of the renderer
-library to provide its own IOStream implementation. However, this wasn't very
-convenient for a number of reasons. This maybe something that could be done
-again if it makes sense, but for now the performance numbers are pretty good.
-
-
-Host emulator:
---------------
-
-The code under $QEMU/android/opengles.c is in charge of dynamically loading
-the rendering library and initializing / constructing it properly.
-
-QEMU pipe connections to the 'opengles' service are piped through the code
-in $QEMU/android/hw-pipe-net.c. Look for the openglesPipe_init() function,
-which is in charge of creating a connection to the renderer library
-(either through a TCP socket, or a Unix pipe depending on configuration.
-support for Win32 named pipes hasn't been implemented yet in the emulator)
-whenever a guest process opens the "opengles" service through /dev/qemu_pipe.
-
-There is also some support code for the display of the GLES framebuffer
-(through the renderer library's subwindow) under $QEMU/skin/window.
-
-Note that at the moment, scaling and rotation are supported. However,
-brightness emulation (which used to modify the pixel values from the
-hardware framebuffer before displaying them) doesn't work.
-
-Another issue is that it is not possible to display anything on top of the
-GL subwindow at the moment. E.g. this will obscure the emulated trackball
-image (that is normally toggled with Ctrl-T during emulation, or enabled
-by pressing the Delete key).
-
diff --git a/tools/emulator/opengl/README b/tools/emulator/opengl/README
index bec20c5..91050ed 100644
--- a/tools/emulator/opengl/README
+++ b/tools/emulator/opengl/README
@@ -1,106 +1,3 @@
-This directory contains the modules related to hardware OpenGL ES emulation.
-
-For now, this feature is experimental, and *nothing* will be built unless
-you define BUILD_EMULATOR_OPENGL in your environment, for example with:
-
-  export BUILD_EMULATOR_OPENGL=true
-
-You can also define the following to enable the "gralloc" module, which
-corresponds to system-wide GLES emulation (by default, only a specific set
-of applications are enabled, see below):
-
-  export BUILD_EMULATOR_OPENGL_DRIVER=true
-
-
-I. Overview of components:
-==========================
-
-The 'emugen' tool is used to generate several source files related to the
-EGL/GLES command stream used between the guest and the host during emulation.
-
-  host/tools/emugen   -> emugen program
-
-Note that emugen is capable of generating, from a single set of specification
-files, three types of auto-generated sources:
-
-  - sources to encode commands into a byte stream.
-  - sources to decode the byte stream into commands.
-  - sources to wrap normal procedural EGL/GLES calls into context-aware ones.
-
-Modules under the system/ directory corresponds to code that runs on the
-guest, and implement the marshalling of EGL/GLES commands into a stream of
-bytes sent to the host through a fast pipe mechanism.
-
-   system/GLESv1_enc        -> encoder for GLES 1.1 commands
-   system/GLESv2_enc        -> encoder for GLES 2.0 commands
-   system/renderControl_enc -> encoder for rendering control commands
-   system/egl               -> emulator-specific guest EGL library
-   system/GLESv1            -> emulator-specific guest GLES 1.1 library
-   system/gralloc           -> emulator-specific gralloc module
-   system/OpenglSystemCommon -> library of common routines
-
-Modules under the host/ directory corresponds to code that runs on the
-host, and implement the decoding of the command stream, translation of
-EGL/GLES commands into desktop GL 2.0 ones, and rendering to an off-screen
-buffer.
-
-  host/libs/GLESv1_dec        -> decoder for GLES 1.1 commands
-  host/libs/GLESv2_dec        -> decoder for GLES 2.0 commands
-  host/libs/renderControl_dec -> decoder for rendering control commands
-
-  host/libs/Translator/EGL    -> translator for EGL commands
-  host/libs/Translator/GLES_CM -> translator for GLES 1.1 commands
-  host/libs/Translator/GLES_V2 -> translator for GLES 2.0 commands
-  host/libs/Translator/GLcommon -> library of common translation routines
-
-  host/libs/libOpenglRender -> rendering library (uses all host libs above)
-                               can be used by the 'renderer' program below,
-                               or directly linked into the emulator UI program.
-
-  host/renderer/ -> stand-alone renderer program executable.
-                    this can run in head-less mode and receive requests from
-                    several emulators at the same time. It is the receiving
-                    end of all command streams.
-
-Modules under the test/ directory correspond to test programs that are useful
-to debug the various modules described above:
-
-  tests/EGL_host_wrapper  -> a small library used to dynamically load the
-                             desktop libEGL.so or a replacement named by the
-                             ANDROID_EGL_LIB environment variable. This lib
-                             provides all EGL entry points.
-
-  tests/emulator_test_renderer -> a small program to run the rendering library
-                                  in a single SDL window on the host desktop.
-
-  tests/gles_android_wrapper -> guest EGL / GLES libraries that are run on
-                                the device to run some tests. Replace the
-                                system/egl and system/GLESv1 modules for now.
-
-  tests/translator_tests/GLES_CM -> desktop GLESv1 translation unit test
-  tests/translator_tests/GLES_V2 -> desktop GLESv2 translation unit test
-  tests/translator_tests/MacCommon -> used by translation tests on Mac only.
-
-  tests/ut_rendercontrol_enc -> guest library used by tests/ut_renderer
-  tests/ut_rendercontrol_dec -> host library used by tests/ut_renderer
-  tests/ut_renderer          -> unit-test for render control and rendering library.
-
-                                
-II. Build system considerations:
---------------------------------
-
-The dependencies on the more than 20 components described in the previous
-section are pretty sophisticated, involving lots of auto-generated code and
-non-trivial placement for guest/device libraries.
-
-To simplify the development and maintenance of these modules, a set of
-helper GNU Make function is defined in common.mk, and included from the
-Android.mk in this directory.
-
-These functions all begin with the "emugl-" prefix, and can be used to
-declare modules, what information they export to other modules, or import
-from them, and also what kind of auto-generated sources they depend on.
-
-Look at the comments inside common.mk and the Android.mk of the modules
-to better understand what's happening.
-
+This directory contains Android-side modules related to hardware OpenGL ES
+emulation. The host-side modules and documentation are in
+$ANDROID_BUILD_TOP/sdk/emulator/opengl.
diff --git a/tools/emulator/opengl/common.mk b/tools/emulator/opengl/common.mk
index 82f652d..8f31e17 100644
--- a/tools/emulator/opengl/common.mk
+++ b/tools/emulator/opengl/common.mk
@@ -22,9 +22,6 @@
 #
 emugl-begin-static-library = $(call emugl-begin-module,$1,STATIC_LIBRARY)
 emugl-begin-shared-library = $(call emugl-begin-module,$1,SHARED_LIBRARY)
-emugl-begin-host-static-library = $(call emugl-begin-module,$1,HOST_STATIC_LIBRARY,HOST)
-emugl-begin-host-shared-library = $(call emugl-begin-module,$1,HOST_SHARED_LIBRARY,HOST)
-emugl-begin-host-executable = $(call emugl-begin-module,$1,HOST_EXECUTABLE,HOST)
 
 # Internal list of all declared modules (used for sanity checking)
 _emugl_modules :=
@@ -185,32 +182,6 @@
     )\
     $(info .  LOCAL_SRC_FILES := $(LOCAL_SRC_FILES))\
 
-# This function can be called to generate the decoder source files.
-# LOCAL_MODULE and LOCAL_MODULE_CLASS must be defined or the build will abort.
-# Source files will be stored in the local intermediates directory that will
-# be automatically added to your LOCAL_C_INCLUDES.
-#
-# Usage:
-#    $(call emugl-gen-decoder,<input-dir>,<basename>)
-#
-emugl-gen-decoder = \
-    $(eval _emugl_out := $(call local-intermediates-dir))\
-    $(call emugl-gen-decoder-generic,$(_emugl_out),$1,$2)\
-    $(call emugl-export,C_INCLUDES,$(_emugl_out))
-
-# This function can be called to generate the encoder source files.
-# LOCAL_MODULE and LOCAL_MODULE_CLASS must be defined or the build will abort.
-# Source files will be stored in the local intermediates directory that will
-# be automatically added to your LOCAL_C_INCLUDES.
-# Usage:
-#    $(call emugl-gen-encoder,<input-dir>,<basename>)
-#
-emugl-gen-encoder = \
-    $(eval _emugl_out := $(call local-intermediates-dir)) \
-    $(call emugl-gen-encoder-generic,$(_emugl_out),$1,$2) \
-    $(call emugl-export,C_INCLUDES,$(_emugl_out))
-
-
 # This function can be called to generate the wrapper source files.
 # LOCAL_MODULE and LOCAL_MODULE_CLASS must be defined or the build will abort.
 # Source files will be stored in the local intermediates directory that will
@@ -223,76 +194,6 @@
     $(call emugl-gen-wrapper-generic,$(_emugl_out),$1,$2) \
     $(call emugl-export,C_INCLUDES,$(_emugl_out))
 
-# IMPORTANT: EMUGL_EMUGEN is defined under host/tools/emugen/Android.mk
-#
-
-# DO NOT CALL DIRECTLY, USE emugl-gen-decoder instead.
-#
-# The following function can be called to generate wire protocol decoder
-# source files, Usage is:
-#
-#  $(call emugl-gen-decoder-generic,<dst-dir>,<src-dir>,<basename>)
-#
-#  <dst-dir> is the destination directory where the generated sources are stored
-#  <src-dir> is the source directory where to find <basename>.attrib, etc..
-#  <basename> is the emugen basename (see host/tools/emugen/README)
-#
-emugl-gen-decoder-generic = $(eval $(emugl-gen-decoder-generic-ev))
-
-define emugl-gen-decoder-generic-ev
-_emugl_dec := $$1/$$3
-_emugl_src := $$2/$$3
-GEN := $$(_emugl_dec)_dec.cpp \
-       $$(_emugl_dec)_dec.h \
-       $$(_emugl_dec)_opcodes.h \
-       $$(_emugl_dec)_server_context.h \
-       $$(_emugl_dec)_server_context.cpp
-
-$$(GEN): PRIVATE_PATH := $$(LOCAL_PATH)
-$$(GEN): PRIVATE_CUSTOM_TOOL := $$(EMUGL_EMUGEN) -D $$1 -i $$2 $$3
-$$(GEN): $$(EMUGL_EMUGEN) $$(_emugl_src).attrib $$(_emugl_src).in $$(_emugl_src).types
-	$$(transform-generated-source)
-
-$$(call emugl-export,ADDITIONAL_DEPENDENCIES,$$(GEN))
-LOCAL_GENERATED_SOURCES += $$(GEN)
-LOCAL_C_INCLUDES += $$1
-endef
-
-# DO NOT CALL DIRECTLY, USE emugl-gen-encoder instead.
-#
-# The following function can be called to generate wire protocol encoder
-# source files, Usage is:
-#
-#  $(call emugl-gen-encoder-generic,<dst-dir>,<src-dir>,<basename>)
-#
-#  <dst-dir> is the destination directory where the generated sources are stored
-#  <src-dir> is the source directory where to find <basename>.attrib, etc..
-#  <basename> is the emugen basename (see host/tools/emugen/README)
-#
-emugl-gen-encoder-generic = $(eval $(emugl-gen-encoder-generic-ev))
-
-define emugl-gen-encoder-generic-ev
-_emugl_enc := $$1/$$3
-_emugl_src := $$2/$$3
-GEN := $$(_emugl_enc)_entry.cpp \
-       $$(_emugl_enc)_enc.cpp \
-       $$(_emugl_enc)_enc.h \
-       $$(_emugl_enc)_ftable.h \
-       $$(_emugl_enc)_opcodes.h \
-       $$(_emugl_enc)_client_context.h \
-       $$(_emugl_enc)_client_context.cpp
-
-$$(GEN): PRIVATE_PATH := $$(LOCAL_PATH)
-$$(GEN): PRIVATE_CUSTOM_TOOL := $$(EMUGL_EMUGEN) -E $$1 -i $$2 $$3
-$$(GEN): $$(EMUGL_EMUGEN) $$(_emugl_src).attrib $$(_emugl_src).in $$(_emugl_src).types
-	$$(transform-generated-source)
-
-$$(call emugl-export,ADDITIONAL_DEPENDENCIES,$$(GEN))
-LOCAL_GENERATED_SOURCES += $$(GEN)
-LOCAL_C_INCLUDES += $$1
-endef
-
-
 # DO NOT CALL DIRECTLY, USE emugl-gen-wrapper instead.
 #
 # The following function can be called to generate GL library wrapper
diff --git a/tools/emulator/opengl/host/include/libOpenglRender/render_api.h b/tools/emulator/opengl/host/include/libOpenglRender/render_api.h
deleted file mode 100644
index bb33192..0000000
--- a/tools/emulator/opengl/host/include/libOpenglRender/render_api.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _OPENGL_RENDERER_RENDER_API_H
-#define _OPENGL_RENDERER_RENDER_API_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "render_api_platform_types.h"
-
-// initLibrary - initialize the library and tries to load the corresponding
-//     GLES translator libraries. This function must be called before anything
-//     else to ensure that everything works. If it returns an error, then
-//     you cannot use the library at all (this can happen under certain
-//     environments where the desktop GL libraries are not available)
-//
-// returns true if the library could be initialized successfully;
-//
-bool initLibrary(void);
-
-// list of constants to be passed to setStreamMode, which determines
-// which
-#define STREAM_MODE_DEFAULT   0
-#define STREAM_MODE_TCP       1
-#define STREAM_MODE_UNIX      2
-#define STREAM_MODE_PIPE      3
-
-// Change the stream mode. This must be called before initOpenGLRenderer
-int setStreamMode(int mode);
-
-//
-// initOpenGLRenderer - initialize the OpenGL renderer process.
-//     portNum is the tcp port number the renderer is listening to.
-//     width and height are the framebuffer dimensions that will be
-//     reported to the guest display driver.
-//
-// returns true if renderer has been started successfully;
-//
-// This function is *NOT* thread safe and should be called first
-// to initialize the renderer after initLibrary().
-//
-bool initOpenGLRenderer(int width, int height, int portNum);
-
-
-//
-// createOpenGLSubwindow -
-//     Create a native subwindow which is a child of 'window'
-//     to be used for framebuffer display.
-//     Framebuffer will not get displayed if a subwindow is not
-//     created.
-//     x,y,width,height are the dimensions of the rendering subwindow.
-//     zRot is the rotation to apply on the framebuffer display image.
-//
-bool createOpenGLSubwindow(FBNativeWindowType window,
-                           int x, int y, int width, int height, float zRot);
-
-//
-// destroyOpenGLSubwindow -
-//   destroys the created native subwindow. Once destroyed,
-//   Framebuffer content will not be visible until a new
-//   subwindow will be created.
-//
-bool destroyOpenGLSubwindow();
-
-//
-// setOpenGLDisplatRotation -
-//    set the framebuffer display image rotation in units
-//    of degrees around the z axis
-//
-void setOpenGLDisplayRotation(float zRot);
-
-//
-// repaintOpenGLDisplay -
-//    causes the OpenGL subwindow to get repainted with the
-//    latest framebuffer content.
-//
-void repaintOpenGLDisplay();
-
-//
-// stopOpenGLRenderer - stops the OpenGL renderer process.
-//     This functions is *NOT* thread safe and should be called
-//     only if previous initOpenGLRenderer has returned true.
-//
-bool stopOpenGLRenderer();
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/emulator/opengl/host/include/libOpenglRender/render_api_platform_types.h b/tools/emulator/opengl/host/include/libOpenglRender/render_api_platform_types.h
deleted file mode 100644
index 6f2a8a5..0000000
--- a/tools/emulator/opengl/host/include/libOpenglRender/render_api_platform_types.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _RENDER_API_PLATFORM_TYPES_H
-#define _RENDER_API_PLATFORM_TYPES_H
-
-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
-#include <windows.h>
-
-typedef HDC     FBNativeDisplayType;
-typedef HWND    FBNativeWindowType;
-
-#elif defined(__linux__)
-
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef Window   FBNativeWindowType;
-
-#elif defined(__APPLE__)
-
-typedef void*   FBNativeWindowType;
-
-#else
-#warning "Unsupported platform"
-#endif
-
-#endif // of  _RENDER_API_PLATFORM_TYPES_H
diff --git a/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk b/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk
deleted file mode 100644
index 5f134fc..0000000
--- a/tools/emulator/opengl/host/libs/GLESv1_dec/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,libGLESv1_dec)
-
-$(call emugl-import, libOpenglCodecCommon libOpenglOsUtils)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-$(call emugl-gen-decoder,$(EMUGL_PATH)/system/GLESv1_enc,gl)
-
-LOCAL_SRC_FILES := GLDecoder.cpp
-
-# for gl_types.h !
-$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/system/GLESv1_enc)
-
-#For gl debbuging
-#$(call emugl-export,CFLAGS,-DCHECK_GL_ERROR)
-#$(call emugl-export,CFLAGS,-DDEBUG_PRINTOUT)
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/GLESv1_dec/GLDecoder.cpp b/tools/emulator/opengl/host/libs/GLESv1_dec/GLDecoder.cpp
deleted file mode 100644
index 5399445..0000000
--- a/tools/emulator/opengl/host/libs/GLESv1_dec/GLDecoder.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLDecoder.h"
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <EGL/egl.h>
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-
-GLDecoder::GLDecoder()
-{
-    m_contextData = NULL;
-    m_glesDso = NULL;
-}
-
-GLDecoder::~GLDecoder()
-{
-    if (m_glesDso != NULL) {
-        delete m_glesDso;
-    }
-}
-
-
-int GLDecoder::initGL(get_proc_func_t getProcFunc, void *getProcFuncData)
-{
-    if (getProcFunc == NULL) {
-        const char *libname = GLES_LIBNAME;
-        if (getenv(GLES_LIBNAME_VAR) != NULL) {
-            libname = getenv(GLES_LIBNAME_VAR);
-        }
-
-        m_glesDso = osUtils::dynLibrary::open(libname);
-        if (m_glesDso == NULL) {
-            fprintf(stderr, "Couldn't find %s \n", GLES_LIBNAME);
-            return -1;
-        }
-
-        this->initDispatchByName(s_getProc, this);
-    } else {
-        this->initDispatchByName(getProcFunc, getProcFuncData);
-    }
-
-    set_glGetCompressedTextureFormats(s_glGetCompressedTextureFormats);
-    set_glVertexPointerOffset(s_glVertexPointerOffset);
-    set_glColorPointerOffset(s_glColorPointerOffset);
-    set_glNormalPointerOffset(s_glNormalPointerOffset);
-    set_glTexCoordPointerOffset(s_glTexCoordPointerOffset);
-    set_glPointSizePointerOffset(s_glPointSizePointerOffset);
-    set_glWeightPointerOffset(s_glWeightPointerOffset);
-    set_glMatrixIndexPointerOffset(s_glMatrixIndexPointerOffset);
-
-    set_glVertexPointerData(s_glVertexPointerData);
-    set_glColorPointerData(s_glColorPointerData);
-    set_glNormalPointerData(s_glNormalPointerData);
-    set_glTexCoordPointerData(s_glTexCoordPointerData);
-    set_glPointSizePointerData(s_glPointSizePointerData);
-    set_glWeightPointerData(s_glWeightPointerData);
-    set_glMatrixIndexPointerData(s_glMatrixIndexPointerData);
-
-    set_glDrawElementsOffset(s_glDrawElementsOffset);
-    set_glDrawElementsData(s_glDrawElementsData);
-    set_glFinishRoundTrip(s_glFinishRoundTrip);
-
-    return 0;
-}
-
-int GLDecoder::s_glFinishRoundTrip(void *self)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glFinish();
-    return 0;
-}
-
-void GLDecoder::s_glVertexPointerOffset(void *self, GLint size, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glVertexPointer(size, type, stride, (void *)offset);
-}
-
-void GLDecoder::s_glColorPointerOffset(void *self, GLint size, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glColorPointer(size, type, stride, (void *)offset);
-}
-
-void GLDecoder::s_glTexCoordPointerOffset(void *self, GLint size, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glTexCoordPointer(size, type, stride, (void *) offset);
-}
-
-void GLDecoder::s_glNormalPointerOffset(void *self, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glNormalPointer(type, stride, (void *)offset);
-}
-
-void GLDecoder::s_glPointSizePointerOffset(void *self, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glPointSizePointerOES(type, stride, (void *)offset);
-}
-
-void GLDecoder::s_glWeightPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glWeightPointerOES(size, type, stride, (void*)offset);
-}
-
-void GLDecoder::s_glMatrixIndexPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glMatrixIndexPointerOES(size, type, stride, (void*)offset);
-}
-
-
-
-#define STORE_POINTER_DATA_OR_ABORT(location)    \
-    if (ctx->m_contextData != NULL) {   \
-        ctx->m_contextData->storePointerData((location), data, datalen); \
-    } else { \
-        return; \
-    }
-
-void GLDecoder::s_glVertexPointerData(void *self, GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-
-    STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::VERTEX_LOCATION);
-
-    ctx->glVertexPointer(size, type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::VERTEX_LOCATION));
-}
-
-void GLDecoder::s_glColorPointerData(void *self, GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-
-    STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::COLOR_LOCATION);
-
-    ctx->glColorPointer(size, type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::COLOR_LOCATION));
-}
-
-void GLDecoder::s_glTexCoordPointerData(void *self, GLint unit, GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    STORE_POINTER_DATA_OR_ABORT((GLDecoderContextData::PointerDataLocation)
-                                (GLDecoderContextData::TEXCOORD0_LOCATION + unit));
-
-    ctx->glTexCoordPointer(size, type, 0,
-                           ctx->m_contextData->pointerData((GLDecoderContextData::PointerDataLocation)
-                                                           (GLDecoderContextData::TEXCOORD0_LOCATION + unit)));
-}
-
-void GLDecoder::s_glNormalPointerData(void *self, GLenum type, GLsizei stride, void *data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-
-    STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::NORMAL_LOCATION);
-
-    ctx->glNormalPointer(type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::NORMAL_LOCATION));
-}
-
-void GLDecoder::s_glPointSizePointerData(void *self, GLenum type, GLsizei stride, void *data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-
-    STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::POINTSIZE_LOCATION);
-
-    ctx->glPointSizePointerOES(type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::POINTSIZE_LOCATION));
-}
-
-void GLDecoder::s_glWeightPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-
-    STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::WEIGHT_LOCATION);
-
-    ctx->glWeightPointerOES(size, type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::WEIGHT_LOCATION));
-}
-
-void GLDecoder::s_glMatrixIndexPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-
-    STORE_POINTER_DATA_OR_ABORT(GLDecoderContextData::MATRIXINDEX_LOCATION);
-
-    ctx->glMatrixIndexPointerOES(size, type, 0, ctx->m_contextData->pointerData(GLDecoderContextData::MATRIXINDEX_LOCATION));
-}
-
-void GLDecoder::s_glDrawElementsOffset(void *self, GLenum mode, GLsizei count, GLenum type, GLuint offset)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glDrawElements(mode, count, type, (void *)offset);
-}
-
-void GLDecoder::s_glDrawElementsData(void *self, GLenum mode, GLsizei count, GLenum type, void * data, GLuint datalen)
-{
-    GLDecoder *ctx = (GLDecoder *)self;
-    ctx->glDrawElements(mode, count, type, data);
-}
-
-void GLDecoder::s_glGetCompressedTextureFormats(void *self, GLint count, GLint *data)
-{
-    GLDecoder *ctx = (GLDecoder *) self;
-    ctx->glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, data);
-}
-
-void *GLDecoder::s_getProc(const char *name, void *userData)
-{
-    GLDecoder *ctx = (GLDecoder *)userData;
-
-    if (ctx == NULL || ctx->m_glesDso == NULL) {
-        return NULL;
-    }
-
-    void *func = NULL;
-#ifdef USE_EGL_GETPROCADDRESS
-    func = (void *) eglGetProcAddress(name);
-#endif
-    if (func == NULL) {
-        func = (void *)(ctx->m_glesDso->findSymbol(name));
-    }
-    return func;
-}
diff --git a/tools/emulator/opengl/host/libs/GLESv1_dec/GLDecoder.h b/tools/emulator/opengl/host/libs/GLESv1_dec/GLDecoder.h
deleted file mode 100644
index 14ca222..0000000
--- a/tools/emulator/opengl/host/libs/GLESv1_dec/GLDecoder.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _GL_DECODER_H_
-#define _GL_DECODER_H_
-
-#include "gl_dec.h"
-#include "FixedBuffer.h"
-#include "GLDecoderContextData.h"
-#include <osDynLibrary.h>
-
-#define GLES_LIBNAME_VAR "ANDROID_GLESv1_LIB"
-#define GLES_LIBNAME "libGLES_CM.so"
-
-class GLDecoder : public gl_decoder_context_t
-{
-public:
-    typedef void *(*get_proc_func_t)(const char *name, void *userData);
-
-    GLDecoder();
-    ~GLDecoder();
-    int initGL(get_proc_func_t getProcFunc = NULL, void *getProcFuncData = NULL);
-    void setContextData(GLDecoderContextData *contextData) { m_contextData = contextData; }
-
-private:
-    static void gl_APIENTRY s_glGetCompressedTextureFormats(void * self, GLint cont, GLint *data);
-    static void gl_APIENTRY s_glVertexPointerData(void *self, GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen);
-    static void gl_APIENTRY s_glVertexPointerOffset(void *self, GLint size, GLenum type, GLsizei stride, GLuint offset);
-
-    static void gl_APIENTRY s_glColorPointerData(void *self, GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen);
-    static void gl_APIENTRY s_glColorPointerOffset(void *self, GLint size, GLenum type, GLsizei stride, GLuint offset);
-
-    static void gl_APIENTRY s_glTexCoordPointerData(void *self, GLint unit, GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen);
-    static void gl_APIENTRY s_glTexCoordPointerOffset(void *self, GLint size, GLenum type, GLsizei stride, GLuint offset);
-
-    static void gl_APIENTRY s_glNormalPointerData(void *self, GLenum type, GLsizei stride, void *data, GLuint datalen);
-    static void gl_APIENTRY s_glNormalPointerOffset(void *self, GLenum type, GLsizei stride, GLuint offset);
-
-    static void gl_APIENTRY s_glPointSizePointerData(void *self, GLenum type, GLsizei stride, void *data, GLuint datalen);
-    static void gl_APIENTRY s_glPointSizePointerOffset(void *self, GLenum type, GLsizei stride, GLuint offset);
-
-    static void gl_APIENTRY s_glDrawElementsOffset(void *self, GLenum mode, GLsizei count, GLenum type, GLuint offset);
-    static void gl_APIENTRY s_glDrawElementsData(void *self, GLenum mode, GLsizei count, GLenum type, void * data, GLuint datalen);
-
-    static void gl_APIENTRY s_glWeightPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen);
-    static void gl_APIENTRY s_glWeightPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset);
-
-    static void gl_APIENTRY s_glMatrixIndexPointerData(void * self, GLint size, GLenum type, GLsizei stride, void * data, GLuint datalen);
-    static void gl_APIENTRY s_glMatrixIndexPointerOffset(void * self, GLint size, GLenum type, GLsizei stride, GLuint offset);
-
-    static int gl_APIENTRY s_glFinishRoundTrip(void *self);
-
-    static void * s_getProc(const char *name, void *userData);
-
-    GLDecoderContextData *m_contextData;
-    osUtils::dynLibrary* m_glesDso;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk b/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk
deleted file mode 100644
index a66c6ce..0000000
--- a/tools/emulator/opengl/host/libs/GLESv2_dec/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,libGLESv2_dec)
-$(call emugl-import, libOpenglCodecCommon libOpenglOsUtils)
-$(call emugl-gen-decoder,$(EMUGL_PATH)/system/GLESv2_enc,gl2)
-
-# For gl2_types.h !
-$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/system/GLESv2_enc)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-#For gl debbuging
-#$(call emugl-export,CFLAGS,-DCHECK_GL_ERROR)
-#$(call emugl-export,CFLAGS,-DDEBUG_PRINTOUT)
-
-LOCAL_SRC_FILES := GL2Decoder.cpp
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.cpp b/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.cpp
deleted file mode 100644
index e867cf8..0000000
--- a/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.cpp
+++ /dev/null
@@ -1,123 +0,0 @@
-#include "GL2Decoder.h"
-#include <EGL/egl.h>
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-
-
-GL2Decoder::GL2Decoder()
-{
-    m_contextData = NULL;
-    m_GL2library = NULL;
-}
-
-GL2Decoder::~GL2Decoder()
-{
-    delete m_GL2library;
-}
-
-void *GL2Decoder::s_getProc(const char *name, void *userData)
-{
-    GL2Decoder *ctx = (GL2Decoder *) userData;
-
-    if (ctx == NULL || ctx->m_GL2library == NULL) {
-        return NULL;
-    }
-
-    void *func = NULL;
-#ifdef USE_EGL_GETPROCADDRESS
-    func = (void *) eglGetProcAddress(name);
-#endif
-    if (func == NULL) {
-        func = (void *) ctx->m_GL2library->findSymbol(name);
-    }
-    return func;
-}
-
-int GL2Decoder::initGL(get_proc_func_t getProcFunc, void *getProcFuncData)
-{
-    if (getProcFunc == NULL) {
-        const char *libname = GLES2_LIBNAME;
-        if (getenv(GLES2_LIBNAME_VAR) != NULL) {
-            libname = getenv(GLES2_LIBNAME_VAR);
-        }
-
-        m_GL2library = osUtils::dynLibrary::open(libname);
-        if (m_GL2library == NULL) {
-            fprintf(stderr, "%s: Couldn't find %s \n", __FUNCTION__, libname);
-            return -1;
-        }
-        this->initDispatchByName(s_getProc, this);
-    } else {
-        this->initDispatchByName(getProcFunc, getProcFuncData);
-    }
-
-    set_glGetCompressedTextureFormats(s_glGetCompressedTextureFormats);
-    set_glVertexAttribPointerData(s_glVertexAttribPointerData);
-    set_glVertexAttribPointerOffset(s_glVertexAttribPointerOffset);
-
-    set_glDrawElementsOffset(s_glDrawElementsOffset);
-    set_glDrawElementsData(s_glDrawElementsData);
-    set_glShaderString(s_glShaderString);
-    set_glFinishRoundTrip(s_glFinishRoundTrip);
-    return 0;
-
-}
-
-int GL2Decoder::s_glFinishRoundTrip(void *self)
-{
-    GL2Decoder *ctx = (GL2Decoder *)self;
-    ctx->glFinish();
-    return 0;
-}
-
-void GL2Decoder::s_glGetCompressedTextureFormats(void *self, int count, GLint *formats)
-{
-    GL2Decoder *ctx = (GL2Decoder *) self;
-
-    int nFormats;
-    ctx->glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &nFormats);
-    if (nFormats > count) {
-        fprintf(stderr, "%s: GetCompressedTextureFormats: The requested number of formats does not match the number that is reported by OpenGL\n", __FUNCTION__);
-    } else {
-        ctx->glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, formats);
-    }
-}
-
-void GL2Decoder::s_glVertexAttribPointerData(void *self, GLuint indx, GLint size, GLenum type,
-                                             GLboolean normalized, GLsizei stride,  void * data, GLuint datalen)
-{
-    GL2Decoder *ctx = (GL2Decoder *) self;
-    if (ctx->m_contextData != NULL) {
-        ctx->m_contextData->storePointerData(indx, data, datalen);
-        // note - the stride of the data is always zero when it comes out of the codec.
-        // See gl2.attrib for the packing function call.
-        ctx->glVertexAttribPointer(indx, size, type, normalized, 0, ctx->m_contextData->pointerData(indx));
-    }
-}
-
-void GL2Decoder::s_glVertexAttribPointerOffset(void *self, GLuint indx, GLint size, GLenum type,
-                                               GLboolean normalized, GLsizei stride,  GLuint data)
-{
-    GL2Decoder *ctx = (GL2Decoder *) self;
-    ctx->glVertexAttribPointer(indx, size, type, normalized, stride, (GLvoid *)data);
-}
-
-
-void GL2Decoder::s_glDrawElementsData(void *self, GLenum mode, GLsizei count, GLenum type, void * data, GLuint datalen)
-{
-    GL2Decoder *ctx = (GL2Decoder *)self;
-    ctx->glDrawElements(mode, count, type, data);
-}
-
-
-void GL2Decoder::s_glDrawElementsOffset(void *self, GLenum mode, GLsizei count, GLenum type, GLuint offset)
-{
-    GL2Decoder *ctx = (GL2Decoder *)self;
-    ctx->glDrawElements(mode, count, type, (void *)offset);
-}
-
-void GL2Decoder::s_glShaderString(void *self, GLuint shader, const GLchar* string, GLsizei len)
-{
-    GL2Decoder *ctx = (GL2Decoder *)self;
-    ctx->glShaderSource(shader, 1, &string, NULL);
-}
diff --git a/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h b/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h
deleted file mode 100644
index 24d01da..0000000
--- a/tools/emulator/opengl/host/libs/GLESv2_dec/GL2Decoder.h
+++ /dev/null
@@ -1,36 +0,0 @@
-#ifndef _GL2_DECODER_H_
-#define _GL2_DECODER_H_
-
-#define GLES2_LIBNAME_VAR "ANDROID_GLESv2_LIB"
-#define GLES2_LIBNAME     "libGLESv2.so"
-
-#include "gl2_dec.h"
-#include "osDynLibrary.h"
-#include "GLDecoderContextData.h"
-
-
-class GL2Decoder : public gl2_decoder_context_t
-{
-public:
-    typedef void *(*get_proc_func_t)(const char *name, void *userData);
-    GL2Decoder();
-    ~GL2Decoder();
-    int initGL(get_proc_func_t getProcFunc = NULL, void *getProcFuncData = NULL);
-    void setContextData(GLDecoderContextData *contextData) { m_contextData = contextData; }
-private:
-    GLDecoderContextData *m_contextData;
-    osUtils::dynLibrary * m_GL2library;
-
-    static void *s_getProc(const char *name, void *userData);
-    static void gl2_APIENTRY s_glGetCompressedTextureFormats(void *self, int count, GLint *formats);
-    static void gl2_APIENTRY s_glVertexAttribPointerData(void *self, GLuint indx, GLint size, GLenum type,
-                                      GLboolean normalized, GLsizei stride,  void * data, GLuint datalen);
-    static void gl2_APIENTRY s_glVertexAttribPointerOffset(void *self, GLuint indx, GLint size, GLenum type,
-                                        GLboolean normalized, GLsizei stride,  GLuint offset);
-
-    static void gl2_APIENTRY s_glDrawElementsOffset(void *self, GLenum mode, GLsizei count, GLenum type, GLuint offset);
-    static void gl2_APIENTRY s_glDrawElementsData(void *self, GLenum mode, GLsizei count, GLenum type, void * data, GLuint datalen);
-    static void gl2_APIENTRY s_glShaderString(void *self, GLuint shader, const GLchar* string, GLsizei len);
-    static int  gl2_APIENTRY s_glFinishRoundTrip(void *self);
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk b/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk
deleted file mode 100644
index 96e87de..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/Android.mk
+++ /dev/null
@@ -1,44 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-### EGL host implementation ########################
-$(call emugl-begin-host-shared-library,libEGL_translator)
-$(call emugl-import,libGLcommon)
-
-OS_SRCS:=
-
-ifeq ($(HOST_OS),linux)
-    OS_SRCS = EglX11Api.cpp
-    LOCAL_LDLIBS += -lX11 -lGL -ldl -lpthread
-endif
-
-ifeq ($(HOST_OS),darwin)
-    OS_SRCS = EglMacApi.cpp \
-              MacNative.m   \
-              MacPixelFormatsAttribs.m
-
-    LOCAL_LDLIBS += -Wl,-framework,AppKit
-endif
-
-ifeq ($(HOST_OS),windows)
-    OS_SRCS = EglWindowsApi.cpp
-    LOCAL_LDLIBS += -lopengl32 -lgdi32
-endif
-
-LOCAL_SRC_FILES :=            \
-     $(OS_SRCS)               \
-     ThreadInfo.cpp           \
-     EglImp.cpp               \
-     EglConfig.cpp            \
-     EglContext.cpp           \
-     EglGlobalInfo.cpp        \
-     EglValidate.cpp          \
-     EglSurface.cpp           \
-     EglWindowSurface.cpp     \
-     EglPbufferSurface.cpp    \
-     EglPixmapSurface.cpp     \
-     EglThreadInfo.cpp        \
-     EglDisplay.cpp           \
-     ClientAPIExts.cpp
-
-$(call emugl-end-module)
-
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.cpp
deleted file mode 100644
index 42d5764..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "ClientAPIExts.h"
-#include "EglGlobalInfo.h"
-#include "GLcommon/GLutils.h"
-#include "GLcommon/TranslatorIfaces.h"
-#include "ThreadInfo.h"
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-
-namespace ClientAPIExts
-{
-
-//
-// define function pointer type for each extention function
-// typename has the form __egl_{funcname}_t
-//
-#define FUNC_TYPE(fname) __egl_ ## fname ## _t
-#define API_ENTRY(fname,params,args) \
-    typedef void (GL_APIENTRY *FUNC_TYPE(fname)) params;
-
-#define API_ENTRY_RET(rtype,fname,params,args) \
-    typedef rtype (GL_APIENTRY *FUNC_TYPE(fname)) params;
-
-#include "ClientAPIExts.in"
-#undef API_ENTRY
-#undef API_ENTRY_RET
-
-/////
-// Define static table to store the function value for each
-// client API. functions pointers will get initialized through
-// ClientAPIExts::initClientFuncs function after each client API has been
-// loaded.
-/////
-#define API_ENTRY(fname,params,args) \
-    FUNC_TYPE(fname) fname;
-
-#define API_ENTRY_RET(rtype,fname,params,args) \
-    API_ENTRY(fname,params,args)
-
-static struct _ext_table
-{
-#include "ClientAPIExts.in"
-} s_client_extensions[MAX_GLES_VERSION-1];
-
-#undef API_ENTRY
-#undef API_ENTRY_RET
-
-//
-// This function initialized each entry in the s_client_extensions
-// struct at the givven index using the givven client interface
-//
-void initClientFuncs(GLESiface *iface, int idx)
-{
-#define API_ENTRY(fname,params,args) \
-    s_client_extensions[idx].fname = \
-          (FUNC_TYPE(fname))iface->getProcAddress(#fname);
-
-#define API_ENTRY_RET(rtype,fname,params,args) \
-    API_ENTRY(fname,params,args)
-
-    //
-    // reset all func pointers to NULL
-    //
-    memset(&s_client_extensions[idx], 0, sizeof(struct _ext_table));
-
-    //
-    // And now query the GLES library for each proc address
-    //
-#include "ClientAPIExts.in"
-#undef API_ENTRY
-#undef API_ENTRY_RET
-}
-
-//
-// Define implementation for each extension function which checks
-// the current context version and calls to the correct client API
-// function.
-//
-#define API_ENTRY(fname,params,args) \
-    static void _egl_ ## fname params \
-    { \
-        ThreadInfo* thread  = getThreadInfo(); \
-        if (!thread->eglContext.Ptr()) { \
-            return; \
-        } \
-        int idx = (int)thread->eglContext->version() - 1; \
-        if (!s_client_extensions[idx].fname) { \
-            return; \
-        } \
-        (*s_client_extensions[idx].fname) args; \
-    }
-
-#define API_ENTRY_RET(rtype,fname,params,args) \
-    static rtype _egl_ ## fname params \
-    { \
-        ThreadInfo* thread  = getThreadInfo(); \
-        if (!thread->eglContext.Ptr()) { \
-            return (rtype)0; \
-        } \
-        int idx = (int)thread->eglContext->version() - 1; \
-        if (!s_client_extensions[idx].fname) { \
-            return (rtype)0; \
-        } \
-        return (*s_client_extensions[idx].fname) args; \
-    }
-
-#include "ClientAPIExts.in"
-#undef API_ENTRY
-#undef API_ENTRY_RET
-
-//
-// Define a table to map function names to the local _egl_ version of
-// the extension function, to be used in eglGetProcAddress.
-//
-#define API_ENTRY(fname,params,args) \
-    { #fname, (__translatorMustCastToProperFunctionPointerType)_egl_ ## fname},
-#define API_ENTRY_RET(rtype,fname,params,args) \
-    API_ENTRY(fname,params,args)
-
-static struct _client_ext_funcs {
-    const char *fname;
-    __translatorMustCastToProperFunctionPointerType proc;
-} s_client_ext_funcs[] = {
-#include "ClientAPIExts.in"
-};
-static const int numExtFuncs = sizeof(s_client_ext_funcs) / 
-                               sizeof(s_client_ext_funcs[0]);
-
-#undef API_ENTRY
-#undef API_ENTRY_RET
-
-//
-// returns the __egl_ version of the givven extension function name.
-//
-__translatorMustCastToProperFunctionPointerType getProcAddress(const char *fname)
-{
-    for (int i=0; i<numExtFuncs; i++) {
-        if (!strcmp(fname, s_client_ext_funcs[i].fname)) {
-            return s_client_ext_funcs[i].proc;
-        }
-    }
-    return NULL;
-}
-
-} // of namespace ClientAPIExts
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.h b/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.h
deleted file mode 100644
index 130b44a..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _CLIENT_APIS_EXTS_H
-#define _CLIENT_APIS_EXTS_H
-
-#include "GLcommon/TranslatorIfaces.h"
-
-namespace ClientAPIExts
-{
-
-void initClientFuncs(GLESiface *iface, int idx);
-__translatorMustCastToProperFunctionPointerType getProcAddress(const char *fname);
-
-} // of namespace ClientAPIExts
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.in b/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.in
deleted file mode 100644
index c3162eb..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/ClientAPIExts.in
+++ /dev/null
@@ -1,201 +0,0 @@
-//
-// Each extension function should have one of the following
-// macro definitions:
-//    API_ENTRY(funcname, paramlist, arglist)
-//  -or- (in case funciton has return value)
-//    API_ENTRY_RET(return_type,funcname, paramlist, arglist)
-//
-API_ENTRY(glEGLImageTargetTexture2DOES,
-          (GLenum target, GLeglImageOES image),
-          (target, image))
-
-API_ENTRY(glEGLImageTargetRenderbufferStorageOES,
-          (GLenum target, GLeglImageOES image),
-          (target, image))
-
-API_ENTRY(glBlendEquationSeparateOES,
-          (GLenum modeRGB, GLenum modeAlpha),
-          (modeRGB, modeAlpha))
-
-API_ENTRY(glBlendFuncSeparateOES,
-          (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha),
-          (srcRGB, dstRGB, srcAlpha, dstAlpha))
-
-API_ENTRY(glBlendEquationOES,
-          (GLenum mode),
-          (mode))
-
-API_ENTRY(glCurrentPaletteMatrixOES,
-          (GLuint matrixpaletteindex),
-          (matrixpaletteindex))
-
-API_ENTRY(glLoadPaletteFromModelViewMatrixOES,
-          (void),
-          ())
-
-API_ENTRY(glMatrixIndexPointerOES,
-          (GLint size, GLenum type, GLsizei stride, const GLvoid * pointer),
-          (size, type, stride, pointer))
-
-API_ENTRY(glWeightPointerOES,
-          (GLint size, GLenum type, GLsizei stride, const GLvoid * pointer),
-          (size, type, stride, pointer))
-
-API_ENTRY(glDepthRangefOES,
-          (GLclampf zNear, GLclampf zFar),
-          (zNear, zFar))
-
-API_ENTRY(glFrustumfOES,
-          (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar),
-          (left, right, bottom, top, zNear, zFar))
-
-API_ENTRY(glOrthofOES,
-          (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar),
-          (left, right, bottom, top, zNear, zFar))
-
-API_ENTRY(glClipPlanefOES,
-          (GLenum plane, const GLfloat *equation),
-          (plane, equation))
-
-API_ENTRY(glGetClipPlanefOES,
-          (GLenum pname, GLfloat * eqn),
-          (pname, eqn))
-
-API_ENTRY(glClearDepthfOES,
-          (GLclampf depth),
-          (depth))
-
-API_ENTRY(glPointSizePointerOES,
-          (GLenum type, GLsizei stride, const GLvoid *pointer),
-          (type, stride, pointer))
-
-API_ENTRY(glTexGenfOES,
-          (GLenum coord, GLenum pname, GLfloat param),
-          (coord, pname, param))
-
-API_ENTRY(glTexGenfvOES,
-          (GLenum coord, GLenum pname, const GLfloat *params),
-          (coord, pname, params))
-
-API_ENTRY(glTexGeniOES,
-          (GLenum coord, GLenum pname, GLint param),
-          (coord, pname, param))
-
-API_ENTRY(glTexGenivOES,
-          (GLenum coord, GLenum pname, const GLint *params),
-          (coord, pname, params))
-
-API_ENTRY(glTexGenxOES,
-          (GLenum coord, GLenum pname, GLfixed param),
-          (coord, pname, param))
-
-API_ENTRY(glTexGenxvOES,
-          (GLenum coord, GLenum pname, const GLfixed *params),
-          (coord, pname, params))
-
-API_ENTRY(glGetTexGenfvOES,
-          (GLenum coord, GLenum pname, GLfloat *params),
-          (coord, pname, params))
-
-API_ENTRY(glGetTexGenivOES,
-          (GLenum coord, GLenum pname, GLint *params),
-          (coord, pname, params))
-
-API_ENTRY(glGetTexGenxvOES,
-          (GLenum coord, GLenum pname, GLfixed *params),
-          (coord, pname, params))
-
-API_ENTRY_RET(GLboolean,
-              glIsRenderbufferOES,
-              (GLuint renderbuffer),
-              (renderbuffer))
-
-API_ENTRY(glBindRenderbufferOES,
-          (GLenum target, GLuint renderbuffer),
-          (target, renderbuffer))
-
-API_ENTRY(glDeleteRenderbuffersOES,
-          (GLsizei n, const GLuint* renderbuffers),
-          (n, renderbuffers))
-
-API_ENTRY(glGenRenderbuffersOES,
-          (GLsizei n, GLuint* renderbuffers),
-          (n, renderbuffers))
-
-API_ENTRY(glRenderbufferStorageOES,
-          (GLenum target, GLenum internalformat, GLsizei width, GLsizei height),
-          (target, internalformat, width, height))
-
-API_ENTRY(glGetRenderbufferParameterivOES,
-          (GLenum target, GLenum pname, GLint* params),
-          (target, pname, params))
-
-API_ENTRY_RET(GLboolean,
-              glIsFramebufferOES,
-              (GLuint framebuffer),
-              (framebuffer))
-
-API_ENTRY(glBindFramebufferOES,
-          (GLenum target, GLuint framebuffer),
-          (target, framebuffer))
-
-API_ENTRY(glDeleteFramebuffersOES,
-          (GLsizei n, const GLuint* framebuffers),
-          (n, framebuffers))
-
-API_ENTRY(glGenFramebuffersOES,
-          (GLsizei n, GLuint* framebuffers),
-          (n, framebuffers))
-
-API_ENTRY_RET(GLenum,
-              glCheckFramebufferStatusOES,
-              (GLenum target),
-              (target))
-
-API_ENTRY(glFramebufferTexture2DOES,
-          (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level),
-          (target, attachment, textarget, texture, level))
-
-API_ENTRY(glFramebufferRenderbufferOES,
-          (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer),
-          (target, attachment, renderbuffertarget, renderbuffer))
-
-API_ENTRY(glGetFramebufferAttachmentParameterivOES,
-          (GLenum target, GLenum attachment, GLenum pname, GLint* params),
-          (target, attachment, pname, params))
-
-API_ENTRY(glGenerateMipmapOES,
-          (GLenum target),
-          (target))
-
-API_ENTRY(glDrawTexsOES,
-          (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height),
-          (x, y, z, width, height))
-
-API_ENTRY(glDrawTexiOES,
-          (GLint x, GLint y, GLint z, GLint width, GLint height),
-          (x, y, z, width, height))
-
-API_ENTRY(glDrawTexfOES,
-          (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height),
-          (x, y, z, width, height))
-
-API_ENTRY(glDrawTexxOES,
-          (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height),
-          (x, y, z, width, height))
-
-API_ENTRY(glDrawTexsvOES,
-          (const GLshort *coords),
-          (coords))
-
-API_ENTRY(glDrawTexivOES,
-          (const GLint *coords),
-          (coords))
-
-API_ENTRY(glDrawTexfvOES,
-          (const GLfloat *coords),
-          (coords))
-
-API_ENTRY(glDrawTexxvOES,
-          (const GLfixed *coords),
-          (coords))
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp
deleted file mode 100644
index 66a691c..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglConfig.cpp
+++ /dev/null
@@ -1,348 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglConfig.h"
-
-EglConfig::EglConfig(EGLint     red_size,
-                     EGLint     green_size,
-                     EGLint     blue_size,
-                     EGLint     alpha_size,
-                     EGLenum    caveat,
-                     EGLint     config_id,
-                     EGLint     depth_size,
-                     EGLint     frame_buffer_level,
-                     EGLint     max_pbuffer_width,
-                     EGLint     max_pbuffer_height,
-                     EGLint     max_pbuffer_size,
-                     EGLBoolean native_renderable,
-                     EGLint     renderable_type,
-                     EGLint     native_visual_id,
-                     EGLint     native_visual_type,
-                     EGLint     samples_per_pixel,
-                     EGLint     stencil_size,
-                     EGLint     surface_type,
-                     EGLenum    transparent_type,
-                     EGLint     trans_red_val,
-                     EGLint     trans_green_val,
-                     EGLint     trans_blue_val,
-                     EGLNativePixelFormatType frmt):
-
-                     m_buffer_size(red_size + green_size + blue_size + alpha_size),
-                     m_red_size(red_size),
-                     m_green_size(green_size),
-                     m_blue_size(blue_size),
-                     m_alpha_size(alpha_size),
-                     m_bind_to_tex_rgb(EGL_FALSE), //not supported for now
-                     m_bind_to_tex_rgba(EGL_FALSE), //not supported for now
-                     m_caveat(caveat),
-                     m_config_id(config_id),
-                     m_native_config_id(config_id),
-                     m_frame_buffer_level(frame_buffer_level),
-                     m_depth_size(depth_size),
-                     m_max_pbuffer_width(max_pbuffer_width),
-                     m_max_pbuffer_height(max_pbuffer_height),
-                     m_max_pbuffer_size(max_pbuffer_size),
-                     m_max_swap_interval(MAX_SWAP_INTERVAL),
-                     m_min_swap_interval(MIN_SWAP_INTERVAL),
-                     m_native_renderable(native_renderable),
-                     m_renderable_type(renderable_type),
-                     m_native_visual_id(native_visual_id),
-                     m_native_visual_type(native_visual_type),
-                     m_sample_buffers_num(samples_per_pixel > 0 ?1:0),
-                     m_samples_per_pixel(samples_per_pixel),
-                     m_stencil_size(stencil_size),
-                     m_surface_type(surface_type),
-                     m_transparent_type(transparent_type),
-                     m_trans_red_val(trans_red_val),
-                     m_trans_green_val(trans_green_val),
-                     m_trans_blue_val(trans_blue_val),
-                     m_conformant(((red_size + green_size + blue_size + alpha_size > 0)  &&
-                                  (caveat!=EGL_NON_CONFORMANT_CONFIG)) ?
-                                    m_renderable_type : 0),
-                     m_nativeFormat(frmt) {};
-
-
-    EglConfig::EglConfig(const EglConfig& conf):m_buffer_size(conf.m_buffer_size),
-                                                m_red_size(conf.m_red_size),
-                                                m_green_size(conf.m_green_size),
-                                                m_blue_size(conf.m_blue_size),
-                                                m_alpha_size(conf.m_alpha_size),
-                                                m_bind_to_tex_rgb(conf.m_bind_to_tex_rgb),
-                                                m_bind_to_tex_rgba(conf.m_bind_to_tex_rgba),
-                                                m_caveat(conf.m_caveat),
-                                                m_config_id(conf.m_config_id),
-                                                m_native_config_id(conf.m_native_config_id),
-                                                m_frame_buffer_level(conf.m_frame_buffer_level),
-                                                m_depth_size(conf.m_depth_size),
-                                                m_max_pbuffer_width(conf.m_max_pbuffer_width),
-                                                m_max_pbuffer_height(conf.m_max_pbuffer_height),
-                                                m_max_pbuffer_size(conf.m_max_pbuffer_size),
-                                                m_max_swap_interval(conf.m_max_swap_interval),
-                                                m_min_swap_interval(conf.m_min_swap_interval),
-                                                m_native_renderable(conf.m_native_renderable),
-                                                m_renderable_type(conf.m_renderable_type),
-                                                m_native_visual_id(conf.m_native_visual_id),
-                                                m_native_visual_type(conf.m_native_visual_type),
-                                                m_sample_buffers_num(conf.m_sample_buffers_num),
-                                                m_samples_per_pixel(conf.m_samples_per_pixel),
-                                                m_stencil_size(conf.m_stencil_size),
-                                                m_surface_type(conf.m_surface_type),
-                                                m_transparent_type(conf.m_transparent_type),
-                                                m_trans_red_val(conf.m_trans_red_val),
-                                                m_trans_green_val(conf.m_trans_green_val),
-                                                m_trans_blue_val(conf.m_trans_blue_val),
-                                                m_conformant(conf.m_conformant),
-                                                m_nativeFormat(conf.m_nativeFormat) {};
-
-
-EglConfig::EglConfig(const EglConfig& conf,
-                     EGLint config_id,
-                     EGLint red_size,
-                     EGLint green_size,
-                     EGLint blue_size,
-                     EGLint alpha_size):
-
-                     m_buffer_size(red_size + green_size + blue_size + alpha_size),
-                     m_red_size(red_size),
-                     m_green_size(green_size),
-                     m_blue_size(blue_size),
-                     m_alpha_size(alpha_size),
-                     m_bind_to_tex_rgb(conf.m_bind_to_tex_rgb),
-                     m_bind_to_tex_rgba(conf.m_bind_to_tex_rgba),
-                     m_caveat(conf.m_caveat),
-                     m_config_id(config_id),
-                     m_native_config_id(conf.m_native_config_id),
-                     m_frame_buffer_level(conf.m_frame_buffer_level),
-                     m_depth_size(conf.m_depth_size),
-                     m_max_pbuffer_width(conf.m_max_pbuffer_width),
-                     m_max_pbuffer_height(conf.m_max_pbuffer_height),
-                     m_max_pbuffer_size(conf.m_max_pbuffer_size),
-                     m_max_swap_interval(conf.m_max_swap_interval),
-                     m_min_swap_interval(conf.m_min_swap_interval),
-                     m_native_renderable(conf.m_native_renderable),
-                     m_renderable_type(conf.m_renderable_type),
-                     m_native_visual_id(conf.m_native_visual_id),
-                     m_native_visual_type(conf.m_native_visual_type),
-                     m_sample_buffers_num(conf.m_sample_buffers_num),
-                     m_samples_per_pixel(conf.m_samples_per_pixel),
-                     m_stencil_size(conf.m_stencil_size),
-                     m_surface_type(conf.m_surface_type),
-                     m_transparent_type(conf.m_transparent_type),
-                     m_trans_red_val(conf.m_trans_red_val),
-                     m_trans_green_val(conf.m_trans_green_val),
-                     m_trans_blue_val(conf.m_trans_blue_val),
-                     m_conformant(conf.m_conformant),
-                     m_nativeFormat(conf.m_nativeFormat) {};
-
-
-bool EglConfig::getConfAttrib(EGLint attrib,EGLint* val) const {
-    switch(attrib) {
-    case EGL_BUFFER_SIZE:
-        *val = m_buffer_size;
-        break;
-    case EGL_RED_SIZE:
-        *val = m_red_size;
-        break;
-    case EGL_GREEN_SIZE:
-        *val = m_green_size;
-        break;
-    case EGL_BLUE_SIZE:
-        *val = m_blue_size;
-        break;
-    case EGL_ALPHA_SIZE:
-        *val = m_alpha_size;
-        break;
-    case EGL_BIND_TO_TEXTURE_RGB:
-        *val = m_bind_to_tex_rgb;
-        break;
-    case EGL_BIND_TO_TEXTURE_RGBA:
-        *val = m_bind_to_tex_rgba;
-        break;
-    case EGL_CONFIG_CAVEAT:
-        *val = m_caveat;
-        break;
-    case EGL_CONFIG_ID:
-        *val = m_config_id;
-        break;
-    case EGL_DEPTH_SIZE:
-        *val = m_depth_size;
-        break;
-    case EGL_LEVEL:
-        *val = m_frame_buffer_level;
-        break;
-    case EGL_MAX_PBUFFER_WIDTH:
-        *val = m_max_pbuffer_width;
-        break;
-    case EGL_MAX_PBUFFER_HEIGHT:
-        *val = m_max_pbuffer_height;
-        break;
-    case EGL_MAX_PBUFFER_PIXELS:
-        *val = m_max_pbuffer_size;
-        break;
-    case EGL_MAX_SWAP_INTERVAL:
-        *val = m_max_swap_interval;
-        break;
-    case EGL_MIN_SWAP_INTERVAL:
-        *val = m_min_swap_interval;
-        break;
-    case EGL_NATIVE_RENDERABLE:
-        *val = m_native_renderable;
-        break;
-    case EGL_NATIVE_VISUAL_ID:
-        *val = m_native_visual_id;
-        break;
-    case EGL_NATIVE_VISUAL_TYPE:
-        *val = m_native_visual_type;
-        break;
-    case EGL_RENDERABLE_TYPE:
-        *val = m_renderable_type;
-        break;
-    case EGL_SAMPLE_BUFFERS:
-        *val = m_sample_buffers_num;
-        break;
-    case EGL_SAMPLES:
-        *val = m_samples_per_pixel;
-        break;
-    case EGL_STENCIL_SIZE:
-        *val = m_stencil_size;
-        break;
-    case EGL_SURFACE_TYPE:
-        *val = m_surface_type;
-        break;
-    case EGL_TRANSPARENT_TYPE:
-        *val =m_transparent_type;
-        break;
-    case EGL_TRANSPARENT_RED_VALUE:
-        *val = m_trans_red_val;
-        break;
-    case EGL_TRANSPARENT_GREEN_VALUE:
-        *val = m_trans_green_val;
-        break;
-    case EGL_TRANSPARENT_BLUE_VALUE:
-        *val = m_trans_blue_val;
-        break;
-    case EGL_CONFORMANT:
-        *val = m_conformant;
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
-
-// checking compitabilty between *this configuration and another configuration
-// the compitability is checked againsed red,green,blue,buffer stencil and depth sizes
-bool EglConfig::compitableWith(const EglConfig& conf) const {
-
-    if(m_buffer_size != conf.m_buffer_size) return false;
-    if(m_red_size != conf.m_red_size) return false;
-    if(m_green_size != conf.m_green_size) return false;
-    if(m_blue_size != conf.m_blue_size) return false;
-    if(m_depth_size != conf.m_depth_size) return false;
-    if(m_stencil_size != conf.m_stencil_size) return false;
-
-    return true;
-}
-
-//following the sorting EGLconfig as in spec
-bool EglConfig::operator<(const EglConfig& conf) const {
-    //0
-    if(m_conformant != conf.m_conformant) {
-       return m_conformant != 0; //We want the conformant ones first
-    }
-    //1
-    if(m_caveat != conf.m_caveat) {
-       return m_caveat < conf.m_caveat; // EGL_NONE < EGL_SLOW_CONFIG < EGL_NON_CONFORMANT_CONFIG
-    }
-    //2 TODO:
-
-    //3
-    if(m_buffer_size != conf.m_buffer_size) {
-       return m_buffer_size < conf.m_buffer_size;
-    }
-    //4
-    if(m_sample_buffers_num != conf.m_sample_buffers_num) {
-       return m_sample_buffers_num < conf.m_sample_buffers_num;
-    }
-    //5
-    if(m_samples_per_pixel != conf.m_samples_per_pixel) {
-       return m_samples_per_pixel < conf.m_samples_per_pixel;
-    }
-    //6
-    if(m_depth_size != conf.m_depth_size) {
-       return m_depth_size < conf.m_depth_size;
-    }
-    //7
-    if(m_stencil_size != conf.m_stencil_size) {
-       return m_stencil_size < conf.m_stencil_size;
-    }
-    //8 implementation defined
-    if(m_native_visual_type != conf.m_native_visual_type) {
-       return m_native_visual_type < conf.m_native_visual_type;
-    }
-    //9
-    return m_config_id < conf.m_config_id;
-}
-
-bool EglConfig::operator>=(const EglConfig& conf) const {
-    return  !((*this) < conf);
-}
-#define CHECK_PROP(dummy,prop_name,op) \
-                  if((dummy.prop_name != EGL_DONT_CARE) && (dummy.prop_name op prop_name)) return false;
-#define CHECK_PROP_CAST(dummy,prop_name,op) \
-                  if((((EGLint)dummy.prop_name) != EGL_DONT_CARE) && (dummy.prop_name op prop_name)) return false;
-//checking if config stands for all the selection crateria of dummy as defined by EGL spec
-bool EglConfig::choosen(const EglConfig& dummy) {
-
-   //atleast
-   CHECK_PROP(dummy,m_buffer_size,>);
-   CHECK_PROP(dummy,m_red_size,>);
-   CHECK_PROP(dummy,m_green_size,>);
-   CHECK_PROP(dummy,m_blue_size,>);
-   CHECK_PROP(dummy,m_alpha_size,>);
-   CHECK_PROP(dummy,m_depth_size,>);
-   CHECK_PROP(dummy,m_stencil_size,>);
-   CHECK_PROP(dummy,m_sample_buffers_num,>);
-   CHECK_PROP(dummy,m_samples_per_pixel,>);
-
-   //exact
-   CHECK_PROP(dummy,m_frame_buffer_level,!=);
-   CHECK_PROP(dummy,m_config_id,!=);
-   CHECK_PROP(dummy,m_native_visual_type,!=);
-   CHECK_PROP(dummy,m_max_swap_interval ,!=);
-   CHECK_PROP(dummy,m_min_swap_interval ,!=);
-   CHECK_PROP(dummy,m_trans_red_val    ,!=);
-   CHECK_PROP(dummy,m_trans_green_val ,!=);
-   CHECK_PROP(dummy,m_trans_blue_val  ,!=);
-   //exact - when cast to EGLint is needed when comparing to EGL_DONT_CARE
-   CHECK_PROP_CAST(dummy,m_bind_to_tex_rgb ,!=);
-   CHECK_PROP_CAST(dummy,m_bind_to_tex_rgba,!=);
-   CHECK_PROP_CAST(dummy,m_caveat,!=);
-   CHECK_PROP_CAST(dummy,m_native_renderable ,!=);
-   CHECK_PROP_CAST(dummy,m_transparent_type   ,!=);
-
-   //mask
-   if(dummy.m_surface_type != EGL_DONT_CARE &&
-    ((dummy.m_surface_type & m_surface_type) != dummy.m_surface_type)) return false;
-
-   if(dummy.m_conformant != (EGLenum)EGL_DONT_CARE &&
-    ((dummy.m_conformant & m_conformant) != dummy.m_conformant)) return false;
-
-   if(dummy.m_renderable_type != EGL_DONT_CARE &&
-    ((dummy.m_renderable_type & m_renderable_type) != dummy.m_renderable_type)) return false;
-
-   //passed all checks
-   return true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglConfig.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglConfig.h
deleted file mode 100644
index 3d733f9..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglConfig.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_CONFIG_H
-#define EGL_CONFIG_H
-
-#include<EGL/egl.h>
-#include<EGL/eglinternalplatform.h>
-
-#define MIN_SWAP_INTERVAL 1
-#define MAX_SWAP_INTERVAL 10
-
-
-class EglConfig {
-public:
-    bool getConfAttrib(EGLint attrib,EGLint* val) const;
-    bool operator<(const EglConfig& conf)   const;
-    bool operator>=(const EglConfig& conf)  const;
-    bool compitableWith(const EglConfig& conf)  const; //compitability
-    bool choosen(const EglConfig& dummy);
-    EGLint surfaceType(){ return m_surface_type;};
-    EGLint id(){return m_config_id;};
-    EGLint nativeId(){return m_native_config_id;};
-    EGLNativePixelFormatType nativeConfig(){ return m_nativeFormat;}
-
-    EglConfig(EGLint red_size,
-              EGLint green_size,
-              EGLint blue_size,
-              EGLint alpha_size,
-              EGLenum  caveat,
-              EGLint config_id,
-              EGLint depth_size,
-              EGLint frame_buffer_level,
-              EGLint max_pbuffer_width,
-              EGLint max_pbuffer_height,
-              EGLint max_pbuffer_size,
-              EGLBoolean native_renderable,
-              EGLint renderable_type,
-              EGLint native_visual_id,
-              EGLint native_visual_type,
-              EGLint samples_per_pixel,
-              EGLint stencil_size,
-              EGLint surface_type,
-              EGLenum transparent_type,
-              EGLint trans_red_val,
-              EGLint trans_green_val,
-              EGLint trans_blue_val,
-              EGLNativePixelFormatType frmt);
-
-    EglConfig(const EglConfig& conf);
-
-    EglConfig(const EglConfig& conf,
-              EGLint config_id,
-              EGLint red_size,
-              EGLint green_size,
-              EGLint blue_size,
-              EGLint alpha_size);
-
-private:
-
-    const EGLint                    m_buffer_size;
-    const EGLint                    m_red_size;
-    const EGLint                    m_green_size;
-    const EGLint                    m_blue_size;
-    const EGLint                    m_alpha_size;
-    const EGLBoolean                m_bind_to_tex_rgb;
-    const EGLBoolean                m_bind_to_tex_rgba;
-    const EGLenum                   m_caveat;
-    const EGLint                    m_config_id;
-    const EGLint                    m_native_config_id;
-    const EGLint                    m_frame_buffer_level;
-    const EGLint                    m_depth_size;
-    const EGLint                    m_max_pbuffer_width;
-    const EGLint                    m_max_pbuffer_height;
-    const EGLint                    m_max_pbuffer_size;
-    const EGLint                    m_max_swap_interval;
-    const EGLint                    m_min_swap_interval;
-    const EGLBoolean                m_native_renderable;
-    const EGLint                    m_renderable_type;
-    const EGLint                    m_native_visual_id;
-    const EGLint                    m_native_visual_type;
-    const EGLint                    m_sample_buffers_num;
-    const EGLint                    m_samples_per_pixel;
-    const EGLint                    m_stencil_size;
-    const EGLint                    m_surface_type;
-    const EGLenum                   m_transparent_type;
-    const EGLint                    m_trans_red_val;
-    const EGLint                    m_trans_green_val;
-    const EGLint                    m_trans_blue_val;
-    const EGLenum                   m_conformant;
-
-    const EGLNativePixelFormatType  m_nativeFormat;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglContext.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglContext.cpp
deleted file mode 100644
index bc33f1f..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglContext.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglContext.h"
-#include "EglDisplay.h"
-#include "EglGlobalInfo.h"
-#include "EglOsApi.h"
-
-unsigned int EglContext::s_nextContextHndl = 0;
-
-extern EglGlobalInfo* g_eglInfo; // defined in EglImp.cpp
-
-bool EglContext::usingSurface(SurfacePtr surface) {
-  return surface.Ptr() == m_read.Ptr() || surface.Ptr() == m_draw.Ptr();
-}
-
-EglContext::EglContext(EglDisplay *dpy, EGLNativeContextType context,ContextPtr shared_context,
-            EglConfig* config,GLEScontext* glesCtx,GLESVersion ver,ObjectNameManager* mngr):
-m_dpy(dpy),
-m_native(context),
-m_config(config),
-m_glesContext(glesCtx),
-m_read(NULL),
-m_draw(NULL),
-m_version(ver),
-m_mngr(mngr)
-{
-    m_shareGroup = shared_context.Ptr()?
-                   mngr->attachShareGroup(context,shared_context->nativeType()):
-                   mngr->createShareGroup(context);
-    m_hndl = ++s_nextContextHndl;
-}
-
-EglContext::~EglContext()
-{
-  
-    //
-    // remove the context in the underlying OS layer
-    // 
-    EglOS::destroyContext(m_dpy->nativeType(),m_native);
-
-    //
-    // call the client-api to remove the GLES context
-    // 
-    g_eglInfo->getIface(version())->deleteGLESContext(m_glesContext);
-
-    if (m_mngr)
-    {
-        m_mngr->deleteShareGroup(m_native);
-    }
-}
-
-void EglContext::setSurfaces(SurfacePtr read,SurfacePtr draw)
-{
-    m_read = read;
-    m_draw = draw;
-}
-
-bool EglContext::getAttrib(EGLint attrib,EGLint* value) {
-    switch(attrib) {
-    case EGL_CONFIG_ID:
-        *value = m_config->id();
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
-
-bool EglContext::attachImage(unsigned int imageId,ImagePtr img){
-   if(m_attachedImages.find(imageId) == m_attachedImages.end()){
-       m_attachedImages[imageId] = img;
-       return true;
-   }
-   return false;
-}
-
-void EglContext::detachImage(unsigned int imageId){
-    m_attachedImages.erase(imageId);
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglContext.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglContext.h
deleted file mode 100644
index e4917c6..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglContext.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_CONTEXT_H
-#define EGL_CONTEXT_H
-
-#include <map>
-#include <EGL/egl.h>
-#include <GLcommon/GLutils.h>
-#include <GLcommon/SmartPtr.h>
-#include <GLcommon/TranslatorIfaces.h>
-#include <GLcommon/objectNameManager.h>
-
-
-#include "EglConfig.h"
-#include "EglSurface.h"
-
-
-
-class EglContext;
-typedef  SmartPtr<EglContext> ContextPtr;
-
-class EglDisplay;
-
-class EglContext {
-
-public:
-
-    EglContext(EglDisplay *dpy, EGLNativeContextType context,ContextPtr shared_context,EglConfig* config,GLEScontext* glesCtx,GLESVersion ver,ObjectNameManager* mngr);
-    bool usingSurface(SurfacePtr surface);
-    EGLNativeContextType nativeType(){return m_native;};
-    bool getAttrib(EGLint attrib,EGLint* value);
-    SurfacePtr read(){ return m_read;};
-    SurfacePtr draw(){ return m_draw;};
-    ShareGroupPtr getShareGroup(){return m_shareGroup;}
-    EglConfig* getConfig(){ return m_config;};
-    GLESVersion version(){return m_version;};
-    GLEScontext* getGlesContext(){return m_glesContext;}
-    void setSurfaces(SurfacePtr read,SurfacePtr draw);
-    unsigned int getHndl(){return m_hndl;}
-    bool attachImage(unsigned int imageId,ImagePtr img);
-    void detachImage(unsigned int imageId);
-
-    ~EglContext();
-
-private:
-    static unsigned int  s_nextContextHndl;
-    EglDisplay          *m_dpy;
-    EGLNativeContextType m_native;
-    EglConfig*           m_config;
-    GLEScontext*         m_glesContext;
-    ShareGroupPtr        m_shareGroup;
-    SurfacePtr           m_read;
-    SurfacePtr           m_draw;
-    GLESVersion          m_version;
-    ObjectNameManager    *m_mngr;
-    unsigned int         m_hndl;
-    ImagesHndlMap        m_attachedImages;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglDisplay.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglDisplay.cpp
deleted file mode 100644
index 46285db..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglDisplay.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglDisplay.h"
-#include "EglOsApi.h"
-#include <GLcommon/GLutils.h>
-#include <utils/threads.h>
-
-EglDisplay::EglDisplay(EGLNativeInternalDisplayType dpy,bool isDefault) :
-    m_dpy(dpy),
-    m_initialized(false),
-    m_configInitialized(false),
-    m_isDefault(isDefault),
-    m_nextEglImageId(0),
-    m_globalSharedContext(NULL)
-{
-    m_manager[GLES_1_1] = new ObjectNameManager(&m_globalNameSpace);
-    m_manager[GLES_2_0] = new ObjectNameManager(&m_globalNameSpace);
-};
-
-EglDisplay::~EglDisplay() {
-    android::Mutex::Autolock mutex(m_lock);
-
-    //
-    // Destroy the global context if one was created.
-    // (should be true for windows platform only)
-    //
-    if (m_globalSharedContext != NULL) {
-        EglOS::destroyContext( m_dpy, m_globalSharedContext);
-    }
-
-    if(m_isDefault) {
-        EglOS::releaseDisplay(m_dpy);
-    }
-
-
-    for(ConfigsList::iterator it = m_configs.begin(); it != m_configs.end(); it++) {
-        EglConfig* pConfig = *it;
-        if(pConfig) delete pConfig;
-    }
-
-    delete m_manager[GLES_1_1];
-    delete m_manager[GLES_2_0];
-    EglOS::deleteDisplay(m_dpy);
-}
-
-EGLNativeInternalDisplayType EglDisplay::nativeType(){return m_dpy;}
-
-void EglDisplay::initialize(int renderableType) {
-    android::Mutex::Autolock mutex(m_lock);
-    m_initialized = true;
-    initConfigurations(renderableType);
-    m_configInitialized = true;
-}
-
-bool EglDisplay::isInitialize() { return m_initialized;}
-
-void EglDisplay::terminate(){
-    android::Mutex::Autolock mutex(m_lock);
-     m_contexts.clear();
-     m_surfaces.clear();
-     m_initialized = false;
-}
-
-static bool compareEglConfigsPtrs(EglConfig* first,EglConfig* second) {
-    return *first < *second ;
-}
-
-void EglDisplay::addMissingConfigs(void)
-{
-    m_configs.sort(compareEglConfigsPtrs);
-
-    EGLConfig match;
-    EGLNativePixelFormatType tmpfrmt = PIXEL_FORMAT_INITIALIZER;
-    EglConfig dummy(5, 6, 5, 0,  // RGB_565
-                    EGL_DONT_CARE,EGL_DONT_CARE,
-                    16, // Depth
-                    EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,
-                    EGL_DONT_CARE, EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,EGL_DONT_CARE,tmpfrmt);
-
-    if(!doChooseConfigs(dummy, &match, 1))
-    {
-        return;
-    }
-
-    const EglConfig* config = (EglConfig*)match;
-
-    int bSize;
-    config->getConfAttrib(EGL_BUFFER_SIZE,&bSize);
-
-    if(bSize == 16)
-    {
-        return;
-    }
-
-    int max_config_id = 0;
-
-    for(ConfigsList::iterator it = m_configs.begin(); it != m_configs.end() ;it++) {
-        EGLint id;
-        (*it)->getConfAttrib(EGL_CONFIG_ID, &id);
-        if(id > max_config_id)
-            max_config_id = id;
-    }
-
-    EglConfig* newConfig = new EglConfig(*config,max_config_id+1,5,6,5,0);
-
-    m_configs.push_back(newConfig);
-}
-
-void EglDisplay::initConfigurations(int renderableType) {
-    if(m_configInitialized) return;
-    EglOS::queryConfigs(m_dpy,renderableType,m_configs);
-
-    addMissingConfigs();
-    m_configs.sort(compareEglConfigsPtrs);
-}
-
-EglConfig* EglDisplay::getConfig(EGLConfig conf) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    for(ConfigsList::iterator it = m_configs.begin(); it != m_configs.end() ;it++) {
-        if(static_cast<EGLConfig>(*it) == conf) {
-            return (*it);
-
-        }
-    }
-    return NULL;
-}
-
-SurfacePtr EglDisplay::getSurface(EGLSurface surface) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    SurfacesHndlMap::iterator it = m_surfaces.find(reinterpret_cast<unsigned int>(surface));
-    return it != m_surfaces.end() ?
-                                  (*it).second :
-                                   SurfacePtr(NULL);
-}
-
-ContextPtr EglDisplay::getContext(EGLContext ctx) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    ContextsHndlMap::iterator it = m_contexts.find(reinterpret_cast<unsigned int>(ctx));
-    return it != m_contexts.end() ?
-                                  (*it).second :
-                                   ContextPtr(NULL);
-}
-
-bool EglDisplay::removeSurface(EGLSurface s) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    SurfacesHndlMap::iterator it = m_surfaces.find(reinterpret_cast<unsigned int>(s));
-    if(it != m_surfaces.end()) {
-        m_surfaces.erase(it);
-        return true;
-    }
-    return false;
-}
-
-bool EglDisplay::removeSurface(SurfacePtr s) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    SurfacesHndlMap::iterator it;
-    for(it = m_surfaces.begin(); it!= m_surfaces.end();it++)
-    {
-        if((*it).second.Ptr() == s.Ptr()) {
-            break;
-        }
-    }
-    if(it != m_surfaces.end()) {
-        m_surfaces.erase(it);
-        return true;
-    }
-    return false;
-}
-
-bool EglDisplay::removeContext(EGLContext ctx) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    ContextsHndlMap::iterator it = m_contexts.find(reinterpret_cast<unsigned int>(ctx));
-    if(it != m_contexts.end()) {
-        m_contexts.erase(it);
-        return true;
-    }
-    return false;
-}
-
-bool EglDisplay::removeContext(ContextPtr ctx) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    ContextsHndlMap::iterator it;
-    for(it = m_contexts.begin(); it != m_contexts.end();it++) {
-        if((*it).second.Ptr() == ctx.Ptr()){
-            break;
-        }
-    }
-    if(it != m_contexts.end()) {
-        m_contexts.erase(it);
-        return true;
-    }
-    return false;
-}
-
-EglConfig* EglDisplay::getConfig(EGLint id) {
-    android::Mutex::Autolock mutex(m_lock);
-
-    for(ConfigsList::iterator it = m_configs.begin(); it != m_configs.end() ;it++) {
-        if((*it)->id() == id) {
-            return (*it);
-
-        }
-    }
-    return NULL;
-}
-
-int EglDisplay::getConfigs(EGLConfig* configs,int config_size) {
-    android::Mutex::Autolock mutex(m_lock);
-    int i = 0;
-    for(ConfigsList::iterator it = m_configs.begin(); it != m_configs.end() && i < config_size ;i++,it++) {
-        configs[i] = static_cast<EGLConfig>(*it);
-    }
-    return i;
-}
-
-int EglDisplay::chooseConfigs(const EglConfig& dummy,EGLConfig* configs,int config_size) {
-    android::Mutex::Autolock mutex(m_lock);
-    return doChooseConfigs(dummy, configs, config_size);
-}
-
-int EglDisplay::doChooseConfigs(const EglConfig& dummy,EGLConfig* configs,int config_size) {
-    int added = 0;
-    for(ConfigsList::iterator it = m_configs.begin(); it != m_configs.end() && (added < config_size || !configs);it++) {
-
-       if( (*it)->choosen(dummy)){
-            if(configs) {
-                configs[added] = static_cast<EGLConfig>(*it);
-            }
-            added++;
-       }
-    }
-    //no need to sort since the configurations are saved already in sorted maner
-    return added;
-}
-
-EGLSurface EglDisplay::addSurface(SurfacePtr s ) {
-    android::Mutex::Autolock mutex(m_lock);
-   unsigned int hndl = s.Ptr()->getHndl();
-   EGLSurface ret =reinterpret_cast<EGLSurface> (hndl);
-
-   if(m_surfaces.find(hndl) != m_surfaces.end()) {
-       return ret;
-   }
-
-   m_surfaces[hndl] = s;
-   return ret;
-}
-
-EGLContext EglDisplay::addContext(ContextPtr ctx ) {
-    android::Mutex::Autolock mutex(m_lock);
-
-   unsigned int hndl = ctx.Ptr()->getHndl();
-   EGLContext ret    = reinterpret_cast<EGLContext> (hndl);
-
-   if(m_contexts.find(hndl) != m_contexts.end()) {
-       return ret;
-   }
-   m_contexts[hndl] = ctx;
-   return ret;
-}
-
-
-EGLImageKHR EglDisplay::addImageKHR(ImagePtr img) {
-    android::Mutex::Autolock mutex(m_lock);
-    do { ++m_nextEglImageId; } while(m_nextEglImageId == 0);
-    img->imageId = m_nextEglImageId;
-    m_eglImages[m_nextEglImageId] = img;
-    return reinterpret_cast<EGLImageKHR>(m_nextEglImageId);
-}
-
-ImagePtr EglDisplay::getImage(EGLImageKHR img) {
-    android::Mutex::Autolock mutex(m_lock);
-    ImagesHndlMap::iterator i( m_eglImages.find((unsigned int)img) );
-    return (i != m_eglImages.end()) ? (*i).second :ImagePtr(NULL);
-}
-
-bool EglDisplay:: destroyImageKHR(EGLImageKHR img) {
-    android::Mutex::Autolock mutex(m_lock);
-    ImagesHndlMap::iterator i( m_eglImages.find((unsigned int)img) );
-    if (i != m_eglImages.end())
-    {
-        m_eglImages.erase(i);
-        return true;
-    }
-    return false;
-}
-
-EGLNativeContextType EglDisplay::getGlobalSharedContext(){
-    android::Mutex::Autolock mutex(m_lock);
-#ifndef _WIN32
-    // find an existing OpenGL context to share with, if exist
-    EGLNativeContextType ret = 
-        (EGLNativeContextType)m_manager[GLES_1_1]->getGlobalContext();
-    if (!ret)
-        ret = (EGLNativeContextType)m_manager[GLES_2_0]->getGlobalContext();
-    return ret;
-#else
-    if (!m_globalSharedContext) {
-        //
-        // On windows we create a dummy context to serve as the
-        // "global context" which all contexts share with.
-        // This is because on windows it is not possible to share
-        // with a context which is already current. This dummy context
-        // will never be current to any thread so it is safe to share with.
-        // Create that context using the first config
-        if (m_configs.size() < 1) {
-            // Should not happen! config list should be initialized at this point
-            return NULL;
-        }
-        EglConfig *cfg = (*m_configs.begin());
-        m_globalSharedContext = EglOS::createContext(m_dpy,cfg,NULL);
-    }
-
-    return m_globalSharedContext;
-#endif
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglDisplay.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglDisplay.h
deleted file mode 100644
index 587e92a..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglDisplay.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_DISPLAY_H
-#define EGL_DISPLAY_H
-
-#include <list>
-#include <map>
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
-#include <utils/threads.h>
-#include <GLcommon/SmartPtr.h>
-
-#include "EglConfig.h"
-#include "EglContext.h"
-#include "EglSurface.h"
-#include "EglWindowSurface.h"
-
-
-
-typedef  std::list<EglConfig*>  ConfigsList;
-typedef  std::map< unsigned int, ContextPtr>     ContextsHndlMap;
-typedef  std::map< unsigned int, SurfacePtr>     SurfacesHndlMap;
-
-class EglDisplay {
-public:
-
-
-    EglDisplay(EGLNativeInternalDisplayType dpy,bool isDefault = true);
-    EGLNativeInternalDisplayType nativeType();
-    int nConfigs(){ return m_configs.size();}
-    int getConfigs(EGLConfig* configs,int config_size);
-    int chooseConfigs(const EglConfig& dummy,EGLConfig* configs,int config_size);
-    EglConfig* getConfig(EGLConfig conf);
-    EglConfig* getConfig(EGLint id );
-
-    EGLSurface addSurface(SurfacePtr s );
-    SurfacePtr getSurface(EGLSurface surface);
-    bool removeSurface(EGLSurface s);
-    bool removeSurface(SurfacePtr s);
-
-    EGLContext addContext(ContextPtr ctx );
-    ContextPtr getContext(EGLContext ctx);
-    bool removeContext(EGLContext ctx);
-    bool removeContext(ContextPtr ctx);
-    ObjectNameManager* getManager(GLESVersion ver){ return m_manager[ver];}
-
-    ~EglDisplay();
-    void initialize(int renderableType);
-    void terminate();
-    bool isInitialize();
-
-    ImagePtr getImage(EGLImageKHR img);
-    EGLImageKHR addImageKHR(ImagePtr);
-    bool destroyImageKHR(EGLImageKHR img);
-    EGLNativeContextType getGlobalSharedContext();
-
-private:
-   int doChooseConfigs(const EglConfig& dummy,EGLConfig* configs,int config_size);
-   void addMissingConfigs(void);
-   void initConfigurations(int renderableType);
-
-   EGLNativeInternalDisplayType   m_dpy;
-   bool                           m_initialized;
-   bool                           m_configInitialized;
-   bool                           m_isDefault;
-   ConfigsList                    m_configs;
-   ContextsHndlMap                m_contexts;
-   SurfacesHndlMap                m_surfaces;
-   GlobalNameSpace                m_globalNameSpace;
-   ObjectNameManager              *m_manager[MAX_GLES_VERSION];
-   android::Mutex                 m_lock;
-   ImagesHndlMap                  m_eglImages;
-   unsigned int                   m_nextEglImageId;
-   EGLNativeContextType           m_globalSharedContext;
-};
-
-#endif
-
-
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglGlobalInfo.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglGlobalInfo.cpp
deleted file mode 100644
index f39b36e..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglGlobalInfo.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglGlobalInfo.h"
-#include "EglOsApi.h"
-#include <string.h>
-#include "ClientAPIExts.h"
-
-int EglGlobalInfo::m_refCount = 0;
-EglGlobalInfo* EglGlobalInfo::m_singleton = NULL;
-
-
-EglGlobalInfo::EglGlobalInfo(){
-    m_default = EglOS::getDefaultDisplay();
-#ifdef _WIN32
-    EglOS::initPtrToWglFunctions();
-#endif
-    memset(m_gles_ifaces,0,sizeof(m_gles_ifaces));
-    memset(m_gles_extFuncs_inited,0,sizeof(m_gles_extFuncs_inited));
-}
-
-EglGlobalInfo* EglGlobalInfo::getInstance() {
-    if(!m_singleton) {
-        m_singleton = new EglGlobalInfo();
-        m_refCount = 0;
-    }
-    m_refCount++;
-    return m_singleton;
-}
-
-void EglGlobalInfo::delInstance() {
-    m_refCount--;
-    if(m_refCount <= 0 && m_singleton) {
-        delete m_singleton;
-        m_singleton = NULL;
-    }
-
-}
-
-EglDisplay* EglGlobalInfo::addDisplay(EGLNativeDisplayType dpy,EGLNativeInternalDisplayType idpy) {
-    //search if it is not already exists
-    android::Mutex::Autolock mutex(m_lock);
-    for(DisplaysMap::iterator it = m_displays.begin(); it != m_displays.end() ;it++) {
-        if((*it).second == dpy) return (*it).first;
-    }
-
-    EglDisplay* p_dpy = new EglDisplay(idpy);
-    if(p_dpy) {
-        m_displays[p_dpy] = dpy;
-        return p_dpy;
-    }
-    return NULL;
-}
-
-bool  EglGlobalInfo::removeDisplay(EGLDisplay dpy) {
-    android::Mutex::Autolock mutex(m_lock);
-    for(DisplaysMap::iterator it = m_displays.begin(); it != m_displays.end() ;it++) {
-        if(static_cast<EGLDisplay>((*it).first) == dpy) {
-            delete (*it).first;
-            m_displays.erase(it);
-            return true;
-        }
-    }
-    return false;
-}
-
-EglDisplay* EglGlobalInfo::getDisplay(EGLNativeDisplayType dpy) {
-    android::Mutex::Autolock mutex(m_lock);
-    for(DisplaysMap::iterator it = m_displays.begin(); it != m_displays.end() ;it++) {
-        if((*it).second == dpy) return (*it).first;
-    }
-    return NULL;
-}
-
-EglDisplay* EglGlobalInfo::getDisplay(EGLDisplay dpy) {
-    android::Mutex::Autolock mutex(m_lock);
-    DisplaysMap::iterator it = m_displays.find(static_cast<EglDisplay*>(dpy));
-    return (it != m_displays.end() ? (*it).first : NULL);
-}
-
-EGLNativeInternalDisplayType EglGlobalInfo::generateInternalDisplay(EGLNativeDisplayType dpy){
-    return EglOS::getInternalDisplay(dpy);
-}
-
-void EglGlobalInfo::initClientExtFuncTable(GLESVersion ver)
-{
-    android::Mutex::Autolock mutex(m_lock);
-    if (!m_gles_extFuncs_inited[ver]) {
-        ClientAPIExts::initClientFuncs(m_gles_ifaces[ver], (int)ver - 1);
-        m_gles_extFuncs_inited[ver] = true;
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglGlobalInfo.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglGlobalInfo.h
deleted file mode 100644
index ec07ffe..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglGlobalInfo.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_GLOBAL_INFO
-#define EGL_GLOBAL_INFO
-
-#include <list>
-#include <EGL/egl.h>
-#include <utils/threads.h>
-#include <GLcommon/TranslatorIfaces.h>
-#include "EglDisplay.h"
-#include "EglConfig.h"
-#include "EglContext.h"
-
-typedef std::map<EglDisplay*,EGLNativeDisplayType>DisplaysMap;
-
-
-class EglGlobalInfo {
-
-public:
-    EglDisplay* addDisplay(EGLNativeDisplayType dpy,EGLNativeInternalDisplayType idpy);
-    EglDisplay* getDisplay(EGLNativeDisplayType dpy);
-    EglDisplay* getDisplay(EGLDisplay dpy);
-    bool removeDisplay(EGLDisplay dpy);
-    EGLNativeInternalDisplayType getDefaultNativeDisplay(){ return m_default;};
-    EGLNativeInternalDisplayType generateInternalDisplay(EGLNativeDisplayType dpy);
-
-    void setIface(GLESiface* iface,GLESVersion ver) { m_gles_ifaces[ver] = iface;};
-    GLESiface* getIface(GLESVersion ver){ return m_gles_ifaces[ver];}
-
-    int  nDisplays() const { return m_displays.size();};
-
-    void initClientExtFuncTable(GLESVersion ver);
-
-    static EglGlobalInfo* getInstance();
-    static void delInstance();
-
-private:
-    EglGlobalInfo();
-    ~EglGlobalInfo(){};
-
-    static EglGlobalInfo*          m_singleton;
-    static int                     m_refCount;
-
-    DisplaysMap                    m_displays;
-    EGLNativeInternalDisplayType   m_default;
-    GLESiface*                     m_gles_ifaces[MAX_GLES_VERSION];
-    bool                           m_gles_extFuncs_inited[MAX_GLES_VERSION];
-    android::Mutex                 m_lock;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglImp.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglImp.cpp
deleted file mode 100644
index 92cf065..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglImp.cpp
+++ /dev/null
@@ -1,1074 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-#ifdef _WIN32
-#undef EGLAPI
-#define EGLAPI __declspec(dllexport)
-#endif
-
-#include <EGL/egl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdio.h>
-#include "ThreadInfo.h"
-#include <GLcommon/TranslatorIfaces.h>
-#include <OpenglOsUtils/osDynLibrary.h>
-
-#include "EglWindowSurface.h"
-#include "EglPbufferSurface.h"
-#include "EglPixmapSurface.h"
-#include "EglGlobalInfo.h"
-#include "EglThreadInfo.h"
-#include "EglValidate.h"
-#include "EglDisplay.h"
-#include "EglContext.h"
-#include "EglConfig.h"
-#include "EglOsApi.h"
-#include "ClientAPIExts.h"
-
-#define MAJOR          1
-#define MINOR          4
-
-//declarations
-
-EglImage *attachEGLImage(unsigned int imageId);
-void detachEGLImage(unsigned int imageId);
-GLEScontext* getGLESContext();
-
-#define tls_thread  EglThreadInfo::get()
-
-EglGlobalInfo* g_eglInfo = NULL;
-android::Mutex  s_eglLock;
-
-void initGlobalInfo()
-{
-    android::Mutex::Autolock mutex(s_eglLock);
-    if (!g_eglInfo) {
-        g_eglInfo = EglGlobalInfo::getInstance();
-    } 
-}
-
-static EGLiface            s_eglIface = {
-    getGLESContext    : getGLESContext,
-    eglAttachEGLImage:attachEGLImage,
-    eglDetachEGLImage:detachEGLImage
-};
-
-/*****************************************  supported extentions  ***********************************************************************/
-
-//extentions
-#define EGL_EXTENTIONS 2
-
-//decleration
-EGLImageKHR eglCreateImageKHR(EGLDisplay display, EGLContext context, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
-EGLBoolean eglDestroyImageKHR(EGLDisplay display, EGLImageKHR image);
-
-// extentions descriptors
-static ExtentionDescriptor s_eglExtentions[] = {
-                                                   {"eglCreateImageKHR" ,(__eglMustCastToProperFunctionPointerType)eglCreateImageKHR},
-                                                   {"eglDestroyImageKHR",(__eglMustCastToProperFunctionPointerType)eglDestroyImageKHR}
-                                               };
-static int s_eglExtentionsSize = sizeof(s_eglExtentions) /
-                                 sizeof(ExtentionDescriptor);
-
-/****************************************************************************************************************************************/
-//macros for accessing global egl info & tls objects
-
-#define CURRENT_THREAD() do {} while (0);
-
-#define RETURN_ERROR(ret,err)                                \
-        CURRENT_THREAD()                                     \
-        if(tls_thread->getError() == EGL_SUCCESS) {          \
-          tls_thread->setError(err);                         \
-        }                                                    \
-        return ret;
-
-#define VALIDATE_DISPLAY_RETURN(EGLDisplay,ret)              \
-        EglDisplay* dpy = g_eglInfo->getDisplay(EGLDisplay); \
-        if(!dpy){                                            \
-            RETURN_ERROR(ret,EGL_BAD_DISPLAY);               \
-        }                                                    \
-        if(!dpy->isInitialize()) {                           \
-            RETURN_ERROR(ret,EGL_NOT_INITIALIZED);           \
-        }
-
-#define VALIDATE_CONFIG_RETURN(EGLConfig,ret)                \
-        EglConfig* cfg = dpy->getConfig(EGLConfig);          \
-        if(!cfg) {                                           \
-            RETURN_ERROR(ret,EGL_BAD_CONFIG);                \
-        }
-
-#define VALIDATE_SURFACE_RETURN(EGLSurface,ret,varName)      \
-        SurfacePtr varName = dpy->getSurface(EGLSurface);    \
-        if(!varName.Ptr()) {                                 \
-            RETURN_ERROR(ret,EGL_BAD_SURFACE);               \
-        }
-
-#define VALIDATE_CONTEXT_RETURN(EGLContext,ret)              \
-        ContextPtr ctx = dpy->getContext(EGLContext);        \
-        if(!ctx.Ptr()) {                                     \
-            RETURN_ERROR(ret,EGL_BAD_CONTEXT);               \
-        }
-
-
-#define VALIDATE_DISPLAY(EGLDisplay) \
-        VALIDATE_DISPLAY_RETURN(EGLDisplay,EGL_FALSE)
-
-#define VALIDATE_CONFIG(EGLConfig)   \
-        VALIDATE_CONFIG_RETURN(EGLConfig,EGL_FALSE)
-
-#define VALIDATE_SURFACE(EGLSurface,varName) \
-        VALIDATE_SURFACE_RETURN(EGLSurface,EGL_FALSE,varName)
-
-#define VALIDATE_CONTEXT(EGLContext) \
-        VALIDATE_CONTEXT_RETURN(EGLContext,EGL_FALSE)
-
-
-GLEScontext* getGLESContext()
-{
-    ThreadInfo* thread  = getThreadInfo();
-    return thread->glesContext;
-}
-
-EGLAPI EGLint EGLAPIENTRY eglGetError(void) {
-    CURRENT_THREAD();
-    EGLint err = tls_thread->getError();
-    tls_thread->setError(EGL_SUCCESS);
-    return err;
-}
-
-EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id) {
-    EglDisplay* dpy = NULL;
-    EGLNativeInternalDisplayType internalDisplay = NULL;
-
-    initGlobalInfo();
-
-    if ((dpy = g_eglInfo->getDisplay(display_id))) {
-        return dpy;
-    } else {
-
-        if( display_id == EGL_DEFAULT_DISPLAY) {
-            internalDisplay = g_eglInfo->getDefaultNativeDisplay();
-        } else {
-            internalDisplay = g_eglInfo->generateInternalDisplay(display_id);
-        }
-
-        dpy = g_eglInfo->addDisplay(display_id,internalDisplay);
-        if(dpy) return dpy;
-        return EGL_NO_DISPLAY;
-    }
-}
-
-
-#define TRANSLATOR_GETIFACE_NAME "__translator_getIfaces"
-
-static __translator_getGLESIfaceFunc loadIfaces(const char* libName){
-    osUtils::dynLibrary* libGLES = osUtils::dynLibrary::open(libName);
-
-    if(!libGLES) return NULL;
-    __translator_getGLESIfaceFunc func =  (__translator_getGLESIfaceFunc)libGLES->findSymbol(TRANSLATOR_GETIFACE_NAME);
-    if(!func) return NULL;
-    return func;
-}
-
-#ifdef _WIN32
-#define LIB_GLES_CM_NAME "libGLES_CM_translator"
-#define LIB_GLES_V2_NAME "libGLES_V2_translator"
-#elif __linux__
-#define LIB_GLES_CM_NAME "libGLES_CM_translator.so"
-#define LIB_GLES_V2_NAME "libGLES_V2_translator.so"
-#elif __APPLE__
-#define LIB_GLES_CM_NAME "libGLES_CM_translator.dylib"
-#define LIB_GLES_V2_NAME "libGLES_V2_translator.dylib"
-#endif
-
-EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay display, EGLint *major, EGLint *minor) {
-
-    initGlobalInfo();
-
-    EglDisplay* dpy = g_eglInfo->getDisplay(display);
-    if(!dpy) {
-         RETURN_ERROR(EGL_FALSE,EGL_BAD_DISPLAY);
-    }
-
-    if(major) *major = MAJOR;
-    if(minor) *minor = MINOR;
-
-    __translator_getGLESIfaceFunc func  = NULL;
-    int renderableType = EGL_OPENGL_ES_BIT;
-
-    if(!g_eglInfo->getIface(GLES_1_1)) {
-        func  = loadIfaces(LIB_GLES_CM_NAME);
-        if(func){
-            g_eglInfo->setIface(func(&s_eglIface),GLES_1_1);
-        } else {
-           fprintf(stderr,"could not find ifaces for GLES CM 1.1\n");
-           return EGL_FALSE;
-        }
-    }
-    if(!g_eglInfo->getIface(GLES_2_0)) {
-        func  = loadIfaces(LIB_GLES_V2_NAME);
-        if(func){
-            renderableType |= EGL_OPENGL_ES2_BIT;
-            g_eglInfo->setIface(func(&s_eglIface),GLES_2_0);
-        } else {
-           fprintf(stderr,"could not find ifaces for GLES 2.0\n");
-        }
-    }
-    dpy->initialize(renderableType);
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay display) {
-    VALIDATE_DISPLAY(display);
-    dpy->terminate();
-    return EGL_TRUE;
-}
-
-EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay display, EGLint name) {
-    VALIDATE_DISPLAY(display);
-    static const char* vendor     = "Google";
-    static const char* version    = "1.4";
-    static const char* extensions = "EGL_KHR_image_base EGL_KHR_gl_texture_2D_image";
-    if(!EglValidate::stringName(name)) {
-        RETURN_ERROR(NULL,EGL_BAD_PARAMETER);
-    }
-    switch(name) {
-    case EGL_VENDOR:
-        return vendor;
-    case EGL_VERSION:
-        return version;
-    case EGL_EXTENSIONS:
-        return extensions;
-    }
-    return NULL;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay display, EGLConfig *configs,
-             EGLint config_size, EGLint *num_config) {
-    VALIDATE_DISPLAY(display);
-    if(!num_config) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_PARAMETER);
-    }
-
-    if(configs == NULL) {
-        *num_config = dpy->nConfigs();
-    } else {
-        *num_config = dpy->getConfigs(configs,config_size);
-    }
-
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay display, const EGLint *attrib_list,
-               EGLConfig *configs, EGLint config_size,
-               EGLint *num_config) {
-    VALIDATE_DISPLAY(display);
-    if(!num_config) {
-         RETURN_ERROR(EGL_FALSE,EGL_BAD_PARAMETER);
-    }
-
-        //selection defaults
-        EGLint      surface_type       = EGL_WINDOW_BIT;
-        EGLint      renderable_type    = EGL_OPENGL_ES_BIT;
-        EGLBoolean  bind_to_tex_rgb    = EGL_DONT_CARE;
-        EGLBoolean  bind_to_tex_rgba   = EGL_DONT_CARE;
-        EGLenum     caveat             = EGL_DONT_CARE;
-        EGLint      config_id          = EGL_DONT_CARE;
-        EGLBoolean  native_renderable  = EGL_DONT_CARE;
-        EGLint      native_visual_type = EGL_DONT_CARE;
-        EGLint      max_swap_interval  = EGL_DONT_CARE;
-        EGLint      min_swap_interval  = EGL_DONT_CARE;
-        EGLint      trans_red_val      = EGL_DONT_CARE;
-        EGLint      trans_green_val    = EGL_DONT_CARE;
-        EGLint      trans_blue_val     = EGL_DONT_CARE;
-        EGLenum     transparent_type   = EGL_NONE;
-        EGLint      buffer_size        = 0;
-        EGLint      red_size           = 0;
-        EGLint      green_size         = 0;
-        EGLint      blue_size          = 0;
-        EGLint      alpha_size         = 0;
-        EGLint      depth_size         = 0;
-        EGLint      frame_buffer_level = 0;
-        EGLint      sample_buffers_num = 0;
-        EGLint      samples_per_pixel  = 0;
-        EGLint      stencil_size       = 0;
-
-    if(!EglValidate::noAttribs(attrib_list)) { //there are attribs
-        int i = 0 ;
-        bool hasConfigId = false;
-        while(attrib_list[i] != EGL_NONE && !hasConfigId) {
-            switch(attrib_list[i]) {
-            case EGL_MAX_PBUFFER_WIDTH:
-            case EGL_MAX_PBUFFER_HEIGHT:
-            case EGL_MAX_PBUFFER_PIXELS:
-            case EGL_NATIVE_VISUAL_ID:
-                break; //we dont care from those selection crateria
-            case EGL_LEVEL:
-                if(attrib_list[i+1] == EGL_DONT_CARE) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                frame_buffer_level = attrib_list[i+1];
-                break;
-            case EGL_BUFFER_SIZE:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                buffer_size = attrib_list[i+1];
-                break;
-            case EGL_RED_SIZE:
-                if(attrib_list[i+1] < 0) {
-                     RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                red_size = attrib_list[i+1];
-                break;
-            case EGL_GREEN_SIZE:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                green_size = attrib_list[i+1];
-                break;
-            case EGL_BLUE_SIZE:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                blue_size = attrib_list[i+1];
-                break;
-            case EGL_ALPHA_SIZE:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                alpha_size = attrib_list[i+1];
-                break;
-            case EGL_BIND_TO_TEXTURE_RGB:
-                bind_to_tex_rgb = attrib_list[i+1];
-                break;
-            case EGL_BIND_TO_TEXTURE_RGBA:
-                bind_to_tex_rgba = attrib_list[i+1];
-                break;
-            case EGL_CONFIG_CAVEAT:
-                if(attrib_list[i+1] != EGL_NONE && attrib_list[i+1] != EGL_SLOW_CONFIG && attrib_list[i+1] != EGL_NON_CONFORMANT_CONFIG) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                caveat = attrib_list[i+1];
-                break;
-            case EGL_CONFIG_ID:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                config_id = attrib_list[i+1];
-                hasConfigId = true;
-                break;
-            case EGL_DEPTH_SIZE:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                depth_size = attrib_list[i+1];
-                break;
-            case EGL_MAX_SWAP_INTERVAL:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                max_swap_interval = attrib_list[i+1];
-                break;
-            case EGL_MIN_SWAP_INTERVAL:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                min_swap_interval = attrib_list[i+1];
-                break;
-            case EGL_NATIVE_RENDERABLE:
-                native_renderable = attrib_list[i+1];
-                break;
-            case EGL_RENDERABLE_TYPE:
-                renderable_type = attrib_list[i+1];
-                break;
-            case EGL_NATIVE_VISUAL_TYPE:
-                native_visual_type = attrib_list[i+1];
-                break;
-                if(attrib_list[i+1] < 0 || attrib_list[i+1] > 1 ) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-            case EGL_SAMPLE_BUFFERS:
-                sample_buffers_num = attrib_list[i+1];
-                break;
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-            case EGL_SAMPLES:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                samples_per_pixel = attrib_list[i+1];
-                break;
-            case EGL_STENCIL_SIZE:
-                if(attrib_list[i+1] < 0) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                stencil_size = attrib_list[i+1];
-                break;
-            case EGL_SURFACE_TYPE:
-                surface_type = attrib_list[i+1];
-                break;
-            case EGL_TRANSPARENT_TYPE:
-                if(attrib_list[i+1] != EGL_NONE && attrib_list[i+1] != EGL_TRANSPARENT_RGB ) {
-                    RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-                }
-                transparent_type = attrib_list[i+1];
-                break;
-            case EGL_TRANSPARENT_RED_VALUE:
-                trans_red_val = attrib_list[i+1];
-                break;
-            case EGL_TRANSPARENT_GREEN_VALUE:
-                trans_green_val = attrib_list[i+1];
-                break;
-            case EGL_TRANSPARENT_BLUE_VALUE:
-                trans_blue_val = attrib_list[i+1];
-                break;
-            default:
-                RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-            }
-            i+=2;
-        }
-        if(hasConfigId) {
-            EglConfig* pConfig = dpy->getConfig(config_id);
-            if(pConfig) {
-                if(configs) {
-                    configs[0]  = static_cast<EGLConfig>(pConfig);
-                }
-                *num_config = 1;
-                return EGL_TRUE;
-            } else {
-                RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-            }
-        }
-    }
-    EGLNativePixelFormatType tmpfrmt = PIXEL_FORMAT_INITIALIZER;
-    EglConfig dummy(red_size,green_size,blue_size,alpha_size,caveat,config_id,depth_size,
-                    frame_buffer_level,0,0,0,native_renderable,renderable_type,0,native_visual_type,
-                    samples_per_pixel,stencil_size,surface_type,transparent_type,
-                    trans_red_val,trans_green_val,trans_blue_val,tmpfrmt);
-
-    *num_config = dpy->chooseConfigs(dummy,configs,config_size);
-
-
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay display, EGLConfig config,
-                  EGLint attribute, EGLint *value) {
-    VALIDATE_DISPLAY(display);
-    VALIDATE_CONFIG(config);
-    if(!EglValidate::confAttrib(attribute)){
-         RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-    }
-    return cfg->getConfAttrib(attribute,value)? EGL_TRUE:EGL_FALSE;
-}
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay display, EGLConfig config,
-                  EGLNativeWindowType win,
-                  const EGLint *attrib_list) {
-    VALIDATE_DISPLAY_RETURN(display,EGL_NO_SURFACE);
-    VALIDATE_CONFIG_RETURN(config,EGL_NO_SURFACE);
-
-    if(!(cfg->surfaceType() & EGL_WINDOW_BIT)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_MATCH);
-    }
-    if(!EglOS::validNativeWin(dpy->nativeType(),win)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_NATIVE_WINDOW);
-    }
-    if(!EglValidate::noAttribs(attrib_list)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ATTRIBUTE);
-    }
-    if(EglWindowSurface::alreadyAssociatedWithConfig(win)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-
-    unsigned int width,height;
-    if(!EglOS::checkWindowPixelFormatMatch(dpy->nativeType(),win,cfg,&width,&height)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-    SurfacePtr wSurface(new EglWindowSurface(dpy, win,cfg,width,height));
-    if(!wSurface.Ptr()) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-    return dpy->addSurface(wSurface);
-}
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay display, EGLConfig config,
-                   const EGLint *attrib_list) {
-    VALIDATE_DISPLAY_RETURN(display,EGL_NO_SURFACE);
-    VALIDATE_CONFIG_RETURN(config,EGL_NO_SURFACE);
-    if(!(cfg->surfaceType() & EGL_PBUFFER_BIT)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_MATCH);
-    }
-
-
-    SurfacePtr pbSurface(new EglPbufferSurface(dpy,cfg));
-    if(!pbSurface.Ptr()) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-
-    if(!EglValidate::noAttribs(attrib_list)) { //there are attribs
-        int i = 0 ;
-        while(attrib_list[i] != EGL_NONE) {
-            if(!pbSurface->setAttrib(attrib_list[i],attrib_list[i+1])) {
-                RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ATTRIBUTE);
-            }
-            i+=2;
-        }
-    }
-
-    EGLint width,height,largest,texTarget,texFormat;
-    EglPbufferSurface* tmpPbSurfacePtr = static_cast<EglPbufferSurface*>(pbSurface.Ptr());
-    tmpPbSurfacePtr->getDim(&width,&height,&largest);
-    tmpPbSurfacePtr->getTexInfo(&texTarget,&texFormat);
-
-    if(!EglValidate::pbufferAttribs(width,height,texFormat == EGL_NO_TEXTURE,texTarget == EGL_NO_TEXTURE)) {
-        //TODO: RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_VALUE); dont have bad_value
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ATTRIBUTE);
-    }
-
-    EGLNativeSurfaceType pb = EglOS::createPbufferSurface(dpy->nativeType(),cfg,tmpPbSurfacePtr);
-    if(!pb) {
-        //TODO: RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_VALUE); dont have bad value
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ATTRIBUTE);
-    }
-
-    tmpPbSurfacePtr->setNativePbuffer(pb);
-    return dpy->addSurface(pbSurface);
-}
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay display, EGLConfig config,
-                  EGLNativePixmapType pixmap,
-                  const EGLint *attrib_list) {
-    VALIDATE_DISPLAY_RETURN(display,EGL_NO_SURFACE);
-    VALIDATE_CONFIG_RETURN(config,EGL_NO_SURFACE);
-    if(!(cfg->surfaceType() & EGL_PIXMAP_BIT)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_MATCH);
-    }
-    if(!EglValidate::noAttribs(attrib_list)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ATTRIBUTE);
-    }
-    if(EglPixmapSurface::alreadyAssociatedWithConfig(pixmap)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-
-    unsigned int width,height;
-    if(!EglOS::checkPixmapPixelFormatMatch(dpy->nativeType(),pixmap,cfg,&width,&height)) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-    SurfacePtr pixSurface(new EglPixmapSurface(dpy, pixmap,cfg));
-    if(!pixSurface.Ptr()) {
-        RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC);
-    }
-
-    return dpy->addSurface(pixSurface);
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay display, EGLSurface surface) {
-    VALIDATE_DISPLAY(display);
-    SurfacePtr srfc = dpy->getSurface(surface);
-    if(!srfc.Ptr()) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-    }
-
-    dpy->removeSurface(surface);
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay display, EGLSurface surface,
-               EGLint attribute, EGLint *value) {
-   VALIDATE_DISPLAY(display);
-   VALIDATE_SURFACE(surface,srfc);
-
-   if(!srfc->getAttrib(attribute,value)) {
-       RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-   }
-   return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay display, EGLSurface surface,
-                EGLint attribute, EGLint value) {
-   VALIDATE_DISPLAY(display);
-   VALIDATE_SURFACE(surface,srfc);
-   if(!srfc->setAttrib(attribute,value)) {
-       RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-   }
-   return EGL_TRUE;
-}
-
-EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay display, EGLConfig config,
-                EGLContext share_context,
-                const EGLint *attrib_list) {
-    VALIDATE_DISPLAY_RETURN(display,EGL_NO_CONTEXT);
-    VALIDATE_CONFIG_RETURN(config,EGL_NO_CONTEXT);
-
-    GLESVersion version = GLES_1_1;
-    if(!EglValidate::noAttribs(attrib_list)) {
-        int i = 0;
-        while(attrib_list[i] != EGL_NONE) {
-            switch(attrib_list[i]) {
-            case EGL_CONTEXT_CLIENT_VERSION:
-                if(attrib_list[i+1] == 2) {
-                    version = GLES_2_0;
-                } else {
-                    version = GLES_1_1;
-                }
-                break;
-            default:
-                RETURN_ERROR(EGL_NO_CONTEXT,EGL_BAD_ATTRIBUTE);
-            }
-            i+=2;
-        }
-    }
-    GLESiface* iface = g_eglInfo->getIface(version);
-    GLEScontext* glesCtx = NULL;
-    if(iface) {
-        glesCtx = iface->createGLESContext();
-    } else { // there is no interface for this gles version
-                RETURN_ERROR(EGL_NO_CONTEXT,EGL_BAD_ATTRIBUTE);
-    }
-
-    ContextPtr sharedCtxPtr;
-    EGLNativeContextType nativeShared = NULL;
-    if(share_context != EGL_NO_CONTEXT) {
-        sharedCtxPtr = dpy->getContext(share_context);
-        if(!sharedCtxPtr.Ptr()) {
-            RETURN_ERROR(EGL_NO_CONTEXT,EGL_BAD_CONTEXT);
-        }
-        nativeShared = sharedCtxPtr->nativeType();
-    }
-
-    EGLNativeContextType globalSharedContext = dpy->getGlobalSharedContext();
-    EGLNativeContextType nativeContext = EglOS::createContext(dpy->nativeType(),cfg,globalSharedContext);
-
-    if(nativeContext) {
-        ContextPtr ctx(new EglContext(dpy, nativeContext,sharedCtxPtr,cfg,glesCtx,version,dpy->getManager(version)));
-        return dpy->addContext(ctx);
-    } else {
-        iface->deleteGLESContext(glesCtx);
-    }
-
-return EGL_NO_CONTEXT;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay display, EGLContext context) {
-    VALIDATE_DISPLAY(display);
-    VALIDATE_CONTEXT(context);
-
-    dpy->removeContext(context);
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay display, EGLSurface draw,
-              EGLSurface read, EGLContext context) {
-    VALIDATE_DISPLAY(display);
-
-
-    bool releaseContext = EglValidate::releaseContext(context,read,draw);
-    if(!releaseContext && EglValidate::badContextMatch(context,read,draw)) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_MATCH);
-    }
-
-    ThreadInfo* thread     = getThreadInfo();
-    ContextPtr  prevCtx    = thread->eglContext;
-
-    if(releaseContext) { //releasing current context
-       if(prevCtx.Ptr()) {
-           g_eglInfo->getIface(prevCtx->version())->flush();
-           if(!EglOS::makeCurrent(dpy->nativeType(),NULL,NULL,NULL)) {
-               RETURN_ERROR(EGL_FALSE,EGL_BAD_ACCESS);
-           }
-           thread->updateInfo(ContextPtr(NULL),dpy,NULL,ShareGroupPtr(NULL),dpy->getManager(prevCtx->version()));
-       }
-    } else { //assining new context
-        VALIDATE_CONTEXT(context);
-        VALIDATE_SURFACE(draw,newDrawSrfc);
-        VALIDATE_SURFACE(read,newReadSrfc);
-
-        EglSurface* newDrawPtr = newDrawSrfc.Ptr();
-        EglSurface* newReadPtr = newReadSrfc.Ptr();
-        ContextPtr  newCtx     = ctx;
-
-        if (newCtx.Ptr() && prevCtx.Ptr()) {
-            if (newCtx.Ptr() == prevCtx.Ptr()) {
-                if (newDrawPtr == prevCtx->draw().Ptr() &&
-                    newReadPtr == prevCtx->read().Ptr()) {
-                    // nothing to do
-                    return EGL_TRUE;
-                }
-            }
-            else {
-                // Make sure previous context is detached from surfaces
-                releaseContext = true;
-            }
-        }
-
-        //surfaces compitability check
-        if(!((*ctx->getConfig()).compitableWith((*newDrawPtr->getConfig()))) ||
-           !((*ctx->getConfig()).compitableWith((*newReadPtr->getConfig())))) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_MATCH);
-        }
-
-         EGLNativeInternalDisplayType nativeDisplay = dpy->nativeType();
-         EGLNativeSurfaceType nativeRead = newReadPtr->native();
-         EGLNativeSurfaceType nativeDraw = newDrawPtr->native();
-        //checking native window validity
-        if(newReadPtr->type() == EglSurface::WINDOW && !EglOS::validNativeWin(nativeDisplay,nativeRead)) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_NATIVE_WINDOW);
-        }
-        if(newDrawPtr->type() == EglSurface::WINDOW && !EglOS::validNativeWin(nativeDisplay,nativeDraw)) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_NATIVE_WINDOW);
-        }
-
-        //checking native pixmap validity
-        if(newReadPtr->type() == EglSurface::PIXMAP && !EglOS::validNativePixmap(nativeDisplay,nativeRead)) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_NATIVE_PIXMAP);
-        }
-        if(newDrawPtr->type() == EglSurface::PIXMAP && !EglOS::validNativePixmap(nativeDisplay,nativeDraw)) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_NATIVE_PIXMAP);
-        }
-        if(prevCtx.Ptr()) {
-            g_eglInfo->getIface(prevCtx->version())->flush();
-        }
-        if(!EglOS::makeCurrent(dpy->nativeType(),newReadPtr,newDrawPtr,newCtx->nativeType())) {
-               RETURN_ERROR(EGL_FALSE,EGL_BAD_ACCESS);
-        }
-        //TODO: handle the following errors
-        // EGL_BAD_CURRENT_SURFACE , EGL_CONTEXT_LOST  , EGL_BAD_ACCESS
-
-        thread->updateInfo(newCtx,dpy,newCtx->getGlesContext(),newCtx->getShareGroup(),dpy->getManager(newCtx->version()));
-        newCtx->setSurfaces(newReadSrfc,newDrawSrfc);
-        g_eglInfo->getIface(newCtx->version())->initContext(newCtx->getGlesContext(),newCtx->getShareGroup());
-
-        // Initialize the GLES extension function table used in
-        // eglGetProcAddress for the context's GLES version if not
-        // yet initialized. We initialize it here to make sure we call the
-        // GLES getProcAddress after when a context is bound.
-        g_eglInfo->initClientExtFuncTable(newCtx->version());
-    }
-
-    // release previous context surface binding
-    if(prevCtx.Ptr() && releaseContext) {
-        prevCtx->setSurfaces(SurfacePtr(NULL),SurfacePtr(NULL));
-    }
-
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay display, EGLContext context,
-               EGLint attribute, EGLint *value) {
-    VALIDATE_DISPLAY(display);
-    VALIDATE_CONTEXT(context);
-
-    if(!ctx->getAttrib(attribute,value)){
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_ATTRIBUTE);
-    }
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay display, EGLSurface surface) {
-    VALIDATE_DISPLAY(display);
-    VALIDATE_SURFACE(surface,Srfc);
-    ThreadInfo* thread        = getThreadInfo();
-    ContextPtr currentCtx    = thread->eglContext;
-
-
-    //if surface not window return
-    if(Srfc->type() != EglSurface::WINDOW){
-        RETURN_ERROR(EGL_TRUE,EGL_SUCCESS);
-    }
-
-    if(!currentCtx.Ptr() || !currentCtx->usingSurface(Srfc) || !EglOS::validNativeWin(dpy->nativeType(),Srfc.Ptr()->native())) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-    }
-
-    EglOS::swapBuffers(dpy->nativeType(),Srfc->native());
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay display, EGLint interval) {
-    VALIDATE_DISPLAY(display);
-    ThreadInfo* thread  = getThreadInfo();
-    ContextPtr currCtx = thread->eglContext;
-    if(currCtx.Ptr()) {
-        if(!currCtx->read().Ptr() || !currCtx->draw().Ptr() || currCtx->draw()->type()!=EglSurface::WINDOW) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_CURRENT_SURFACE);
-        }
-        EglOS::swapInterval(dpy->nativeType(),currCtx->draw()->native(),interval);
-    } else {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-    }
-    return EGL_TRUE;
-}
-
-
-EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void) {
-    ThreadInfo* thread = getThreadInfo();
-    EglDisplay* dpy    = static_cast<EglDisplay*>(thread->eglDisplay);
-    ContextPtr  ctx    = thread->eglContext;
-    if(dpy && ctx.Ptr()){
-        // This double check is required because a context might still be current after it is destroyed - in which case
-        // its handle should be invalid, that is EGL_NO_CONTEXT should be returned even though the context is current
-        EGLContext c = (EGLContext)ctx->getHndl();
-        if(dpy->getContext(c).Ptr())
-        {
-            return c;
-        }
-    }
-    return EGL_NO_CONTEXT;
-}
-
-EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw) {
-    if(!EglValidate::surfaceTarget(readdraw)) return EGL_NO_SURFACE;
-
-    ThreadInfo* thread = getThreadInfo();
-    EglDisplay* dpy    = static_cast<EglDisplay*>(thread->eglDisplay);
-    ContextPtr  ctx    = thread->eglContext;
-
-    if(dpy && ctx.Ptr()) {
-        SurfacePtr surface = readdraw == EGL_READ ? ctx->read() : ctx->draw();
-        if(surface.Ptr())
-        {
-            // This double check is required because a surface might still be
-            // current after it is destroyed - in which case its handle should
-            // be invalid, that is EGL_NO_SURFACE should be returned even
-            // though the surface is current.
-            EGLSurface s = (EGLSurface)surface->getHndl();
-            surface = dpy->getSurface(s);
-            if(surface.Ptr())
-            {
-                return s;
-            }
-        }
-    }
-    return EGL_NO_SURFACE;
-}
-
-EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void) {
-    ThreadInfo* thread     = getThreadInfo();
-    return (thread->eglContext.Ptr()) ? thread->eglDisplay : EGL_NO_DISPLAY;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void) {
-    EGLenum api = eglQueryAPI();
-    eglBindAPI(EGL_OPENGL_ES_API);
-    return eglWaitClient();
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine) {
-    if(!EglValidate::engine(engine)) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_PARAMETER);
-    }
-    ThreadInfo* thread  = getThreadInfo();
-    ContextPtr  currCtx = thread->eglContext;
-    EglDisplay* dpy     = static_cast<EglDisplay*>(thread->eglDisplay);
-    if(currCtx.Ptr()) {
-        SurfacePtr read = currCtx->read();
-        SurfacePtr draw = currCtx->draw();
-
-        EGLNativeInternalDisplayType nativeDisplay = dpy->nativeType();
-        if(read.Ptr()) {
-            if(read->type() == EglSurface::WINDOW &&
-               !EglOS::validNativeWin(nativeDisplay,read->native())) {
-                RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-            }
-            if(read->type() == EglSurface::PIXMAP &&
-               !EglOS::validNativePixmap(nativeDisplay,read->native())) {
-                RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-            }
-        }
-        if(draw.Ptr()) {
-            if(draw->type() == EglSurface::WINDOW &&
-               !EglOS::validNativeWin(nativeDisplay,draw->native())) {
-                RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-            }
-            if(draw->type() == EglSurface::PIXMAP &&
-               !EglOS::validNativePixmap(nativeDisplay,draw->native())) {
-                RETURN_ERROR(EGL_FALSE,EGL_BAD_SURFACE);
-            }
-        }
-    }
-    EglOS::waitNative();
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api) {
-    if(!EglValidate::supportedApi(api)) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_PARAMETER);
-    }
-    CURRENT_THREAD();
-    tls_thread->setApi(api);
-    return EGL_TRUE;
-}
-
-EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void) {
-    CURRENT_THREAD();
-    return tls_thread->getApi();
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void) {
-    ThreadInfo* thread  = getThreadInfo();
-    ContextPtr currCtx = thread->eglContext;
-    if(currCtx.Ptr()) {
-        if(!currCtx->read().Ptr() || !currCtx->draw().Ptr()) {
-            RETURN_ERROR(EGL_FALSE,EGL_BAD_CURRENT_SURFACE);
-        }
-        g_eglInfo->getIface(currCtx->version())->finish();
-    }
-    return EGL_TRUE;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void) {
-    ThreadInfo* thread  = getThreadInfo();
-    EglDisplay* dpy     = static_cast<EglDisplay*>(thread->eglDisplay);
-    return eglMakeCurrent(dpy,EGL_NO_SURFACE,EGL_NO_SURFACE,EGL_NO_CONTEXT);
-}
-
-EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
-       eglGetProcAddress(const char *procname){
-    __eglMustCastToProperFunctionPointerType retVal = NULL;
-
-    initGlobalInfo();
-
-    if(!strncmp(procname,"egl",3)) { //EGL proc
-        for(int i=0;i < s_eglExtentionsSize;i++){
-            if(strcmp(procname,s_eglExtentions[i].name) == 0){
-                retVal = s_eglExtentions[i].address;
-                break;
-            }
-        }
-    }
-    else {
-        // Look at the clientAPI (GLES) supported extension
-        // function table.
-        retVal = ClientAPIExts::getProcAddress(procname);
-    }
-    return retVal;
-}
-
-//not supported for now
-/************************* NOT SUPPORTED FOR NOW ***********************/
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
-          EGLDisplay display, EGLenum buftype, EGLClientBuffer buffer,
-          EGLConfig config, const EGLint *attrib_list) {
-    VALIDATE_DISPLAY(display);
-    VALIDATE_CONFIG(config);
-    //we do not support for now openVG, and the only client API resources which may be bound in this fashion are OpenVG
-    RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_PARAMETER);
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay display, EGLSurface surface,
-              EGLNativePixmapType target) {
-    VALIDATE_DISPLAY(display);
-    VALIDATE_SURFACE(surface,srfc);
-    if(!EglOS::validNativePixmap(dpy->nativeType(),NULL)) {
-        RETURN_ERROR(EGL_FALSE,EGL_BAD_NATIVE_PIXMAP);
-    }
-
-    //we do not need to support this for android , since we are not gonna use pixmaps
-    RETURN_ERROR(EGL_FALSE,EGL_BAD_NATIVE_PIXMAP);
-}
-
-/***********************************************************************/
-
-
-
-//do last ( only if needed)
-/*********************************************************************************************************/
-EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) {
-//TODO:
-return 0;
-}
-
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer) {
-//TODO:
-return 0;
-}
-/*********************************************************************************************************/
-
-
-/************************** KHR IMAGE *************************************************************/
-EglImage *attachEGLImage(unsigned int imageId)
-{
-    ThreadInfo* thread  = getThreadInfo();
-    EglDisplay* dpy     = static_cast<EglDisplay*>(thread->eglDisplay);
-    ContextPtr  ctx     = thread->eglContext;
-    if (ctx.Ptr()) {
-        ImagePtr img = dpy->getImage(reinterpret_cast<EGLImageKHR>(imageId));
-        if(img.Ptr()) {
-             ctx->attachImage(imageId,img);
-             return img.Ptr();
-        }
-    }
-    return NULL;
-}
-
-void detachEGLImage(unsigned int imageId)
-{
-    ThreadInfo* thread  = getThreadInfo();
-    EglDisplay* dpy     = static_cast<EglDisplay*>(thread->eglDisplay);
-    ContextPtr  ctx     = thread->eglContext;
-    if (ctx.Ptr()) {
-        ctx->detachImage(imageId);
-    }
-}
-
-
-EGLImageKHR eglCreateImageKHR(EGLDisplay display, EGLContext context, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
-{
-    VALIDATE_DISPLAY(display);
-    VALIDATE_CONTEXT(context);
-
-    // We only support EGL_GL_TEXTURE_2D images
-    if (target != EGL_GL_TEXTURE_2D_KHR) {
-        RETURN_ERROR(EGL_NO_IMAGE_KHR,EGL_BAD_PARAMETER);
-    }
-
-    ThreadInfo* thread  = getThreadInfo();
-    ShareGroupPtr sg = thread->shareGroup;
-    if (sg.Ptr() != NULL) {
-        unsigned int globalTexName = sg->getGlobalName(TEXTURE, (unsigned int)buffer);
-        if (!globalTexName) return EGL_NO_IMAGE_KHR;
-
-        ImagePtr img( new EglImage() );
-        if (img.Ptr() != NULL) {
-
-            ObjectDataPtr objData = sg->getObjectData(TEXTURE, (unsigned int)buffer);
-            if (!objData.Ptr()) return EGL_NO_IMAGE_KHR;
-
-            TextureData *texData = (TextureData *)objData.Ptr();
-            if(!texData->width || !texData->height) return EGL_NO_IMAGE_KHR;
-            img->width = texData->width;
-            img->height = texData->height;
-            img->border = texData->border;
-            img->internalFormat = texData->internalFormat;
-            img->globalTexName = globalTexName;
-            return dpy->addImageKHR(img);
-        }
-    }
-
-    return EGL_NO_IMAGE_KHR;
-}
-
-
-EGLBoolean eglDestroyImageKHR(EGLDisplay display, EGLImageKHR image)
-{
-    VALIDATE_DISPLAY(display);
-    return dpy->destroyImageKHR(image) ? EGL_TRUE:EGL_FALSE;
-}
-
-/*********************************************************************************/
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglMacApi.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglMacApi.cpp
deleted file mode 100644
index b5e7d67..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglMacApi.cpp
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglOsApi.h"
-#include "MacNative.h"
-#define MAX_PBUFFER_MIPMAP_LEVEL 1
-
-namespace EglOS {
-
-static std::list<EGLNativePixelFormatType> s_nativeConfigs;
-
-EGLNativeDisplayType getDefaultDisplay() {return 0;}
-
-bool releaseDisplay(EGLNativeDisplayType dpy) {
-    return true;
-}
-
-static EglConfig* pixelFormatToConfig(int index,int renderableType,EGLNativePixelFormatType* frmt){
-    if(!frmt) return NULL;
-
-    EGLint  red,green,blue,alpha,depth,stencil;
-    EGLint  supportedSurfaces,visualType,visualId;
-    EGLint  transparentType,samples;
-    EGLint  tRed,tGreen,tBlue;
-    EGLint  pMaxWidth,pMaxHeight,pMaxPixels;
-    EGLint  configId,level;
-    EGLint  window,pbuffer;
-    EGLint  doubleBuffer,colorSize;
-
-    getPixelFormatAttrib(*frmt,MAC_HAS_DOUBLE_BUFFER,&doubleBuffer);
-    if(!doubleBuffer) return NULL; //pixel double buffer
-
-    supportedSurfaces = 0;
-
-    getPixelFormatAttrib(*frmt,MAC_DRAW_TO_WINDOW,&window);
-    getPixelFormatAttrib(*frmt,MAC_DRAW_TO_PBUFFER,&pbuffer);
-
-    if(window)  supportedSurfaces |= EGL_WINDOW_BIT;
-    if(pbuffer) supportedSurfaces |= EGL_PBUFFER_BIT;
-
-    if(!supportedSurfaces) return NULL;
-
-    //default values
-    visualId                  = 0;
-    visualType                = EGL_NONE;
-    EGLenum caveat            = EGL_NONE;
-    EGLBoolean renderable     = EGL_FALSE;
-    pMaxWidth                 = PBUFFER_MAX_WIDTH;
-    pMaxHeight                = PBUFFER_MAX_HEIGHT;
-    pMaxPixels                = PBUFFER_MAX_PIXELS;
-    samples                   = 0;
-    level                     = 0;
-    tRed = tGreen = tBlue     = 0;
-
-    transparentType = EGL_NONE;
-
-    getPixelFormatAttrib(*frmt,MAC_SAMPLES_PER_PIXEL,&samples);
-    getPixelFormatAttrib(*frmt,MAC_COLOR_SIZE,&colorSize);
-    getPixelFormatAttrib(*frmt,MAC_ALPHA_SIZE,&alpha);
-    getPixelFormatAttrib(*frmt,MAC_DEPTH_SIZE,&depth);
-    getPixelFormatAttrib(*frmt,MAC_STENCIL_SIZE,&stencil);
-
-    red = green = blue = (colorSize / 4); //TODO: ask guy if it is OK
-
-    return new EglConfig(red,green,blue,alpha,caveat,(EGLint)index,depth,level,pMaxWidth,pMaxHeight,pMaxPixels,renderable,renderableType,
-                         visualId,visualType,samples,stencil,supportedSurfaces,transparentType,tRed,tGreen,tBlue,*frmt);
-}
-
-
-static void initNativeConfigs(){
-    int nConfigs = getNumPixelFormats();
-    if(s_nativeConfigs.empty()){
-        for(int i=0; i < nConfigs ;i++){
-             EGLNativePixelFormatType frmt = getPixelFormat(i);
-             if(frmt){
-                 s_nativeConfigs.push_back(frmt);
-             }
-        }
-    }
-}
-
-void queryConfigs(EGLNativeDisplayType dpy,int renderableType,ConfigsList& listOut) {
-    int i = 0 ;
-    initNativeConfigs();
-    for(std::list<EGLNativePixelFormatType>::iterator it = s_nativeConfigs.begin(); it != s_nativeConfigs.end();it++){
-         EGLNativePixelFormatType frmt = *it;
-         EglConfig* conf = pixelFormatToConfig(i++,renderableType,&frmt);
-         if(conf){
-             listOut.push_front(conf);
-         };
-    }
-}
-
-bool validNativeWin(EGLNativeDisplayType dpy, EGLNativeWindowType win) {
-    unsigned int width,height;
-    return nsGetWinDims(win,&width,&height);
-}
-
-bool validNativeWin(EGLNativeDisplayType dpy, EGLNativeSurfaceType win) {
-    return validNativeWin(dpy,(EGLNativeWindowType)win);
-}
-
-//no support for pixmap in mac
-bool validNativePixmap(EGLNativeDisplayType dpy, EGLNativeSurfaceType pix) {
-
-   return true;
-}
-
-bool checkWindowPixelFormatMatch(EGLNativeDisplayType dpy,EGLNativeWindowType win,EglConfig* cfg,unsigned int* width,unsigned int* height) {
-    int r,g,b;
-    bool ret = nsGetWinDims(win,width,height);
-
-    cfg->getConfAttrib(EGL_RED_SIZE,&r);
-    cfg->getConfAttrib(EGL_GREEN_SIZE,&g);
-    cfg->getConfAttrib(EGL_BLUE_SIZE,&b);
-    bool match = nsCheckColor(win,r + g + b);
-
-    return ret && match;
-}
-
-//no support for pixmap in mac
-bool checkPixmapPixelFormatMatch(EGLNativeDisplayType dpy,EGLNativePixmapType pix,EglConfig* cfg,unsigned int* width,unsigned int* height) {
-    return false;
-}
-
-EGLNativeSurfaceType createPbufferSurface(EGLNativeDisplayType dpy,EglConfig* cfg,EglPbufferSurface* srfc){
-    EGLint width,height,hasMipmap,tmp;
-    EGLint target,format;
-    srfc->getDim(&width,&height,&tmp);
-    srfc->getTexInfo(&format,&target);
-    srfc->getAttrib(EGL_MIPMAP_TEXTURE,&hasMipmap);
-    EGLint maxMipmap = hasMipmap ? MAX_PBUFFER_MIPMAP_LEVEL:0;
-    return (EGLNativeSurfaceType)nsCreatePBuffer(target,format,maxMipmap,width,height);
-}
-
-bool releasePbuffer(EGLNativeDisplayType dis,EGLNativeSurfaceType pb) {
-    nsDestroyPBuffer(pb);
-    return true;
-}
-
-EGLNativeContextType createContext(EGLNativeDisplayType dpy,EglConfig* cfg,EGLNativeContextType sharedContext) {
- return nsCreateContext(cfg->nativeConfig(),sharedContext);
-}
-
-bool destroyContext(EGLNativeDisplayType dpy,EGLNativeContextType ctx) {
-    nsDestroyContext(ctx);
-    return true;
-}
-
-bool makeCurrent(EGLNativeDisplayType dpy,EglSurface* read,EglSurface* draw,EGLNativeContextType ctx){
-
-    // check for unbind
-    if (ctx == NULL && read == NULL && draw == NULL) {
-        nsWindowMakeCurrent(NULL, NULL);
-        return true;
-    }
-    else if (ctx == NULL || read == NULL || draw == NULL) {
-        // error !
-        return false;
-    }
-
-    //dont supporting diffrent read & draw surfaces on Mac
-    if(read->native() != draw->native()) return false;
-    switch(draw->type()){
-    case EglSurface::WINDOW:
-        nsWindowMakeCurrent(ctx,draw->native());
-        break;
-    case EglSurface::PBUFFER:
-    {
-        EGLint hasMipmap;
-        draw->getAttrib(EGL_MIPMAP_TEXTURE,&hasMipmap);
-        int mipmapLevel = hasMipmap ? MAX_PBUFFER_MIPMAP_LEVEL:0;
-        nsPBufferMakeCurrent(ctx,draw->native(),mipmapLevel);
-        break;
-    }
-    case EglSurface::PIXMAP: // not supported on Mac
-    default:
-        return false;
-    }
-    return true;
-}
-
-void swapBuffers(EGLNativeDisplayType dpy,EGLNativeSurfaceType srfc){
-    nsSwapBuffers();
-}
-
-void waitNative(){}
-
-void swapInterval(EGLNativeDisplayType dpy,EGLNativeSurfaceType win,int interval){
-    nsSwapInterval(&interval);
-}
-
-EGLNativeSurfaceType createWindowSurface(EGLNativeWindowType wnd){
-    return (EGLNativeSurfaceType)wnd;
-}
-
-EGLNativeSurfaceType createPixmapSurface(EGLNativePixmapType pix){
-    return (EGLNativeSurfaceType)pix;
-}
-
-void destroySurface(EGLNativeSurfaceType srfc){
-}
-
-EGLNativeInternalDisplayType getInternalDisplay(EGLNativeDisplayType dpy){
-    return (EGLNativeInternalDisplayType)dpy;
-}
-
-void deleteDisplay(EGLNativeInternalDisplayType idpy){
-}
-
-};
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglOsApi.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglOsApi.h
deleted file mode 100644
index c166220..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglOsApi.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_OS_API_H
-#define EGL_OS_API_H
-
-#include <EGL/egl.h>
-#include <EGL/eglinternalplatform.h>
-#ifdef __APPLE__
-#include <OpenGL/gl.h>
-#else
-#include <GL/gl.h>
-#endif
-#include "EglConfig.h"
-#include "EglDisplay.h"
-#include "EglPbufferSurface.h"
-
-#define PBUFFER_MAX_WIDTH  32767
-#define PBUFFER_MAX_HEIGHT 32767
-#define PBUFFER_MAX_PIXELS 32767*32767
-
-namespace EglOS{
-
-    void queryConfigs(EGLNativeInternalDisplayType dpy,int renderable_type,ConfigsList& listOut);
-    bool releasePbuffer(EGLNativeInternalDisplayType dis,EGLNativeSurfaceType pb);
-    bool destroyContext(EGLNativeInternalDisplayType dpy,EGLNativeContextType ctx);
-    bool releaseDisplay(EGLNativeInternalDisplayType dpy);
-    bool validNativeWin(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType win);
-    bool validNativeWin(EGLNativeInternalDisplayType dpy,EGLNativeWindowType win);
-    bool validNativePixmap(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType pix);
-    bool checkWindowPixelFormatMatch(EGLNativeInternalDisplayType dpy,EGLNativeWindowType win,EglConfig* cfg,unsigned int* width,unsigned int* height);
-    bool checkPixmapPixelFormatMatch(EGLNativeInternalDisplayType dpy,EGLNativePixmapType pix,EglConfig* cfg,unsigned int* width,unsigned int* height);
-    bool makeCurrent(EGLNativeInternalDisplayType dpy,EglSurface* read,EglSurface* draw,EGLNativeContextType);
-    void swapBuffers(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType srfc);
-    void swapInterval(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType win,int interval);
-    void waitNative();
-
-    EGLNativeInternalDisplayType getDefaultDisplay();
-    EGLNativeInternalDisplayType getInternalDisplay(EGLNativeDisplayType dpy);
-    void deleteDisplay(EGLNativeInternalDisplayType idpy);
-    EGLNativeSurfaceType createPbufferSurface(EGLNativeInternalDisplayType dpy,EglConfig* cfg,EglPbufferSurface* pb);
-    EGLNativeContextType createContext(EGLNativeInternalDisplayType dpy,EglConfig* cfg,EGLNativeContextType sharedContext);
-    EGLNativeSurfaceType createWindowSurface(EGLNativeWindowType wnd);
-    EGLNativeSurfaceType createPixmapSurface(EGLNativePixmapType pix);
-    void destroySurface(EGLNativeSurfaceType srfc);
-#ifdef _WIN32
-    void initPtrToWglFunctions();
-#endif
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglPbufferSurface.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglPbufferSurface.cpp
deleted file mode 100644
index 8bcb31a..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglPbufferSurface.cpp
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglPbufferSurface.h"
-
-bool EglPbufferSurface::setAttrib(EGLint attrib,EGLint val) {
-    switch(attrib) {
-    case EGL_WIDTH:
-        if(val < 0) return false;
-        m_width = val;
-        break;
-    case EGL_HEIGHT:
-        if(val < 0) return false;
-        m_height = val;
-        break;
-    case EGL_LARGEST_PBUFFER:
-        m_largest = val;
-        break;
-    case EGL_TEXTURE_FORMAT:
-        if(val != EGL_NO_TEXTURE && val != EGL_TEXTURE_RGB && val != EGL_TEXTURE_RGBA) return false;
-        m_texFormat = val;
-        break;
-    case EGL_TEXTURE_TARGET:
-        if(val != EGL_NO_TEXTURE && val != EGL_TEXTURE_2D) return false;
-        m_texTarget = val;
-        break;
-    case EGL_MIPMAP_TEXTURE:
-        m_texMipmap = val;
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
-
-bool EglPbufferSurface::getAttrib(EGLint attrib,EGLint* val) {
-    switch(attrib) {
-    case EGL_CONFIG_ID:
-        *val = m_config->id();
-        break;
-    case EGL_WIDTH:
-        *val = m_width;
-        break;
-    case EGL_HEIGHT:
-        *val = m_height;
-        break;
-    case EGL_LARGEST_PBUFFER:
-        *val = m_largest;
-        break;
-    case EGL_TEXTURE_FORMAT:
-        *val = m_texFormat;
-        break;
-    case EGL_TEXTURE_TARGET:
-        *val = m_texTarget;
-        break;
-    case EGL_MIPMAP_TEXTURE:
-        *val = m_texMipmap;
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglPbufferSurface.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglPbufferSurface.h
deleted file mode 100644
index 9740170..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglPbufferSurface.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_PBUFFER_SURFACE_H
-#define EGL_PBUFFER_SURFACE_H
-
-#include "EglSurface.h"
-
-class EglDisplay;
-
-class EglPbufferSurface:public EglSurface {
-public:
-    EglPbufferSurface(EglDisplay *dpy, EglConfig* config):
-                                         EglSurface(dpy,PBUFFER,config,0,0),
-                                         m_texFormat(EGL_NO_TEXTURE),
-                                         m_texTarget(EGL_NO_TEXTURE),
-                                         m_texMipmap(EGL_FALSE),
-                                         m_largest(EGL_FALSE){};
-
-    void  setNativePbuffer(EGLNativeSurfaceType srfc){ m_native = srfc;};
-    bool  setAttrib(EGLint attrib,EGLint val);
-    bool  getAttrib(EGLint attrib,EGLint* val);
-    void  getDim(EGLint* width,EGLint* height,EGLint* largest){
-                                                              *width = m_width;
-                                                              *height = m_height;
-                                                              *largest = m_largest;
-                                                             };
-
-    void getTexInfo(EGLint* format,EGLint* target){ *format = m_texFormat; *target = m_texTarget;}
-
-private:
-    EGLint               m_texFormat;
-    EGLint               m_texTarget;
-    EGLint               m_texMipmap;
-    EGLint               m_largest;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglPixmapSurface.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglPixmapSurface.cpp
deleted file mode 100644
index 2087594..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglPixmapSurface.cpp
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglPixmapSurface.h"
-#include "EglOsApi.h"
-
-std::set<EGLNativePixmapType> EglPixmapSurface::s_associatedPixmaps;
-
-bool EglPixmapSurface::alreadyAssociatedWithConfig(EGLNativePixmapType pix) {
-    return s_associatedPixmaps.find(pix) != s_associatedPixmaps.end();
-
-}
-
-EglPixmapSurface::EglPixmapSurface(EglDisplay *dpy,
-                                   EGLNativePixmapType pix,
-                                   EglConfig* config) :
-           EglSurface(dpy, PIXMAP,config,0,0),
-           m_pixmap(pix)
-{
-    s_associatedPixmaps.insert(pix);
-    m_native = EglOS::createPixmapSurface(pix);
-}
-
-EglPixmapSurface::~EglPixmapSurface() {
-    s_associatedPixmaps.erase(m_pixmap);
-}
-
-bool EglPixmapSurface::getAttrib(EGLint attrib,EGLint* val) {
-    switch(attrib) {
-    case EGL_CONFIG_ID:
-        *val = m_config->id();
-        break;
-    case EGL_WIDTH:
-        *val = m_width;
-        break;
-    case EGL_HEIGHT:
-        *val = m_height;
-        break;
-    case EGL_LARGEST_PBUFFER:
-    case EGL_TEXTURE_FORMAT:
-    case EGL_TEXTURE_TARGET:
-    case EGL_MIPMAP_TEXTURE:
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglPixmapSurface.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglPixmapSurface.h
deleted file mode 100644
index f027eab..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglPixmapSurface.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_PIXMAP_SURFACE_H
-#define EGL_PIXMAP_SURFACE_H
-
-#include <set>
-#include <EGL/egl.h>
-#include "EglSurface.h"
-
-class EglDisplay;
-
-class EglPixmapSurface: public EglSurface {
-public:
-    EglPixmapSurface(EglDisplay *dpy, EGLNativePixmapType pix,EglConfig* config);
-    ~EglPixmapSurface();
-
-    bool getAttrib(EGLint attrib,EGLint* val);
-
-    static bool alreadyAssociatedWithConfig(EGLNativePixmapType pix);
-private:
-   EGLNativePixmapType m_pixmap;
-   static std::set<EGLNativePixmapType> s_associatedPixmaps;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglSurface.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglSurface.cpp
deleted file mode 100644
index 7f658b6..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglSurface.cpp
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglSurface.h"
-#include "EglOsApi.h"
-
-unsigned int EglSurface::s_nextSurfaceHndl = 0;
-
-EglSurface::~EglSurface(){ 
-
-    if(m_type == EglSurface::PBUFFER) {
-        EglOS::releasePbuffer(m_dpy->nativeType(),m_native);
-    }
-
-    if(m_native) EglOS::destroySurface(m_native);
-}
-
-bool  EglSurface::setAttrib(EGLint attrib,EGLint val) {
-    switch(attrib) {
-    case EGL_WIDTH:
-    case EGL_HEIGHT:
-    case EGL_LARGEST_PBUFFER:
-    case EGL_TEXTURE_FORMAT:
-    case EGL_TEXTURE_TARGET:
-    case EGL_MIPMAP_TEXTURE:
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglSurface.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglSurface.h
deleted file mode 100644
index d65f480..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglSurface.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_SURFACE_H
-#define EGL_SURFACE_H
-
-#include <EGL/egl.h>
-#include <EGL/eglinternalplatform.h>
-#include <map>
-#include <GLcommon/SmartPtr.h>
-#include "EglConfig.h"
-
-class EglSurface;
-typedef  SmartPtr<EglSurface> SurfacePtr;
-
-class EglDisplay;
-
-class EglSurface {
-public:
-    typedef enum {
-                  WINDOW  = 0,
-                  PBUFFER = 1,
-                  PIXMAP  = 3
-                 } ESurfaceType;
-  ESurfaceType  type(){ return m_type;};
-  EGLNativeSurfaceType native(){return m_native;}
-  virtual bool  setAttrib(EGLint attrib,EGLint val);
-  virtual bool  getAttrib(EGLint attrib,EGLint* val) = 0;
-  void          setDim(int width,int height){ m_width = width; m_height = height;};
-  EglConfig*    getConfig(){return m_config;};
-  unsigned int  getHndl(){return m_hndl;};
-  virtual       ~EglSurface();
-
-private:
-    static unsigned int   s_nextSurfaceHndl;
-    ESurfaceType          m_type;
-    unsigned int          m_hndl;
-
-protected:
-    EglSurface(EglDisplay *dpy,
-               ESurfaceType type,
-               EglConfig* config,
-               EGLint width,
-               EGLint height) :
-       m_type(type),
-       m_config(config),
-       m_width(width),
-       m_height(height),
-       m_native(NULL),
-       m_dpy(dpy)
-    { 
-        m_hndl = ++s_nextSurfaceHndl;
-    }
-
-protected:
-    EglConfig*            m_config;
-    EGLint                m_width;
-    EGLint                m_height;
-    EGLNativeSurfaceType  m_native;
-    EglDisplay           *m_dpy;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglThreadInfo.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglThreadInfo.cpp
deleted file mode 100644
index 1b403f2..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglThreadInfo.cpp
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglThreadInfo.h"
-#include "EglOsApi.h"
-
-EglThreadInfo::EglThreadInfo():m_err(EGL_SUCCESS),m_api(EGL_OPENGL_ES_API) {}
-
-#include <cutils/threads.h>
-
-static thread_store_t s_tls = THREAD_STORE_INITIALIZER;
-
-static void tlsDestruct(void *ptr)
-{
-    if (ptr) {
-        EglThreadInfo *ti = (EglThreadInfo *)ptr;
-        delete ti;
-    }
-}
-
-EglThreadInfo* EglThreadInfo::get(void)
-{
-    EglThreadInfo *ti = (EglThreadInfo *)thread_store_get(&s_tls);
-    if (!ti) {
-        ti = new EglThreadInfo();
-        thread_store_set(&s_tls, ti, tlsDestruct);
-    }
-    return ti;
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglThreadInfo.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglThreadInfo.h
deleted file mode 100644
index 9d2df10..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglThreadInfo.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_THREAD_INFO_H
-#define EGL_THREAD_INFO_H
-
-#include <EGL/egl.h>
-#include "EglDisplay.h"
-#include "EglContext.h"
-#include "EglSurface.h"
-#include "EglPbufferSurface.h"
-
-class EglThreadInfo {
-public:
-
-    EglThreadInfo();
-    void       setError(EGLint err) { m_err = err;}
-    EGLint     getError(){ return m_err;}
-    void       destroyContextIfNotCurrent(ContextPtr context );
-    void       setApi(EGLenum api){m_api = api;}
-    EGLenum    getApi(){return m_api;}
-
-    static EglThreadInfo*  get(void) __attribute__((const));
-
-private:
-    EglDisplay*     m_currentDisplay;
-    EGLint          m_err;
-    EGLenum         m_api;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglValidate.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglValidate.cpp
deleted file mode 100644
index d87f9b9..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglValidate.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglValidate.h"
-#include <GLcommon/GLutils.h>
-
-bool EglValidate::confAttrib(EGLint attrib) {
-    switch(attrib) {
-    case EGL_BUFFER_SIZE:
-    case EGL_RED_SIZE:
-    case EGL_GREEN_SIZE:
-    case EGL_BLUE_SIZE:
-    case EGL_ALPHA_SIZE:
-    case EGL_BIND_TO_TEXTURE_RGB:
-    case EGL_BIND_TO_TEXTURE_RGBA:
-    case EGL_CONFIG_CAVEAT:
-    case EGL_CONFIG_ID:
-    case EGL_DEPTH_SIZE:
-    case EGL_LEVEL:
-    case EGL_MAX_PBUFFER_WIDTH:
-    case EGL_MAX_PBUFFER_HEIGHT:
-    case EGL_MAX_PBUFFER_PIXELS:
-    case EGL_MAX_SWAP_INTERVAL:
-    case EGL_MIN_SWAP_INTERVAL:
-    case EGL_RENDERABLE_TYPE:
-    case EGL_NATIVE_RENDERABLE:
-    case EGL_NATIVE_VISUAL_ID:
-    case EGL_NATIVE_VISUAL_TYPE:
-    case EGL_SAMPLE_BUFFERS:
-    case EGL_SAMPLES:
-    case EGL_STENCIL_SIZE:
-    case EGL_SURFACE_TYPE:
-    case EGL_TRANSPARENT_TYPE:
-    case EGL_TRANSPARENT_RED_VALUE:
-    case EGL_TRANSPARENT_GREEN_VALUE:
-    case EGL_TRANSPARENT_BLUE_VALUE:
-    case EGL_CONFORMANT:
-        return true;
-    }
-    return false;
-}
-
-bool EglValidate::noAttribs(const EGLint* attrib) {
-    return !attrib || attrib[0] == EGL_NONE ;
-}
-
-bool EglValidate::pbufferAttribs(EGLint width,EGLint height,bool isTexFormatNoTex,bool isTexTargetNoTex) {
-    if(!isTexFormatNoTex) {
-      if (!(isPowerOf2(width) && isPowerOf2(height))) return false;
-    }
-    return isTexFormatNoTex == isTexTargetNoTex ;
-}
-
-bool EglValidate::releaseContext(EGLContext ctx,EGLSurface s1,EGLSurface s2) {
-    return (ctx == EGL_NO_CONTEXT) &&
-           (s1 == EGL_NO_SURFACE)  &&
-           (s2 == EGL_NO_SURFACE);
-}
-
-bool EglValidate::badContextMatch(EGLContext ctx,EGLSurface s1,EGLSurface s2) {
-    return ctx != EGL_NO_CONTEXT ? (s1 == EGL_NO_SURFACE || s2 == EGL_NO_SURFACE):
-                                   (s1 != EGL_NO_SURFACE || s2 != EGL_NO_SURFACE);
-}
-
-bool EglValidate::surfaceTarget(EGLint target) {
-    return target == EGL_READ || target == EGL_DRAW;
-}
-
-bool EglValidate::engine(EGLint engine) {
-    return engine == EGL_CORE_NATIVE_ENGINE;
-}
-
-bool EglValidate::stringName(EGLint name) {
-    return name == EGL_VENDOR  ||
-           name == EGL_VERSION ||
-           name == EGL_EXTENSIONS;
-}
-
-bool EglValidate::supportedApi(EGLenum api) {
-    return api == EGL_OPENGL_ES_API;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglValidate.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglValidate.h
deleted file mode 100644
index 532584f..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglValidate.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_VALIDATE_H
-#define EGL_VALIDATE_H
-
-#include <EGL/egl.h>
-
-class EglValidate {
-public:
-    static bool confAttrib(EGLint attrib);
-    static bool noAttribs(const EGLint* attrib);
-    static bool pbufferAttribs(EGLint width,EGLint height,bool texFormatIsNoTex,bool texTargetIsNoTex);
-    static bool releaseContext(EGLContext ctx,EGLSurface s1,EGLSurface s2);
-    static bool badContextMatch(EGLContext ctx,EGLSurface s1,EGLSurface s2);
-    static bool surfaceTarget(EGLint target);
-    static bool engine(EGLint engine);
-    static bool stringName(EGLint name);
-    static bool supportedApi(EGLenum api);
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowSurface.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowSurface.cpp
deleted file mode 100644
index 7bff896..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowSurface.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglWindowSurface.h"
-#include "EglOsApi.h"
-
-std::set<EGLNativeWindowType> EglWindowSurface::s_associatedWins;
-
-bool EglWindowSurface::alreadyAssociatedWithConfig(EGLNativeWindowType win) {
-    return s_associatedWins.find(win) != s_associatedWins.end();
-
-}
-
-EglWindowSurface::EglWindowSurface(EglDisplay *dpy, 
-                                   EGLNativeWindowType win,
-                                   EglConfig* config,
-                                   unsigned int width,unsigned int height) :
-                  EglSurface(dpy, WINDOW,config,width,height),
-                  m_win(win)
-{
-    s_associatedWins.insert(win);
-    m_native = EglOS::createWindowSurface(win);
-}
-
-EglWindowSurface:: ~EglWindowSurface() {
-    s_associatedWins.erase(m_win);
-}
-
-bool  EglWindowSurface::getAttrib(EGLint attrib,EGLint* val) {
-    switch(attrib) {
-    case EGL_CONFIG_ID:
-        *val = m_config->id();
-        break;
-    case EGL_WIDTH:
-        *val = m_width;
-        break;
-    case EGL_HEIGHT:
-        *val = m_height;
-        break;
-    case EGL_LARGEST_PBUFFER:
-    case EGL_TEXTURE_FORMAT:
-    case EGL_TEXTURE_TARGET:
-    case EGL_MIPMAP_TEXTURE:
-        break;
-    default:
-        return false;
-    }
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowSurface.h b/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowSurface.h
deleted file mode 100644
index 460a293..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowSurface.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef EGL_WINDOW_SURFACE_H
-#define EGL_WINDOW_SURFACE_H
-
-#include <set>
-#include <EGL/egl.h>
-#include "EglSurface.h"
-#include "EglConfig.h"
-
-class EglDisplay;
-
-class EglWindowSurface: public EglSurface {
-public:
-    EglWindowSurface(EglDisplay *dpy, EGLNativeWindowType win,EglConfig* config,unsigned width,unsigned int height);
-    ~EglWindowSurface();
-    bool  getAttrib(EGLint attrib,EGLint* val);
-
-    static bool alreadyAssociatedWithConfig(EGLNativeWindowType win);
-private:
-    EGLNativeWindowType m_win;
-    static std::set<EGLNativeWindowType> s_associatedWins;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowsApi.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowsApi.cpp
deleted file mode 100644
index c11c547..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglWindowsApi.cpp
+++ /dev/null
@@ -1,592 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglOsApi.h"
-#include <windows.h>
-#include <wingdi.h>
-#include <GL/wglext.h>
-#include <stdio.h>
-
-#define IS_TRUE(a) \
-        if(a != true) return false;
-
-
-struct DisplayInfo{
-    DisplayInfo():dc(NULL),hwnd(NULL),isPixelFormatSet(false){};
-    DisplayInfo(HDC hdc,HWND wnd):isPixelFormatSet(false){dc = hdc; hwnd = wnd;};
-    HDC  dc;
-    HWND hwnd;
-    bool isPixelFormatSet;
-};
-
-struct TlsData {
-    std::map<int,DisplayInfo> m_map;
-};
-
-static DWORD s_tlsIndex = 0;
-
-static TlsData *getTLS() {
-    TlsData *tls = (TlsData *)TlsGetValue(s_tlsIndex);
-    if (!tls) {
-        tls = new TlsData();
-        TlsSetValue(s_tlsIndex, tls);
-    }
-    return tls;
-}
-
-class WinDisplay{
-public:
-     typedef enum {
-                      DEFAULT_DISPLAY = 0
-                  };
-     WinDisplay(){};
-     DisplayInfo& getInfo(int configurationIndex){ return getTLS()->m_map[configurationIndex];}
-     HDC  getDC(int configId){return getTLS()->m_map[configId].dc;}
-     void setInfo(int configurationIndex,const DisplayInfo& info);
-     bool isPixelFormatSet(int cfgId){ return getTLS()->m_map[cfgId].isPixelFormatSet;}
-     void pixelFormatWasSet(int cfgId){getTLS()->m_map[cfgId].isPixelFormatSet = true;}
-     bool infoExists(int configurationIndex);
-     void releaseAll();
-};
-
-void WinDisplay::releaseAll(){
-    TlsData * tls = getTLS();
-    
-    for(std::map<int,DisplayInfo>::iterator it = tls->m_map.begin(); it != tls->m_map.end();it++){
-       if((*it).second.hwnd){
-           DestroyWindow((*it).second.hwnd);
-       }
-       DeleteDC((*it).second.dc);
-    }
-}
-
-bool WinDisplay::infoExists(int configurationIndex){
-    return getTLS()->m_map.find(configurationIndex) != getTLS()->m_map.end();
-}
-
-void WinDisplay::setInfo(int configurationIndex,const DisplayInfo& info){
-    getTLS()->m_map[configurationIndex] = info;
-}
-
-struct WglExtProcs{
-    PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB;
-    PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB;
-    PFNWGLCREATEPBUFFERARBPROC wglCreatePbufferARB;
-    PFNWGLRELEASEPBUFFERDCARBPROC wglReleasePbufferDCARB;
-    PFNWGLDESTROYPBUFFERARBPROC wglDestroyPbufferARB;
-    PFNWGLGETPBUFFERDCARBPROC wglGetPbufferDCARB;
-    PFNWGLMAKECONTEXTCURRENTARBPROC wglMakeContextCurrentARB;
-    PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
-};
-
-static WglExtProcs* s_wglExtProcs = NULL;
-
-class SrfcInfo{
-public:
-    typedef enum {
-                 WINDOW  = 0,
-                 PBUFFER = 1,
-                 PIXMAP  = 2
-                 }SurfaceType;
-    explicit SrfcInfo(HWND wnd);
-    explicit SrfcInfo(HPBUFFERARB pb);
-    explicit SrfcInfo(HBITMAP bmap);
-    HWND getHwnd(){ return m_hwnd;};
-    HDC  getDC(){ return m_hdc;};
-    HBITMAP  getBmap(){ return m_bmap;};
-    HPBUFFERARB  getPbuffer(){ return m_pb;};
-    ~SrfcInfo();
-private:
-    HWND        m_hwnd;
-    HPBUFFERARB m_pb; 
-    HBITMAP     m_bmap;
-    HDC         m_hdc;
-    SurfaceType m_type;
-};
-
-SrfcInfo::SrfcInfo(HBITMAP bmap):m_hwnd(NULL),
-                                 m_pb(NULL),
-                                 m_hdc(NULL),
-                                 m_type(PIXMAP){
-    m_bmap = bmap;
-}
-
-SrfcInfo::SrfcInfo(HWND wnd):m_pb(NULL),
-                             m_bmap(NULL),
-                             m_type(WINDOW){
-    m_hwnd = wnd;
-    m_hdc = GetDC(wnd); 
-}
-
-SrfcInfo::SrfcInfo(HPBUFFERARB pb):m_hwnd(NULL),
-                                   m_bmap(NULL),
-                                   m_type(PBUFFER){
-    m_pb = pb;
-    if(s_wglExtProcs->wglGetPbufferDCARB){
-        m_hdc =  s_wglExtProcs->wglGetPbufferDCARB(pb);
-    }
-}
-
-SrfcInfo::~SrfcInfo(){
-    if(m_type == WINDOW){
-        ReleaseDC(m_hwnd,m_hdc);
-    }
-}
-
-namespace EglOS{
-
-
-
-PROC wglGetExtentionsProcAddress(HDC hdc,const char *extension_name,const char* proc_name)
-{
-    // this is pointer to function which returns pointer to string with list of all wgl extensions
-    PFNWGLGETEXTENSIONSSTRINGARBPROC _wglGetExtensionsStringARB = NULL;
-
-    // determine pointer to wglGetExtensionsStringEXT function
-    _wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC) wglGetProcAddress("wglGetExtensionsStringARB");
-    if(!_wglGetExtensionsStringARB){
-        fprintf(stderr,"could not get wglGetExtensionsStringARB\n");
-        return NULL;
-    }
-
-    if (!_wglGetExtensionsStringARB || strstr(_wglGetExtensionsStringARB(hdc), extension_name) == NULL)
-    {
-        fprintf(stderr,"extension %s was not found\n",extension_name);
-        // string was not found
-        return NULL;
-    }
-
-    // extension is supported
-    return wglGetProcAddress(proc_name);
-}
-
-LRESULT CALLBACK dummyWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
-{
-    return DefWindowProc(hwnd, uMsg, wParam, lParam);
-}
-
-HWND createDummyWindow(){
-
-    WNDCLASSEX wcx;
-    wcx.cbSize = sizeof(wcx);                       // size of structure
-    wcx.style =  CS_OWNDC |CS_HREDRAW |CS_VREDRAW;  // redraw if size changes
-    wcx.lpfnWndProc = dummyWndProc;                 // points to window procedure
-    wcx.cbClsExtra = 0;                             // no extra class memory
-    wcx.cbWndExtra = sizeof(void*);                 // save extra window memory, to store VasWindow instance
-    wcx.hInstance = NULL;                           // handle to instance
-    wcx.hIcon = NULL;                               // predefined app. icon
-    wcx.hCursor = NULL;
-    wcx.hbrBackground = NULL;                       // no background brush
-    wcx.lpszMenuName =  NULL;                       // name of menu resource
-    wcx.lpszClassName = "DummyWin";                 // name of window class
-    wcx.hIconSm = (HICON) NULL;                     // small class icon
-
-    ATOM winClass = RegisterClassEx(&wcx);
-    HWND hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,
-                               "DummyWin",
-                               "Dummy",
-                               WS_POPUP,
-                               0,
-                               0,
-                               1,
-                               1,
-                               NULL,
-                               NULL,
-                               0,0);
-    return hwnd;
-}
-
-EGLNativeInternalDisplayType getDefaultDisplay() {
-    if (!s_tlsIndex) s_tlsIndex = TlsAlloc();
-    WinDisplay* dpy = new WinDisplay();
-
-    HWND hwnd = createDummyWindow();
-    HDC  hdc  =  GetDC(hwnd);
-    dpy->setInfo(WinDisplay::DEFAULT_DISPLAY,DisplayInfo(hdc,hwnd));
-    return static_cast<EGLNativeInternalDisplayType>(dpy);
-}
-
-EGLNativeInternalDisplayType getInternalDisplay(EGLNativeDisplayType display){
-    if (!s_tlsIndex) s_tlsIndex = TlsAlloc();
-    WinDisplay* dpy = new WinDisplay();
-    dpy->setInfo(WinDisplay::DEFAULT_DISPLAY,DisplayInfo(display,NULL));
-    return dpy;
-}
-
-static HDC getDummyDC(EGLNativeInternalDisplayType display,int cfgId){
-
-    HDC dpy = NULL;
-    if(!display->infoExists(cfgId)){
-        HWND hwnd = createDummyWindow();
-        dpy  = GetDC(hwnd);
-        display->setInfo(cfgId,DisplayInfo(dpy,hwnd));
-    } else {
-        dpy = display->getDC(cfgId);
-    }
-    return dpy;
-}
-void initPtrToWglFunctions(){
-    HWND hwnd = createDummyWindow();
-    HDC dpy =  GetDC(hwnd);
-    if(!hwnd || !dpy){
-        fprintf(stderr,"error while getting DC\n");
-        return;
-    }
-    EGLNativeContextType ctx = NULL;
-    PIXELFORMATDESCRIPTOR pfd = {
-                                  sizeof(PIXELFORMATDESCRIPTOR),  //  size of this pfd
-                                  1,                     // version number
-                                  PFD_DRAW_TO_WINDOW |   // support window
-                                  PFD_SUPPORT_OPENGL |   // support OpenGL
-                                  PFD_DOUBLEBUFFER,      // double buffered
-                                  PFD_TYPE_RGBA,         // RGBA type
-                                  24,                    // 24-bit color depth
-                                  0, 0, 0, 0, 0, 0,      // color bits ignored
-                                  0,                     // no alpha buffer
-                                  0,                     // shift bit ignored
-                                  0,                     // no accumulation buffer
-                                  0, 0, 0, 0,            // accum bits ignored
-                                  32,                    // 32-bit z-buffer
-                                  0,                     // no stencil buffer
-                                  0,                     // no auxiliary buffer
-                                  PFD_MAIN_PLANE,        // main layer
-                                  0,                     // reserved
-                                  0, 0, 0                // layer masks ignored
-                                 };
-
-    int  iPixelFormat,err;
-    iPixelFormat = ChoosePixelFormat(dpy, &pfd);
-    if(iPixelFormat < 0){
-        fprintf(stderr,"error while choosing pixel format\n");
-        return;
-    }
-    if(!SetPixelFormat(dpy,iPixelFormat,&pfd)){
-
-        int err = GetLastError();
-        fprintf(stderr,"error while setting pixel format 0x%x\n",err);
-        return;
-    }
-
-
-    ctx = wglCreateContext(dpy);
-    if(!ctx){
-        err =  GetLastError();
-        fprintf(stderr,"error while creating dummy context %d\n",err);
-    }
-    if(!wglMakeCurrent(dpy,ctx)){
-        err =  GetLastError();
-        fprintf(stderr,"error while making dummy context current %d\n",err);
-    }
-
-    if(!s_wglExtProcs){
-        s_wglExtProcs = new WglExtProcs();
-        s_wglExtProcs->wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_pixel_format","wglGetPixelFormatAttribivARB");
-        s_wglExtProcs->wglChoosePixelFormatARB      = (PFNWGLCHOOSEPIXELFORMATARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_pixel_format","wglChoosePixelFormatARB");
-        s_wglExtProcs->wglCreatePbufferARB          = (PFNWGLCREATEPBUFFERARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_pbuffer","wglCreatePbufferARB");
-        s_wglExtProcs->wglReleasePbufferDCARB       = (PFNWGLRELEASEPBUFFERDCARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_pbuffer","wglReleasePbufferDCARB");
-        s_wglExtProcs->wglDestroyPbufferARB         = (PFNWGLDESTROYPBUFFERARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_pbuffer","wglDestroyPbufferARB");
-        s_wglExtProcs->wglGetPbufferDCARB           = (PFNWGLGETPBUFFERDCARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_pbuffer","wglGetPbufferDCARB");
-        s_wglExtProcs->wglMakeContextCurrentARB     = (PFNWGLMAKECONTEXTCURRENTARBPROC)wglGetExtentionsProcAddress(dpy,"WGL_ARB_make_current_read","wglMakeContextCurrentARB");
-        s_wglExtProcs->wglSwapIntervalEXT           = (PFNWGLSWAPINTERVALEXTPROC)wglGetExtentionsProcAddress(dpy,"WGL_EXT_swap_control","wglSwapIntervalEXT");
-    }
-
-   wglMakeCurrent(dpy,NULL);
-   DestroyWindow(hwnd);
-   DeleteDC(dpy);
-}
-
-bool releaseDisplay(EGLNativeInternalDisplayType dpy) {
-    dpy->releaseAll();
-    return true;
-}
-
-void deleteDisplay(EGLNativeInternalDisplayType idpy){
-    if(idpy){
-        delete idpy;
-    }
-}
-
-
-static bool initPixelFormat(HDC dc){
-    PIXELFORMATDESCRIPTOR  pfd;
-    unsigned int numpf;
-    int iPixelFormat;
-
-    if(s_wglExtProcs->wglChoosePixelFormatARB) {
-        int i0 = 0;
-        float f0 = 0.0f;
-        return s_wglExtProcs->wglChoosePixelFormatARB(dc,&i0, &f0, 1, &iPixelFormat, &numpf);
-    } else {
-        return ChoosePixelFormat(dc,&pfd);
-    }
-}
-
-EglConfig* pixelFormatToConfig(EGLNativeInternalDisplayType display,int renderableType,EGLNativePixelFormatType* frmt,int index){
-
-    EGLint  red,green,blue,alpha,depth,stencil;
-    EGLint  supportedSurfaces,visualType,visualId;
-    EGLint  transparentType,samples;
-    EGLint  tRed,tGreen,tBlue;
-    EGLint  pMaxWidth,pMaxHeight,pMaxPixels;
-    EGLint  configId,level;
-    EGLint  window,bitmap,pbuffer,transparent;
-    HDC dpy = getDummyDC(display,WinDisplay::DEFAULT_DISPLAY);
-
-    if(frmt->iPixelType != PFD_TYPE_RGBA) return NULL; // other formats are not supported yet
-    if(!((frmt->dwFlags & PFD_SUPPORT_OPENGL) && (frmt->dwFlags & PFD_DOUBLEBUFFER))) return NULL; //pixel format does not supports opengl or double buffer
-    if( 0 != (frmt->dwFlags & (PFD_GENERIC_FORMAT | PFD_NEED_PALETTE )) ) return NULL; //discard generic pixel formats as well as pallete pixel formats
-
-    int attribs [] = {
-                          WGL_DRAW_TO_WINDOW_ARB,
-                          WGL_DRAW_TO_BITMAP_ARB,
-                          WGL_DRAW_TO_PBUFFER_ARB,
-                          WGL_TRANSPARENT_ARB,
-                          WGL_TRANSPARENT_RED_VALUE_ARB,
-                          WGL_TRANSPARENT_GREEN_VALUE_ARB,
-                          WGL_TRANSPARENT_BLUE_VALUE_ARB
-                     };
-
-    supportedSurfaces = 0;
-    if(!s_wglExtProcs->wglGetPixelFormatAttribivARB) return NULL;
-
-    IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[0],&window));
-    IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[1],&bitmap));
-    IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[2],&pbuffer));
-    if(window)  supportedSurfaces |= EGL_WINDOW_BIT;
-    if(bitmap)  supportedSurfaces |= EGL_PIXMAP_BIT;
-    if(pbuffer) supportedSurfaces |= EGL_PBUFFER_BIT;
-
-
-    if(!supportedSurfaces) return NULL;
-
-    //default values
-    visualId                  = 0;
-    visualType                = EGL_NONE;
-    EGLenum caveat            = EGL_NONE;
-    EGLBoolean renderable     = EGL_FALSE;
-    pMaxWidth                 = PBUFFER_MAX_WIDTH;
-    pMaxHeight                = PBUFFER_MAX_HEIGHT;
-    pMaxPixels                = PBUFFER_MAX_PIXELS;
-    samples                   = 0 ;
-    level                     = 0 ;
-
-    IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[3],&transparent));
-    if(transparent) {
-        transparentType = EGL_TRANSPARENT_RGB;
-        IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[4],&tRed));
-        IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[5],&tGreen));
-        IS_TRUE(s_wglExtProcs->wglGetPixelFormatAttribivARB(dpy,index,0,1,&attribs[6],&tBlue));
-    } else {
-        transparentType = EGL_NONE;
-    }
-
-    red     = frmt->cRedBits;
-    green   = frmt->cGreenBits;
-    blue    = frmt->cBlueBits;
-    alpha   = frmt->cAlphaBits;
-    depth   = frmt->cDepthBits;
-    stencil = frmt->cStencilBits;
-    return new EglConfig(red,green,blue,alpha,caveat,(EGLint)index,depth,level,pMaxWidth,pMaxHeight,pMaxPixels,renderable,renderableType,
-                         visualId,visualType,samples,stencil,supportedSurfaces,transparentType,tRed,tGreen,tBlue,*frmt);
-}
-
-
-void queryConfigs(EGLNativeInternalDisplayType display,int renderableType,ConfigsList& listOut) {
-    PIXELFORMATDESCRIPTOR  pfd;
-    int  iPixelFormat = 1;
-    HDC dpy = getDummyDC(display,WinDisplay::DEFAULT_DISPLAY);
-
-    //
-    // We need to call wglChoosePixelFormat at least once,
-    // seems that the driver needs to initialize itself.
-    // do it here during initialization.
-    //
-    initPixelFormat(dpy);
-
-    //quering num of formats
-    int nFormats = DescribePixelFormat(dpy, iPixelFormat,sizeof(PIXELFORMATDESCRIPTOR), &pfd);
-
-    //inserting rest of formats
-    for(iPixelFormat;iPixelFormat < nFormats; iPixelFormat++) {
-         DescribePixelFormat(dpy, iPixelFormat,sizeof(PIXELFORMATDESCRIPTOR), &pfd);
-         EglConfig* pConfig = pixelFormatToConfig(display,renderableType,&pfd,iPixelFormat);
-         if(pConfig) listOut.push_back(pConfig);
-    }
-}
-
-bool validNativeWin(EGLNativeInternalDisplayType dpy,EGLNativeWindowType win) {
-    return IsWindow(win);
-}
-
-bool validNativeWin(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType win) {
-    if (!win) return false;
-    return validNativeWin(dpy,win->getHwnd());
-}
-
-bool validNativePixmap(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType pix) {
-    BITMAP bm;
-    if (!pix) return false;
-    return GetObject(pix->getBmap(), sizeof(BITMAP), (LPSTR)&bm);
-}
-
-bool checkWindowPixelFormatMatch(EGLNativeInternalDisplayType dpy,EGLNativeWindowType win,EglConfig* cfg,unsigned int* width,unsigned int* height) {
-   RECT r;
-   if(!GetClientRect(win,&r)) return false;
-   *width  = r.right  - r.left;
-   *height = r.bottom - r.top;
-   HDC dc = GetDC(win);
-   EGLNativePixelFormatType nativeConfig = cfg->nativeConfig();
-   bool ret = SetPixelFormat(dc,cfg->nativeId(),&nativeConfig);
-   DeleteDC(dc);
-   return ret;
-}
-
-bool checkPixmapPixelFormatMatch(EGLNativeInternalDisplayType dpy,EGLNativePixmapType pix,EglConfig* cfg,unsigned int* width,unsigned int* height){
-
-    BITMAP bm;
-    if(!GetObject(pix, sizeof(BITMAP), (LPSTR)&bm)) return false;
-
-    *width  = bm.bmWidth;
-    *height = bm.bmHeight;
-
-    return true;
-}
-
-EGLNativeSurfaceType createPbufferSurface(EGLNativeInternalDisplayType display,EglConfig* cfg,EglPbufferSurface* pbSurface) {
-
-
-    HDC dpy = getDummyDC(display,cfg->nativeId());
-    EGLint width,height,largest,texTarget,texFormat;
-    pbSurface->getDim(&width,&height,&largest);
-    pbSurface->getTexInfo(&texTarget,&texFormat);
-
-    int wglTexFormat = WGL_NO_TEXTURE_ARB;
-    int wglTexTarget = (texTarget == EGL_TEXTURE_2D)? WGL_TEXTURE_2D_ARB:
-                                                      WGL_NO_TEXTURE_ARB;
-
-    switch(texFormat) {
-    case EGL_TEXTURE_RGB:
-        wglTexFormat = WGL_TEXTURE_RGB_ARB;
-        break;
-    case EGL_TEXTURE_RGBA:
-        wglTexFormat = WGL_TEXTURE_RGBA_ARB;
-        break;
-    }
-
-    int pbAttribs[] = {
-                       WGL_TEXTURE_TARGET_ARB   ,wglTexTarget,
-                       WGL_TEXTURE_FORMAT_ARB   ,wglTexFormat,
-                       0
-                      };
-    if(!s_wglExtProcs->wglCreatePbufferARB) return NULL;
-    EGLNativePbufferType pb = s_wglExtProcs->wglCreatePbufferARB(dpy,cfg->nativeId(),width,height,pbAttribs);
-    if(!pb) {
-        DWORD err = GetLastError();
-        return NULL;
-    }
-    return new SrfcInfo(pb);
-}
-
-bool releasePbuffer(EGLNativeInternalDisplayType display,EGLNativeSurfaceType pb) {
-    if (!pb) return false;
-    if(!s_wglExtProcs->wglReleasePbufferDCARB || !s_wglExtProcs->wglDestroyPbufferARB) return false;
-    if(!s_wglExtProcs->wglReleasePbufferDCARB(pb->getPbuffer(),pb->getDC()) || !s_wglExtProcs->wglDestroyPbufferARB(pb->getPbuffer())){
-        DWORD err = GetLastError();
-        return false;
-    }
-    return true;
-}
-
-EGLNativeContextType createContext(EGLNativeInternalDisplayType display,EglConfig* cfg,EGLNativeContextType sharedContext) {
-
-    EGLNativeContextType ctx = NULL;
-    HDC  dpy  = getDummyDC(display,cfg->nativeId());
-
-    if(!display->isPixelFormatSet(cfg->nativeId())){
-        EGLNativePixelFormatType nativeConfig = cfg->nativeConfig();
-        if(!SetPixelFormat(dpy,cfg->nativeId(),&nativeConfig)){
-            return NULL;
-        }
-        display->pixelFormatWasSet(cfg->nativeId());
-    }
-
-    ctx = wglCreateContext(dpy);
-
-    if(ctx && sharedContext) {
-        if(!wglShareLists(sharedContext,ctx)) {
-            wglDeleteContext(ctx);
-            return NULL;
-        }
-    }
-    return ctx;
-}
-
-bool destroyContext(EGLNativeInternalDisplayType dpy,EGLNativeContextType ctx) {
-    if(!wglDeleteContext(ctx)) {
-        DWORD err = GetLastError();
-        return false;
-    }
-    return true;
-}
-
-
-bool makeCurrent(EGLNativeInternalDisplayType display,EglSurface* read,EglSurface* draw,EGLNativeContextType ctx) {
-
-    HDC hdcRead = read ? read->native()->getDC(): NULL;
-    HDC hdcDraw = draw ? draw->native()->getDC(): NULL;
-    bool retVal = false;
-
-
-    if(hdcRead == hdcDraw){
-            bool ret =  wglMakeCurrent(hdcDraw,ctx);
-            return ret;
-    } else if (!s_wglExtProcs->wglMakeContextCurrentARB ) {
-        return false;
-    }
-    retVal = s_wglExtProcs->wglMakeContextCurrentARB(hdcDraw,hdcRead,ctx);
-
-    return retVal;
-}
-
-void swapBuffers(EGLNativeInternalDisplayType display,EGLNativeSurfaceType srfc){
-    if(srfc && !SwapBuffers(srfc->getDC())) {
-        DWORD err = GetLastError();
-    }
-}
-
-
-void waitNative(){}
-
-void swapInterval(EGLNativeInternalDisplayType dpy,EGLNativeSurfaceType win,int interval) {
-
-    if (s_wglExtProcs->wglSwapIntervalEXT){
-        s_wglExtProcs->wglSwapIntervalEXT(interval);
-    }
-}
-
-EGLNativeSurfaceType createWindowSurface(EGLNativeWindowType wnd){
-    return new SrfcInfo(wnd);
-}
-
-EGLNativeSurfaceType createPixmapSurface(EGLNativePixmapType pix){
-    return new SrfcInfo(pix);
-}
-
-void destroySurface(EGLNativeSurfaceType srfc){
-    delete srfc;
-}
-
-
-};
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/EglX11Api.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/EglX11Api.cpp
deleted file mode 100644
index a421db9..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/EglX11Api.cpp
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EglOsApi.h"
-#include <string.h>
-#include <X11/Xlib.h>
-#include <GL/glx.h>
-#include <utils/threads.h>
-
-
-class ErrorHandler{
-public:
-ErrorHandler(EGLNativeDisplayType dpy);
-~ErrorHandler();
-int getLastError(){ return s_lastErrorCode;};
-
-private:
-static int s_lastErrorCode;
-int (*m_oldErrorHandler) (Display *, XErrorEvent *);
-static android::Mutex s_lock;
-static int errorHandlerProc(EGLNativeDisplayType dpy,XErrorEvent* event);
-
-};
-
-class SrfcInfo{
-public:
-    typedef enum{
-                 WINDOW  = 0,
-                 PBUFFER = 1, 
-                 PIXMAP
-                }SurfaceType;
-    SrfcInfo(GLXDrawable drawable,SurfaceType type):m_type(type),
-                                                    m_srfc(drawable){};
-    GLXDrawable srfc(){return m_srfc;};
-private: 
-    SurfaceType m_type;
-    GLXDrawable  m_srfc; 
-};
-
-int ErrorHandler::s_lastErrorCode = 0;
-android::Mutex ErrorHandler::s_lock;
-
-ErrorHandler::ErrorHandler(EGLNativeDisplayType dpy){
-   android::Mutex::Autolock mutex(s_lock);
-   XSync(dpy,False);
-   s_lastErrorCode = 0;
-   m_oldErrorHandler = XSetErrorHandler(errorHandlerProc);
-}
-
-ErrorHandler::~ErrorHandler(){
-   android::Mutex::Autolock mutex(s_lock);
-   XSetErrorHandler(m_oldErrorHandler);
-   s_lastErrorCode = 0;
-}
-
-int ErrorHandler::errorHandlerProc(EGLNativeDisplayType dpy,XErrorEvent* event){
-    android::Mutex::Autolock mutex(s_lock);
-    s_lastErrorCode = event->error_code;
-    return 0;
-}
-
-#define IS_SUCCESS(a) \
-        if(a != Success) return false;
-
-namespace EglOS {
-
-EGLNativeDisplayType getDefaultDisplay() {return XOpenDisplay(0);}
-
-bool releaseDisplay(EGLNativeDisplayType dpy) {
-    return XCloseDisplay(dpy);
-}
-
-EglConfig* pixelFormatToConfig(EGLNativeDisplayType dpy,int renderableType,EGLNativePixelFormatType* frmt){
-
-    int  bSize,red,green,blue,alpha,depth,stencil;
-    int  supportedSurfaces,visualType,visualId;
-    int  caveat,transparentType,samples;
-    int  tRed=0,tGreen=0,tBlue=0;
-    int  pMaxWidth,pMaxHeight,pMaxPixels;
-    int  tmp;
-    int  configId,level,renderable;
-    int  doubleBuffer;
-
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_TRANSPARENT_TYPE,&tmp));
-    if(tmp == GLX_TRANSPARENT_INDEX) {
-        return NULL; // not supporting transparent index
-    } else if( tmp == GLX_NONE) {
-        transparentType = EGL_NONE;
-    } else {
-        transparentType = EGL_TRANSPARENT_RGB;
-
-        IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_TRANSPARENT_RED_VALUE,&tRed));
-        IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_TRANSPARENT_GREEN_VALUE,&tGreen));
-        IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_TRANSPARENT_BLUE_VALUE,&tBlue));
-    }
-
-
-    //
-    // filter out single buffer configurations
-    //
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_DOUBLEBUFFER,&doubleBuffer));
-    if (!doubleBuffer) return NULL;
-
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_BUFFER_SIZE,&bSize));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_RED_SIZE,&red));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_GREEN_SIZE,&green));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_BLUE_SIZE,&blue));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_ALPHA_SIZE,&alpha));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_DEPTH_SIZE,&depth));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_STENCIL_SIZE,&stencil));
-
-
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_X_RENDERABLE,&renderable));
-
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_X_VISUAL_TYPE,&visualType));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_VISUAL_ID,&visualId));
-
-    //supported surfaces types
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_DRAWABLE_TYPE,&tmp));
-    supportedSurfaces = 0;
-    if(tmp & GLX_WINDOW_BIT && visualId != 0) {
-        supportedSurfaces |= EGL_WINDOW_BIT;
-    } else {
-        visualId = 0;
-        visualType = EGL_NONE;
-    }
-    if(tmp & GLX_PBUFFER_BIT) supportedSurfaces |= EGL_PBUFFER_BIT;
-
-    caveat = 0;
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_CONFIG_CAVEAT,&tmp));
-    if     (tmp == GLX_NONE) caveat = EGL_NONE;
-    else if(tmp == GLX_SLOW_CONFIG) caveat = EGL_SLOW_CONFIG;
-    else if(tmp == GLX_NON_CONFORMANT_CONFIG) caveat = EGL_NON_CONFORMANT_CONFIG;
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_MAX_PBUFFER_WIDTH,&pMaxWidth));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_MAX_PBUFFER_HEIGHT,&pMaxHeight));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_MAX_PBUFFER_HEIGHT,&pMaxPixels));
-
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_LEVEL,&level));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_FBCONFIG_ID,&configId));
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_SAMPLES,&samples));
-    //Filter out configs that does not support RGBA
-    IS_SUCCESS(glXGetFBConfigAttrib(dpy,*frmt,GLX_RENDER_TYPE,&tmp));
-    if (!(tmp & GLX_RGBA_BIT)) {
-        return NULL;
-    }
-
-    return new EglConfig(red,green,blue,alpha,caveat,configId,depth,level,pMaxWidth,pMaxHeight,
-                              pMaxPixels,renderable,renderableType,visualId,visualType,samples,stencil,
-                              supportedSurfaces,transparentType,tRed,tGreen,tBlue,*frmt);
-}
-
-void queryConfigs(EGLNativeDisplayType dpy,int renderableType,ConfigsList& listOut) {
-    int n;
-    EGLNativePixelFormatType*  frmtList =  glXGetFBConfigs(dpy,0,&n);
-    for(int i =0 ;i < n ; i++) {
-        EglConfig* conf = pixelFormatToConfig(dpy,renderableType,&frmtList[i]);
-        if(conf) listOut.push_back(conf);
-    }
-    XFree(frmtList);
-}
-
-bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeWindowType win) {
-   Window root;
-   int tmp;
-   unsigned int utmp;
-   ErrorHandler handler(dpy);
-   if(!XGetGeometry(dpy,win,&root,&tmp,&tmp,&utmp,&utmp,&utmp,&utmp)) return false;
-   return handler.getLastError() == 0;
-}
-
-bool validNativeWin(EGLNativeDisplayType dpy,EGLNativeSurfaceType win) {
-    if (!win) return false;
-    return validNativeWin(dpy,win->srfc());
-}
-
-bool validNativePixmap(EGLNativeDisplayType dpy,EGLNativeSurfaceType pix) {
-   Window root;
-   int tmp;
-   unsigned int utmp;
-   ErrorHandler handler(dpy);
-   if(!XGetGeometry(dpy,pix ? pix->srfc() : NULL,&root,&tmp,&tmp,&utmp,&utmp,&utmp,&utmp)) return false;
-   return handler.getLastError() == 0;
-}
-
-bool checkWindowPixelFormatMatch(EGLNativeDisplayType dpy,EGLNativeWindowType win,EglConfig* cfg,unsigned int* width,unsigned int* height) {
-//TODO: to check what does ATI & NVIDIA enforce on win pixelformat
-   unsigned int depth,configDepth,border;
-   int r,g,b,x,y;
-   IS_SUCCESS(glXGetFBConfigAttrib(dpy,cfg->nativeConfig(),GLX_RED_SIZE,&r));
-   IS_SUCCESS(glXGetFBConfigAttrib(dpy,cfg->nativeConfig(),GLX_GREEN_SIZE,&g));
-   IS_SUCCESS(glXGetFBConfigAttrib(dpy,cfg->nativeConfig(),GLX_BLUE_SIZE,&b));
-   configDepth = r + g + b;
-   Window root;
-   if(!XGetGeometry(dpy,win,&root,&x,&y,width,height,&border,&depth)) return false;
-   return depth >= configDepth;
-}
-
-bool checkPixmapPixelFormatMatch(EGLNativeDisplayType dpy,EGLNativePixmapType pix,EglConfig* cfg,unsigned int* width,unsigned int* height) {
-   unsigned int depth,configDepth,border;
-   int r,g,b,x,y;
-   IS_SUCCESS(glXGetFBConfigAttrib(dpy,cfg->nativeConfig(),GLX_RED_SIZE,&r));
-   IS_SUCCESS(glXGetFBConfigAttrib(dpy,cfg->nativeConfig(),GLX_GREEN_SIZE,&g));
-   IS_SUCCESS(glXGetFBConfigAttrib(dpy,cfg->nativeConfig(),GLX_BLUE_SIZE,&b));
-   configDepth = r + g + b;
-   Window root;
-   if(!XGetGeometry(dpy,pix,&root,&x,&y,width,height,&border,&depth)) return false;
-   return depth >= configDepth;
-}
-
-EGLNativeSurfaceType createPbufferSurface(EGLNativeDisplayType dpy,EglConfig* cfg,EglPbufferSurface* srfc){
-    EGLint width,height,largest;
-    srfc->getDim(&width,&height,&largest);
-
-    int attribs[] = {
-                     GLX_PBUFFER_WIDTH           ,width,
-                     GLX_PBUFFER_HEIGHT          ,height,
-                     GLX_LARGEST_PBUFFER         ,largest,
-                     None
-                    };
-    GLXPbuffer pb = glXCreatePbuffer(dpy,cfg->nativeConfig(),attribs);
-    return pb ? new SrfcInfo(pb,SrfcInfo::PBUFFER) : NULL;
-}
-
-bool releasePbuffer(EGLNativeDisplayType dis,EGLNativeSurfaceType pb) {
-    if (!pb) return false;
-    glXDestroyPbuffer(dis,pb->srfc());
-
-    return true;
-}
-
-EGLNativeContextType createContext(EGLNativeDisplayType dpy,EglConfig* cfg,EGLNativeContextType sharedContext) {
- ErrorHandler handler(dpy);
- EGLNativeContextType retVal = glXCreateNewContext(dpy,cfg->nativeConfig(),GLX_RGBA_TYPE,sharedContext,true);
- return handler.getLastError() == 0 ? retVal : NULL;
-}
-
-bool destroyContext(EGLNativeDisplayType dpy,EGLNativeContextType ctx) {
-    glXDestroyContext(dpy,ctx);
-    return true;
-}
-
-bool makeCurrent(EGLNativeDisplayType dpy,EglSurface* read,EglSurface* draw,EGLNativeContextType ctx){
-
-    ErrorHandler handler(dpy);
-    bool retval = false;
-    if (!ctx && !read && !draw) {
-        // unbind
-        retval = glXMakeContextCurrent(dpy, NULL, NULL, NULL);
-    }
-    else if (ctx && read && draw) {
-        retval = glXMakeContextCurrent(dpy,draw->native()->srfc(),read->native()->srfc(),ctx);
-    }
-    return (handler.getLastError() == 0) && retval;
-}
-
-void swapBuffers(EGLNativeDisplayType dpy,EGLNativeSurfaceType srfc){
-    if (srfc) {
-        glXSwapBuffers(dpy,srfc->srfc());
-    }
-}
-
-void waitNative() {
-    glXWaitX();
-}
-
-void swapInterval(EGLNativeDisplayType dpy,EGLNativeSurfaceType win,int interval){
-    const char* extensions = glXQueryExtensionsString(dpy,DefaultScreen(dpy));
-    typedef void (*GLXSWAPINTERVALEXT)(Display*,GLXDrawable,int);
-    GLXSWAPINTERVALEXT glXSwapIntervalEXT = NULL;
-
-    if(strstr(extensions,"EXT_swap_control")) {
-        glXSwapIntervalEXT = (GLXSWAPINTERVALEXT)glXGetProcAddress((const GLubyte*)"glXSwapIntervalEXT");
-    }
-    if(glXSwapIntervalEXT && win) {
-        glXSwapIntervalEXT(dpy,win->srfc(),interval);
-    }
-}
-
-EGLNativeSurfaceType createWindowSurface(EGLNativeWindowType wnd){
-    return new SrfcInfo(wnd,SrfcInfo::WINDOW);
-}
-
-EGLNativeSurfaceType createPixmapSurface(EGLNativePixmapType pix){
-    return new SrfcInfo(pix,SrfcInfo::PIXMAP);
-}
-
-void destroySurface(EGLNativeSurfaceType srfc){
-    delete srfc;
-};
-
-EGLNativeInternalDisplayType getInternalDisplay(EGLNativeDisplayType dpy){
-    return dpy;
-}
-
-void deleteDisplay(EGLNativeInternalDisplayType idpy){
-}
-
-};
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/MacNative.h b/tools/emulator/opengl/host/libs/Translator/EGL/MacNative.h
deleted file mode 100644
index 63145ec..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/MacNative.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef  MAC_NATIVE_H
-#define  MAC_NATIVE_H
-
-/*
-* Copyright (C) 2011 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.
-*/
-
-typedef enum {                               // Mac equivalence
-                 MAC_HAS_DOUBLE_BUFFER = 5,  // NSOpenGLPFADoubleBuffer
-                 MAC_DRAW_TO_WINDOW    = 80, // NSOpenGLPFAWindow
-                 MAC_DRAW_TO_PBUFFER   = 90, // NSOpenGLPFAPixelBuffer
-                 MAC_SAMPLES_PER_PIXEL = 56, // NSOpenGLPFASamples
-                 MAC_COLOR_SIZE        = 8,  // NSOpenGLPFAColorSize
-                 MAC_ALPHA_SIZE        = 11, // NSOpenGLPFAAlphaSize
-                 MAC_DEPTH_SIZE        = 12, // NSOpenGLPFADepthSize
-                 MAC_STENCIL_SIZE      = 13  // NSOpenGLPFAStencilSize
-             } MacPixelFormatAttribs;
-
-
-extern "C"{
-
-int   getNumPixelFormats();
-void* getPixelFormat(int i);
-void  getPixelFormatAttrib(void* pixelFormat,int attrib,int* val);
-void* nsCreateContext(void* format,void* share);
-void  nsWindowMakeCurrent(void* context,void* nativeWin);
-void  nsPBufferMakeCurrent(void* context,void* nativePBuffer,int level);
-void  nsSwapBuffers();
-void  nsSwapInterval(int *interval);
-void  nsDestroyContext(void* context);
-void* nsCreatePBuffer(GLenum target,GLenum format,int maxMip,int width,int height);
-void  nsDestroyPBuffer(void* pbuffer);
-bool  nsGetWinDims(void* win,unsigned int* width,unsigned int* height);
-bool  nsCheckColor(void* win,int colorSize);
-
-}
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/MacNative.m b/tools/emulator/opengl/host/libs/Translator/EGL/MacNative.m
deleted file mode 100644
index 6828655..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/MacNative.m
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <stdio.h>
-#include <Cocoa/Cocoa.h>
-#include <OpenGL/OpenGL.h>
-#include "MacPixelFormatsAttribs.h"
-
-//
-// EmuGLContext inherit from NSOpenGLContext
-// and adds binding state for the context to know
-// if it was last bounded to a pbuffer or a window.
-// This is because after the context was bounded to
-// a Pbuffer, before we bind it to a window we must
-// release it form the pbuffer by calling the
-// clearDrawable method. We do not want to call clearDrawable
-// more than really needed since when it is called at a time
-// that a window is bounded to the context it will clear the
-// window content causing flickering effect.
-// Thererfore we call clearDrawable only when we bind the context
-// to a window and it was previously bound to a Pbuffer.
-//
-@interface EmuGLContext : NSOpenGLContext {
-    @private
-        int boundToPbuffer;
-        int boundToWin;
-}
-
-- (id) initWithFormat:(NSOpenGLPixelFormat *)pixelFormat shareContext:(NSOpenGLContext *)share;
-- (void) preBind:(int)forPbuffer;
-@end
-
-@implementation EmuGLContext
-- (id) initWithFormat:(NSOpenGLPixelFormat *)pixelFormat shareContext:(NSOpenGLContext *)share
-{
-    self = [super initWithFormat:pixelFormat shareContext:share];
-    if (self != nil) {
-        boundToPbuffer = 0;
-        boundToWin = 0;
-    }
-    return self;
-}
-
-- (void) preBind:(int)forPbuffer
-{
-    if ((!forPbuffer && boundToPbuffer)) {
-        [self clearDrawable]; 
-    }
-    boundToPbuffer = forPbuffer;
-    boundToWin = !boundToPbuffer;
-}
-@end
-
-int getNumPixelFormats(){
-    int size;
-    NSOpenGLPixelFormatAttribute** attrib_lists = getPixelFormatsAttributes(&size);
-    return size;
-}
-
-void* getPixelFormat(int i){
-    int size;
-    NSOpenGLPixelFormatAttribute** attrib_lists = getPixelFormatsAttributes(&size);
-    return [[NSOpenGLPixelFormat alloc] initWithAttributes:attrib_lists[i]];
-}
-
-void getPixelFormatAttrib(void* pixelFormat,int attrib,int* val){
-    NSOpenGLPixelFormat *frmt = (NSOpenGLPixelFormat *)pixelFormat;
-    [frmt getValues:val forAttribute:attrib forVirtualScreen:0];
-}
-
-void* nsCreateContext(void* format,void* share){
-    NSOpenGLPixelFormat* frmt = (NSOpenGLPixelFormat*)format;
-    return [[EmuGLContext alloc] initWithFormat:frmt shareContext:share];
-}
-
-void  nsPBufferMakeCurrent(void* context,void* nativePBuffer,int level){
-    EmuGLContext* ctx = (EmuGLContext *)context;
-    NSOpenGLPixelBuffer* pbuff = (NSOpenGLPixelBuffer *)nativePBuffer;
-    if(ctx == nil){
-        [NSOpenGLContext clearCurrentContext];
-    } else {
-        if(pbuff != nil){
-            [ctx preBind:1];
-            [ctx setPixelBuffer:pbuff cubeMapFace:0 mipMapLevel:level currentVirtualScreen:0];
-            [ctx makeCurrentContext];
-        }
-    }
-}
-
-void nsWindowMakeCurrent(void* context,void* nativeWin){
-    EmuGLContext* ctx = (EmuGLContext *)context;
-    NSView* win = (NSView *)nativeWin;
-    if(ctx == nil){
-        [NSOpenGLContext clearCurrentContext];
-    } else if (win != nil) {
-        [ctx preBind:0];
-        [ctx setView: win];
-        [ctx makeCurrentContext];
-    }
-}
-
-void nsSwapBuffers(){
-    NSOpenGLContext* ctx = [NSOpenGLContext currentContext];
-    if(ctx != nil){
-        [ctx flushBuffer];
-    }
-}
-
-void nsSwapInterval(int *interval){
-    NSOpenGLContext* ctx = [NSOpenGLContext currentContext];
-    if( ctx != nil){
-        [ctx setValues:interval forParameter:NSOpenGLCPSwapInterval];
-    }
-}
-
-
-void nsDestroyContext(void* context){
-    EmuGLContext *ctx = (EmuGLContext*)context;
-    if(ctx != nil){
-        [ctx release];
-    }
-}
-
-
-void* nsCreatePBuffer(GLenum target,GLenum format,int maxMip,int width,int height){
-    return [[NSOpenGLPixelBuffer alloc] initWithTextureTarget:target
-                                        textureInternalFormat:format
-                                        textureMaxMipMapLevel:maxMip
-                                        pixelsWide:width pixelsHigh:height];
-
-}
-
-void nsDestroyPBuffer(void* pbuffer){
-    NSOpenGLPixelBuffer *pbuf = (NSOpenGLPixelBuffer*)pbuffer;
-    if(pbuf != nil){
-        [pbuf release];
-    }
-}
-
-bool nsGetWinDims(void* win,unsigned int* width,unsigned int* height){
-    NSView* view = (NSView*)win;
-    if(view != nil){
-        NSRect rect = [view bounds];
-        *width  = rect.size.width;
-        *height = rect.size.height;
-        return true;
-    }
-    return false;
-}
-
-bool  nsCheckColor(void* win,int colorSize){
-    NSView* view = (NSView*)win;
-   if(view != nil){
-       NSWindow* wnd = [view window];
-       if(wnd != nil){
-           NSWindowDepth limit = [wnd depthLimit];
-           NSWindowDepth defaultLimit = [NSWindow defaultDepthLimit];
-
-           int depth = (limit != 0) ? NSBitsPerPixelFromDepth(limit):
-                                      NSBitsPerPixelFromDepth(defaultLimit);
-           return depth >= colorSize;
-
-       }
-   }
-   return false;
-
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/MacPixelFormatsAttribs.h b/tools/emulator/opengl/host/libs/Translator/EGL/MacPixelFormatsAttribs.h
deleted file mode 100644
index 112aeec..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/MacPixelFormatsAttribs.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef MAC_PIXELS_FORMATS_ATTRIBS_H	
-#define MAC_PIXELS_FORMATS_ATTRIBS_H	
-
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <Cocoa/Cocoa.h>
-NSOpenGLPixelFormatAttribute** getPixelFormatsAttributes(int* size);
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/MacPixelFormatsAttribs.m b/tools/emulator/opengl/host/libs/Translator/EGL/MacPixelFormatsAttribs.m
deleted file mode 100644
index abbaf08..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/MacPixelFormatsAttribs.m
+++ /dev/null
@@ -1,214 +0,0 @@
-#include "MacPixelFormatsAttribs.h"
-
-/*
-* Copyright (C) 2011 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.
-*/
-
-static NSOpenGLPixelFormatAttribute attrs32_1[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFAStencilSize ,8,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs32_2[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    NSOpenGLPFAAlphaSize   ,8,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFAStencilSize ,8,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs32_3[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    NSOpenGLPFAAlphaSize   ,8,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs32_4[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs32_5[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFASamples     ,2,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs32_6[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFASamples     ,4,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs32_7[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,32,
-    NSOpenGLPFAAlphaSize   ,8,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFAStencilSize ,8,
-    NSOpenGLPFASamples     ,4,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs16_1[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,16,
-    NSOpenGLPFADepthSize   ,24,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs16_2[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,16,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFAStencilSize ,8,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs64_1[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,64,
-    NSOpenGLPFAAlphaSize   ,16,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs64_2[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,64,
-    NSOpenGLPFAAlphaSize   ,16,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFAStencilSize ,8,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs64_3[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,64,
-    NSOpenGLPFAAlphaSize   ,16,
-    NSOpenGLPFADepthSize   ,24,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs64_4[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,64,
-    NSOpenGLPFADepthSize   ,24,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs64_5[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,64,
-    NSOpenGLPFADepthSize   ,24,
-    NSOpenGLPFAStencilSize ,8,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs128_1[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,128,
-    NSOpenGLPFAAlphaSize   ,32,
-    0
-};
-
-static NSOpenGLPixelFormatAttribute attrs128_2[] =
-{
-    NSOpenGLPFADoubleBuffer,
-    NSOpenGLPFAWindow,
-    NSOpenGLPFAPixelBuffer,
-    NSOpenGLPFAColorSize   ,128,
-    NSOpenGLPFAAlphaSize   ,32,
-    NSOpenGLPFADepthSize   ,24,
-    0
-};
-
-NSOpenGLPixelFormatAttribute** getPixelFormatsAttributes(int* size){
-static NSOpenGLPixelFormatAttribute* arr[] =
-{
-    attrs16_1,
-    attrs16_2,
-    attrs32_1,
-    attrs32_2,
-    attrs32_3,
-    attrs32_4,
-    attrs32_5,
-    attrs32_6,
-    attrs32_7,
-    attrs64_1,
-    attrs64_2,
-    attrs64_3,
-    attrs64_4,
-    attrs64_5,
-    attrs128_1,
-    attrs128_2
-};
-    *size = sizeof(arr)/sizeof(arr[0]);
-    return arr;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/ThreadInfo.cpp b/tools/emulator/opengl/host/libs/Translator/EGL/ThreadInfo.cpp
deleted file mode 100644
index d1d018f..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/ThreadInfo.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include "ThreadInfo.h"
-
-
-void ThreadInfo::updateInfo(ContextPtr eglCtx,
-                            EglDisplay* dpy,
-                            GLEScontext* glesCtx,
-                            ShareGroupPtr share,
-                            ObjectNameManager* manager) {
-
-    eglContext  = eglCtx;
-    eglDisplay  = dpy;
-    glesContext = glesCtx;
-    shareGroup  = share;
-    objManager  = manager;
-}
-
-#ifdef __linux__
-
-__thread ThreadInfo* thread  = NULL;
-
-ThreadInfo* getThreadInfo(){
-    if(!thread) {
-        thread = new ThreadInfo();
-    }
-    return thread;
-}
-
-#else
-
-#include <cutils/threads.h>
-static thread_store_t s_tls = THREAD_STORE_INITIALIZER;
-
-static void tlsDestruct(void *ptr)
-{
-    if (ptr) {
-        ThreadInfo *ti = (ThreadInfo *)ptr;
-        delete ti;
-    }
-}
-
-ThreadInfo *getThreadInfo()
-{
-    ThreadInfo *ti = (ThreadInfo *)thread_store_get(&s_tls);
-    if (!ti) {
-        ti = new ThreadInfo();
-        thread_store_set(&s_tls, ti, tlsDestruct);
-    }
-    return ti;
-}
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/EGL/ThreadInfo.h b/tools/emulator/opengl/host/libs/Translator/EGL/ThreadInfo.h
deleted file mode 100644
index ffc6e5f..0000000
--- a/tools/emulator/opengl/host/libs/Translator/EGL/ThreadInfo.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef THREAD_INFO_H
-#define THREAD_INFO_H
-
-#include "EglContext.h"
-
-class EglDisplay;
-class GLEScontext;
-
-struct ThreadInfo {
-    ThreadInfo():eglDisplay(NULL),glesContext(NULL),objManager(NULL){}
-
-    void updateInfo(ContextPtr eglctx,
-                    EglDisplay* dpy,
-                    GLEScontext* glesCtx,
-                    ShareGroupPtr share,
-                    ObjectNameManager* manager);
-
-    ContextPtr           eglContext;
-    EglDisplay*          eglDisplay;
-    GLEScontext*         glesContext;
-    ShareGroupPtr        shareGroup;
-    ObjectNameManager*   objManager;
-};
-
-ThreadInfo* getThreadInfo();
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk b/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
deleted file mode 100644
index 21adeec..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-### GLES_CM host implementation (On top of OpenGL) ########################
-$(call emugl-begin-host-shared-library,libGLES_CM_translator)
-
-$(call emugl-import,libGLcommon)
-
-LOCAL_SRC_FILES :=      \
-     GLEScmImp.cpp      \
-     GLEScmUtils.cpp    \
-     GLEScmContext.cpp  \
-     GLEScmValidate.cpp
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLDispatch.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLDispatch.cpp
deleted file mode 100644
index af5c0d8..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLDispatch.cpp
+++ /dev/null
@@ -1,178 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLDispatch.h"
-#include <stdio.h>
-#include <OpenglOsUtils/osDynLibrary.h>
-
-#ifdef __linux__
-#include <GL/glx.h>
-#elif defined(WIN32)
-#include <windows.h>
-#endif
-
-typedef void (*GL_FUNC_PTR)();
-
-static GL_FUNC_PTR getGLFuncAddress(const char *funcName) {
-    GL_FUNC_PTR ret = NULL;
-#ifdef __linux__
-    static osUtils::dynLibrary* libGL = osUtils::dynLibrary::open("libGL.so");
-    ret = (GL_FUNC_PTR)glXGetProcAddress((const GLubyte*)funcName);
-#elif defined(WIN32)
-    static osUtils::dynLibrary* libGL = osUtils::dynLibrary::open("opengl32");
-    ret = (GL_FUNC_PTR)wglGetProcAddress(funcName);
-#endif
-    if(!ret && libGL){
-        ret = libGL->findSymbol(funcName);
-    }
-    return ret;
-}
-
-#define LOAD_GL_FUNC(name)  {   void * funcAddrs = NULL;              \
-                funcAddrs = (void *)getGLFuncAddress(#name);          \
-                if(funcAddrs)                                         \
-                    *(void**)(&name) = funcAddrs;                     \
-                else                          \
-                    fprintf(stderr,"could not load func %s\n",#name); }
-
-GLDispatch::GLDispatch():m_isLoaded(false){};
-
-
-void GLDispatch::dispatchFuncs() {
-    android::Mutex::Autolock mutex(m_lock);
-    if(m_isLoaded)
-        return;
-    LOAD_GL_FUNC(glActiveTexture);
-    LOAD_GL_FUNC(glAlphaFunc);
-    LOAD_GL_FUNC(glBegin);
-    LOAD_GL_FUNC(glBindBuffer);
-    LOAD_GL_FUNC(glBindTexture);
-    LOAD_GL_FUNC(glBlendFunc);
-    LOAD_GL_FUNC(glBufferData);
-    LOAD_GL_FUNC(glBufferSubData);
-    LOAD_GL_FUNC(glClear);
-    LOAD_GL_FUNC(glClearColor);
-    LOAD_GL_FUNC(glClearDepth);
-    LOAD_GL_FUNC(glClearStencil);
-    LOAD_GL_FUNC(glClientActiveTexture);
-    LOAD_GL_FUNC(glClipPlane);
-    LOAD_GL_FUNC(glColor4d);
-    LOAD_GL_FUNC(glColor4f);
-    LOAD_GL_FUNC(glColor4fv);
-    LOAD_GL_FUNC(glColor4ub);
-    LOAD_GL_FUNC(glColor4ubv);
-    LOAD_GL_FUNC(glColorMask);
-    LOAD_GL_FUNC(glColorPointer);
-    LOAD_GL_FUNC(glCompressedTexImage2D);
-    LOAD_GL_FUNC(glCompressedTexSubImage2D);
-    LOAD_GL_FUNC(glCopyTexImage2D);
-    LOAD_GL_FUNC(glCopyTexSubImage2D);
-    LOAD_GL_FUNC(glCullFace);
-    LOAD_GL_FUNC(glDeleteBuffers);
-    LOAD_GL_FUNC(glDeleteTextures);
-    LOAD_GL_FUNC(glDepthFunc);
-    LOAD_GL_FUNC(glDepthMask);
-    LOAD_GL_FUNC(glDepthRange);
-    LOAD_GL_FUNC(glDisable);
-    LOAD_GL_FUNC(glDisableClientState);
-    LOAD_GL_FUNC(glDrawArrays);
-    LOAD_GL_FUNC(glDrawElements);
-    LOAD_GL_FUNC(glEnable);
-    LOAD_GL_FUNC(glEnableClientState);
-    LOAD_GL_FUNC(glEnd);
-    LOAD_GL_FUNC(glFinish);
-    LOAD_GL_FUNC(glFlush);
-    LOAD_GL_FUNC(glFogf);
-    LOAD_GL_FUNC(glFogfv);
-    LOAD_GL_FUNC(glFrontFace);
-    LOAD_GL_FUNC(glFrustum);
-    LOAD_GL_FUNC(glGenBuffers);
-    LOAD_GL_FUNC(glGenTextures);
-    LOAD_GL_FUNC(glGetBooleanv);
-    LOAD_GL_FUNC(glGetBufferParameteriv);
-    LOAD_GL_FUNC(glGetClipPlane);
-    LOAD_GL_FUNC(glGetDoublev);
-    LOAD_GL_FUNC(glGetError);
-    LOAD_GL_FUNC(glGetFloatv);
-    LOAD_GL_FUNC(glGetIntegerv);
-    LOAD_GL_FUNC(glGetLightfv);
-    LOAD_GL_FUNC(glGetMaterialfv);
-    LOAD_GL_FUNC(glGetPointerv);
-    LOAD_GL_FUNC(glGetString);
-    LOAD_GL_FUNC(glGetTexEnvfv);
-    LOAD_GL_FUNC(glGetTexEnviv);
-    LOAD_GL_FUNC(glGetTexParameterfv);
-    LOAD_GL_FUNC(glGetTexParameteriv);
-    LOAD_GL_FUNC(glHint);
-    LOAD_GL_FUNC(glIsBuffer);
-    LOAD_GL_FUNC(glIsEnabled);
-    LOAD_GL_FUNC(glIsTexture);
-    LOAD_GL_FUNC(glLightf);
-    LOAD_GL_FUNC(glLightfv);
-    LOAD_GL_FUNC(glLightModelf);
-    LOAD_GL_FUNC(glLightModelfv);
-    LOAD_GL_FUNC(glLineWidth);
-    LOAD_GL_FUNC(glLoadIdentity);
-    LOAD_GL_FUNC(glLoadMatrixf);
-    LOAD_GL_FUNC(glLogicOp);
-    LOAD_GL_FUNC(glMaterialf);
-    LOAD_GL_FUNC(glMaterialfv);
-    LOAD_GL_FUNC(glMultiTexCoord2fv);
-    LOAD_GL_FUNC(glMultiTexCoord2sv);
-    LOAD_GL_FUNC(glMultiTexCoord3fv);
-    LOAD_GL_FUNC(glMultiTexCoord3sv);
-    LOAD_GL_FUNC(glMultiTexCoord4fv);
-    LOAD_GL_FUNC(glMultiTexCoord4sv);
-    LOAD_GL_FUNC(glMultiTexCoord4f);
-    LOAD_GL_FUNC(glMultMatrixf);
-    LOAD_GL_FUNC(glNormal3f);
-    LOAD_GL_FUNC(glNormal3fv);
-    LOAD_GL_FUNC(glNormal3sv);
-    LOAD_GL_FUNC(glOrtho);
-    LOAD_GL_FUNC(glPointParameterf);
-    LOAD_GL_FUNC(glPointParameterfv);
-    LOAD_GL_FUNC(glPointSize);
-    LOAD_GL_FUNC(glPolygonOffset);
-    LOAD_GL_FUNC(glRotatef);
-    LOAD_GL_FUNC(glScalef);
-    LOAD_GL_FUNC(glTexEnvf);
-    LOAD_GL_FUNC(glTexEnvfv);
-    LOAD_GL_FUNC(glTexParameterf);
-    LOAD_GL_FUNC(glTexParameterfv);
-    LOAD_GL_FUNC(glMatrixMode);
-    LOAD_GL_FUNC(glNormalPointer);
-    LOAD_GL_FUNC(glPixelStorei);
-    LOAD_GL_FUNC(glPopMatrix);
-    LOAD_GL_FUNC(glPushMatrix);
-    LOAD_GL_FUNC(glReadPixels);
-    LOAD_GL_FUNC(glSampleCoverage);
-    LOAD_GL_FUNC(glScissor);
-    LOAD_GL_FUNC(glShadeModel);
-    LOAD_GL_FUNC(glStencilFunc);
-    LOAD_GL_FUNC(glStencilMask);
-    LOAD_GL_FUNC(glStencilOp);
-    LOAD_GL_FUNC(glTexCoordPointer);
-    LOAD_GL_FUNC(glTexEnvi);
-    LOAD_GL_FUNC(glTexEnviv);
-    LOAD_GL_FUNC(glTexImage2D);
-    LOAD_GL_FUNC(glTexParameteri);
-    LOAD_GL_FUNC(glTexParameteriv);
-    LOAD_GL_FUNC(glTexSubImage2D);
-    LOAD_GL_FUNC(glTranslatef);
-    LOAD_GL_FUNC(glVertexPointer);
-    LOAD_GL_FUNC(glViewport);
-
-    m_isLoaded = true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLDispatch.h b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLDispatch.h
deleted file mode 100644
index 9dc320f..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLDispatch.h
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLDISPATCHH
-#define GLDISPATCHH
-
-#include <GLES/gl.h>
-#include <utils/threads.h>
-
-#define GLAPIENTRY GL_APIENTRY
-
-typedef double      GLclampd;   /* double precision float in [0,1] */
-typedef double      GLdouble;   /* double precision float */
-
-class GLDispatch
-{
-public:
-
-    GLDispatch();
-    void dispatchFuncs();
-
-    void (GLAPIENTRY *glActiveTexture) ( GLenum texture );
-    void (GLAPIENTRY *glAlphaFunc) (GLenum func, GLclampf ref);
-    void (GLAPIENTRY *glBegin)( GLenum mode );
-    void (GLAPIENTRY *glBindBuffer) (GLenum target, GLuint buffer);
-    void (GLAPIENTRY *glBindTexture) (GLenum target, GLuint texture);
-    void (GLAPIENTRY *glBlendFunc) (GLenum sfactor, GLenum dfactor);
-    void (GLAPIENTRY *glBufferData) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-    void (GLAPIENTRY *glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-    void (GLAPIENTRY *glClear) (GLbitfield mask);
-    void (GLAPIENTRY *glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    void (GLAPIENTRY *glClearDepth) (GLclampd depth);
-    void (GLAPIENTRY *glClearStencil) (GLint s);
-    void (GLAPIENTRY *glClientActiveTexture) ( GLenum texture );
-    void (GLAPIENTRY *glClipPlane) (GLenum plane, const GLdouble *equation);
-    void (GLAPIENTRY *glColor4d) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-    void (GLAPIENTRY *glColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-    void (GLAPIENTRY *glColor4fv) ( const GLfloat *v );
-    void (GLAPIENTRY *glColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-    void (GLAPIENTRY *glColor4ubv) ( const GLubyte *v );
-    void (GLAPIENTRY *glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-    void (GLAPIENTRY *glColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    void (GLAPIENTRY *glCompressedTexImage2D) ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
-    void (GLAPIENTRY *glCompressedTexSubImage2D) ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
-    void (GLAPIENTRY *glCopyTexImage2D) (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-    void (GLAPIENTRY *glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-    void (GLAPIENTRY *glCullFace) (GLenum mode);
-    void (GLAPIENTRY *glDeleteBuffers) (GLsizei n, const GLuint *buffers);
-    void (GLAPIENTRY *glDeleteTextures) (GLsizei n, const GLuint *textures);
-    void (GLAPIENTRY *glDepthFunc) (GLenum func);
-    void (GLAPIENTRY *glDepthMask) (GLboolean flag);
-    void (GLAPIENTRY *glDepthRange) (GLclampd zNear, GLclampd zFar);
-    void (GLAPIENTRY *glDisable) (GLenum cap);
-    void (GLAPIENTRY *glDisableClientState) (GLenum array);
-    void (GLAPIENTRY *glDrawArrays) (GLenum mode, GLint first, GLsizei count);
-    void (GLAPIENTRY *glDrawElements) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-    void (GLAPIENTRY *glEnable) (GLenum cap);
-    void (GLAPIENTRY *glEnableClientState) (GLenum array);
-    void (GLAPIENTRY *glEnd) ( void );
-    void (GLAPIENTRY *glFinish) (void);
-    void (GLAPIENTRY *glFlush) (void);
-    void (GLAPIENTRY *glFogf) (GLenum pname, GLfloat param);
-    void (GLAPIENTRY *glFogfv) (GLenum pname, const GLfloat *params);
-    void (GLAPIENTRY *glFrontFace) (GLenum mode);
-    void (GLAPIENTRY *glFrustum) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-    void (GLAPIENTRY *glGenBuffers) (GLsizei n, GLuint *buffers);
-    void (GLAPIENTRY *glGenTextures) (GLsizei n, GLuint *textures);
-    void (GLAPIENTRY *glGetBooleanv) (GLenum pname, GLboolean *params);
-    void (GLAPIENTRY *glGetBufferParameteriv) (GLenum, GLenum, GLint *);
-    void (GLAPIENTRY *glGetClipPlane) (GLenum plane, GLdouble *equation);
-    void (GLAPIENTRY *glGetDoublev) ( GLenum pname, GLdouble *params );
-    GLenum (GLAPIENTRY *glGetError) (void);
-    void (GLAPIENTRY *glGetFloatv) (GLenum pname, GLfloat *params);
-    void (GLAPIENTRY *glGetIntegerv) (GLenum pname, GLint *params);
-    void (GLAPIENTRY *glGetLightfv) (GLenum light, GLenum pname, GLfloat *params);
-    void (GLAPIENTRY *glGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params);
-    void (GLAPIENTRY *glGetPointerv) (GLenum pname, GLvoid* *params);
-    const GLubyte * (GLAPIENTRY *glGetString) (GLenum name);
-    void (GLAPIENTRY *glGetTexEnvfv) (GLenum target, GLenum pname, GLfloat *params);
-    void (GLAPIENTRY *glGetTexEnviv) (GLenum target, GLenum pname, GLint *params);
-    void (GLAPIENTRY *glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat *params);
-    void (GLAPIENTRY *glGetTexParameteriv) (GLenum target, GLenum pname, GLint *params);
-    void (GLAPIENTRY *glHint) (GLenum target, GLenum mode);
-    GLboolean (GLAPIENTRY *glIsBuffer) (GLuint);
-    GLboolean (GLAPIENTRY *glIsEnabled) (GLenum cap);
-    GLboolean (GLAPIENTRY *glIsTexture) (GLuint texture);
-    void (GLAPIENTRY *glLightf) (GLenum light, GLenum pname, GLfloat param);
-    void (GLAPIENTRY *glLightfv) (GLenum light, GLenum pname, const GLfloat *params);
-    void (GLAPIENTRY *glLightModelf) (GLenum pname, GLfloat param);
-    void (GLAPIENTRY *glLightModelfv) (GLenum pname, const GLfloat *params);
-    void (GLAPIENTRY *glLineWidth) (GLfloat width);
-    void (GLAPIENTRY *glLoadIdentity) (void);
-    void (GLAPIENTRY *glLoadMatrixf) (const GLfloat *m);
-    void (GLAPIENTRY *glLogicOp) (GLenum opcode);
-    void (GLAPIENTRY *glMaterialf) (GLenum face, GLenum pname, GLfloat param);
-    void (GLAPIENTRY *glMaterialfv) (GLenum face, GLenum pname, const GLfloat *params);
-    void (GLAPIENTRY *glMultiTexCoord2fv) ( GLenum target, const GLfloat *v );
-    void (GLAPIENTRY *glMultiTexCoord2sv) ( GLenum target, const GLshort *v );
-    void (GLAPIENTRY *glMultiTexCoord3fv) ( GLenum target, const GLfloat *v );
-    void (GLAPIENTRY *glMultiTexCoord3sv) ( GLenum target, const GLshort *v );
-    void (GLAPIENTRY *glMultiTexCoord4f) ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
-    void (GLAPIENTRY *glMultiTexCoord4fv) ( GLenum target, const GLfloat *v );
-    void (GLAPIENTRY *glMultiTexCoord4sv) ( GLenum target, const GLshort *v );
-    void (GLAPIENTRY *glMultMatrixf) (const GLfloat *m);
-    void (GLAPIENTRY *glNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz);
-    void (GLAPIENTRY *glNormal3fv) ( const GLfloat *v );
-    void (GLAPIENTRY *glNormal3sv) ( const GLshort *v );
-    void (GLAPIENTRY *glOrtho) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-    void (GLAPIENTRY *glPointParameterf) (GLenum, GLfloat);
-    void (GLAPIENTRY *glPointParameterfv) (GLenum, const GLfloat *);
-    void (GLAPIENTRY *glPointSize) (GLfloat size);
-    void (GLAPIENTRY *glPolygonOffset) (GLfloat factor, GLfloat units);
-    void (GLAPIENTRY *glRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-    void (GLAPIENTRY *glScalef) (GLfloat x, GLfloat y, GLfloat z);
-    void (GLAPIENTRY *glTexEnvf) (GLenum target, GLenum pname, GLfloat param);
-    void (GLAPIENTRY *glTexEnvfv) (GLenum target, GLenum pname, const GLfloat *params);
-    void (GLAPIENTRY *glTexParameterf) (GLenum target, GLenum pname, GLfloat param);
-    void (GLAPIENTRY *glTexParameterfv) (GLenum target, GLenum pname, const GLfloat *params);
-    void (GLAPIENTRY *glMatrixMode) (GLenum mode);
-    void (GLAPIENTRY *glNormalPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
-    void (GLAPIENTRY *glPixelStorei) (GLenum pname, GLint param);
-    void (GLAPIENTRY *glPopMatrix) (void);
-    void (GLAPIENTRY *glPushMatrix) (void);
-    void (GLAPIENTRY *glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-    void (GLAPIENTRY *glSampleCoverage) ( GLclampf value, GLboolean invert );
-    void (GLAPIENTRY *glScissor) (GLint x, GLint y, GLsizei width, GLsizei height);
-    void (GLAPIENTRY *glShadeModel) (GLenum mode);
-    void (GLAPIENTRY *glStencilFunc) (GLenum func, GLint ref, GLuint mask);
-    void (GLAPIENTRY *glStencilMask) (GLuint mask);
-    void (GLAPIENTRY *glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass);
-    void (GLAPIENTRY *glTexCoordPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    void (GLAPIENTRY *glTexEnvi) (GLenum target, GLenum pname, GLint param);
-    void (GLAPIENTRY *glTexEnviv) (GLenum target, GLenum pname, const GLint *params);
-    void (GLAPIENTRY *glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-    void (GLAPIENTRY *glTexParameteri) (GLenum target, GLenum pname, GLint param);
-    void (GLAPIENTRY *glTexParameteriv) (GLenum target, GLenum pname, const GLint *params);
-    void (GLAPIENTRY *glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-    void (GLAPIENTRY *glTranslatef) (GLfloat x, GLfloat y, GLfloat z);
-    void (GLAPIENTRY *glVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    void (GLAPIENTRY *glViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
-private:
-    bool             m_isLoaded;
-    android::Mutex   m_lock;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmContext.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmContext.cpp
deleted file mode 100644
index ef60cdc..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmContext.cpp
+++ /dev/null
@@ -1,413 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include "GLEScmContext.h"
-#include "GLEScmUtils.h"
-#include <GLcommon/GLutils.h>
-#include <GLcommon/GLconversion_macros.h>
-#include <string.h>
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-
-void GLEScmContext::init() {
-    android::Mutex::Autolock mutex(s_lock);
-    if(!m_initialized) {
-        s_glDispatch.dispatchFuncs(GLES_1_1);
-        GLEScontext::init();
-
-        m_texCoords = new GLESpointer[s_glSupport.maxTexUnits];
-        m_map[GL_TEXTURE_COORD_ARRAY]  = &m_texCoords[m_clientActiveTexture];
-
-    }
-    m_initialized = true;
-}
-
-GLEScmContext::GLEScmContext():GLEScontext(),m_texCoords(NULL),m_pointsIndex(-1), m_clientActiveTexture(0) {
-
-    m_map[GL_COLOR_ARRAY]          = new GLESpointer();
-    m_map[GL_NORMAL_ARRAY]         = new GLESpointer();
-    m_map[GL_VERTEX_ARRAY]         = new GLESpointer();
-    m_map[GL_POINT_SIZE_ARRAY_OES] = new GLESpointer();
-}
-
-
-void GLEScmContext::setActiveTexture(GLenum tex) {
-   m_activeTexture = tex - GL_TEXTURE0;
-}
-
-void GLEScmContext::setClientActiveTexture(GLenum tex) {
-   m_clientActiveTexture = tex - GL_TEXTURE0;
-   m_map[GL_TEXTURE_COORD_ARRAY] = &m_texCoords[m_clientActiveTexture];
-}
-
-GLEScmContext::~GLEScmContext(){
-    if(m_texCoords){
-        delete[] m_texCoords;
-        m_texCoords = NULL;
-    }
-    m_map[GL_TEXTURE_COORD_ARRAY] = NULL;
-}
-
-
-//setting client side arr
-void GLEScmContext::setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int index){
-    if( arr == NULL) return;
-    switch(arrayType) {
-        case GL_VERTEX_ARRAY:
-            s_glDispatch.glVertexPointer(size,dataType,stride,arr);
-            break;
-        case GL_NORMAL_ARRAY:
-            s_glDispatch.glNormalPointer(dataType,stride,arr);
-            break;
-        case GL_TEXTURE_COORD_ARRAY:
-            s_glDispatch.glTexCoordPointer(size,dataType,stride,arr);
-            break;
-        case GL_COLOR_ARRAY:
-            s_glDispatch.glColorPointer(size,dataType,stride,arr);
-            break;
-        case GL_POINT_SIZE_ARRAY_OES:
-            m_pointsIndex = index;
-            break;
-    }
-}
-
-
-void GLEScmContext::setupArrayPointerHelper(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLenum array_id,GLESpointer* p){
-        unsigned int size = p->getSize();
-        GLenum dataType = p->getType();
-
-        if(needConvert(cArrs,first,count,type,indices,direct,p,array_id)){
-            //conversion has occured
-            ArrayData currentArr = cArrs.getCurrentArray();
-            setupArr(currentArr.data,array_id,currentArr.type,size,currentArr.stride,GL_FALSE, cArrs.getCurrentIndex());
-            ++cArrs;
-        } else {
-            setupArr(p->getData(),array_id,dataType,size,p->getStride(), GL_FALSE);
-        }
-}
-
-void GLEScmContext::setupArraysPointers(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct) {
-    ArraysMap::iterator it;
-    m_pointsIndex = -1;
-
-    //going over all clients arrays Pointers
-    for ( it=m_map.begin() ; it != m_map.end(); it++ ) {
-
-        GLenum array_id   = (*it).first;
-        GLESpointer* p = (*it).second;
-        if(!isArrEnabled(array_id)) continue;
-        if(array_id == GL_TEXTURE_COORD_ARRAY) continue; //handling textures later
-        setupArrayPointerHelper(cArrs,first,count,type,indices,direct,array_id,p);
-    }
-
-    unsigned int activeTexture = m_clientActiveTexture + GL_TEXTURE0;
-
-    s_lock.lock();
-    int maxTexUnits = s_glSupport.maxTexUnits;
-    s_lock.unlock();
-
-    //converting all texture coords arrays
-    for(int i=0; i< maxTexUnits;i++) {
-
-        unsigned int tex = GL_TEXTURE0+i;
-        setClientActiveTexture(tex);
-        s_glDispatch.glClientActiveTexture(tex);
-
-        GLenum array_id   = GL_TEXTURE_COORD_ARRAY;
-        GLESpointer* p = m_map[array_id];
-        if(!isArrEnabled(array_id)) continue;
-        setupArrayPointerHelper(cArrs,first,count,type,indices,direct,array_id,p);
-    }
-
-    setClientActiveTexture(activeTexture);
-    s_glDispatch.glClientActiveTexture(activeTexture);
-}
-
-void  GLEScmContext::drawPointsData(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices_in,bool isElemsDraw) {
-    const char  *pointsArr =  NULL;
-    int stride = 0;
-    GLESpointer* p = m_map[GL_POINT_SIZE_ARRAY_OES];
-
-    //choosing the right points sizes array source
-    if(m_pointsIndex >= 0) { //point size array was converted
-        pointsArr = (const char*)(cArrs[m_pointsIndex].data);
-        stride = cArrs[m_pointsIndex].stride;
-    } else {
-        pointsArr = static_cast<const char*>(p->getData());
-        stride = p->getStride();
-    }
-
-    if(stride == 0){
-        stride = sizeof(GLfloat);
-    }
-
-
-    if(isElemsDraw) {
-        int tSize = type == GL_UNSIGNED_SHORT ? 2 : 1;
-
-        int i = 0;
-        while(i<count)
-        {
-            int sStart = i;
-            int sCount = 1;
-
-#define INDEX \
-                (type == GL_UNSIGNED_SHORT ? \
-                static_cast<const GLushort*>(indices_in)[i]: \
-                static_cast<const GLubyte*>(indices_in)[i])
-
-            GLfloat pSize = *((GLfloat*)(pointsArr+(INDEX*stride)));
-            i++;
-
-            while(i < count && pSize == *((GLfloat*)(pointsArr+(INDEX*stride))))
-            {
-                sCount++;
-                i++;
-            }
-
-            s_glDispatch.glPointSize(pSize);
-            s_glDispatch.glDrawElements(GL_POINTS, sCount, type, (char*)indices_in+sStart*tSize);
-        }
-    } else {
-        int i = 0;
-        while(i<count)
-        {
-            int sStart = i;
-            int sCount = 1;
-            GLfloat pSize = *((GLfloat*)(pointsArr+((first+i)*stride)));
-            i++;
-
-            while(i < count && pSize == *((GLfloat*)(pointsArr+((first+i)*stride))))
-            {
-                sCount++;
-                i++;
-            }
-
-            s_glDispatch.glPointSize(pSize);
-            s_glDispatch.glDrawArrays(GL_POINTS, first+sStart, sCount);
-        }
-    }
-}
-
-void  GLEScmContext::drawPointsArrs(GLESConversionArrays& arrs,GLint first,GLsizei count) {
-    drawPointsData(arrs,first,count,0,NULL,false);
-}
-
-void GLEScmContext::drawPointsElems(GLESConversionArrays& arrs,GLsizei count,GLenum type,const GLvoid* indices_in) {
-    drawPointsData(arrs,0,count,type,indices_in,true);
-}
-
-bool GLEScmContext::needConvert(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id) {
-
-    bool usingVBO = p->isVBO();
-    GLenum arrType = p->getType();
-    /*
-     conversion is not necessary in the following cases:
-      (*) array type is byte but it is not vertex or texture array
-      (*) array type is not fixed
-    */
-    if((arrType != GL_FIXED) && (arrType != GL_BYTE)) return false;
-    if((arrType == GL_BYTE   && (array_id != GL_VERTEX_ARRAY)) &&
-       (arrType == GL_BYTE   && (array_id != GL_TEXTURE_COORD_ARRAY)) ) return false;
-
-
-    bool byteVBO = (arrType == GL_BYTE) && usingVBO;
-    if(byteVBO){
-        p->redirectPointerData();
-    }
-
-    if(!usingVBO || byteVBO) {
-        if (direct) {
-            convertDirect(cArrs,first,count,array_id,p);
-        } else {
-            convertIndirect(cArrs,count,type,indices,array_id,p);
-        }
-    } else {
-        if (direct) {
-            convertDirectVBO(cArrs,first,count,array_id,p) ;
-        } else {
-            convertIndirectVBO(cArrs,count,type,indices,array_id,p);
-        }
-    }
-    return true;
-}
-
-const GLESpointer* GLEScmContext::getPointer(GLenum arrType) {
-    GLenum type =
-        arrType == GL_VERTEX_ARRAY_POINTER          ? GL_VERTEX_ARRAY :
-        arrType == GL_NORMAL_ARRAY_POINTER          ? GL_NORMAL_ARRAY :
-        arrType == GL_TEXTURE_COORD_ARRAY_POINTER   ? GL_TEXTURE_COORD_ARRAY :
-        arrType == GL_COLOR_ARRAY_POINTER           ? GL_COLOR_ARRAY :
-        arrType == GL_POINT_SIZE_ARRAY_POINTER_OES  ? GL_POINT_SIZE_ARRAY_OES :
-        0;
-    if(type != 0)
-    {
-        return GLEScontext::getPointer(type);
-    }
-    return NULL;
-}
-
-void GLEScmContext::initExtensionString() {
-    *s_glExtensions = "GL_OES_blend_func_separate GL_OES_blend_equation_separate GL_OES_blend_subtract "
-                      "GL_OES_byte_coordinates GL_OES_compressed_paletted_texture GL_OES_point_size_array "
-                      "GL_OES_point_sprite GL_OES_single_precision GL_OES_stencil_wrap GL_OES_texture_env_crossbar "
-                      "GL_OES_texture_mirored_repeat GL_OES_EGL_image GL_OES_element_index_uint GL_OES_draw_texture "
-                      "GL_OES_texture_cube_map GL_OES_draw_texture ";
-    if (s_glSupport.GL_OES_READ_FORMAT)
-        *s_glExtensions+="GL_OES_read_format ";
-    if (s_glSupport.GL_EXT_FRAMEBUFFER_OBJECT) {
-        *s_glExtensions+="GL_OES_framebuffer_object GL_OES_depth24 GL_OES_depth32 GL_OES_fbo_render_mipmap "
-                         "GL_OES_rgb8_rgba8 GL_OES_stencil1 GL_OES_stencil4 GL_OES_stencil8 ";
-    }
-    if (s_glSupport.GL_EXT_PACKED_DEPTH_STENCIL)
-        *s_glExtensions+="GL_OES_packed_depth_stencil ";
-    if (s_glSupport.GL_EXT_TEXTURE_FORMAT_BGRA8888)
-        *s_glExtensions+="GL_EXT_texture_format_BGRA8888 GL_APPLE_texture_format_BGRA8888 ";
-    if (s_glSupport.GL_ARB_MATRIX_PALETTE && s_glSupport.GL_ARB_VERTEX_BLEND) {
-        *s_glExtensions+="GL_OES_matrix_palette ";
-        GLint max_palette_matrices=0;
-        GLint max_vertex_units=0;
-        dispatcher().glGetIntegerv(GL_MAX_PALETTE_MATRICES_OES,&max_palette_matrices);
-        dispatcher().glGetIntegerv(GL_MAX_VERTEX_UNITS_OES,&max_vertex_units);
-        if (max_palette_matrices>=32 && max_vertex_units>=4)
-            *s_glExtensions+="GL_OES_extended_matrix_palette ";
-    }
-    *s_glExtensions+="GL_OES_compressed_ETC1_RGB8_texture ";
-}
-
-int GLEScmContext::getMaxTexUnits() {
-    return getCaps()->maxTexUnits;
-}
-
-bool GLEScmContext::glGetBooleanv(GLenum pname, GLboolean *params)
-{
-    GLint iParam;
-
-    if(glGetIntegerv(pname, &iParam))
-    {
-        *params = (iParam != 0);
-        return true;
-    }
-
-    return false;
-}
-
-bool GLEScmContext::glGetFixedv(GLenum pname, GLfixed *params)
-{
-    GLint iParam;
-
-    if(glGetIntegerv(pname, &iParam))
-    {
-        *params = I2X(iParam);
-        return true;
-    }
-
-    return false;
-}
-
-bool GLEScmContext::glGetFloatv(GLenum pname, GLfloat *params)
-{
-    GLint iParam;
-
-    if(glGetIntegerv(pname, &iParam))
-    {
-        *params = (GLfloat)iParam;
-        return true;
-    }
-
-    return false;
-}
-
-bool GLEScmContext::glGetIntegerv(GLenum pname, GLint *params)
-{
-    if(GLEScontext::glGetIntegerv(pname, params))
-        return true;
-
-    const GLESpointer* ptr = NULL;
-
-    switch(pname){
-        case GL_VERTEX_ARRAY_BUFFER_BINDING:
-        case GL_VERTEX_ARRAY_SIZE:
-        case GL_VERTEX_ARRAY_STRIDE:
-        case GL_VERTEX_ARRAY_TYPE:
-            ptr = getPointer(GL_VERTEX_ARRAY_POINTER);
-            break;
-
-        case GL_NORMAL_ARRAY_BUFFER_BINDING:
-        case GL_NORMAL_ARRAY_STRIDE:
-        case GL_NORMAL_ARRAY_TYPE:
-            ptr = getPointer(GL_NORMAL_ARRAY_POINTER);
-            break;
-
-        case GL_COLOR_ARRAY_BUFFER_BINDING:
-        case GL_COLOR_ARRAY_SIZE:
-        case GL_COLOR_ARRAY_STRIDE:
-        case GL_COLOR_ARRAY_TYPE:
-            ptr = getPointer(GL_COLOR_ARRAY_POINTER);
-            break;
-
-        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
-        case GL_TEXTURE_COORD_ARRAY_SIZE:
-        case GL_TEXTURE_COORD_ARRAY_STRIDE:
-        case GL_TEXTURE_COORD_ARRAY_TYPE:
-            ptr = getPointer(GL_TEXTURE_COORD_ARRAY_POINTER);
-            break;
-
-        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
-        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
-        case GL_POINT_SIZE_ARRAY_TYPE_OES:
-            ptr = getPointer(GL_POINT_SIZE_ARRAY_POINTER_OES);
-            break;
-
-        default:
-            return false;
-    }
-
-    switch(pname)
-    {
-        case GL_VERTEX_ARRAY_BUFFER_BINDING:
-        case GL_NORMAL_ARRAY_BUFFER_BINDING:
-        case GL_COLOR_ARRAY_BUFFER_BINDING:
-        case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING:
-        case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES:
-            *params = ptr ? ptr->getBufferName() : 0;
-            break;
-
-        case GL_VERTEX_ARRAY_STRIDE:
-        case GL_NORMAL_ARRAY_STRIDE:
-        case GL_COLOR_ARRAY_STRIDE:
-        case GL_TEXTURE_COORD_ARRAY_STRIDE:
-        case GL_POINT_SIZE_ARRAY_STRIDE_OES:
-            *params = ptr ? ptr->getStride() : 0;
-            break;
-
-        case GL_VERTEX_ARRAY_SIZE:
-        case GL_COLOR_ARRAY_SIZE:
-        case GL_TEXTURE_COORD_ARRAY_SIZE:
-            *params = ptr ? ptr->getSize() : 0;
-            break;
-
-        case GL_VERTEX_ARRAY_TYPE:
-        case GL_NORMAL_ARRAY_TYPE:
-        case GL_COLOR_ARRAY_TYPE:
-        case GL_TEXTURE_COORD_ARRAY_TYPE:
-        case GL_POINT_SIZE_ARRAY_TYPE_OES:
-            *params = ptr ? ptr->getType() : 0;
-            break;
-    }
-
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmContext.h b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmContext.h
deleted file mode 100644
index 1785877..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmContext.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLES_CM_CONTEX_H
-#define GLES_CM_CONTEX_H
-
-#include <GLcommon/GLDispatch.h>
-#include <GLcommon/GLESpointer.h>
-#include <GLcommon/GLESbuffer.h>
-#include <GLcommon/GLEScontext.h>
-#include <map>
-#include <vector>
-#include <string>
-#include <utils/threads.h>
-
-
-typedef std::map<GLfloat,std::vector<int> > PointSizeIndices;
-
-class GLEScmContext: public GLEScontext
-{
-public:
-    void init();
-    GLEScmContext();
-
-    void setActiveTexture(GLenum tex);
-    void  setClientActiveTexture(GLenum tex);
-    GLenum  getActiveTexture() { return GL_TEXTURE0 + m_activeTexture;};
-    GLenum  getClientActiveTexture() { return GL_TEXTURE0 + m_clientActiveTexture;};
-    void setupArraysPointers(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct);
-    void drawPointsArrs(GLESConversionArrays& arrs,GLint first,GLsizei count);
-    void drawPointsElems(GLESConversionArrays& arrs,GLsizei count,GLenum type,const GLvoid* indices);
-    virtual const GLESpointer* getPointer(GLenum arrType);
-    int  getMaxTexUnits();
-
-    virtual bool glGetIntegerv(GLenum pname, GLint *params);
-    virtual bool glGetBooleanv(GLenum pname, GLboolean *params);
-    virtual bool glGetFloatv(GLenum pname, GLfloat *params);
-    virtual bool glGetFixedv(GLenum pname, GLfixed *params);
-  
-    ~GLEScmContext();
-protected:
-
-    bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id);
-private:
-    void setupArrayPointerHelper(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLenum array_id,GLESpointer* p);
-    void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int pointsIndex = -1);
-    void drawPoints(PointSizeIndices* points);
-    void drawPointsData(GLESConversionArrays& arrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices_in,bool isElemsDraw);
-    void initExtensionString();
-
-    GLESpointer*          m_texCoords;
-    int                   m_pointsIndex;
-    unsigned int          m_clientActiveTexture;
-};
-
-#endif
-
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmImp.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmImp.cpp
deleted file mode 100644
index f1833d8..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmImp.cpp
+++ /dev/null
@@ -1,2358 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-
-#ifdef _WIN32
-#undef GL_API
-#define GL_API __declspec(dllexport)
-#define GL_APICALL __declspec(dllexport)
-#endif
-#define GL_GLEXT_PROTOTYPES
-#include "GLEScmContext.h"
-#include "GLEScmValidate.h"
-#include "GLEScmUtils.h"
-#include <GLcommon/TextureUtils.h>
-
-#include <stdio.h>
-#include <GLcommon/gldefs.h>
-#include <GLcommon/GLDispatch.h>
-#include <GLcommon/GLconversion_macros.h>
-#include <GLcommon/TranslatorIfaces.h>
-#include <GLcommon/FramebufferData.h>
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-#include <cmath>
-#include <map>
-
-extern "C" {
-
-//decleration
-static void initContext(GLEScontext* ctx,ShareGroupPtr grp);
-static void deleteGLESContext(GLEScontext* ctx);
-static void setShareGroup(GLEScontext* ctx,ShareGroupPtr grp);
-static GLEScontext* createGLESContext();
-static __translatorMustCastToProperFunctionPointerType getProcAddress(const char* procName);
-
-}
-
-/************************************** GLES EXTENSIONS *********************************************************/
-//extentions descriptor
-typedef std::map<std::string, __translatorMustCastToProperFunctionPointerType> ProcTableMap;
-ProcTableMap *s_glesExtensions = NULL;
-/****************************************************************************************************************/
-
-static EGLiface*  s_eglIface = NULL;
-static GLESiface  s_glesIface = {
-    createGLESContext:createGLESContext,
-    initContext      :initContext,
-    deleteGLESContext:deleteGLESContext,
-    flush            :(FUNCPTR)glFlush,
-    finish           :(FUNCPTR)glFinish,
-    setShareGroup    :setShareGroup,
-    getProcAddress   :getProcAddress
-};
-
-#include <GLcommon/GLESmacros.h>
-
-extern "C" {
-
-static void initContext(GLEScontext* ctx,ShareGroupPtr grp) {
-    if (!ctx->isInitialized()) {
-        ctx->setShareGroup(grp);
-        ctx->init();
-        glBindTexture(GL_TEXTURE_2D,0);
-        glBindTexture(GL_TEXTURE_CUBE_MAP_OES,0);
-     }
-}
-
-static GLEScontext* createGLESContext() {
-    return new GLEScmContext();
-}
-
-static void deleteGLESContext(GLEScontext* ctx) {
-    if(ctx) delete ctx;
-}
-
-static void setShareGroup(GLEScontext* ctx,ShareGroupPtr grp) {
-    if(ctx) {
-        ctx->setShareGroup(grp);
-    }
-}
-static __translatorMustCastToProperFunctionPointerType getProcAddress(const char* procName) {
-    GET_CTX_RET(NULL)
-    ctx->getGlobalLock();
-    static bool proc_table_initialized = false;
-    if (!proc_table_initialized) {
-        proc_table_initialized = true;
-        if (!s_glesExtensions)
-            s_glesExtensions = new ProcTableMap();
-        else
-            s_glesExtensions->clear();
-        (*s_glesExtensions)["glEGLImageTargetTexture2DOES"] = (__translatorMustCastToProperFunctionPointerType)glEGLImageTargetTexture2DOES;
-        (*s_glesExtensions)["glEGLImageTargetRenderbufferStorageOES"]=(__translatorMustCastToProperFunctionPointerType)glEGLImageTargetRenderbufferStorageOES;
-        (*s_glesExtensions)["glBlendEquationSeparateOES"] = (__translatorMustCastToProperFunctionPointerType)glBlendEquationSeparateOES;
-        (*s_glesExtensions)["glBlendFuncSeparateOES"] = (__translatorMustCastToProperFunctionPointerType)glBlendFuncSeparateOES;
-        (*s_glesExtensions)["glBlendEquationOES"] = (__translatorMustCastToProperFunctionPointerType)glBlendEquationOES;
-
-        if (ctx->getCaps()->GL_ARB_MATRIX_PALETTE && ctx->getCaps()->GL_ARB_VERTEX_BLEND) {
-            (*s_glesExtensions)["glCurrentPaletteMatrixOES"] = (__translatorMustCastToProperFunctionPointerType)glCurrentPaletteMatrixOES;
-            (*s_glesExtensions)["glLoadPaletteFromModelViewMatrixOES"]=(__translatorMustCastToProperFunctionPointerType)glLoadPaletteFromModelViewMatrixOES;
-            (*s_glesExtensions)["glMatrixIndexPointerOES"] = (__translatorMustCastToProperFunctionPointerType)glMatrixIndexPointerOES;
-            (*s_glesExtensions)["glWeightPointerOES"] = (__translatorMustCastToProperFunctionPointerType)glWeightPointerOES;
-        }
-        (*s_glesExtensions)["glDepthRangefOES"] = (__translatorMustCastToProperFunctionPointerType)glDepthRangef;
-        (*s_glesExtensions)["glFrustumfOES"] = (__translatorMustCastToProperFunctionPointerType)glFrustumf;
-        (*s_glesExtensions)["glOrthofOES"] = (__translatorMustCastToProperFunctionPointerType)glOrthof;
-        (*s_glesExtensions)["glClipPlanefOES"] = (__translatorMustCastToProperFunctionPointerType)glClipPlanef;
-        (*s_glesExtensions)["glGetClipPlanefOES"] = (__translatorMustCastToProperFunctionPointerType)glGetClipPlanef;
-        (*s_glesExtensions)["glClearDepthfOES"] = (__translatorMustCastToProperFunctionPointerType)glClearDepthf;
-        (*s_glesExtensions)["glPointSizePointerOES"] = (__translatorMustCastToProperFunctionPointerType)glPointSizePointerOES;
-        (*s_glesExtensions)["glTexGenfOES"] = (__translatorMustCastToProperFunctionPointerType)glTexGenfOES;
-        (*s_glesExtensions)["glTexGenfvOES"] = (__translatorMustCastToProperFunctionPointerType)glTexGenfvOES;
-        (*s_glesExtensions)["glTexGeniOES"] = (__translatorMustCastToProperFunctionPointerType)glTexGeniOES;
-        (*s_glesExtensions)["glTexGenivOES"] = (__translatorMustCastToProperFunctionPointerType)glTexGenivOES;
-        (*s_glesExtensions)["glTexGenxOES"] = (__translatorMustCastToProperFunctionPointerType)glTexGenxOES;
-        (*s_glesExtensions)["glTexGenxvOES"] = (__translatorMustCastToProperFunctionPointerType)glTexGenxvOES;
-        (*s_glesExtensions)["glGetTexGenfvOES"] = (__translatorMustCastToProperFunctionPointerType)glGetTexGenfvOES;
-        (*s_glesExtensions)["glGetTexGenivOES"] = (__translatorMustCastToProperFunctionPointerType)glGetTexGenivOES;
-        (*s_glesExtensions)["glGetTexGenxvOES"] = (__translatorMustCastToProperFunctionPointerType)glGetTexGenxvOES;
-        if (ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT) {
-            (*s_glesExtensions)["glIsRenderbufferOES"] = (__translatorMustCastToProperFunctionPointerType)glIsRenderbufferOES;
-            (*s_glesExtensions)["glBindRenderbufferOES"] = (__translatorMustCastToProperFunctionPointerType)glBindRenderbufferOES;
-            (*s_glesExtensions)["glDeleteRenderbuffersOES"] = (__translatorMustCastToProperFunctionPointerType)glDeleteRenderbuffersOES;
-            (*s_glesExtensions)["glGenRenderbuffersOES"] = (__translatorMustCastToProperFunctionPointerType)glGenRenderbuffersOES;
-            (*s_glesExtensions)["glRenderbufferStorageOES"] = (__translatorMustCastToProperFunctionPointerType)glRenderbufferStorageOES;
-            (*s_glesExtensions)["glGetRenderbufferParameterivOES"] = (__translatorMustCastToProperFunctionPointerType)glGetRenderbufferParameterivOES;
-            (*s_glesExtensions)["glIsFramebufferOES"] = (__translatorMustCastToProperFunctionPointerType)glIsFramebufferOES;
-            (*s_glesExtensions)["glBindFramebufferOES"] = (__translatorMustCastToProperFunctionPointerType)glBindFramebufferOES;
-            (*s_glesExtensions)["glDeleteFramebuffersOES"] = (__translatorMustCastToProperFunctionPointerType)glDeleteFramebuffersOES;
-            (*s_glesExtensions)["glGenFramebuffersOES"] = (__translatorMustCastToProperFunctionPointerType)glGenFramebuffersOES;
-            (*s_glesExtensions)["glCheckFramebufferStatusOES"] = (__translatorMustCastToProperFunctionPointerType)glCheckFramebufferStatusOES;
-            (*s_glesExtensions)["glFramebufferTexture2DOES"] = (__translatorMustCastToProperFunctionPointerType)glFramebufferTexture2DOES;
-            (*s_glesExtensions)["glFramebufferRenderbufferOES"] = (__translatorMustCastToProperFunctionPointerType)glFramebufferRenderbufferOES;
-            (*s_glesExtensions)["glGetFramebufferAttachmentParameterivOES"] = (__translatorMustCastToProperFunctionPointerType)glGetFramebufferAttachmentParameterivOES;
-            (*s_glesExtensions)["glGenerateMipmapOES"] = (__translatorMustCastToProperFunctionPointerType)glGenerateMipmapOES;
-        }
-        (*s_glesExtensions)["glDrawTexsOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexsOES;
-        (*s_glesExtensions)["glDrawTexiOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexiOES;
-        (*s_glesExtensions)["glDrawTexfOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexfOES;
-        (*s_glesExtensions)["glDrawTexxOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexxOES;
-        (*s_glesExtensions)["glDrawTexsvOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexsvOES;
-        (*s_glesExtensions)["glDrawTexivOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexivOES;
-        (*s_glesExtensions)["glDrawTexfvOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexfvOES;
-        (*s_glesExtensions)["glDrawTexxvOES"] = (__translatorMustCastToProperFunctionPointerType)glDrawTexxvOES;
-    }
-    __translatorMustCastToProperFunctionPointerType ret=NULL;
-    ProcTableMap::iterator val = s_glesExtensions->find(procName);
-    if (val!=s_glesExtensions->end())
-        ret = val->second;
-    ctx->releaseGlobalLock();
-
-    return ret;
-}
-
-GL_API GLESiface* __translator_getIfaces(EGLiface* eglIface){
-    s_eglIface = eglIface;
-    return & s_glesIface;
-}
-
-}
-
-static ObjectLocalName TextureLocalName(GLenum target, unsigned int tex) {
-    GET_CTX_RET(0);
-    return (tex!=0? tex : ctx->getDefaultTextureName(target));
-}
-
-static TextureData* getTextureData(ObjectLocalName tex){
-    GET_CTX_RET(NULL);
-
-    if(!ctx->shareGroup()->isObject(TEXTURE,tex))
-    {
-        return NULL;
-    }
-
-    TextureData *texData = NULL;
-    ObjectDataPtr objData = ctx->shareGroup()->getObjectData(TEXTURE,tex);
-    if(!objData.Ptr()){
-        texData = new TextureData();
-        ctx->shareGroup()->setObjectData(TEXTURE, tex, ObjectDataPtr(texData));
-    } else {
-        texData = (TextureData*)objData.Ptr();
-    }
-    return texData;
-}
-
-static TextureData* getTextureTargetData(GLenum target){
-    GET_CTX_RET(NULL);
-    unsigned int tex = ctx->getBindedTexture(target);
-    return getTextureData(TextureLocalName(target,tex));
-}
-
-GL_API GLboolean GL_APIENTRY glIsBuffer(GLuint buffer) {
-    GET_CTX_RET(GL_FALSE)
-
-    if(buffer && ctx->shareGroup().Ptr()) {
-       ObjectDataPtr objData = ctx->shareGroup()->getObjectData(VERTEXBUFFER,buffer);
-       return objData.Ptr() ? ((GLESbuffer*)objData.Ptr())->wasBinded():GL_FALSE;
-    }
-    return GL_FALSE;
-}
-
-GL_API GLboolean GL_APIENTRY  glIsEnabled( GLenum cap) {
-    GET_CTX_CM_RET(GL_FALSE)
-    RET_AND_SET_ERROR_IF(!GLEScmValidate::capability(cap,ctx->getMaxLights(),ctx->getMaxClipPlanes()),GL_INVALID_ENUM,GL_FALSE);
-
-    if (cap == GL_POINT_SIZE_ARRAY_OES)
-        return ctx->isArrEnabled(cap);
-    else if (cap==GL_TEXTURE_GEN_STR_OES)
-        return (ctx->dispatcher().glIsEnabled(GL_TEXTURE_GEN_S) &&
-                ctx->dispatcher().glIsEnabled(GL_TEXTURE_GEN_T) &&
-                ctx->dispatcher().glIsEnabled(GL_TEXTURE_GEN_R));
-    else
-        return ctx->dispatcher().glIsEnabled(cap);
-}
-
-GL_API GLboolean GL_APIENTRY  glIsTexture( GLuint texture) {
-    GET_CTX_RET(GL_FALSE)
-
-    if(texture == 0) // Special case
-        return GL_FALSE;
-
-    TextureData* tex = getTextureData(texture);
-    return tex ? tex->wasBound : GL_FALSE;
-}
-
-GL_API GLenum GL_APIENTRY  glGetError(void) {
-    GET_CTX_RET(GL_NO_ERROR)
-    GLenum err = ctx->getGLerror();
-    if(err != GL_NO_ERROR) {
-        ctx->setGLerror(GL_NO_ERROR);
-        return err;
-    }
-
-    return ctx->dispatcher().glGetError();
-}
-
-GL_API const GLubyte * GL_APIENTRY  glGetString( GLenum name) {
-
-    GET_CTX_RET(NULL)
-    static GLubyte VENDOR[]     = "Google";
-    static GLubyte RENDERER[]   = "OpenGL ES-CM 1.1";
-    static GLubyte VERSION[]    = "OpenGL ES-CM 1.1";
-
-    switch(name) {
-        case GL_VENDOR:
-            return VENDOR;
-        case GL_RENDERER:
-            return RENDERER;
-        case GL_VERSION:
-            return VERSION;
-        case GL_EXTENSIONS:
-            return (const GLubyte*)ctx->getExtensionString();
-        default:
-            RET_AND_SET_ERROR_IF(true,GL_INVALID_ENUM,NULL);
-    }
-}
-
-GL_API void GL_APIENTRY  glActiveTexture( GLenum texture) {
-    GET_CTX_CM()
-    SET_ERROR_IF(!GLEScmValidate::textureEnum(texture,ctx->getMaxTexUnits()),GL_INVALID_ENUM);
-    ctx->setActiveTexture(texture);
-    ctx->dispatcher().glActiveTexture(texture);
-}
-
-GL_API void GL_APIENTRY  glAlphaFunc( GLenum func, GLclampf ref) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::alphaFunc(func),GL_INVALID_ENUM);
-    ctx->dispatcher().glAlphaFunc(func,ref);
-}
-
-
-GL_API void GL_APIENTRY  glAlphaFuncx( GLenum func, GLclampx ref) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::alphaFunc(func),GL_INVALID_ENUM);
-    ctx->dispatcher().glAlphaFunc(func,X2F(ref));
-}
-
-
-GL_API void GL_APIENTRY  glBindBuffer( GLenum target, GLuint buffer) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::bufferTarget(target),GL_INVALID_ENUM);
-
-    //if buffer wasn't generated before,generate one
-    if(buffer && ctx->shareGroup().Ptr() && !ctx->shareGroup()->isObject(VERTEXBUFFER,buffer)){
-        ctx->shareGroup()->genName(VERTEXBUFFER,buffer);
-        ctx->shareGroup()->setObjectData(VERTEXBUFFER,buffer,ObjectDataPtr(new GLESbuffer()));
-    }
-    ctx->bindBuffer(target,buffer);
-    if (buffer) {
-        GLESbuffer* vbo = (GLESbuffer*)ctx->shareGroup()->getObjectData(VERTEXBUFFER,buffer).Ptr();
-        vbo->setBinded();
-    }
-}
-
-
-GL_API void GL_APIENTRY  glBindTexture( GLenum target, GLuint texture) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::textureTarget(target),GL_INVALID_ENUM)
-
-    //for handling default texture (0)
-    ObjectLocalName localTexName = TextureLocalName(target,texture);
-
-    GLuint globalTextureName = localTexName;
-    if(ctx->shareGroup().Ptr()){
-        globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,localTexName);
-        //if texture wasn't generated before,generate one
-        if(!globalTextureName){
-            ctx->shareGroup()->genName(TEXTURE,localTexName);
-            globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,localTexName);
-        }
-
-        TextureData* texData = getTextureData(localTexName);
-        if (texData->target==0)
-            texData->target = target;
-        //if texture was already bound to another target
-        SET_ERROR_IF(ctx->GLTextureTargetToLocal(texData->target) != ctx->GLTextureTargetToLocal(target), GL_INVALID_OPERATION);
-        texData->wasBound = true;
-    }
-
-    ctx->setBindedTexture(target,texture);
-    ctx->dispatcher().glBindTexture(target,globalTextureName);
-}
-
-GL_API void GL_APIENTRY  glBlendFunc( GLenum sfactor, GLenum dfactor) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::blendSrc(sfactor) || !GLEScmValidate::blendDst(dfactor),GL_INVALID_ENUM)
-    ctx->dispatcher().glBlendFunc(sfactor,dfactor);
-}
-
-GL_API void GL_APIENTRY  glBufferData( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::bufferTarget(target),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->isBindedBuffer(target),GL_INVALID_OPERATION);
-    ctx->setBufferData(target,size,data,usage);
-}
-
-GL_API void GL_APIENTRY  glBufferSubData( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->isBindedBuffer(target),GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::bufferTarget(target),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->setBufferSubData(target,offset,size,data),GL_INVALID_VALUE);
-}
-
-GL_API void GL_APIENTRY  glClear( GLbitfield mask) {
-    GET_CTX()
-    ctx->drawValidate();
-
-    ctx->dispatcher().glClear(mask);
-}
-
-GL_API void GL_APIENTRY  glClearColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
-    GET_CTX()
-    ctx->dispatcher().glClearColor(red,green,blue,alpha);
-}
-
-GL_API void GL_APIENTRY  glClearColorx( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) {
-    GET_CTX()
-    ctx->dispatcher().glClearColor(X2F(red),X2F(green),X2F(blue),X2F(alpha));
-}
-
-
-GL_API void GL_APIENTRY  glClearDepthf( GLclampf depth) {
-    GET_CTX()
-    ctx->dispatcher().glClearDepth(depth);
-}
-
-GL_API void GL_APIENTRY  glClearDepthx( GLclampx depth) {
-    GET_CTX()
-    ctx->dispatcher().glClearDepth(X2F(depth));
-}
-
-GL_API void GL_APIENTRY  glClearStencil( GLint s) {
-    GET_CTX()
-    ctx->dispatcher().glClearStencil(s);
-}
-
-GL_API void GL_APIENTRY  glClientActiveTexture( GLenum texture) {
-    GET_CTX_CM()
-    SET_ERROR_IF(!GLEScmValidate::textureEnum(texture,ctx->getMaxTexUnits()),GL_INVALID_ENUM);
-    ctx->setClientActiveTexture(texture);
-    ctx->dispatcher().glClientActiveTexture(texture);
-
-}
-
-GL_API void GL_APIENTRY  glClipPlanef( GLenum plane, const GLfloat *equation) {
-    GET_CTX()
-    GLdouble tmpEquation[4];
-
-    for(int i = 0; i < 4; i++) {
-         tmpEquation[i] = static_cast<GLdouble>(equation[i]);
-    }
-    ctx->dispatcher().glClipPlane(plane,tmpEquation);
-}
-
-GL_API void GL_APIENTRY  glClipPlanex( GLenum plane, const GLfixed *equation) {
-    GET_CTX()
-    GLdouble tmpEquation[4];
-    for(int i = 0; i < 4; i++) {
-        tmpEquation[i] = X2D(equation[i]);
-    }
-    ctx->dispatcher().glClipPlane(plane,tmpEquation);
-}
-
-GL_API void GL_APIENTRY  glColor4f( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
-    GET_CTX()
-    ctx->dispatcher().glColor4f(red,green,blue,alpha);
-}
-
-GL_API void GL_APIENTRY  glColor4ub( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) {
-    GET_CTX()
-    ctx->dispatcher().glColor4ub(red,green,blue,alpha);
-}
-
-GL_API void GL_APIENTRY  glColor4x( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) {
-    GET_CTX()
-    ctx->dispatcher().glColor4f(X2F(red),X2F(green),X2F(blue),X2F(alpha));
-}
-
-GL_API void GL_APIENTRY  glColorMask( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
-    GET_CTX()
-    ctx->dispatcher().glColorMask(red,green,blue,alpha);
-}
-
-GL_API void GL_APIENTRY  glColorPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::colorPointerParams(size,stride),GL_INVALID_VALUE);
-    SET_ERROR_IF(!GLEScmValidate::colorPointerType(type),GL_INVALID_ENUM);
-    ctx->setPointer(GL_COLOR_ARRAY,size,type,stride,pointer);
-}
-
-GL_API void GL_APIENTRY  glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) {
-    GET_CTX_CM()
-    SET_ERROR_IF(!GLEScmValidate::textureTargetEx(target),GL_INVALID_ENUM);
-
-    doCompressedTexImage2D(ctx, target, level, internalformat,
-                                width, height, border,
-                                imageSize, data, (void*)glTexImage2D);
-}
-
-GL_API void GL_APIENTRY  glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) {
-    GET_CTX_CM()
-    SET_ERROR_IF(!(GLEScmValidate::texCompImgFrmt(format) && GLEScmValidate::textureTargetEx(target)),GL_INVALID_ENUM);
-    SET_ERROR_IF(level < 0 || level > log2(ctx->getMaxTexSize()),GL_INVALID_VALUE)
-
-    GLenum uncompressedFrmt;
-    unsigned char* uncompressed = uncompressTexture(format,uncompressedFrmt,width,height,imageSize,data,level);
-    ctx->dispatcher().glTexSubImage2D(target,level,xoffset,yoffset,width,height,uncompressedFrmt,GL_UNSIGNED_BYTE,uncompressed);
-    delete uncompressed;
-}
-
-GL_API void GL_APIENTRY  glCopyTexImage2D( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::pixelFrmt(ctx,internalformat) && GLEScmValidate::textureTargetEx(target)),GL_INVALID_ENUM);
-    SET_ERROR_IF(border != 0,GL_INVALID_VALUE);
-    ctx->dispatcher().glCopyTexImage2D(target,level,internalformat,x,y,width,height,border);
-}
-
-GL_API void GL_APIENTRY  glCopyTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::textureTargetEx(target),GL_INVALID_ENUM);
-    ctx->dispatcher().glCopyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
-}
-
-GL_API void GL_APIENTRY  glCullFace( GLenum mode) {
-    GET_CTX()
-    ctx->dispatcher().glCullFace(mode);
-}
-
-GL_API void GL_APIENTRY  glDeleteBuffers( GLsizei n, const GLuint *buffers) {
-    GET_CTX()
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i < n; i++){
-           ctx->shareGroup()->deleteName(VERTEXBUFFER,buffers[i]);
-           ctx->unbindBuffer(buffers[i]);
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glDeleteTextures( GLsizei n, const GLuint *textures) {
-    GET_CTX()
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i < n; i++){
-            if(textures[i] != 0)
-            {
-                TextureData* tData = getTextureData(textures[i]);
-                // delete the underlying OpenGL texture but only if this
-                // texture is not a target of EGLImage.
-                if (!tData || tData->sourceEGLImage == 0) {
-                    const GLuint globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,textures[i]);
-                    ctx->dispatcher().glDeleteTextures(1,&globalTextureName);
-                }
-                ctx->shareGroup()->deleteName(TEXTURE,textures[i]);
-                
-                if(ctx->getBindedTexture(GL_TEXTURE_2D) == textures[i])
-                    ctx->setBindedTexture(GL_TEXTURE_2D,0);
-                if (ctx->getBindedTexture(GL_TEXTURE_CUBE_MAP) == textures[i])
-                    ctx->setBindedTexture(GL_TEXTURE_CUBE_MAP,0);
-            }
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glDepthFunc( GLenum func) {
-    GET_CTX()
-    ctx->dispatcher().glDepthFunc(func);
-}
-
-GL_API void GL_APIENTRY  glDepthMask( GLboolean flag) {
-    GET_CTX()
-    ctx->dispatcher().glDepthMask(flag);
-}
-
-GL_API void GL_APIENTRY  glDepthRangef( GLclampf zNear, GLclampf zFar) {
-    GET_CTX()
-    ctx->dispatcher().glDepthRange(zNear,zFar);
-}
-
-GL_API void GL_APIENTRY  glDepthRangex( GLclampx zNear, GLclampx zFar) {
-    GET_CTX()
-    ctx->dispatcher().glDepthRange(X2F(zNear),X2F(zFar));
-}
-
-GL_API void GL_APIENTRY  glDisable( GLenum cap) {
-    GET_CTX()
-    if (cap==GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glDisable(GL_TEXTURE_GEN_S);
-        ctx->dispatcher().glDisable(GL_TEXTURE_GEN_T);
-        ctx->dispatcher().glDisable(GL_TEXTURE_GEN_R);
-    }
-    else ctx->dispatcher().glDisable(cap);
-    if (cap==GL_TEXTURE_2D || cap==GL_TEXTURE_CUBE_MAP_OES)
-        ctx->setTextureEnabled(cap,false);
-}
-
-GL_API void GL_APIENTRY  glDisableClientState( GLenum array) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::supportedArrays(array),GL_INVALID_ENUM)
-
-    ctx->enableArr(array,false);
-    if(array != GL_POINT_SIZE_ARRAY_OES) ctx->dispatcher().glDisableClientState(array);
-}
-
-
-GL_API void GL_APIENTRY  glDrawArrays( GLenum mode, GLint first, GLsizei count) {
-    GET_CTX_CM()
-    SET_ERROR_IF(count < 0,GL_INVALID_VALUE)
-    SET_ERROR_IF(!GLEScmValidate::drawMode(mode),GL_INVALID_ENUM)
-
-    ctx->drawValidate();
-
-    if(!ctx->isArrEnabled(GL_VERTEX_ARRAY)) return;
-
-    GLESConversionArrays tmpArrs;
-    ctx->setupArraysPointers(tmpArrs,first,count,0,NULL,true);
-    if(mode == GL_POINTS && ctx->isArrEnabled(GL_POINT_SIZE_ARRAY_OES)){
-        ctx->drawPointsArrs(tmpArrs,first,count);
-    }
-    else
-    {
-        ctx->dispatcher().glDrawArrays(mode,first,count);
-    }
-}
-
-GL_API void GL_APIENTRY  glDrawElements( GLenum mode, GLsizei count, GLenum type, const GLvoid *elementsIndices) {
-    GET_CTX_CM()
-    SET_ERROR_IF(count < 0,GL_INVALID_VALUE)
-    SET_ERROR_IF((!GLEScmValidate::drawMode(mode) || !GLEScmValidate::drawType(type)),GL_INVALID_ENUM)
-    if(!ctx->isArrEnabled(GL_VERTEX_ARRAY)) return;
-
-    ctx->drawValidate();
-
-    const GLvoid* indices = elementsIndices;
-    GLESConversionArrays tmpArrs;
-    if(ctx->isBindedBuffer(GL_ELEMENT_ARRAY_BUFFER)) { // if vbo is binded take the indices from the vbo
-        const unsigned char* buf = static_cast<unsigned char *>(ctx->getBindedBuffer(GL_ELEMENT_ARRAY_BUFFER));
-        indices = buf+reinterpret_cast<unsigned int>(elementsIndices);
-    }
-
-    ctx->setupArraysPointers(tmpArrs,0,count,type,indices,false);
-    if(mode == GL_POINTS && ctx->isArrEnabled(GL_POINT_SIZE_ARRAY_OES)){
-        ctx->drawPointsElems(tmpArrs,count,type,indices);
-    }
-    else{
-        ctx->dispatcher().glDrawElements(mode,count,type,indices);
-    }
-}
-
-GL_API void GL_APIENTRY  glEnable( GLenum cap) {
-    GET_CTX()
-    if (cap==GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glEnable(GL_TEXTURE_GEN_S);
-        ctx->dispatcher().glEnable(GL_TEXTURE_GEN_T);
-        ctx->dispatcher().glEnable(GL_TEXTURE_GEN_R);
-    }
-    else
-        ctx->dispatcher().glEnable(cap);
-    if (cap==GL_TEXTURE_2D || cap==GL_TEXTURE_CUBE_MAP_OES)
-        ctx->setTextureEnabled(cap,true);
-}
-
-GL_API void GL_APIENTRY  glEnableClientState( GLenum array) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::supportedArrays(array),GL_INVALID_ENUM)
-
-    ctx->enableArr(array,true);
-    if(array != GL_POINT_SIZE_ARRAY_OES) ctx->dispatcher().glEnableClientState(array);
-}
-
-GL_API void GL_APIENTRY  glFinish( void) {
-    GET_CTX()
-    ctx->dispatcher().glFinish();
-}
-
-GL_API void GL_APIENTRY  glFlush( void) {
-    GET_CTX()
-    ctx->dispatcher().glFlush();
-}
-
-GL_API void GL_APIENTRY  glFogf( GLenum pname, GLfloat param) {
-    GET_CTX()
-    ctx->dispatcher().glFogf(pname,param);
-}
-
-GL_API void GL_APIENTRY  glFogfv( GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glFogfv(pname,params);
-}
-
-GL_API void GL_APIENTRY  glFogx( GLenum pname, GLfixed param) {
-    GET_CTX()
-    ctx->dispatcher().glFogf(pname,(pname == GL_FOG_MODE)? static_cast<GLfloat>(param):X2F(param));
-}
-
-GL_API void GL_APIENTRY  glFogxv( GLenum pname, const GLfixed *params) {
-    GET_CTX()
-    if(pname == GL_FOG_MODE) {
-        GLfloat tmpParam = static_cast<GLfloat>(params[0]);
-        ctx->dispatcher().glFogfv(pname,&tmpParam);
-    } else {
-        GLfloat tmpParams[4];
-        for(int i=0; i< 4; i++) {
-            tmpParams[i] = X2F(params[i]);
-        }
-        ctx->dispatcher().glFogfv(pname,tmpParams);
-    }
-
-}
-
-GL_API void GL_APIENTRY  glFrontFace( GLenum mode) {
-    GET_CTX()
-    ctx->dispatcher().glFrontFace(mode);
-}
-
-GL_API void GL_APIENTRY  glFrustumf( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) {
-    GET_CTX()
-    ctx->dispatcher().glFrustum(left,right,bottom,top,zNear,zFar);
-}
-
-GL_API void GL_APIENTRY  glFrustumx( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) {
-    GET_CTX()
-    ctx->dispatcher().glFrustum(X2F(left),X2F(right),X2F(bottom),X2F(top),X2F(zNear),X2F(zFar));
-}
-
-GL_API void GL_APIENTRY  glGenBuffers( GLsizei n, GLuint *buffers) {
-    GET_CTX()
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            buffers[i] = ctx->shareGroup()->genName(VERTEXBUFFER, 0, true);
-            //generating vbo object related to this buffer name
-            ctx->shareGroup()->setObjectData(VERTEXBUFFER,buffers[i],ObjectDataPtr(new GLESbuffer()));
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glGenTextures( GLsizei n, GLuint *textures) {
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            textures[i] = ctx->shareGroup()->genName(TEXTURE, 0, true);
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glGetBooleanv( GLenum pname, GLboolean *params) {
-    GET_CTX()
-
-    if(ctx->glGetBooleanv(pname, params))
-    {
-        return;
-    }
-
-    GLint i;
-
-    switch(pname)
-    {
-    case GL_FRAMEBUFFER_BINDING_OES:
-    case GL_RENDERBUFFER_BINDING_OES:
-        {
-            GLint name;
-            glGetIntegerv(pname,&name);
-            *params = name!=0 ? GL_TRUE: GL_FALSE;
-        }
-    break;
-    case GL_TEXTURE_GEN_STR_OES:
-        {
-            GLboolean state_s = GL_FALSE;
-            GLboolean state_t = GL_FALSE;
-            GLboolean state_r = GL_FALSE;
-            ctx->dispatcher().glGetBooleanv(GL_TEXTURE_GEN_S,&state_s);
-            ctx->dispatcher().glGetBooleanv(GL_TEXTURE_GEN_T,&state_t);
-            ctx->dispatcher().glGetBooleanv(GL_TEXTURE_GEN_R,&state_r);
-            *params = state_s && state_t && state_r ? GL_TRUE: GL_FALSE;
-        }
-    break; 
-    case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = (GLboolean)getCompressedFormats(NULL); 
-    break;    
-    case GL_COMPRESSED_TEXTURE_FORMATS:
-        {
-            int nparams = getCompressedFormats(NULL);
-            if (nparams>0) {
-                int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
-                for (int i=0; i<nparams; i++) params[i] = (GLboolean)iparams[i];
-                delete [] iparams;
-            }
-        }
-    break;
-    default:
-        ctx->dispatcher().glGetBooleanv(pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetBufferParameteriv( GLenum target, GLenum pname, GLint *params) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::bufferTarget(target) && GLEScmValidate::bufferParam(pname)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->isBindedBuffer(target),GL_INVALID_OPERATION);
-    bool ret = true;
-    switch(pname) {
-    case GL_BUFFER_SIZE:
-        ctx->getBufferSize(target,params);
-        break;
-    case GL_BUFFER_USAGE:
-        ctx->getBufferUsage(target,params);
-        break;
-    }
-
-}
-
-GL_API void GL_APIENTRY  glGetClipPlanef( GLenum pname, GLfloat eqn[4]) {
-    GET_CTX()
-    GLdouble tmpEqn[4];
-
-    ctx->dispatcher().glGetClipPlane(pname,tmpEqn);
-    for(int i =0 ;i < 4; i++){
-        eqn[i] = static_cast<GLfloat>(tmpEqn[i]);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetClipPlanex( GLenum pname, GLfixed eqn[4]) {
-    GET_CTX()
-    GLdouble tmpEqn[4];
-
-    ctx->dispatcher().glGetClipPlane(pname,tmpEqn);
-    for(int i =0 ;i < 4; i++){
-        eqn[i] = F2X(tmpEqn[i]);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetFixedv( GLenum pname, GLfixed *params) {
-    GET_CTX()
-
-    if(ctx->glGetFixedv(pname, params))
-    {
-        return;
-    }
-
-    size_t nParams = glParamSize(pname);
-    GLfloat fParams[16];
-    GLint i;
-
-    switch(pname)
-    {
-    case GL_FRAMEBUFFER_BINDING_OES:
-    case GL_RENDERBUFFER_BINDING_OES:
-    case GL_TEXTURE_GEN_STR_OES:
-        glGetFloatv(pname,&fParams[0]);
-        break;
-    case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = I2X(getCompressedFormats(NULL));
-        return;
-    break;    
-    case GL_COMPRESSED_TEXTURE_FORMATS:
-        {
-            int nparams = getCompressedFormats(NULL);
-            if (nparams>0) {
-                int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
-                for (int i=0; i<nparams; i++) params[i] = I2X(iparams[i]);
-                delete [] iparams;
-            }
-            return;
-        }
-    break;
-    default:
-        ctx->dispatcher().glGetFloatv(pname,fParams);
-    }
-
-    if (nParams)
-    {
-        for(size_t i =0 ; i < nParams;i++) {
-            params[i] = F2X(fParams[i]);
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glGetFloatv( GLenum pname, GLfloat *params) {
-    GET_CTX()
-
-    if(ctx->glGetFloatv(pname, params))
-    {
-        return;
-    }
-
-    GLint i;
-
-    switch (pname) {
-    case GL_FRAMEBUFFER_BINDING_OES:
-    case GL_RENDERBUFFER_BINDING_OES:
-    case GL_TEXTURE_GEN_STR_OES:
-        glGetIntegerv(pname,&i);
-        *params = (GLfloat)i;
-    break;   
-    case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = (GLfloat)getCompressedFormats(NULL); 
-    break;    
-    case GL_COMPRESSED_TEXTURE_FORMATS:
-        {
-            int nparams = getCompressedFormats(NULL);
-            if (nparams>0) {
-                int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
-                for (int i=0; i<nparams; i++) params[i] = (GLfloat)iparams[i];
-                delete [] iparams;
-            }
-        }
-    break;
-    default:
-        ctx->dispatcher().glGetFloatv(pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetIntegerv( GLenum pname, GLint *params) {
-    GET_CTX()
-
-    if(ctx->glGetIntegerv(pname, params))
-    {
-        return;
-    }
-    
-    GLint i;
-    GLfloat f;
-
-    switch(pname)
-    {
-    case GL_TEXTURE_GEN_STR_OES:
-        ctx->dispatcher().glGetIntegerv(GL_TEXTURE_GEN_S,&params[0]);
-        break;
-    case GL_FRAMEBUFFER_BINDING_OES:
-        if (ctx->shareGroup().Ptr()) {
-            ctx->dispatcher().glGetIntegerv(pname,&i);
-            *params = ctx->shareGroup()->getLocalName(FRAMEBUFFER,i);
-        }
-        break;
-    case GL_RENDERBUFFER_BINDING_OES:
-        if (ctx->shareGroup().Ptr()) {
-            ctx->dispatcher().glGetIntegerv(pname,&i);
-            *params = ctx->shareGroup()->getLocalName(RENDERBUFFER,i);
-        }
-        break;
-    case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = getCompressedFormats(NULL);
-        break;
-    case GL_COMPRESSED_TEXTURE_FORMATS:
-        getCompressedFormats(params);
-        break;
-    case GL_MAX_CLIP_PLANES:
-        ctx->dispatcher().glGetIntegerv(pname,params);
-        if(*params > 6)
-        {
-            // GLES spec requires only 6, and the ATI driver erronously
-            // returns 8 (although it supports only 6). This WAR is simple,
-            // compliant and good enough for developers.
-            *params = 6;
-        }
-        break;
-    case GL_ALPHA_TEST_REF:
-        // Both the ATI and nVidia OpenGL drivers return the wrong answer
-        // here. So return the right one.
-        ctx->dispatcher().glGetFloatv(pname,&f);
-        *params = (int)(f * (float)0x7fffffff);
-        break;
-    case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
-        ctx->dispatcher().glGetIntegerv(pname,params);
-        if(*params > 16)
-        {
-            // GLES spec requires only 2, and the ATI driver erronously
-            // returns 32 (although it supports only 16). This WAR is simple,
-            // compliant and good enough for developers.
-            *params = 16;
-        }
-        break;
-
-    default:
-        ctx->dispatcher().glGetIntegerv(pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetLightfv( GLenum light, GLenum pname, GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glGetLightfv(light,pname,params);
-}
-
-GL_API void GL_APIENTRY  glGetLightxv( GLenum light, GLenum pname, GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[4];
-
-    ctx->dispatcher().glGetLightfv(light,pname,tmpParams);
-    switch (pname){
-        case GL_AMBIENT:
-        case GL_DIFFUSE:
-        case GL_SPECULAR:
-        case GL_POSITION:
-            params[3] = F2X(tmpParams[3]);
-        case GL_SPOT_DIRECTION:
-            params[2] = F2X(tmpParams[2]);
-        case GL_SPOT_EXPONENT:
-        case GL_SPOT_CUTOFF:
-        case GL_CONSTANT_ATTENUATION:
-        case GL_LINEAR_ATTENUATION:
-        case GL_QUADRATIC_ATTENUATION:
-            params[1] = F2X(tmpParams[1]);
-            break;
-        default:{
-            ctx->setGLerror(GL_INVALID_ENUM);
-            return;
-        }
-
-    }
-    params[0] = F2X(tmpParams[0]);
-}
-
-GL_API void GL_APIENTRY  glGetMaterialfv( GLenum face, GLenum pname, GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glGetMaterialfv(face,pname,params);
-}
-
-GL_API void GL_APIENTRY  glGetMaterialxv( GLenum face, GLenum pname, GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[4];
-    ctx->dispatcher().glGetMaterialfv(face,pname,tmpParams);
-    switch(pname){
-    case GL_AMBIENT:
-    case GL_DIFFUSE:
-    case GL_SPECULAR:
-    case GL_EMISSION:
-    case GL_AMBIENT_AND_DIFFUSE:
-        params[3] = tmpParams[3];
-        params[2] = tmpParams[2];
-        params[1] = tmpParams[1];
-    case GL_SHININESS:
-        params[0] = tmpParams[0];
-        break;
-    default:{
-            ctx->setGLerror(GL_INVALID_ENUM);
-            return;
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glGetPointerv( GLenum pname, void **params) {
-    GET_CTX()
-    const GLESpointer* p = ctx->getPointer(pname);
-    if(p) {
-        if(p->isVBO())
-        {
-            *params = (void*)(p->getBufferOffset());
-        }else{
-            *params = const_cast<void *>( p->getArrayData());
-        }
-    } else {
-        ctx->setGLerror(GL_INVALID_ENUM);
-    }
-
-}
-
-GL_API void GL_APIENTRY  glGetTexEnvfv( GLenum env, GLenum pname, GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glGetTexEnvfv(env,pname,params);
-}
-
-GL_API void GL_APIENTRY  glGetTexEnviv( GLenum env, GLenum pname, GLint *params) {
-    GET_CTX()
-    ctx->dispatcher().glGetTexEnviv(env,pname,params);
-}
-
-GL_API void GL_APIENTRY  glGetTexEnvxv( GLenum env, GLenum pname, GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[4];
-
-    ctx->dispatcher().glGetTexEnvfv(env,pname,tmpParams);
-    if(pname == GL_TEXTURE_ENV_MODE) {
-        params[0] = static_cast<GLfixed>(tmpParams[0]);
-    } else {
-        for(int i=0 ; i < 4 ; i++)
-            params[i] = F2X(tmpParams[i]);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetTexParameterfv( GLenum target, GLenum pname, GLfloat *params) {
-    GET_CTX()
-   if (pname==GL_TEXTURE_CROP_RECT_OES) {
-      TextureData *texData = getTextureTargetData(target);
-      SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-      for (int i=0;i<4;++i)
-        params[i] = texData->crop_rect[i];
-    }
-    else {
-      ctx->dispatcher().glGetTexParameterfv(target,pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetTexParameteriv( GLenum target, GLenum pname, GLint *params) {
-    GET_CTX()
-    if (pname==GL_TEXTURE_CROP_RECT_OES) {
-      TextureData *texData = getTextureTargetData(target);
-      SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-      for (int i=0;i<4;++i)
-        params[i] = texData->crop_rect[i];
-    }
-    else {
-      ctx->dispatcher().glGetTexParameteriv(target,pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glGetTexParameterxv( GLenum target, GLenum pname, GLfixed *params) {
-    GET_CTX()
-    if (pname==GL_TEXTURE_CROP_RECT_OES) {
-      TextureData *texData = getTextureTargetData(target);
-      SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-      for (int i=0;i<4;++i)
-        params[i] = F2X(texData->crop_rect[i]);
-    }
-    else {
-      GLfloat tmpParam;
-      ctx->dispatcher().glGetTexParameterfv(target,pname,&tmpParam);
-      params[0] = static_cast<GLfixed>(tmpParam);
-    }
-}
-
-GL_API void GL_APIENTRY  glHint( GLenum target, GLenum mode) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::hintTargetMode(target,mode),GL_INVALID_ENUM);
-    ctx->dispatcher().glHint(target,mode);
-}
-
-GL_API void GL_APIENTRY  glLightModelf( GLenum pname, GLfloat param) {
-    GET_CTX()
-    ctx->dispatcher().glLightModelf(pname,param);
-}
-
-GL_API void GL_APIENTRY  glLightModelfv( GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glLightModelfv(pname,params);
-}
-
-GL_API void GL_APIENTRY  glLightModelx( GLenum pname, GLfixed param) {
-    GET_CTX()
-    GLfloat tmpParam = static_cast<GLfloat>(param);
-    ctx->dispatcher().glLightModelf(pname,tmpParam);
-}
-
-GL_API void GL_APIENTRY  glLightModelxv( GLenum pname, const GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[4];
-    if(pname == GL_LIGHT_MODEL_TWO_SIDE) {
-        tmpParams[0] = X2F(params[0]);
-    } else if (pname == GL_LIGHT_MODEL_AMBIENT) {
-        for(int i=0;i<4;i++) {
-            tmpParams[i] = X2F(params[i]);
-        }
-    }
-
-    ctx->dispatcher().glLightModelfv(pname,tmpParams);
-}
-
-GL_API void GL_APIENTRY  glLightf( GLenum light, GLenum pname, GLfloat param) {
-    GET_CTX()
-    ctx->dispatcher().glLightf(light,pname,param);
-}
-
-GL_API void GL_APIENTRY  glLightfv( GLenum light, GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glLightfv(light,pname,params);
-}
-
-GL_API void GL_APIENTRY  glLightx( GLenum light, GLenum pname, GLfixed param) {
-    GET_CTX()
-    ctx->dispatcher().glLightf(light,pname,X2F(param));
-}
-
-GL_API void GL_APIENTRY  glLightxv( GLenum light, GLenum pname, const GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[4];
-
-    switch (pname) {
-        case GL_AMBIENT:
-        case GL_DIFFUSE:
-        case GL_SPECULAR:
-        case GL_EMISSION:
-        case GL_POSITION:
-            tmpParams[3] = X2F(params[3]);
-        case GL_SPOT_DIRECTION:
-            tmpParams[2] = X2F(params[2]);
-            tmpParams[1] = X2F(params[1]);
-        case GL_SPOT_EXPONENT:
-        case GL_SPOT_CUTOFF:
-        case GL_CONSTANT_ATTENUATION:
-        case GL_LINEAR_ATTENUATION:
-        case GL_QUADRATIC_ATTENUATION:
-            tmpParams[0] = X2F(params[0]);
-            break;
-        default: {
-                ctx->setGLerror(GL_INVALID_ENUM);
-                return;
-            }
-    }
-    ctx->dispatcher().glLightfv(light,pname,tmpParams);
-}
-
-GL_API void GL_APIENTRY  glLineWidth( GLfloat width) {
-    GET_CTX()
-    ctx->dispatcher().glLineWidth(width);
-}
-
-GL_API void GL_APIENTRY  glLineWidthx( GLfixed width) {
-    GET_CTX()
-    ctx->dispatcher().glLineWidth(X2F(width));
-}
-
-GL_API void GL_APIENTRY  glLoadIdentity( void) {
-    GET_CTX()
-    ctx->dispatcher().glLoadIdentity();
-}
-
-GL_API void GL_APIENTRY  glLoadMatrixf( const GLfloat *m) {
-    GET_CTX()
-    ctx->dispatcher().glLoadMatrixf(m);
-}
-
-GL_API void GL_APIENTRY  glLoadMatrixx( const GLfixed *m) {
-    GET_CTX()
-    GLfloat mat[16];
-    for(int i=0; i< 16 ; i++) {
-        mat[i] = X2F(m[i]);
-    }
-    ctx->dispatcher().glLoadMatrixf(mat);
-}
-
-GL_API void GL_APIENTRY  glLogicOp( GLenum opcode) {
-    GET_CTX()
-    ctx->dispatcher().glLogicOp(opcode);
-}
-
-GL_API void GL_APIENTRY  glMaterialf( GLenum face, GLenum pname, GLfloat param) {
-    GET_CTX()
-    ctx->dispatcher().glMaterialf(face,pname,param);
-}
-
-GL_API void GL_APIENTRY  glMaterialfv( GLenum face, GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glMaterialfv(face,pname,params);
-}
-
-GL_API void GL_APIENTRY  glMaterialx( GLenum face, GLenum pname, GLfixed param) {
-    GET_CTX()
-    ctx->dispatcher().glMaterialf(face,pname,X2F(param));
-}
-
-GL_API void GL_APIENTRY  glMaterialxv( GLenum face, GLenum pname, const GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[4];
-
-    for(int i=0; i< 4; i++) {
-        tmpParams[i] = X2F(params[i]);
-    }
-    ctx->dispatcher().glMaterialfv(face,pname,tmpParams);
-}
-
-GL_API void GL_APIENTRY  glMatrixMode( GLenum mode) {
-    GET_CTX()
-    ctx->dispatcher().glMatrixMode(mode);
-}
-
-GL_API void GL_APIENTRY  glMultMatrixf( const GLfloat *m) {
-    GET_CTX()
-    ctx->dispatcher().glMultMatrixf(m);
-}
-
-GL_API void GL_APIENTRY  glMultMatrixx( const GLfixed *m) {
-    GET_CTX()
-    GLfloat mat[16];
-    for(int i=0; i< 16 ; i++) {
-        mat[i] = X2F(m[i]);
-    }
-    ctx->dispatcher().glMultMatrixf(mat);
-}
-
-GL_API void GL_APIENTRY  glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) {
-    GET_CTX_CM()
-    SET_ERROR_IF(!GLEScmValidate::textureEnum(target,ctx->getMaxTexUnits()),GL_INVALID_ENUM);
-    ctx->dispatcher().glMultiTexCoord4f(target,s,t,r,q);
-}
-
-GL_API void GL_APIENTRY  glMultiTexCoord4x( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) {
-    GET_CTX_CM()
-    SET_ERROR_IF(!GLEScmValidate::textureEnum(target,ctx->getMaxTexUnits()),GL_INVALID_ENUM);
-    ctx->dispatcher().glMultiTexCoord4f(target,X2F(s),X2F(t),X2F(r),X2F(q));
-}
-
-GL_API void GL_APIENTRY  glNormal3f( GLfloat nx, GLfloat ny, GLfloat nz) {
-    GET_CTX()
-    ctx->dispatcher().glNormal3f(nx,ny,nz);
-}
-
-GL_API void GL_APIENTRY  glNormal3x( GLfixed nx, GLfixed ny, GLfixed nz) {
-    GET_CTX()
-    ctx->dispatcher().glNormal3f(X2F(nx),X2F(ny),X2F(nz));
-}
-
-GL_API void GL_APIENTRY  glNormalPointer( GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(stride < 0,GL_INVALID_VALUE);
-    SET_ERROR_IF(!GLEScmValidate::normalPointerType(type),GL_INVALID_ENUM);
-    ctx->setPointer(GL_NORMAL_ARRAY,3,type,stride,pointer);//3 normal verctor
-}
-
-GL_API void GL_APIENTRY  glOrthof( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) {
-    GET_CTX()
-    ctx->dispatcher().glOrtho(left,right,bottom,top,zNear,zFar);
-}
-
-GL_API void GL_APIENTRY  glOrthox( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) {
-    GET_CTX()
-    ctx->dispatcher().glOrtho(X2F(left),X2F(right),X2F(bottom),X2F(top),X2F(zNear),X2F(zFar));
-}
-
-GL_API void GL_APIENTRY  glPixelStorei( GLenum pname, GLint param) {
-    GET_CTX()
-    SET_ERROR_IF(!(pname == GL_PACK_ALIGNMENT || pname == GL_UNPACK_ALIGNMENT),GL_INVALID_ENUM);
-    SET_ERROR_IF(!((param==1)||(param==2)||(param==4)||(param==8)), GL_INVALID_VALUE);
-    ctx->setUnpackAlignment(param);
-    ctx->dispatcher().glPixelStorei(pname,param);
-}
-
-GL_API void GL_APIENTRY  glPointParameterf( GLenum pname, GLfloat param) {
-    GET_CTX()
-    ctx->dispatcher().glPointParameterf(pname,param);
-}
-
-GL_API void GL_APIENTRY  glPointParameterfv( GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    ctx->dispatcher().glPointParameterfv(pname,params);
-}
-
-GL_API void GL_APIENTRY  glPointParameterx( GLenum pname, GLfixed param)
-{
-    GET_CTX()
-    ctx->dispatcher().glPointParameterf(pname,X2F(param));
-}
-
-GL_API void GL_APIENTRY  glPointParameterxv( GLenum pname, const GLfixed *params) {
-    GET_CTX()
-
-    GLfloat tmpParam = X2F(*params) ;
-    ctx->dispatcher().glPointParameterfv(pname,&tmpParam);
-}
-
-GL_API void GL_APIENTRY  glPointSize( GLfloat size) {
-    GET_CTX()
-    ctx->dispatcher().glPointSize(size);
-}
-
-GL_API void GL_APIENTRY  glPointSizePointerOES( GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(stride < 0,GL_INVALID_VALUE);
-    SET_ERROR_IF(!GLEScmValidate::pointPointerType(type),GL_INVALID_ENUM);
-    ctx->setPointer(GL_POINT_SIZE_ARRAY_OES,1,type,stride,pointer);
-}
-
-GL_API void GL_APIENTRY  glPointSizex( GLfixed size) {
-    GET_CTX()
-    ctx->dispatcher().glPointSize(X2F(size));
-}
-
-GL_API void GL_APIENTRY  glPolygonOffset( GLfloat factor, GLfloat units) {
-    GET_CTX()
-    ctx->dispatcher().glPolygonOffset(factor,units);
-}
-
-GL_API void GL_APIENTRY  glPolygonOffsetx( GLfixed factor, GLfixed units) {
-    GET_CTX()
-    ctx->dispatcher().glPolygonOffset(X2F(factor),X2F(units));
-}
-
-GL_API void GL_APIENTRY  glPopMatrix(void) {
-    GET_CTX()
-    ctx->dispatcher().glPopMatrix();
-}
-
-GL_API void GL_APIENTRY  glPushMatrix(void) {
-    GET_CTX()
-    ctx->dispatcher().glPushMatrix();
-}
-
-GL_API void GL_APIENTRY  glReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::pixelFrmt(ctx,format) && GLEScmValidate::pixelType(ctx,type)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!(GLEScmValidate::pixelOp(format,type)),GL_INVALID_OPERATION);
-
-    ctx->dispatcher().glReadPixels(x,y,width,height,format,type,pixels);
-}
-
-GL_API void GL_APIENTRY  glRotatef( GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
-    GET_CTX()
-    ctx->dispatcher().glRotatef(angle,x,y,z);
-}
-
-GL_API void GL_APIENTRY  glRotatex( GLfixed angle, GLfixed x, GLfixed y, GLfixed z) {
-    GET_CTX()
-    ctx->dispatcher().glRotatef(angle,X2F(x),X2F(y),X2F(z));
-}
-
-GL_API void GL_APIENTRY  glSampleCoverage( GLclampf value, GLboolean invert) {
-    GET_CTX()
-    ctx->dispatcher().glSampleCoverage(value,invert);
-}
-
-GL_API void GL_APIENTRY  glSampleCoveragex( GLclampx value, GLboolean invert) {
-    GET_CTX()
-    ctx->dispatcher().glSampleCoverage(X2F(value),invert);
-}
-
-GL_API void GL_APIENTRY  glScalef( GLfloat x, GLfloat y, GLfloat z) {
-    GET_CTX()
-    ctx->dispatcher().glScalef(x,y,z);
-}
-
-GL_API void GL_APIENTRY  glScalex( GLfixed x, GLfixed y, GLfixed z) {
-    GET_CTX()
-    ctx->dispatcher().glScalef(X2F(x),X2F(y),X2F(z));
-}
-
-GL_API void GL_APIENTRY  glScissor( GLint x, GLint y, GLsizei width, GLsizei height) {
-    GET_CTX()
-    ctx->dispatcher().glScissor(x,y,width,height);
-}
-
-GL_API void GL_APIENTRY  glShadeModel( GLenum mode) {
-    GET_CTX()
-    ctx->dispatcher().glShadeModel(mode);
-}
-
-GL_API void GL_APIENTRY  glStencilFunc( GLenum func, GLint ref, GLuint mask) {
-    GET_CTX()
-    ctx->dispatcher().glStencilFunc(func,ref,mask);
-}
-
-GL_API void GL_APIENTRY  glStencilMask( GLuint mask) {
-    GET_CTX()
-    ctx->dispatcher().glStencilMask(mask);
-}
-
-GL_API void GL_APIENTRY  glStencilOp( GLenum fail, GLenum zfail, GLenum zpass) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::stencilOp(fail) && GLEScmValidate::stencilOp(zfail) && GLEScmValidate::stencilOp(zpass)),GL_INVALID_ENUM);
-    ctx->dispatcher().glStencilOp(fail,zfail,zpass);
-}
-
-GL_API void GL_APIENTRY  glTexCoordPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texCoordPointerParams(size,stride),GL_INVALID_VALUE);
-    SET_ERROR_IF(!GLEScmValidate::texCoordPointerType(type),GL_INVALID_ENUM);
-    ctx->setPointer(GL_TEXTURE_COORD_ARRAY,size,type,stride,pointer);
-}
-
-GL_API void GL_APIENTRY  glTexEnvf( GLenum target, GLenum pname, GLfloat param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texEnv(target,pname),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexEnvf(target,pname,param);
-}
-
-GL_API void GL_APIENTRY  glTexEnvfv( GLenum target, GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texEnv(target,pname),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexEnvfv(target,pname,params);
-}
-
-GL_API void GL_APIENTRY  glTexEnvi( GLenum target, GLenum pname, GLint param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texEnv(target,pname),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexEnvi(target,pname,param);
-}
-
-GL_API void GL_APIENTRY  glTexEnviv( GLenum target, GLenum pname, const GLint *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texEnv(target,pname),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexEnviv(target,pname,params);
-}
-
-GL_API void GL_APIENTRY  glTexEnvx( GLenum target, GLenum pname, GLfixed param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texEnv(target,pname),GL_INVALID_ENUM);
-    GLfloat tmpParam = static_cast<GLfloat>(param);
-    ctx->dispatcher().glTexEnvf(target,pname,tmpParam);
-}
-
-GL_API void GL_APIENTRY  glTexEnvxv( GLenum target, GLenum pname, const GLfixed *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texEnv(target,pname),GL_INVALID_ENUM);
-
-    GLfloat tmpParams[4];
-    if(pname == GL_TEXTURE_ENV_COLOR) {
-        for(int i =0;i<4;i++) {
-            tmpParams[i] = X2F(params[i]);
-        }
-    } else {
-        tmpParams[0] = static_cast<GLfloat>(params[0]);
-    }
-    ctx->dispatcher().glTexEnvfv(target,pname,tmpParams);
-}
-
-GL_API void GL_APIENTRY  glTexImage2D( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
-    GET_CTX()
-
-    SET_ERROR_IF(!(GLEScmValidate::textureTargetEx(target) &&
-                     GLEScmValidate::pixelFrmt(ctx,internalformat) &&
-                     GLEScmValidate::pixelFrmt(ctx,format) &&
-                     GLEScmValidate::pixelType(ctx,type)),GL_INVALID_ENUM);
-
-    SET_ERROR_IF(!(GLEScmValidate::pixelOp(format,type) && internalformat == ((GLint)format)),GL_INVALID_OPERATION);
-
-    bool needAutoMipmap = false;
-
-    if (ctx->shareGroup().Ptr()){
-        TextureData *texData = getTextureTargetData(target);
-        SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-        if(texData) {
-            texData->width = width;
-            texData->height = height;
-            texData->border = border;
-            texData->internalFormat = internalformat;
-            texData->target = target;
-
-            if (texData->sourceEGLImage != 0) {
-                //
-                // This texture was a target of EGLImage,
-                // but now it is re-defined so we need to detach
-                // from the EGLImage and re-generate global texture name
-                // for it.
-                //
-                if (texData->eglImageDetach) {
-                    (*texData->eglImageDetach)(texData->sourceEGLImage);
-                }
-                unsigned int tex = ctx->getBindedTexture(target);
-                ctx->shareGroup()->replaceGlobalName(TEXTURE,
-                                                     tex,
-                                                     texData->oldGlobal);
-                ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, texData->oldGlobal);
-                texData->sourceEGLImage = 0;
-                texData->oldGlobal = 0;
-            }
-
-            needAutoMipmap = texData->requiresAutoMipmap;
-        }
-    }
-
-    ctx->dispatcher().glTexImage2D(target,level,
-                                   internalformat,width,height,
-                                   border,format,type,pixels);
-
-    if(needAutoMipmap)
-    {
-        ctx->dispatcher().glGenerateMipmapEXT(target);
-    }
-}
-
-static bool handleMipmapGeneration(GLenum target, GLenum pname, bool param)
-{
-    GET_CTX_RET(false)
-
-    if(pname == GL_GENERATE_MIPMAP && !ctx->isAutoMipmapSupported())
-    {
-        TextureData *texData = getTextureTargetData(target);
-        if(texData)
-        {
-            texData->requiresAutoMipmap = param;
-        }
-        return true;
-    }
-
-    return false;
-}
-
-GL_API void GL_APIENTRY  glTexParameterf( GLenum target, GLenum pname, GLfloat param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texParams(target,pname),GL_INVALID_ENUM);
-
-    if(handleMipmapGeneration(target, pname, (bool)param))
-        return;
-
-    ctx->dispatcher().glTexParameterf(target,pname,param);
-}
-
-GL_API void GL_APIENTRY  glTexParameterfv( GLenum target, GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texParams(target,pname),GL_INVALID_ENUM);
-
-    if(handleMipmapGeneration(target, pname, (bool)(*params)))
-        return;
-
-    if (pname==GL_TEXTURE_CROP_RECT_OES) {
-        TextureData *texData = getTextureTargetData(target);
-        SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-        for (int i=0;i<4;++i)
-            texData->crop_rect[i] = params[i];
-    }
-    else {
-        ctx->dispatcher().glTexParameterfv(target,pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glTexParameteri( GLenum target, GLenum pname, GLint param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texParams(target,pname),GL_INVALID_ENUM);
-
-    if(handleMipmapGeneration(target, pname, (bool)param))
-        return;
-
-    ctx->dispatcher().glTexParameteri(target,pname,param);
-}
-
-GL_API void GL_APIENTRY  glTexParameteriv( GLenum target, GLenum pname, const GLint *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texParams(target,pname),GL_INVALID_ENUM);
-
-    if(handleMipmapGeneration(target, pname, (bool)(*params)))
-        return;
-
-    if (pname==GL_TEXTURE_CROP_RECT_OES) {
-        TextureData *texData = getTextureTargetData(target);
-        SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-        for (int i=0;i<4;++i)
-            texData->crop_rect[i] = params[i];
-    }
-    else {
-        ctx->dispatcher().glTexParameteriv(target,pname,params);
-    }
-}
-
-GL_API void GL_APIENTRY  glTexParameterx( GLenum target, GLenum pname, GLfixed param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texParams(target,pname),GL_INVALID_ENUM);
-
-    if(handleMipmapGeneration(target, pname, (bool)param))
-        return;
-
-    ctx->dispatcher().glTexParameterf(target,pname,static_cast<GLfloat>(param));
-}
-
-GL_API void GL_APIENTRY  glTexParameterxv( GLenum target, GLenum pname, const GLfixed *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texParams(target,pname),GL_INVALID_ENUM);
-
-    if(handleMipmapGeneration(target, pname, (bool)(*params)))
-        return;
-
-    if (pname==GL_TEXTURE_CROP_RECT_OES) {
-        TextureData *texData = getTextureTargetData(target);
-        SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-        for (int i=0;i<4;++i)
-            texData->crop_rect[i] = X2F(params[i]);
-    }
-    else {
-        GLfloat param = static_cast<GLfloat>(params[0]);
-        ctx->dispatcher().glTexParameterfv(target,pname,&param);
-    }
-}
-
-GL_API void GL_APIENTRY  glTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::textureTargetEx(target) &&
-                   GLEScmValidate::pixelFrmt(ctx,format)&&
-                   GLEScmValidate::pixelType(ctx,type)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!GLEScmValidate::pixelOp(format,type),GL_INVALID_OPERATION);
-
-    ctx->dispatcher().glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels);
-
-    if (ctx->shareGroup().Ptr()){
-        TextureData *texData = getTextureTargetData(target);
-        SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-        if(texData && texData->requiresAutoMipmap)
-        {
-                ctx->dispatcher().glGenerateMipmapEXT(target);
-        }
-    }
-}
-
-GL_API void GL_APIENTRY  glTranslatef( GLfloat x, GLfloat y, GLfloat z) {
-    GET_CTX()
-    ctx->dispatcher().glTranslatef(x,y,z);
-}
-
-GL_API void GL_APIENTRY  glTranslatex( GLfixed x, GLfixed y, GLfixed z) {
-    GET_CTX()
-    ctx->dispatcher().glTranslatef(X2F(x),X2F(y),X2F(z));
-}
-
-GL_API void GL_APIENTRY  glVertexPointer( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::vertexPointerParams(size,stride),GL_INVALID_VALUE);
-    SET_ERROR_IF(!GLEScmValidate::vertexPointerType(type),GL_INVALID_ENUM);
-    ctx->setPointer(GL_VERTEX_ARRAY,size,type,stride,pointer);
-}
-
-GL_API void GL_APIENTRY  glViewport( GLint x, GLint y, GLsizei width, GLsizei height) {
-    GET_CTX()
-    ctx->dispatcher().glViewport(x,y,width,height);
-}
-
-GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
-{
-    GET_CTX();
-    SET_ERROR_IF(!GLEScmValidate::textureTargetLimited(target),GL_INVALID_ENUM);
-    EglImage *img = s_eglIface->eglAttachEGLImage((unsigned int)image);
-    if (img) {
-        // Create the texture object in the underlying EGL implementation,
-        // flag to the OpenGL layer to skip the image creation and map the
-        // current binded texture object to the existing global object.
-        if (ctx->shareGroup().Ptr()) {
-            ObjectLocalName tex = TextureLocalName(target,ctx->getBindedTexture(target));
-            unsigned int oldGlobal = ctx->shareGroup()->getGlobalName(TEXTURE, tex);
-            // Delete old texture object but only if it is not a target of a EGLImage
-            if (oldGlobal) {
-                TextureData* oldTexData = getTextureData(tex);
-                if (!oldTexData || oldTexData->sourceEGLImage == 0) {
-                    ctx->dispatcher().glDeleteTextures(1, &oldGlobal);
-                }
-            }
-            // replace mapping and bind the new global object
-            ctx->shareGroup()->replaceGlobalName(TEXTURE, tex,img->globalTexName);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, img->globalTexName);
-            TextureData *texData = getTextureTargetData(target);
-            SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-            texData->width = img->width;
-            texData->height = img->height;
-            texData->border = img->border;
-            texData->internalFormat = img->internalFormat;
-            texData->sourceEGLImage = (unsigned int)image;
-            texData->eglImageDetach = s_eglIface->eglDetachEGLImage;
-        }
-    }
-}
-
-GL_API void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
-{
-    GET_CTX();
-    SET_ERROR_IF(target != GL_RENDERBUFFER_OES,GL_INVALID_ENUM);
-    EglImage *img = s_eglIface->eglAttachEGLImage((unsigned int)image);
-    SET_ERROR_IF(!img,GL_INVALID_VALUE);
-    SET_ERROR_IF(!ctx->shareGroup().Ptr(),GL_INVALID_OPERATION);
-
-    // Get current bounded renderbuffer
-    // raise INVALID_OPERATIOn if no renderbuffer is bounded
-    GLuint rb = ctx->getRenderbufferBinding();
-    SET_ERROR_IF(rb == 0,GL_INVALID_OPERATION);
-    ObjectDataPtr objData = ctx->shareGroup()->getObjectData(RENDERBUFFER,rb);
-    RenderbufferData *rbData = (RenderbufferData *)objData.Ptr();
-    SET_ERROR_IF(!rbData,GL_INVALID_OPERATION);
-
-    //
-    // flag in the renderbufferData that it is an eglImage target
-    //
-    rbData->sourceEGLImage = (unsigned int)image;
-    rbData->eglImageDetach = s_eglIface->eglDetachEGLImage;
-    rbData->eglImageGlobalTexName = img->globalTexName;
-
-    //
-    // if the renderbuffer is attached to a framebuffer
-    // change the framebuffer attachment in the undelying OpenGL
-    // to point to the eglImage texture object.
-    //
-    if (rbData->attachedFB) {
-        // update the framebuffer attachment point to the
-        // underlying texture of the img
-        GLuint prevFB = ctx->getFramebufferBinding();
-        if (prevFB != rbData->attachedFB) {
-            ctx->dispatcher().glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 
-                                                   rbData->attachedFB);
-        }
-        ctx->dispatcher().glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
-                                                    rbData->attachedPoint,
-                                                    GL_TEXTURE_2D,
-                                                    img->globalTexName,0);
-        if (prevFB != rbData->attachedFB) {
-            ctx->dispatcher().glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 
-                                                   prevFB);
-        }
-    }
-}
-
-/* GL_OES_blend_subtract*/
-GL_API void GL_APIENTRY glBlendEquationOES(GLenum mode) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::blendEquationMode(mode)), GL_INVALID_ENUM);
-    ctx->dispatcher().glBlendEquation(mode);
-}
-
-/* GL_OES_blend_equation_separate */
-GL_API void GL_APIENTRY glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha) {
-    GET_CTX()
-    SET_ERROR_IF(!(GLEScmValidate::blendEquationMode(modeRGB) && GLEScmValidate::blendEquationMode(modeAlpha)), GL_INVALID_ENUM);
-    ctx->dispatcher().glBlendEquationSeparate(modeRGB,modeAlpha);
-}
-
-/* GL_OES_blend_func_separate */
-GL_API void GL_APIENTRY glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::blendSrc(srcRGB) || !GLEScmValidate::blendDst(dstRGB) ||
-                 !GLEScmValidate::blendSrc(srcAlpha) || ! GLEScmValidate::blendDst(dstAlpha) ,GL_INVALID_ENUM);
-    ctx->dispatcher().glBlendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
-}
-
-/* GL_OES_framebuffer_object */
-GL_API GLboolean GL_APIENTRY glIsRenderbufferOES(GLuint renderbuffer) {
-    GET_CTX_RET(GL_FALSE)
-    RET_AND_SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION,GL_FALSE);
-    if(renderbuffer && ctx->shareGroup().Ptr()){
-        return ctx->shareGroup()->isObject(RENDERBUFFER,renderbuffer) ? GL_TRUE :GL_FALSE;
-    }
-    return ctx->dispatcher().glIsRenderbufferEXT(renderbuffer);
-}
-
-GL_API void GLAPIENTRY glBindRenderbufferOES(GLenum target, GLuint renderbuffer) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::renderbufferTarget(target),GL_INVALID_ENUM);
-
-    //if buffer wasn't generated before,generate one
-    if(renderbuffer && ctx->shareGroup().Ptr() && !ctx->shareGroup()->isObject(RENDERBUFFER,renderbuffer)){
-        ctx->shareGroup()->genName(RENDERBUFFER,renderbuffer);
-        ctx->shareGroup()->setObjectData(RENDERBUFFER,
-                                         renderbuffer,
-                                         ObjectDataPtr(new RenderbufferData()));
-    }
-
-    int globalBufferName = (renderbuffer != 0) ? ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffer) : 0;
-    ctx->dispatcher().glBindRenderbufferEXT(target,globalBufferName);
-
-    // update renderbuffer binding state
-    ctx->setRenderbufferBinding(renderbuffer);
-}
-
-GL_API void GLAPIENTRY glDeleteRenderbuffersOES(GLsizei n, const GLuint *renderbuffers) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    for (int i=0;i<n;++i) {
-        GLuint globalBufferName = ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffers[i]);
-        ctx->dispatcher().glDeleteRenderbuffersEXT(1,&globalBufferName);
-    }
-}
-
-GL_API void GLAPIENTRY glGenRenderbuffersOES(GLsizei n, GLuint *renderbuffers) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            renderbuffers[i] = ctx->shareGroup()->genName(RENDERBUFFER, 0, true);
-            ctx->shareGroup()->setObjectData(RENDERBUFFER,
-                                             renderbuffers[i],
-                                         ObjectDataPtr(new RenderbufferData()));
-        }
-    }
-}
-
-GL_API void GLAPIENTRY glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height){
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::renderbufferTarget(target) || !GLEScmValidate::renderbufferInternalFrmt(ctx,internalformat) ,GL_INVALID_ENUM);
-    if (internalformat==GL_RGB565_OES) //RGB565 not supported by GL
-        internalformat = GL_RGB8_OES;
-
-    // Get current bounded renderbuffer
-    // raise INVALID_OPERATIOn if no renderbuffer is bounded
-    GLuint rb = ctx->getRenderbufferBinding();
-    SET_ERROR_IF(rb == 0,GL_INVALID_OPERATION);
-    ObjectDataPtr objData = ctx->shareGroup()->getObjectData(RENDERBUFFER,rb);
-    RenderbufferData *rbData = (RenderbufferData *)objData.Ptr();
-    SET_ERROR_IF(!rbData,GL_INVALID_OPERATION);
-
-    //
-    // if the renderbuffer was an eglImage target, detach from
-    // the eglImage.
-    //
-    if (rbData->sourceEGLImage != 0) {
-        if (rbData->eglImageDetach) {
-            (*rbData->eglImageDetach)(rbData->sourceEGLImage);
-        }
-        rbData->sourceEGLImage = 0;
-        rbData->eglImageGlobalTexName = 0;
-    }
-
-    ctx->dispatcher().glRenderbufferStorageEXT(target,internalformat,width,height);
-}
-
-GL_API void GLAPIENTRY glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::renderbufferTarget(target) || !GLEScmValidate::renderbufferParams(pname) ,GL_INVALID_ENUM);
-
-    //
-    // If this is a renderbuffer which is eglimage's target, we
-    // should query the underlying eglimage's texture object instead.
-    //
-    GLuint rb = ctx->getRenderbufferBinding();
-    if (rb) {
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(RENDERBUFFER,rb);
-        RenderbufferData *rbData = (RenderbufferData *)objData.Ptr();
-        if (rbData && rbData->sourceEGLImage != 0) {
-            GLenum texPname;
-            switch(pname) {
-                case GL_RENDERBUFFER_WIDTH_OES:
-                    texPname = GL_TEXTURE_WIDTH;
-                    break;
-                case GL_RENDERBUFFER_HEIGHT_OES:
-                    texPname = GL_TEXTURE_HEIGHT;
-                    break;
-                case GL_RENDERBUFFER_INTERNAL_FORMAT_OES:
-                    texPname = GL_TEXTURE_INTERNAL_FORMAT;
-                    break;
-                case GL_RENDERBUFFER_RED_SIZE_OES:
-                    texPname = GL_TEXTURE_RED_SIZE;
-                    break;
-                case GL_RENDERBUFFER_GREEN_SIZE_OES:
-                    texPname = GL_TEXTURE_GREEN_SIZE;
-                    break;
-                case GL_RENDERBUFFER_BLUE_SIZE_OES:
-                    texPname = GL_TEXTURE_BLUE_SIZE;
-                    break;
-                case GL_RENDERBUFFER_ALPHA_SIZE_OES:
-                    texPname = GL_TEXTURE_ALPHA_SIZE;
-                    break;
-                case GL_RENDERBUFFER_DEPTH_SIZE_OES:
-                    texPname = GL_TEXTURE_DEPTH_SIZE;
-                    break;
-                case GL_RENDERBUFFER_STENCIL_SIZE_OES:
-                default:
-                    *params = 0; //XXX
-                    return;
-                    break;
-            }
-
-            GLint prevTex;
-            ctx->dispatcher().glGetIntegerv(GL_TEXTURE_BINDING_2D, &prevTex);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D,
-                                            rbData->eglImageGlobalTexName);
-            ctx->dispatcher().glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
-                                                       texPname,
-                                                       params);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, prevTex);
-            return;
-        }
-    }
-
-    ctx->dispatcher().glGetRenderbufferParameterivEXT(target,pname,params);
-}
-
-GL_API GLboolean GLAPIENTRY glIsFramebufferOES(GLuint framebuffer) {
-    GET_CTX_RET(GL_FALSE)
-    RET_AND_SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION,GL_FALSE);
-    if (framebuffer && ctx->shareGroup().Ptr()) {
-        return ctx->shareGroup()->isObject(FRAMEBUFFER,framebuffer) ? GL_TRUE : GL_FALSE;
-    }
-    return ctx->dispatcher().glIsFramebufferEXT(framebuffer);
-}
-
-GL_API void GLAPIENTRY glBindFramebufferOES(GLenum target, GLuint framebuffer) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::framebufferTarget(target) ,GL_INVALID_ENUM);
-    if (framebuffer && ctx->shareGroup().Ptr() && !ctx->shareGroup()->isObject(FRAMEBUFFER,framebuffer)) {
-        ctx->shareGroup()->genName(FRAMEBUFFER,framebuffer);
-        ctx->shareGroup()->setObjectData(FRAMEBUFFER, framebuffer,
-                                         ObjectDataPtr(new FramebufferData(framebuffer)));
-    }
-    int globalBufferName = (framebuffer!=0) ? ctx->shareGroup()->getGlobalName(FRAMEBUFFER,framebuffer) : 0;
-    ctx->dispatcher().glBindFramebufferEXT(target,globalBufferName);
-
-    // update framebuffer binding state
-    ctx->setFramebufferBinding(framebuffer);
-}
-
-GL_API void GLAPIENTRY glDeleteFramebuffersOES(GLsizei n, const GLuint *framebuffers) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    for (int i=0;i<n;++i) {
-        GLuint globalBufferName = ctx->shareGroup()->getGlobalName(FRAMEBUFFER,framebuffers[i]);
-        ctx->dispatcher().glDeleteFramebuffersEXT(1,&globalBufferName);
-    }
-}
-
-GL_API void GLAPIENTRY glGenFramebuffersOES(GLsizei n, GLuint *framebuffers) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if (ctx->shareGroup().Ptr()) {
-        for (int i=0;i<n;i++) {
-            framebuffers[i] = ctx->shareGroup()->genName(FRAMEBUFFER, 0, true);
-            ctx->shareGroup()->setObjectData(FRAMEBUFFER, framebuffers[i],
-                                             ObjectDataPtr(new FramebufferData(framebuffers[i])));
-        }
-    }
-}
-
-GL_API GLenum GLAPIENTRY glCheckFramebufferStatusOES(GLenum target) {
-    GET_CTX_RET(0)
-    RET_AND_SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION,0);
-    RET_AND_SET_ERROR_IF(!GLEScmValidate::framebufferTarget(target) ,GL_INVALID_ENUM,0);
-    return ctx->dispatcher().glCheckFramebufferStatusEXT(target);
-}
-
-GL_API void GLAPIENTRY glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::framebufferTarget(target) || !GLEScmValidate::framebufferAttachment(attachment) ||
-                 !GLEScmValidate::textureTargetEx(textarget),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->shareGroup().Ptr(), GL_INVALID_OPERATION);
-
-    GLuint globalTexName = 0;
-    if(texture) {
-        if (!ctx->shareGroup()->isObject(TEXTURE,texture)) {
-            ctx->shareGroup()->genName(TEXTURE,texture);
-        }
-        ObjectLocalName texname = TextureLocalName(textarget,texture);
-        globalTexName = ctx->shareGroup()->getGlobalName(TEXTURE,texname);
-    }
-
-    ctx->dispatcher().glFramebufferTexture2DEXT(target,attachment,textarget,globalTexName,level);
-
-    // Update the the current framebuffer object attachment state
-    GLuint fbName = ctx->getFramebufferBinding();
-    ObjectDataPtr fbObj = ctx->shareGroup()->getObjectData(FRAMEBUFFER,fbName);
-    if (fbObj.Ptr() != NULL) {
-        FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-        fbData->setAttachment(attachment, textarget, 
-                              texture, ObjectDataPtr(NULL));
-    }
-}
-
-GL_API void GLAPIENTRY glFramebufferRenderbufferOES(GLenum target, GLenum attachment,GLenum renderbuffertarget, GLuint renderbuffer) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::framebufferTarget(target) || 
-                 !GLEScmValidate::framebufferAttachment(attachment) ||
-                 !GLEScmValidate::renderbufferTarget(renderbuffertarget), GL_INVALID_ENUM);
-
-    SET_ERROR_IF(!ctx->shareGroup().Ptr(), GL_INVALID_OPERATION);
-
-    GLuint globalBufferName = 0;
-    ObjectDataPtr obj;
-
-    // generate the renderbuffer object if not yet exist
-    if (renderbuffer) {
-        if (!ctx->shareGroup()->isObject(RENDERBUFFER,renderbuffer)) {
-            ctx->shareGroup()->genName(RENDERBUFFER,renderbuffer);
-            obj = ObjectDataPtr(new RenderbufferData());
-            ctx->shareGroup()->setObjectData(RENDERBUFFER,
-                                         renderbuffer,
-                                         ObjectDataPtr(new RenderbufferData()));
-        }
-        else {
-            obj = ctx->shareGroup()->getObjectData(RENDERBUFFER,renderbuffer);
-        }
-        globalBufferName = ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffer);
-    }
-
-    // Update the the current framebuffer object attachment state
-    GLuint fbName = ctx->getFramebufferBinding();
-    ObjectDataPtr fbObj = ctx->shareGroup()->getObjectData(FRAMEBUFFER,fbName);
-    if (fbObj.Ptr() != NULL) {
-        FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-        fbData->setAttachment(attachment, renderbuffertarget, renderbuffer, obj);
-    }
-
-    if (renderbuffer && obj.Ptr() != NULL) {
-        RenderbufferData *rbData = (RenderbufferData *)obj.Ptr();
-        if (rbData->sourceEGLImage != 0) {
-            //
-            // This renderbuffer object is an eglImage target
-            // attach the eglimage's texture instead the renderbuffer.
-            //
-            ctx->dispatcher().glFramebufferTexture2DEXT(target,
-                                                    attachment,
-                                                    GL_TEXTURE_2D,
-                                                    rbData->eglImageGlobalTexName,0);
-            return;
-        }
-    }
-
-    ctx->dispatcher().glFramebufferRenderbufferEXT(target,attachment,renderbuffertarget,globalBufferName);
-}
-
-GL_API void GLAPIENTRY glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::framebufferTarget(target) || !GLEScmValidate::framebufferAttachment(attachment) ||
-                 !GLEScmValidate::framebufferAttachmentParams(pname), GL_INVALID_ENUM);
-
-    //
-    // Take the attachment attribute from our state - if available
-    //
-    GLuint fbName = ctx->getFramebufferBinding();
-    if (fbName) {
-        ObjectDataPtr fbObj = ctx->shareGroup()->getObjectData(FRAMEBUFFER,fbName);
-        if (fbObj.Ptr() != NULL) {
-            FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-            GLenum target;
-            GLuint name = fbData->getAttachment(attachment, &target, NULL);
-            if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES) {
-                *params = target;
-                return;
-            }
-            else if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES) {
-                *params = name;
-                return;
-            }
-        }
-    }
-
-    ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(target,attachment,pname,params);
-}
-
-GL_API void GL_APIENTRY glGenerateMipmapOES(GLenum target) {
-    GET_CTX()
-    SET_ERROR_IF(!ctx->getCaps()->GL_EXT_FRAMEBUFFER_OBJECT,GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLEScmValidate::textureTargetLimited(target),GL_INVALID_ENUM);
-    ctx->dispatcher().glGenerateMipmapEXT(target);
-}
-
-GL_API void GL_APIENTRY glCurrentPaletteMatrixOES(GLuint index) {
-    GET_CTX()
-    SET_ERROR_IF(!(ctx->getCaps()->GL_ARB_MATRIX_PALETTE && ctx->getCaps()->GL_ARB_VERTEX_BLEND),GL_INVALID_OPERATION);
-    ctx->dispatcher().glCurrentPaletteMatrixARB(index);
-}
-
-GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOES() {
-    GET_CTX()
-    SET_ERROR_IF(!(ctx->getCaps()->GL_ARB_MATRIX_PALETTE && ctx->getCaps()->GL_ARB_VERTEX_BLEND),GL_INVALID_OPERATION);
-    GLint matrix[16];
-    ctx->dispatcher().glGetIntegerv(GL_MODELVIEW_MATRIX,matrix);
-    ctx->dispatcher().glMatrixIndexuivARB(1,(GLuint*)matrix);
-
-}
-
-GL_API void GL_APIENTRY glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(!(ctx->getCaps()->GL_ARB_MATRIX_PALETTE && ctx->getCaps()->GL_ARB_VERTEX_BLEND),GL_INVALID_OPERATION);
-    ctx->dispatcher().glMatrixIndexPointerARB(size,type,stride,pointer);
-}
-
-GL_API void GL_APIENTRY glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
-    GET_CTX()
-    SET_ERROR_IF(!(ctx->getCaps()->GL_ARB_MATRIX_PALETTE && ctx->getCaps()->GL_ARB_VERTEX_BLEND),GL_INVALID_OPERATION);
-    ctx->dispatcher().glWeightPointerARB(size,type,stride,pointer);
-
-}
-
-GL_API void GL_APIENTRY glTexGenfOES (GLenum coord, GLenum pname, GLfloat param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texGen(coord,pname),GL_INVALID_ENUM);
-    if (coord == GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glTexGenf(GL_S,pname,param);
-        ctx->dispatcher().glTexGenf(GL_T,pname,param);
-        ctx->dispatcher().glTexGenf(GL_R,pname,param);
-    }
-    else
-        ctx->dispatcher().glTexGenf(coord,pname,param);
-}
-
-GL_API void GL_APIENTRY glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texGen(coord,pname),GL_INVALID_ENUM);
-    if (coord == GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glTexGenfv(GL_S,pname,params);
-        ctx->dispatcher().glTexGenfv(GL_T,pname,params);
-        ctx->dispatcher().glTexGenfv(GL_R,pname,params);
-    }
-    else
-        ctx->dispatcher().glTexGenfv(coord,pname,params);
-}
-GL_API void GL_APIENTRY glTexGeniOES (GLenum coord, GLenum pname, GLint param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texGen(coord,pname),GL_INVALID_ENUM);
-    if (coord == GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glTexGeni(GL_S,pname,param);
-        ctx->dispatcher().glTexGeni(GL_T,pname,param);
-        ctx->dispatcher().glTexGeni(GL_R,pname,param);
-    }
-    else
-        ctx->dispatcher().glTexGeni(coord,pname,param);
-}
-GL_API void GL_APIENTRY glTexGenivOES (GLenum coord, GLenum pname, const GLint *params) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texGen(coord,pname),GL_INVALID_ENUM);
-    if (coord == GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glTexGeniv(GL_S,pname,params);
-        ctx->dispatcher().glTexGeniv(GL_T,pname,params);
-        ctx->dispatcher().glTexGeniv(GL_R,pname,params);
-    }
-    else
-        ctx->dispatcher().glTexGeniv(coord,pname,params);
-}
-GL_API void GL_APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param) {
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texGen(coord,pname),GL_INVALID_ENUM);
-    if (coord == GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glTexGenf(GL_S,pname,X2F(param));
-        ctx->dispatcher().glTexGenf(GL_T,pname,X2F(param));
-        ctx->dispatcher().glTexGenf(GL_R,pname,X2F(param));
-    }
-    else
-        ctx->dispatcher().glTexGenf(coord,pname,X2F(param));
-}
-GL_API void GL_APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params) {
-    GLfloat tmpParams[1];
-    GET_CTX()
-    SET_ERROR_IF(!GLEScmValidate::texGen(coord,pname),GL_INVALID_ENUM);
-    tmpParams[0] = X2F(params[0]);
-    if (coord == GL_TEXTURE_GEN_STR_OES) {
-        ctx->dispatcher().glTexGenfv(GL_S,pname,tmpParams);
-        ctx->dispatcher().glTexGenfv(GL_T,pname,tmpParams);
-        ctx->dispatcher().glTexGenfv(GL_R,pname,tmpParams);
-    }
-    else
-        ctx->dispatcher().glTexGenfv(coord,pname,tmpParams);
-}
-
-GL_API void GL_APIENTRY glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat *params) {
-    GET_CTX()
-    if (coord == GL_TEXTURE_GEN_STR_OES)
-    {
-        GLfloat state_s = GL_FALSE;
-        GLfloat state_t = GL_FALSE;
-        GLfloat state_r = GL_FALSE;
-        ctx->dispatcher().glGetTexGenfv(GL_S,pname,&state_s);
-        ctx->dispatcher().glGetTexGenfv(GL_T,pname,&state_t);
-        ctx->dispatcher().glGetTexGenfv(GL_R,pname,&state_r);
-        *params = state_s && state_t && state_r ? GL_TRUE: GL_FALSE;
-    }
-    else
-        ctx->dispatcher().glGetTexGenfv(coord,pname,params);
-
-}
-GL_API void GL_APIENTRY glGetTexGenivOES (GLenum coord, GLenum pname, GLint *params) {
-    GET_CTX()
-    if (coord == GL_TEXTURE_GEN_STR_OES)
-    {
-        GLint state_s = GL_FALSE;
-        GLint state_t = GL_FALSE;
-        GLint state_r = GL_FALSE;
-        ctx->dispatcher().glGetTexGeniv(GL_S,pname,&state_s);
-        ctx->dispatcher().glGetTexGeniv(GL_T,pname,&state_t);
-        ctx->dispatcher().glGetTexGeniv(GL_R,pname,&state_r);
-        *params = state_s && state_t && state_r ? GL_TRUE: GL_FALSE;
-    }
-    else
-        ctx->dispatcher().glGetTexGeniv(coord,pname,params);
-}
-
-GL_API void GL_APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params) {
-    GET_CTX()
-    GLfloat tmpParams[1];
-
-    if (coord == GL_TEXTURE_GEN_STR_OES)
-    {
-        GLfloat state_s = GL_FALSE;
-        GLfloat state_t = GL_FALSE;
-        GLfloat state_r = GL_FALSE;
-        ctx->dispatcher().glGetTexGenfv(GL_TEXTURE_GEN_S,pname,&state_s);
-        ctx->dispatcher().glGetTexGenfv(GL_TEXTURE_GEN_T,pname,&state_t);
-        ctx->dispatcher().glGetTexGenfv(GL_TEXTURE_GEN_R,pname,&state_r);
-        tmpParams[0] = state_s && state_t && state_r ? GL_TRUE: GL_FALSE;
-    }
-    else
-        ctx->dispatcher().glGetTexGenfv(coord,pname,tmpParams);
-
-    params[0] = F2X(tmpParams[1]);
-}
-
-template <class T, GLenum TypeName>
-void glDrawTexOES (T x, T y, T z, T width, T height) {
-    GET_CTX()
-
-    SET_ERROR_IF((width<=0 || height<=0),GL_INVALID_VALUE);
-
-    ctx->drawValidate();
-
-    int numClipPlanes;
-
-    GLint viewport[4];
-    z = (z>1 ? 1 : (z<0 ?  0 : z));
-
-    T     vertices[4*3] = {x , y, z,
-                             x , y+height, z,
-                             x+width, y+height, z,
-                             x+width, y, z};
-    GLfloat texels[ctx->getMaxTexUnits()][4*2];
-    memset((void*)texels, 0, ctx->getMaxTexUnits()*4*2*sizeof(GLfloat));
-
-    ctx->dispatcher().glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT);
-    ctx->dispatcher().glPushAttrib(GL_TRANSFORM_BIT);
-
-    //setup projection matrix to draw in viewport aligned coordinates
-    ctx->dispatcher().glMatrixMode(GL_PROJECTION);
-    ctx->dispatcher().glPushMatrix();
-    ctx->dispatcher().glLoadIdentity();
-    ctx->dispatcher().glGetIntegerv(GL_VIEWPORT,viewport);
-    ctx->dispatcher().glOrtho(viewport[0],viewport[0] + viewport[2],viewport[1],viewport[1]+viewport[3],0,-1);
-    //setup texture matrix
-    ctx->dispatcher().glMatrixMode(GL_TEXTURE);
-    ctx->dispatcher().glPushMatrix();
-    ctx->dispatcher().glLoadIdentity();
-    //setup modelview matrix
-    ctx->dispatcher().glMatrixMode(GL_MODELVIEW);
-    ctx->dispatcher().glPushMatrix();
-    ctx->dispatcher().glLoadIdentity();
-    //backup vbo's
-    int array_buffer,element_array_buffer;
-    glGetIntegerv(GL_ARRAY_BUFFER_BINDING,&array_buffer);
-    glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING,&element_array_buffer);
-    ctx->dispatcher().glBindBuffer(GL_ARRAY_BUFFER,0);
-    ctx->dispatcher().glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
-
-    //disable clip planes
-    ctx->dispatcher().glGetIntegerv(GL_MAX_CLIP_PLANES,&numClipPlanes);
-    for (int i=0;i<numClipPlanes;++i)
-        ctx->dispatcher().glDisable(GL_CLIP_PLANE0+i);
-
-    int nTexPtrs = 0;
-    for (int i=0;i<ctx->getMaxTexUnits();++i) {
-        if (ctx->isTextureUnitEnabled(GL_TEXTURE0+i)) {
-            TextureData * texData = NULL;
-            unsigned int texname = ctx->getBindedTexture(GL_TEXTURE0+i,GL_TEXTURE_2D);
-            ObjectLocalName tex = TextureLocalName(GL_TEXTURE_2D,texname);
-            ctx->dispatcher().glClientActiveTexture(GL_TEXTURE0+i);
-            ObjectDataPtr objData = ctx->shareGroup()->getObjectData(TEXTURE,tex);
-            if (objData.Ptr()) {
-                texData = (TextureData*)objData.Ptr();
-                //calculate texels
-                texels[i][0] = (float)(texData->crop_rect[0])/(float)(texData->width);
-                texels[i][1] = (float)(texData->crop_rect[1])/(float)(texData->height);
-
-                texels[i][2] = (float)(texData->crop_rect[0])/(float)(texData->width);
-                texels[i][3] = (float)(texData->crop_rect[3]+texData->crop_rect[1])/(float)(texData->height);
-
-                texels[i][4] = (float)(texData->crop_rect[2]+texData->crop_rect[0])/(float)(texData->width);
-                texels[i][5] = (float)(texData->crop_rect[3]+texData->crop_rect[1])/(float)(texData->height);
-
-                texels[i][6] = (float)(texData->crop_rect[2]+texData->crop_rect[0])/(float)(texData->width);
-                texels[i][7] = (float)(texData->crop_rect[1])/(float)(texData->height);
-
-                ctx->dispatcher().glTexCoordPointer(2,GL_FLOAT,0,texels[i]);
-                nTexPtrs++;
-             }
-        }
-    }
-
-    if (nTexPtrs>0) {
-        //draw rectangle - only if we have some textures enabled & ready
-        ctx->dispatcher().glEnableClientState(GL_VERTEX_ARRAY);
-        ctx->dispatcher().glVertexPointer(3,TypeName,0,vertices);
-        ctx->dispatcher().glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-        ctx->dispatcher().glDrawArrays(GL_TRIANGLE_FAN,0,4);
-    }
-
-    //restore vbo's
-    ctx->dispatcher().glBindBuffer(GL_ARRAY_BUFFER,array_buffer);
-    ctx->dispatcher().glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,element_array_buffer);
-
-    //restore matrix state
-
-    ctx->dispatcher().glMatrixMode(GL_MODELVIEW);
-    ctx->dispatcher().glPopMatrix();
-    ctx->dispatcher().glMatrixMode(GL_TEXTURE);
-    ctx->dispatcher().glPopMatrix();
-    ctx->dispatcher().glMatrixMode(GL_PROJECTION);
-    ctx->dispatcher().glPopMatrix();
-
-    ctx->dispatcher().glPopAttrib();
-    ctx->dispatcher().glPopClientAttrib();
-}
-
-GL_API void GL_APIENTRY glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height) {
-    glDrawTexOES<GLshort,GL_SHORT>(x,y,z,width,height);
-}
-
-GL_API void GL_APIENTRY glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height) {
-    glDrawTexOES<GLint,GL_INT>(x,y,z,width,height);
-}
-
-GL_API void GL_APIENTRY glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) {
-    glDrawTexOES<GLfloat,GL_FLOAT>(x,y,z,width,height);
-}
-
-GL_API void GL_APIENTRY glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height) {
-    glDrawTexOES<GLfloat,GL_FLOAT>(X2F(x),X2F(y),X2F(z),X2F(width),X2F(height));
-}
-
-GL_API void GL_APIENTRY glDrawTexsvOES (const GLshort * coords) {
-    glDrawTexOES<GLshort,GL_SHORT>(coords[0],coords[1],coords[2],coords[3],coords[4]);
-}
-
-GL_API void GL_APIENTRY glDrawTexivOES (const GLint * coords) {
-    glDrawTexOES<GLint,GL_INT>(coords[0],coords[1],coords[2],coords[3],coords[4]);
-}
-
-GL_API void GL_APIENTRY glDrawTexfvOES (const GLfloat * coords) {
-    glDrawTexOES<GLfloat,GL_FLOAT>(coords[0],coords[1],coords[2],coords[3],coords[4]);
-}
-
-GL_API void GL_APIENTRY glDrawTexxvOES (const GLfixed * coords) {
-    glDrawTexOES<GLfloat,GL_FLOAT>(X2F(coords[0]),X2F(coords[1]),X2F(coords[2]),X2F(coords[3]),X2F(coords[4]));
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmUtils.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmUtils.cpp
deleted file mode 100644
index 891b4e3..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmUtils.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLEScmUtils.h"
-
-
-size_t glParamSize(GLenum param)
-{
-    size_t s = 0;
-
-    switch(param)
-    {
-    case GL_MAX_TEXTURE_SIZE:
-    //case GL_TEXTURE_GEN_MODE_OES:
-    case GL_TEXTURE_ENV_MODE:
-    case GL_FOG_MODE:
-    case GL_FOG_DENSITY:
-    case GL_FOG_START:
-    case GL_FOG_END:
-    case GL_SPOT_EXPONENT:
-    case GL_CONSTANT_ATTENUATION:
-    case GL_LINEAR_ATTENUATION:
-    case GL_QUADRATIC_ATTENUATION:
-    case GL_SHININESS:
-    case GL_LIGHT_MODEL_TWO_SIDE:
-    case GL_POINT_SIZE:
-    case GL_POINT_SIZE_MIN:
-    case GL_POINT_SIZE_MAX:
-    case GL_POINT_FADE_THRESHOLD_SIZE:
-    case GL_CULL_FACE_MODE:
-    case GL_FRONT_FACE:
-    case GL_SHADE_MODEL:
-    case GL_DEPTH_WRITEMASK:
-    case GL_DEPTH_CLEAR_VALUE:
-    case GL_STENCIL_FAIL:
-    case GL_STENCIL_PASS_DEPTH_FAIL:
-    case GL_STENCIL_PASS_DEPTH_PASS:
-    case GL_STENCIL_REF:
-    case GL_STENCIL_WRITEMASK:
-    case GL_MATRIX_MODE:
-    case GL_MODELVIEW_STACK_DEPTH:
-    case GL_PROJECTION_STACK_DEPTH:
-    case GL_TEXTURE_STACK_DEPTH:
-    case GL_ALPHA_TEST_FUNC:
-    case GL_ALPHA_TEST_REF:
-    case GL_BLEND_DST:
-    case GL_BLEND_SRC:
-    case GL_LOGIC_OP_MODE:
-    case GL_SCISSOR_TEST:
-    case GL_MAX_TEXTURE_UNITS:
-        s = 1;
-        break;
-    case GL_ALIASED_LINE_WIDTH_RANGE:
-    case GL_ALIASED_POINT_SIZE_RANGE:
-    case GL_DEPTH_RANGE:
-    case GL_MAX_VIEWPORT_DIMS:
-    case GL_SMOOTH_POINT_SIZE_RANGE:
-    case GL_SMOOTH_LINE_WIDTH_RANGE:
-        s= 2;
-        break;
-    case GL_SPOT_DIRECTION:
-    case GL_POINT_DISTANCE_ATTENUATION:
-    case GL_CURRENT_NORMAL:
-        s =  3;
-        break;
-    case GL_CURRENT_TEXTURE_COORDS:
-    case GL_CURRENT_COLOR:
-    case GL_FOG_COLOR:
-    case GL_AMBIENT:
-    case GL_DIFFUSE:
-    case GL_SPECULAR:
-    case GL_EMISSION:
-    case GL_POSITION:
-    case GL_LIGHT_MODEL_AMBIENT:
-    case GL_TEXTURE_ENV_COLOR:
-    case GL_SCISSOR_BOX:
-    case GL_VIEWPORT:
-    //case GL_TEXTURE_CROP_RECT_OES:
-        s =  4;
-        break;
-    case GL_MODELVIEW_MATRIX:
-    case GL_PROJECTION_MATRIX:
-    case GL_TEXTURE_MATRIX:
-        s = 16;
-    default:
-        s = 1; // assume 1
-    }
-    return s;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmUtils.h b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmUtils.h
deleted file mode 100644
index 38ad6bc..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmUtils.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLES_UTILS_H
-#define GLES_UTILS_H
-#include <GLES/gl.h>
-#include <stdlib.h>
-
-size_t glParamSize(GLenum param);
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmValidate.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmValidate.cpp
deleted file mode 100644
index 1970232..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmValidate.cpp
+++ /dev/null
@@ -1,305 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLEScmValidate.h"
-#include <GLcommon/GLutils.h>
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-#include <GLcommon/GLEScontext.h>
-#include "GLEScmValidate.h"
-
-
-bool GLEScmValidate::lightEnum(GLenum e,unsigned int maxLights) {
-    return  e >=GL_LIGHT0 && e <= (GL_LIGHT0+maxLights);
-}
-
-bool GLEScmValidate::clipPlaneEnum(GLenum e,unsigned int maxClipPlanes) {
-    return  e >=GL_CLIP_PLANE0 && e <= (GL_CLIP_PLANE0+maxClipPlanes);
-}
-
-bool GLEScmValidate::alphaFunc(GLenum f) {
-    switch(f) {
-    case GL_NEVER:
-    case GL_LESS:
-    case GL_EQUAL:
-    case GL_LEQUAL:
-    case GL_GREATER:
-    case GL_NOTEQUAL:
-    case GL_GEQUAL:
-    case GL_ALWAYS:
-        return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::blendSrc(GLenum s) {
-   switch(s) {
-    case GL_ZERO:
-    case GL_ONE:
-    case GL_DST_COLOR:
-    case GL_ONE_MINUS_DST_COLOR:
-    case GL_SRC_ALPHA:
-    case GL_ONE_MINUS_SRC_ALPHA:
-    case GL_DST_ALPHA:
-    case GL_ONE_MINUS_DST_ALPHA:
-    case GL_SRC_ALPHA_SATURATE:
-        return true;
-  }
-  return false;
-}
-
-bool GLEScmValidate::vertexPointerParams(GLint size,GLsizei stride) {
-    return ((size >=2) && (size <= 4)) && (stride >=0) ;
-}
-
-bool GLEScmValidate::colorPointerParams(GLint size,GLsizei stride) {
-    return ((size >=3) && (size <= 4)) && (stride >=0) ;
-}
-
-bool GLEScmValidate::texCoordPointerParams(GLint size,GLsizei stride) {
-    return ((size >=2) && (size <= 4)) && (stride >=0) ;
-}
-
-bool GLEScmValidate::supportedArrays(GLenum arr) {
-    switch(arr) {
-    case GL_COLOR_ARRAY:
-    case GL_NORMAL_ARRAY:
-    case GL_POINT_SIZE_ARRAY_OES:
-    case GL_TEXTURE_COORD_ARRAY:
-    case GL_VERTEX_ARRAY:
-        return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::hintTargetMode(GLenum target,GLenum mode) {
-   switch(target) {
-   case GL_FOG_HINT:
-   case GL_GENERATE_MIPMAP_HINT:
-   case GL_LINE_SMOOTH_HINT:
-   case GL_PERSPECTIVE_CORRECTION_HINT:
-   case GL_POINT_SMOOTH_HINT:
-       break;
-   default: return false;
-   }
-   switch(mode) {
-   case GL_FASTEST:
-   case GL_NICEST:
-   case GL_DONT_CARE:
-       break;
-   default: return false;
-   }
-   return true;
-}
-
-bool GLEScmValidate::texParams(GLenum target,GLenum pname) {
-    switch(pname) {
-    case GL_TEXTURE_MIN_FILTER:
-    case GL_TEXTURE_MAG_FILTER:
-    case GL_TEXTURE_WRAP_S:
-    case GL_TEXTURE_WRAP_T:
-    case GL_TEXTURE_CROP_RECT_OES:
-    case GL_GENERATE_MIPMAP:
-        break;
-    default:
-        return false;
-    }
-    return (target == GL_TEXTURE_2D)||(target == GL_TEXTURE_CUBE_MAP_OES);
-}
-
-bool GLEScmValidate::texEnv(GLenum target,GLenum pname) {
-    switch(pname) {
-    case GL_TEXTURE_ENV_MODE:
-    case GL_TEXTURE_ENV_COLOR:
-    case GL_COMBINE_RGB:
-    case GL_COMBINE_ALPHA:
-    case GL_SRC0_RGB:
-    case GL_SRC1_RGB:
-    case GL_SRC2_RGB:
-    case GL_SRC0_ALPHA:
-    case GL_SRC1_ALPHA:
-    case GL_SRC2_ALPHA:
-    case GL_OPERAND0_RGB:
-    case GL_OPERAND1_RGB:
-    case GL_OPERAND2_RGB:
-    case GL_OPERAND0_ALPHA:
-    case GL_OPERAND1_ALPHA:
-    case GL_OPERAND2_ALPHA:
-    case GL_RGB_SCALE:
-    case GL_ALPHA_SCALE:
-    case GL_COORD_REPLACE_OES:
-        break;
-    default:
-        return false;
-    }
-    return (target == GL_TEXTURE_ENV || target == GL_POINT_SPRITE_OES);
-}
-
-bool GLEScmValidate::capability(GLenum cap,int maxLights,int maxClipPlanes) {
-    switch(cap) {
-    case GL_ALPHA_TEST:
-    case GL_BLEND:
-    case GL_COLOR_ARRAY:
-    case GL_COLOR_LOGIC_OP:
-    case GL_COLOR_MATERIAL:
-    case GL_CULL_FACE:
-    case GL_DEPTH_TEST:
-    case GL_DITHER:
-    case GL_FOG:
-    case GL_LIGHTING:
-    case GL_LINE_SMOOTH:
-    case GL_MULTISAMPLE:
-    case GL_NORMAL_ARRAY:
-    case GL_NORMALIZE:
-    case GL_POINT_SIZE_ARRAY_OES:
-    case GL_POINT_SMOOTH:
-    case GL_POINT_SPRITE_OES:
-    case GL_POLYGON_OFFSET_FILL:
-    case GL_RESCALE_NORMAL:
-    case GL_SAMPLE_ALPHA_TO_COVERAGE:
-    case GL_SAMPLE_ALPHA_TO_ONE:
-    case GL_SAMPLE_COVERAGE:
-    case GL_SCISSOR_TEST:
-    case GL_STENCIL_TEST:
-    case GL_TEXTURE_2D:
-    case GL_TEXTURE_COORD_ARRAY:
-    case GL_VERTEX_ARRAY:
-        return true;
-    }
-    return GLEScmValidate::lightEnum(cap,maxLights) || GLEScmValidate::clipPlaneEnum(cap,maxClipPlanes);
-}
-
-
-bool GLEScmValidate::texCompImgFrmt(GLenum format) {
-    switch(format) {
-    case GL_PALETTE4_RGB8_OES:
-    case GL_PALETTE4_RGBA8_OES:
-    case GL_PALETTE4_R5_G6_B5_OES:
-    case GL_PALETTE4_RGBA4_OES:
-    case GL_PALETTE4_RGB5_A1_OES:
-    case GL_PALETTE8_RGB8_OES:
-    case GL_PALETTE8_RGBA8_OES:
-    case GL_PALETTE8_R5_G6_B5_OES:
-    case GL_PALETTE8_RGBA4_OES:
-    case GL_PALETTE8_RGB5_A1_OES:
-        return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::blendDst(GLenum d) {
-   switch(d) {
-    case GL_ZERO:
-    case GL_ONE:
-    case GL_SRC_COLOR:
-    case GL_ONE_MINUS_SRC_COLOR:
-    case GL_SRC_ALPHA:
-    case GL_ONE_MINUS_SRC_ALPHA:
-    case GL_DST_ALPHA:
-    case GL_ONE_MINUS_DST_ALPHA:
-        return true;
-   }
-   return false;
-}
-
-bool GLEScmValidate::renderbufferInternalFrmt(GLEScontext* ctx, GLenum internalformat)
-{
-    switch (internalformat) {
-    case GL_DEPTH_COMPONENT16_OES:
-    case GL_RGBA4_OES:
-    case GL_RGB5_A1_OES:
-    case GL_RGB565_OES:
-    case GL_STENCIL_INDEX1_OES:
-    case GL_STENCIL_INDEX4_OES:
-    case GL_STENCIL_INDEX8_OES:
-    case GL_RGB8_OES:
-    case GL_RGBA8_OES:
-    case GL_DEPTH_COMPONENT24_OES:
-    case GL_DEPTH_COMPONENT32_OES:
-        return true;
-    }
-    if (ctx->getCaps()->GL_EXT_PACKED_DEPTH_STENCIL && internalformat==GL_DEPTH24_STENCIL8_OES)
-        return true;
-
-    return false;
-}
-
-bool GLEScmValidate::stencilOp(GLenum param) {
-    switch (param) {
-    case GL_KEEP:
-    case GL_ZERO:
-    case GL_REPLACE:
-    case GL_INCR:
-    case GL_DECR:
-    case GL_INVERT:
-    case GL_INCR_WRAP_OES:
-    case GL_DECR_WRAP_OES:
-      return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::texGen(GLenum coord, GLenum pname) {
-    return (coord == GL_TEXTURE_GEN_STR_OES && pname == GL_TEXTURE_GEN_MODE_OES);
-}
-
-bool GLEScmValidate::colorPointerType(GLenum type){
-    switch(type){
-    case GL_UNSIGNED_BYTE:
-    case GL_FIXED:
-    case GL_FLOAT:
-        return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::normalPointerType(GLenum type){
-
-    switch(type){
-    case GL_BYTE:
-    case GL_SHORT:
-    case GL_FLOAT:
-    case GL_FIXED:
-        return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::pointPointerType(GLenum type){
-    return type == GL_FIXED || type == GL_FLOAT;
-}
-
-bool GLEScmValidate::texCoordPointerType(GLenum type){
-    switch(type){
-    case GL_BYTE:
-    case GL_SHORT:
-    case GL_FLOAT:
-    case GL_FIXED:
-        return true;
-    }
-    return false;
-}
-
-bool GLEScmValidate::vertexPointerType(GLenum type){
-    switch(type){
-    case GL_BYTE:
-    case GL_SHORT:
-    case GL_FLOAT:
-    case GL_FIXED:
-        return true;
-    }
-    return false;
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmValidate.h b/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmValidate.h
deleted file mode 100644
index 9bc3393..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_CM/GLEScmValidate.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLES_CM_VALIDATE_H
-#define GLES_CM_VALIDATE_H
-
-#include <GLES/gl.h>
-#include <GLcommon/GLESvalidate.h>
-struct GLEScmValidate : public GLESvalidate
-{
-static bool blendSrc(GLenum s);
-static bool blendDst(GLenum d);
-static bool lightEnum(GLenum e,unsigned int maxLIghts);
-static bool clipPlaneEnum(GLenum e,unsigned int maxClipPlanes);
-static bool alphaFunc(GLenum f);
-static bool vertexPointerParams(GLint size,GLsizei stride);
-static bool colorPointerParams(GLint size,GLsizei stride);
-static bool supportedArrays(GLenum arr);
-static bool hintTargetMode(GLenum target,GLenum mode);
-static bool capability(GLenum cap,int maxLights,int maxClipPlanes);
-static bool texParams(GLenum target,GLenum pname);
-static bool texCoordPointerParams(GLint size,GLsizei stride);
-
-static bool texEnv(GLenum target,GLenum pname);
-static bool texCompImgFrmt(GLenum format);
-
-static bool renderbufferInternalFrmt(GLEScontext * ctx, GLenum internalformat);
-static bool stencilOp(GLenum param);
-static bool texGen(GLenum coord,GLenum pname);
-
-static bool colorPointerType(GLenum type);
-static bool normalPointerType(GLenum type);
-static bool pointPointerType(GLenum type);
-static bool texCoordPointerType(GLenum type);
-static bool vertexPointerType(GLenum type);
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk b/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
deleted file mode 100644
index a7c68b1..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-### GLES_CM host implementation (On top of OpenGL) ########################
-$(call emugl-begin-host-shared-library,libGLES_V2_translator)
-$(call emugl-import, libGLcommon)
-
-LOCAL_SRC_FILES :=                    \
-     GLESv2Imp.cpp                    \
-     GLESv2Context.cpp                \
-     GLESv2Validate.cpp               \
-     ShaderParser.cpp                 \
-     ProgramData.cpp
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Context.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Context.cpp
deleted file mode 100644
index 92f9319..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Context.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include "GLESv2Context.h"
-
-
-
-void GLESv2Context::init() {
-    android::Mutex::Autolock mutex(s_lock);
-    if(!m_initialized) {
-        s_glDispatch.dispatchFuncs(GLES_2_0);
-        GLEScontext::init();
-        for(int i=0; i < s_glSupport.maxVertexAttribs;i++){
-            m_map[i] = new GLESpointer();
-        }
-        setAttribute0value(0.0, 0.0, 0.0, 1.0);
-    }
-    m_initialized = true;
-}
-
-GLESv2Context::GLESv2Context():GLEScontext(), m_att0Array(NULL), m_att0ArrayLength(0), m_att0NeedsDisable(false){};
-
-GLESv2Context::~GLESv2Context()
-{
-    delete[] m_att0Array;
-}
-
-void GLESv2Context::setAttribute0value(float x, float y, float z, float w)
-{
-    m_attribute0value[0] = x;
-    m_attribute0value[1] = y;
-    m_attribute0value[2] = z;
-    m_attribute0value[3] = w;
-}
-
-void GLESv2Context::validateAtt0PreDraw(unsigned int count)
-{
-    m_att0NeedsDisable = false;
-
-    if(count == 0)
-        return;
-
-    int enabled = 0;
-    s_glDispatch.glGetVertexAttribiv(0, GL_VERTEX_ATTRIB_ARRAY_ENABLED, &enabled);
-    if(enabled)
-        return;
-
-    if(count > m_att0ArrayLength)
-    {
-        delete [] m_att0Array; 
-        m_att0Array = new GLfloat[4*count];
-        m_att0ArrayLength = count;
-    }
-
-    for(unsigned int i=0; i<count; i++)
-        memcpy(m_att0Array+i*4, m_attribute0value, 4*sizeof(GLfloat));
-
-    s_glDispatch.glVertexAttribPointer(0, 4, GL_FLOAT, GL_FALSE, 0, m_att0Array);
-    s_glDispatch.glEnableVertexAttribArray(0);
-
-    m_att0NeedsDisable = true;
-}
-
-void GLESv2Context::validateAtt0PostDraw(void)
-{
-    if(m_att0NeedsDisable)
-        s_glDispatch.glDisableVertexAttribArray(0);
-
-    m_att0NeedsDisable = false;
-}
-
-void GLESv2Context::setupArraysPointers(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct) {
-    ArraysMap::iterator it;
-
-    //going over all clients arrays Pointers
-    for ( it=m_map.begin() ; it != m_map.end(); it++ ) {
-        GLenum array_id   = (*it).first;
-        GLESpointer* p = (*it).second;
-        if(!isArrEnabled(array_id)) continue;
-
-        unsigned int size = p->getSize();
-
-        if(needConvert(cArrs,first,count,type,indices,direct,p,array_id)){
-            //conversion has occured
-            ArrayData currentArr = cArrs.getCurrentArray();
-            setupArr(currentArr.data,array_id,currentArr.type,size,currentArr.stride, p->getNormalized());
-            ++cArrs;
-        } else {
-            setupArr(p->getData(),array_id,p->getType(),
-                     size,p->getStride(), p->getNormalized());
-        }
-    }
-}
-
-//setting client side arr
-void GLESv2Context::setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int index){
-     if(arr == NULL) return;
-     s_glDispatch.glVertexAttribPointer(arrayType,size,dataType,normalized,stride,arr);
-}
-
-bool GLESv2Context::needConvert(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id) {
-
-    bool usingVBO = p->isVBO();
-    GLenum arrType = p->getType();
-    /*
-     conversion is not necessary in the following cases:
-      (*) array type is not fixed
-    */
-    if(arrType != GL_FIXED) return false;
-
-    if(!usingVBO) {
-        if (direct) {
-            convertDirect(cArrs,first,count,array_id,p);
-        } else {
-            convertIndirect(cArrs,count,type,indices,array_id,p);
-        }
-    } else {
-        if (direct) {
-            convertDirectVBO(cArrs,first,count,array_id,p) ;
-        } else {
-            convertIndirectVBO(cArrs,count,type,indices,array_id,p);
-        }
-    }
-    return true;
-}
-
-void GLESv2Context::initExtensionString() {
-    *s_glExtensions = "GL_OES_EGL_image GL_OES_depth24 GL_OES_depth32 GL_OES_element_index_uint "
-                      "GL_OES_texture_float GL_OES_texture_float_linear "
-                      "GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth_texture ";
-    if (s_glSupport.GL_ARB_HALF_FLOAT_PIXEL || s_glSupport.GL_NV_HALF_FLOAT)
-        *s_glExtensions+="GL_OES_texture_half_float GL_OES_texture_half_float_linear ";
-    if (s_glSupport.GL_EXT_PACKED_DEPTH_STENCIL)
-        *s_glExtensions+="GL_OES_packed_depth_stencil ";
-    if (s_glSupport.GL_ARB_HALF_FLOAT_VERTEX)
-        *s_glExtensions+="GL_OES_vertex_half_float ";
-    if (s_glSupport.GL_OES_STANDARD_DERIVATIVES)
-        *s_glExtensions+="GL_OES_standard_derivatives ";
-}
-
-int GLESv2Context::getMaxTexUnits() {
-    return getCaps()->maxTexImageUnits;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Context.h b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Context.h
deleted file mode 100644
index 9cfc067..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Context.h
+++ /dev/null
@@ -1,56 +0,0 @@
-#ifndef GLES_V2_CONTEXT_H
-#define GLES_V2_CONTEXT_H
-
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <GLcommon/GLDispatch.h>
-#include <GLcommon/GLEScontext.h>
-#include <GLcommon/objectNameManager.h>
-#include <utils/threads.h>
-
-
-
-class GLESv2Context : public GLEScontext{
-public:
-    void init();
-    GLESv2Context();
-    virtual ~GLESv2Context();
-    void setupArraysPointers(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct);
-    int  getMaxTexUnits();
-
-    // This whole att0 thing is about a incompatibility between GLES and OpenGL.
-    // GLES allows a vertex shader attribute to be in location 0 and have a
-    // current value, while OpenGL is not very clear about this, which results
-    // in each implementation doing something different.
-    void setAttribute0value(float x, float y, float z, float w);
-    void validateAtt0PreDraw(unsigned int count);
-    void validateAtt0PostDraw(void);
-    const float* getAtt0(void) {return m_attribute0value;}
-
-protected:
-    bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id);
-private:
-    void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride,GLboolean normalized, int pointsIndex = -1);
-    void initExtensionString();
-
-    float m_attribute0value[4];
-    GLfloat* m_att0Array;
-    unsigned int m_att0ArrayLength;
-    bool m_att0NeedsDisable;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
deleted file mode 100644
index 3c48a43..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Imp.cpp
+++ /dev/null
@@ -1,2081 +0,0 @@
-/*
-* Copyright(C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0(the "License"){    GET_CTX();}
-* 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.
-*/
-
-#ifdef _WIN32
-#undef  GL_APICALL
-#define GL_API __declspec(dllexport)
-#define GL_APICALL __declspec(dllexport)
-#endif
-
-#define GL_GLEXT_PROTOTYPES
-#include <stdio.h>
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-#include <GLcommon/TranslatorIfaces.h>
-#include <GLcommon/gldefs.h>
-#include "GLESv2Context.h"
-#include "GLESv2Validate.h"
-#include "ShaderParser.h"
-#include "ProgramData.h"
-#include <GLcommon/TextureUtils.h>
-#include <GLcommon/FramebufferData.h>
-
-extern "C" {
-
-//decleration
-static void initContext(GLEScontext* ctx,ShareGroupPtr grp);
-static void deleteGLESContext(GLEScontext* ctx);
-static void setShareGroup(GLEScontext* ctx,ShareGroupPtr grp);
-static GLEScontext* createGLESContext();
-static __translatorMustCastToProperFunctionPointerType getProcAddress(const char* procName);
-
-}
-
-/************************************** GLES EXTENSIONS *********************************************************/
-//extentions descriptor
-typedef std::map<std::string, __translatorMustCastToProperFunctionPointerType> ProcTableMap;
-ProcTableMap *s_glesExtensions = NULL;
-/****************************************************************************************************************/
-
-static EGLiface*  s_eglIface = NULL;
-static GLESiface  s_glesIface = {
-    createGLESContext:createGLESContext,
-    initContext      :initContext,
-    deleteGLESContext:deleteGLESContext,
-    flush            :(FUNCPTR)glFlush,
-    finish           :(FUNCPTR)glFinish,
-    setShareGroup    :setShareGroup,
-    getProcAddress   :getProcAddress
-};
-
-#include <GLcommon/GLESmacros.h>
-
-extern "C" {
-
-static void initContext(GLEScontext* ctx,ShareGroupPtr grp) {
-    if (!ctx->isInitialized()) {
-        ctx->setShareGroup(grp);
-        ctx->init();
-        glBindTexture(GL_TEXTURE_2D,0);
-        glBindTexture(GL_TEXTURE_CUBE_MAP,0);
-    }
-}
-static GLEScontext* createGLESContext() {
-    return new GLESv2Context();
-}
-
-static void deleteGLESContext(GLEScontext* ctx) {
-    delete ctx;
-}
-
-static void setShareGroup(GLEScontext* ctx,ShareGroupPtr grp) {
-    if(ctx) {
-        ctx->setShareGroup(grp);
-    }
-}
-
-static __translatorMustCastToProperFunctionPointerType getProcAddress(const char* procName) {
-    GET_CTX_RET(NULL)
-    ctx->getGlobalLock();
-    static bool proc_table_initialized = false;
-    if (!proc_table_initialized) {
-        proc_table_initialized = true;
-        if (!s_glesExtensions)
-            s_glesExtensions = new ProcTableMap();
-        else
-            s_glesExtensions->clear();
-        (*s_glesExtensions)["glEGLImageTargetTexture2DOES"] = (__translatorMustCastToProperFunctionPointerType)glEGLImageTargetTexture2DOES;
-        (*s_glesExtensions)["glEGLImageTargetRenderbufferStorageOES"]=(__translatorMustCastToProperFunctionPointerType)glEGLImageTargetRenderbufferStorageOES;
-    }
-    __translatorMustCastToProperFunctionPointerType ret=NULL;
-    ProcTableMap::iterator val = s_glesExtensions->find(procName);
-    if (val!=s_glesExtensions->end())
-        ret = val->second;
-    ctx->releaseGlobalLock();
-
-    return ret;
-}
-
-GL_APICALL GLESiface* __translator_getIfaces(EGLiface* eglIface){
-    s_eglIface = eglIface;
-    return & s_glesIface;
-}
-
-}
-
-static ObjectLocalName TextureLocalName(GLenum target,unsigned int tex) {
-    GET_CTX_RET(0);
-    return (tex!=0? tex : ctx->getDefaultTextureName(target));
-}
-
-static TextureData* getTextureData(ObjectLocalName tex) {
-    GET_CTX_RET(NULL);
-    TextureData *texData = NULL;
-    ObjectDataPtr objData = ctx->shareGroup()->getObjectData(TEXTURE,tex);
-    if(!objData.Ptr()){
-        texData = new TextureData();
-        ctx->shareGroup()->setObjectData(TEXTURE, tex, ObjectDataPtr(texData));
-    } else {
-        texData = (TextureData*)objData.Ptr();
-    }
-    return texData;
-}
-
-static TextureData* getTextureTargetData(GLenum target){
-    GET_CTX_RET(NULL);
-    unsigned int tex = ctx->getBindedTexture(target);
-    return getTextureData(TextureLocalName(target,tex));
-}
-
-GL_APICALL void  GL_APIENTRY glActiveTexture(GLenum texture){
-    GET_CTX_V2();
-    SET_ERROR_IF (!GLESv2Validate::textureEnum(texture,ctx->getMaxTexUnits()),GL_INVALID_ENUM);
-    ctx->setActiveTexture(texture);
-    ctx->dispatcher().glActiveTexture(texture);
-}
-
-GL_APICALL void  GL_APIENTRY glAttachShader(GLuint program, GLuint shader){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        const GLuint globalShaderName  = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        SET_ERROR_IF(globalShaderName==0, GL_INVALID_VALUE);
-
-        ObjectDataPtr programData = ctx->shareGroup()->getObjectData(SHADER,program);
-        ObjectDataPtr shaderData = ctx->shareGroup()->getObjectData(SHADER,shader);
-        SET_ERROR_IF(!shaderData.Ptr() || !programData.Ptr() ,GL_INVALID_OPERATION);
-        SET_ERROR_IF(!(shaderData.Ptr()->getDataType() ==SHADER_DATA) || 
-                     !(programData.Ptr()->getDataType()==PROGRAM_DATA) ,GL_INVALID_OPERATION);
-
-        GLenum shaderType = ((ShaderParser*)shaderData.Ptr())->getType();
-        ProgramData* pData = (ProgramData*)programData.Ptr();
-        SET_ERROR_IF((pData->getAttachedShader(shaderType)!=0), GL_INVALID_OPERATION);
-        pData->attachShader(shader,shaderType);
-        ctx->dispatcher().glAttachShader(globalProgramName,globalShaderName);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glBindAttribLocation(GLuint program, GLuint index, const GLchar* name){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::attribName(name),GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLESv2Validate::attribIndex(index),GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-
-        ctx->dispatcher().glBindAttribLocation(globalProgramName,index,name);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glBindBuffer(GLenum target, GLuint buffer){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::bufferTarget(target),GL_INVALID_ENUM);
-    //if buffer wasn't generated before,generate one
-    if(buffer && ctx->shareGroup().Ptr() && !ctx->shareGroup()->isObject(VERTEXBUFFER,buffer)){
-        ctx->shareGroup()->genName(VERTEXBUFFER,buffer);
-        ctx->shareGroup()->setObjectData(VERTEXBUFFER,buffer,ObjectDataPtr(new GLESbuffer()));
-    }
-    ctx->bindBuffer(target,buffer);
-    if (buffer) {
-        GLESbuffer* vbo = (GLESbuffer*)ctx->shareGroup()->getObjectData(VERTEXBUFFER,buffer).Ptr();
-        vbo->setBinded();
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::framebufferTarget(target),GL_INVALID_ENUM);
-
-    GLuint globalFrameBufferName = framebuffer;
-    if(framebuffer && ctx->shareGroup().Ptr()){
-        globalFrameBufferName = ctx->shareGroup()->getGlobalName(FRAMEBUFFER,framebuffer);
-        //if framebuffer wasn't generated before,generate one
-        if(!globalFrameBufferName){
-            ctx->shareGroup()->genName(FRAMEBUFFER,framebuffer);
-            ctx->shareGroup()->setObjectData(FRAMEBUFFER, framebuffer,
-                                             ObjectDataPtr(new FramebufferData(framebuffer)));
-            globalFrameBufferName = ctx->shareGroup()->getGlobalName(FRAMEBUFFER,framebuffer);
-        }
-    }
-    ctx->dispatcher().glBindFramebufferEXT(target,globalFrameBufferName);
-
-    // update framebuffer binding state
-    ctx->setFramebufferBinding(framebuffer);
-}
-
-GL_APICALL void  GL_APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::renderbufferTarget(target),GL_INVALID_ENUM);
-
-    GLuint globalRenderBufferName = renderbuffer;
-    if(renderbuffer && ctx->shareGroup().Ptr()){
-        globalRenderBufferName = ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffer);
-        //if renderbuffer wasn't generated before,generate one
-        if(!globalRenderBufferName){
-            ctx->shareGroup()->genName(RENDERBUFFER,renderbuffer);
-            ctx->shareGroup()->setObjectData(RENDERBUFFER,
-                                         renderbuffer,
-                                         ObjectDataPtr(new RenderbufferData()));
-            globalRenderBufferName = ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffer);
-        }
-    }
-    ctx->dispatcher().glBindRenderbufferEXT(target,globalRenderBufferName);
-
-    // update renderbuffer binding state
-    ctx->setRenderbufferBinding(renderbuffer);
-}
-
-GL_APICALL void  GL_APIENTRY glBindTexture(GLenum target, GLuint texture){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::textureTarget(target),GL_INVALID_ENUM)
-
-    //for handling default texture (0)
-    ObjectLocalName localTexName = TextureLocalName(target,texture);
-    
-    GLuint globalTextureName = localTexName;
-    if(ctx->shareGroup().Ptr()){
-        globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,localTexName);
-        //if texture wasn't generated before,generate one
-        if(!globalTextureName){
-            ctx->shareGroup()->genName(TEXTURE,localTexName);
-            globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,localTexName);
-        }
-
-        TextureData* texData = getTextureData(localTexName);
-        if (texData->target==0)
-            texData->target = target;
-        //if texture was already bound to another target
-        SET_ERROR_IF(ctx->GLTextureTargetToLocal(texData->target) != ctx->GLTextureTargetToLocal(target), GL_INVALID_OPERATION);
-        texData->wasBound = true;
-    }
-
-    ctx->setBindedTexture(target,texture);
-    ctx->dispatcher().glBindTexture(target,globalTextureName);
-}
-
-GL_APICALL void  GL_APIENTRY glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha){
-    GET_CTX();
-    ctx->dispatcher().glBlendColor(red,green,blue,alpha);
-}
-
-GL_APICALL void  GL_APIENTRY glBlendEquation( GLenum mode ){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::blendEquationMode(mode),GL_INVALID_ENUM)
-    ctx->dispatcher().glBlendEquation(mode);
-}
-
-GL_APICALL void  GL_APIENTRY glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::blendEquationMode(modeRGB) && GLESv2Validate::blendEquationMode(modeAlpha)),GL_INVALID_ENUM);
-    ctx->dispatcher().glBlendEquationSeparate(modeRGB,modeAlpha);
-}
-
-GL_APICALL void  GL_APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::blendSrc(sfactor) || !GLESv2Validate::blendDst(dfactor),GL_INVALID_ENUM)
-    ctx->dispatcher().glBlendFunc(sfactor,dfactor);
-}
-
-GL_APICALL void  GL_APIENTRY glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha){
-    GET_CTX();
-    SET_ERROR_IF(
-!(GLESv2Validate::blendSrc(srcRGB) && GLESv2Validate::blendDst(dstRGB) && GLESv2Validate::blendSrc(srcAlpha) && GLESv2Validate::blendDst(dstAlpha)),GL_INVALID_ENUM);
-    ctx->dispatcher().glBlendFuncSeparate(srcRGB,dstRGB,srcAlpha,dstAlpha);
-}
-
-GL_APICALL void  GL_APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::bufferTarget(target),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->isBindedBuffer(target),GL_INVALID_OPERATION);
-    ctx->setBufferData(target,size,data,usage);
-}
-
-GL_APICALL void  GL_APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data){
-    GET_CTX();
-    SET_ERROR_IF(!ctx->isBindedBuffer(target),GL_INVALID_OPERATION);
-    SET_ERROR_IF(!GLESv2Validate::bufferTarget(target),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->setBufferSubData(target,offset,size,data),GL_INVALID_VALUE);
-}
-
-
-GL_APICALL GLenum GL_APIENTRY glCheckFramebufferStatus(GLenum target){
-    GET_CTX_RET(GL_FRAMEBUFFER_COMPLETE);
-    RET_AND_SET_ERROR_IF(!GLESv2Validate::framebufferTarget(target),GL_INVALID_ENUM,GL_FRAMEBUFFER_COMPLETE);
-    ctx->drawValidate();
-    return ctx->dispatcher().glCheckFramebufferStatusEXT(target);
-}
-
-GL_APICALL void  GL_APIENTRY glClear(GLbitfield mask){
-    GET_CTX();
-    ctx->drawValidate();
-
-    ctx->dispatcher().glClear(mask);
-}
-GL_APICALL void  GL_APIENTRY glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha){
-    GET_CTX();
-    ctx->dispatcher().glClearColor(red,green,blue,alpha);
-}
-GL_APICALL void  GL_APIENTRY glClearDepthf(GLclampf depth){
-    GET_CTX();
-    ctx->dispatcher().glClearDepth(depth);
-}
-GL_APICALL void  GL_APIENTRY glClearStencil(GLint s){
-    GET_CTX();
-    ctx->dispatcher().glClearStencil(s);
-}
-GL_APICALL void  GL_APIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha){
-    GET_CTX();
-    ctx->dispatcher().glColorMask(red,green,blue,alpha);
-}
-
-GL_APICALL void  GL_APIENTRY glCompileShader(GLuint shader){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        SET_ERROR_IF(globalShaderName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,shader);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!= SHADER_DATA,GL_INVALID_OPERATION);
-        ShaderParser* sp = (ShaderParser*)objData.Ptr();
-        ctx->dispatcher().glCompileShader(globalShaderName);
-
-        GLsizei infoLogLength=0;
-        GLchar* infoLog;
-        ctx->dispatcher().glGetShaderiv(globalShaderName,GL_INFO_LOG_LENGTH,&infoLogLength);
-        infoLog = new GLchar[infoLogLength+1];
-        ctx->dispatcher().glGetShaderInfoLog(globalShaderName,infoLogLength,NULL,infoLog);
-        sp->setInfoLog(infoLog);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
-{
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::textureTargetEx(target),GL_INVALID_ENUM);
-
-    doCompressedTexImage2D(ctx, target, level, internalformat,
-                                width, height, border,
-                                imageSize, data, (void*)glTexImage2D);
-}
-
-GL_APICALL void  GL_APIENTRY glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::textureTargetEx(target),GL_INVALID_ENUM);
-    ctx->dispatcher().glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data);
-}
-
-GL_APICALL void  GL_APIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::pixelFrmt(ctx,internalformat) && GLESv2Validate::textureTargetEx(target)),GL_INVALID_ENUM);
-    SET_ERROR_IF(border != 0,GL_INVALID_VALUE);
-    ctx->dispatcher().glCopyTexImage2D(target,level,internalformat,x,y,width,height,border);
-}
-
-GL_APICALL void  GL_APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::textureTargetEx(target),GL_INVALID_ENUM);
-    ctx->dispatcher().glCopyTexSubImage2D(target,level,xoffset,yoffset,x,y,width,height);
-}
-
-GL_APICALL GLuint GL_APIENTRY glCreateProgram(void){
-    GET_CTX_RET(0);
-    const GLuint globalProgramName = ctx->dispatcher().glCreateProgram();
-    if(ctx->shareGroup().Ptr() && globalProgramName) {
-            ProgramData* programInfo = new ProgramData();
-            const GLuint localProgramName = ctx->shareGroup()->genName(SHADER, 0, true);
-            ctx->shareGroup()->replaceGlobalName(SHADER,localProgramName,globalProgramName);
-            ctx->shareGroup()->setObjectData(SHADER,localProgramName,ObjectDataPtr(programInfo));
-            return localProgramName;
-    }
-    if(globalProgramName){
-        ctx->dispatcher().glDeleteProgram(globalProgramName);
-    }
-    return 0;
-}
-
-GL_APICALL GLuint GL_APIENTRY glCreateShader(GLenum type){
-    GET_CTX_V2_RET(0);
-    RET_AND_SET_ERROR_IF(!GLESv2Validate::shaderType(type),GL_INVALID_ENUM,0);
-    const GLuint globalShaderName = ctx->dispatcher().glCreateShader(type);
-    if(ctx->shareGroup().Ptr() && globalShaderName) {
-            const GLuint localShaderName = ctx->shareGroup()->genName(SHADER, 0, true);
-            ShaderParser* sp = new ShaderParser(type);
-            ctx->shareGroup()->replaceGlobalName(SHADER,localShaderName,globalShaderName);
-            ctx->shareGroup()->setObjectData(SHADER,localShaderName,ObjectDataPtr(sp));
-            return localShaderName;
-    }
-    if(globalShaderName){
-        ctx->dispatcher().glDeleteShader(globalShaderName);
-    }
-    return 0;
-}
-
-GL_APICALL void  GL_APIENTRY glCullFace(GLenum mode){
-    GET_CTX();
-    ctx->dispatcher().glCullFace(mode);
-}
-
-GL_APICALL void  GL_APIENTRY glDeleteBuffers(GLsizei n, const GLuint* buffers){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i < n; i++){
-           ctx->shareGroup()->deleteName(VERTEXBUFFER,buffers[i]);
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i < n; i++){
-           const GLuint globalFrameBufferName = ctx->shareGroup()->getGlobalName(FRAMEBUFFER,framebuffers[i]);
-           ctx->shareGroup()->deleteName(FRAMEBUFFER,framebuffers[i]);
-           ctx->dispatcher().glDeleteFramebuffersEXT(1,&globalFrameBufferName);
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i < n; i++){
-           const GLuint globalRenderBufferName = ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffers[i]);
-           ctx->shareGroup()->deleteName(RENDERBUFFER,renderbuffers[i]);
-           ctx->dispatcher().glDeleteRenderbuffersEXT(1,&globalRenderBufferName);
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glDeleteTextures(GLsizei n, const GLuint* textures){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i < n; i++){
-            if (textures[i]!=0) {
-                TextureData* tData = getTextureData(textures[i]);
-                // delete the underlying OpenGL texture but only if this
-                // texture is not a target of EGLImage.
-                if (!tData || tData->sourceEGLImage == 0) {
-                    const GLuint globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,textures[i]);
-                    ctx->dispatcher().glDeleteTextures(1,&globalTextureName);
-                }
-                ctx->shareGroup()->deleteName(TEXTURE,textures[i]);
-
-                if (ctx->getBindedTexture(GL_TEXTURE_2D) == textures[i])
-                    ctx->setBindedTexture(GL_TEXTURE_2D,0);
-                if (ctx->getBindedTexture(GL_TEXTURE_CUBE_MAP) == textures[i])
-                    ctx->setBindedTexture(GL_TEXTURE_CUBE_MAP,0);
-            }
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glDeleteProgram(GLuint program){
-    GET_CTX();
-    if(program && ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(!globalProgramName, GL_INVALID_VALUE);
-        ctx->shareGroup()->deleteName(SHADER,program);
-        ctx->dispatcher().glDeleteProgram(globalProgramName);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glDeleteShader(GLuint shader){
-    GET_CTX();
-    if(shader && ctx->shareGroup().Ptr()) {
-        const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        SET_ERROR_IF(!globalShaderName, GL_INVALID_VALUE);
-        ctx->shareGroup()->deleteName(SHADER,shader);
-        ctx->dispatcher().glDeleteShader(globalShaderName);
-    }
-        
-}
-
-GL_APICALL void  GL_APIENTRY glDepthFunc(GLenum func){
-    GET_CTX();
-    ctx->dispatcher().glDepthFunc(func);
-}
-GL_APICALL void  GL_APIENTRY glDepthMask(GLboolean flag){
-    GET_CTX();
-    ctx->dispatcher().glDepthMask(flag);
-}
-GL_APICALL void  GL_APIENTRY glDepthRangef(GLclampf zNear, GLclampf zFar){
-    GET_CTX();
-    ctx->dispatcher().glDepthRange(zNear,zFar);
-}
-
-GL_APICALL void  GL_APIENTRY glDetachShader(GLuint program, GLuint shader){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        const GLuint globalShaderName  = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        SET_ERROR_IF(globalShaderName==0, GL_INVALID_VALUE);
-
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(!objData.Ptr(),GL_INVALID_OPERATION);
-        SET_ERROR_IF(!(objData.Ptr()->getDataType()==PROGRAM_DATA) ,GL_INVALID_OPERATION);
-
-        ProgramData* programData = (ProgramData*)objData.Ptr();
-        SET_ERROR_IF(!programData->isAttached(shader),GL_INVALID_OPERATION);
-        programData->detachShader(shader);
-
-        ctx->dispatcher().glDetachShader(globalProgramName,globalShaderName);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glDisable(GLenum cap){
-    GET_CTX();
-    ctx->dispatcher().glDisable(cap);
-}
-
-GL_APICALL void  GL_APIENTRY glDisableVertexAttribArray(GLuint index){
-    GET_CTX();
-    SET_ERROR_IF((!GLESv2Validate::arrayIndex(ctx,index)),GL_INVALID_VALUE);
-    ctx->enableArr(index,false);
-    ctx->dispatcher().glDisableVertexAttribArray(index);
-}
-
-GL_APICALL void  GL_APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count){
-    GET_CTX_V2();
-    SET_ERROR_IF(count < 0,GL_INVALID_VALUE)
-    SET_ERROR_IF(!GLESv2Validate::drawMode(mode),GL_INVALID_ENUM);
-
-    ctx->drawValidate();
-
-    GLESConversionArrays tmpArrs;
-    ctx->setupArraysPointers(tmpArrs,first,count,0,NULL,true);
-
-    ctx->validateAtt0PreDraw(count);
-
-    //Enable texture generation for GL_POINTS and gl_PointSize shader variable
-    //GLES2 assumes this is enabled by default, we need to set this state for GL
-    if (mode==GL_POINTS) {
-        ctx->dispatcher().glEnable(GL_POINT_SPRITE);
-        ctx->dispatcher().glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
-    }
-
-    ctx->dispatcher().glDrawArrays(mode,first,count);
-
-    if (mode==GL_POINTS) {
-        ctx->dispatcher().glDisable(GL_VERTEX_PROGRAM_POINT_SIZE);
-        ctx->dispatcher().glDisable(GL_POINT_SPRITE);
-    }
-
-    ctx->validateAtt0PostDraw();
-}
-
-GL_APICALL void  GL_APIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* elementsIndices){
-    GET_CTX_V2();
-    SET_ERROR_IF(count < 0,GL_INVALID_VALUE)
-    SET_ERROR_IF(!(GLESv2Validate::drawMode(mode) && GLESv2Validate::drawType(type)),GL_INVALID_ENUM);
-
-    ctx->drawValidate();
-
-    const GLvoid* indices = elementsIndices;
-    if(ctx->isBindedBuffer(GL_ELEMENT_ARRAY_BUFFER)) { // if vbo is binded take the indices from the vbo
-        const unsigned char* buf = static_cast<unsigned char *>(ctx->getBindedBuffer(GL_ELEMENT_ARRAY_BUFFER));
-        indices = buf+reinterpret_cast<unsigned int>(elementsIndices);
-    }
-
-    GLESConversionArrays tmpArrs;
-    ctx->setupArraysPointers(tmpArrs,0,count,type,indices,false);
-
-    int maxIndex = ctx->findMaxIndex(count, type, indices);
-    ctx->validateAtt0PreDraw(maxIndex);
-    
-    //See glDrawArrays
-    if (mode==GL_POINTS) {
-        ctx->dispatcher().glEnable(GL_POINT_SPRITE);
-        ctx->dispatcher().glEnable(GL_VERTEX_PROGRAM_POINT_SIZE);
-    }
-
-    ctx->dispatcher().glDrawElements(mode,count,type,indices);
-
-    if (mode==GL_POINTS) {
-        ctx->dispatcher().glDisable(GL_VERTEX_PROGRAM_POINT_SIZE);
-        ctx->dispatcher().glDisable(GL_POINT_SPRITE);
-    }
-
-    ctx->validateAtt0PostDraw();
-}
-
-GL_APICALL void  GL_APIENTRY glEnable(GLenum cap){
-    GET_CTX();
-    ctx->dispatcher().glEnable(cap);
-}
-
-GL_APICALL void  GL_APIENTRY glEnableVertexAttribArray(GLuint index){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::arrayIndex(ctx,index)),GL_INVALID_VALUE);
-    ctx->enableArr(index,true);
-    ctx->dispatcher().glEnableVertexAttribArray(index);
-}
-
-GL_APICALL void  GL_APIENTRY glFinish(void){
-    GET_CTX();
-    ctx->dispatcher().glFinish();
-}
-GL_APICALL void  GL_APIENTRY glFlush(void){
-    GET_CTX();
-    ctx->dispatcher().glFlush();
-}
-
-
-GL_APICALL void  GL_APIENTRY glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::framebufferTarget(target)              &&
-                   GLESv2Validate::renderbufferTarget(renderbuffertarget) &&
-                   GLESv2Validate::framebufferAttachment(attachment)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->shareGroup().Ptr(), GL_INVALID_OPERATION);
-
-    GLuint globalRenderbufferName = 0;
-    ObjectDataPtr obj;
-
-    // generate the renderbuffer object if not yet exist
-    if(renderbuffer) {
-        if (!ctx->shareGroup()->isObject(RENDERBUFFER,renderbuffer)) {
-            ctx->shareGroup()->genName(RENDERBUFFER,renderbuffer);
-            obj = ObjectDataPtr(new RenderbufferData());
-            ctx->shareGroup()->setObjectData(RENDERBUFFER,
-                                         renderbuffer, obj);
-        }
-        else {
-            obj = ctx->shareGroup()->getObjectData(RENDERBUFFER, renderbuffer);
-        }
-
-        globalRenderbufferName = ctx->shareGroup()->getGlobalName(RENDERBUFFER,renderbuffer);
-    }
-
-    // Update the the current framebuffer object attachment state
-    GLuint fbName = ctx->getFramebufferBinding();
-    ObjectDataPtr fbObj = ctx->shareGroup()->getObjectData(FRAMEBUFFER,fbName);
-    if (fbObj.Ptr() != NULL) {
-        FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-        fbData->setAttachment(attachment, renderbuffertarget, renderbuffer, obj);
-    }
-
-    if (renderbuffer && obj.Ptr() != NULL) {
-        RenderbufferData *rbData = (RenderbufferData *)obj.Ptr();
-        if (rbData->sourceEGLImage != 0) {
-            //
-            // This renderbuffer object is an eglImage target
-            // attach the eglimage's texture instead the renderbuffer.
-            //
-            ctx->dispatcher().glFramebufferTexture2DEXT(target,
-                                                    attachment,
-                                                    GL_TEXTURE_2D,
-                                                    rbData->eglImageGlobalTexName,0);
-            return;
-        }
-    }
-
-    ctx->dispatcher().glFramebufferRenderbufferEXT(target,attachment,renderbuffertarget,globalRenderbufferName);
-}
-
-GL_APICALL void  GL_APIENTRY glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::framebufferTarget(target) &&
-                   GLESv2Validate::textureTargetEx(textarget)  &&
-                   GLESv2Validate::framebufferAttachment(attachment)),GL_INVALID_ENUM);
-    SET_ERROR_IF(level != 0, GL_INVALID_VALUE);
-    SET_ERROR_IF(!ctx->shareGroup().Ptr(), GL_INVALID_OPERATION);
-
-    GLuint globalTextureName = 0;
-
-    if(texture) {
-        if (!ctx->shareGroup()->isObject(TEXTURE,texture)) {
-            ctx->shareGroup()->genName(TEXTURE,texture);
-        }
-        ObjectLocalName texname = TextureLocalName(textarget,texture);
-        globalTextureName = ctx->shareGroup()->getGlobalName(TEXTURE,texname);
-    }
-
-    ctx->dispatcher().glFramebufferTexture2DEXT(target,attachment,textarget,globalTextureName,level);
-
-    // Update the the current framebuffer object attachment state
-    GLuint fbName = ctx->getFramebufferBinding();
-    ObjectDataPtr fbObj = ctx->shareGroup()->getObjectData(FRAMEBUFFER,fbName);
-    if (fbObj.Ptr() != NULL) {
-        FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-        fbData->setAttachment(attachment, textarget, 
-                              texture, ObjectDataPtr(NULL));
-    }
-}
-
-
-GL_APICALL void  GL_APIENTRY glFrontFace(GLenum mode){
-    GET_CTX();
-    ctx->dispatcher().glFrontFace(mode);
-}
-
-GL_APICALL void  GL_APIENTRY glGenBuffers(GLsizei n, GLuint* buffers){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            buffers[i] = ctx->shareGroup()->genName(VERTEXBUFFER, 0, true);
-            //generating vbo object related to this buffer name
-            ctx->shareGroup()->setObjectData(VERTEXBUFFER,buffers[i],ObjectDataPtr(new GLESbuffer()));
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGenerateMipmap(GLenum target){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::textureTargetEx(target),GL_INVALID_ENUM);
-    ctx->dispatcher().glGenerateMipmapEXT(target);
-}
-
-GL_APICALL void  GL_APIENTRY glGenFramebuffers(GLsizei n, GLuint* framebuffers){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            framebuffers[i] = ctx->shareGroup()->genName(FRAMEBUFFER, 0 ,true);
-            ctx->shareGroup()->setObjectData(FRAMEBUFFER, framebuffers[i],
-                                             ObjectDataPtr(new FramebufferData(framebuffers[i])));
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGenRenderbuffers(GLsizei n, GLuint* renderbuffers){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            renderbuffers[i] = ctx->shareGroup()->genName(RENDERBUFFER, 0, true);
-            ctx->shareGroup()->setObjectData(RENDERBUFFER,
-                                         renderbuffers[i],
-                                         ObjectDataPtr(new RenderbufferData()));
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGenTextures(GLsizei n, GLuint* textures){
-    GET_CTX();
-    SET_ERROR_IF(n<0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()) {
-        for(int i=0; i<n ;i++) {
-            textures[i] = ctx->shareGroup()->genName(TEXTURE, 0, true);
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        ctx->dispatcher().glGetActiveAttrib(globalProgramName,index,bufsize,length,size,type,name);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        ctx->dispatcher().glGetActiveUniform(globalProgramName,index,bufsize,length,size,type,name);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ctx->dispatcher().glGetAttachedShaders(globalProgramName,maxcount,count,shaders);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        GLint numShaders=0;
-        ctx->dispatcher().glGetProgramiv(globalProgramName,GL_ATTACHED_SHADERS,&numShaders);
-        for(int i=0 ; i < maxcount && i<numShaders ;i++){
-           shaders[i] = ctx->shareGroup()->getLocalName(SHADER,shaders[i]);
-        }
-    }
-}
-
-GL_APICALL int GL_APIENTRY glGetAttribLocation(GLuint program, const GLchar* name){
-     GET_CTX_RET(-1);
-     if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        RET_AND_SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE,-1);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        RET_AND_SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION,-1);
-        ProgramData* pData = (ProgramData *)objData.Ptr();
-        RET_AND_SET_ERROR_IF(pData->getLinkStatus() != GL_TRUE,GL_INVALID_OPERATION,-1);
-        return ctx->dispatcher().glGetAttribLocation(globalProgramName,name);
-     }
-     return -1;
-}
-
-GL_APICALL void  GL_APIENTRY glGetBooleanv(GLenum pname, GLboolean* params){
-    GET_CTX();
-
-    if (ctx->glGetBooleanv(pname,params))
-    {
-        return;
-    }
-
-    switch(pname)
-    {
-        case GL_SHADER_COMPILER:
-        case GL_SHADER_BINARY_FORMATS:
-        case GL_NUM_SHADER_BINARY_FORMATS:
-        case GL_MAX_VERTEX_UNIFORM_VECTORS:
-        case GL_MAX_VARYING_VECTORS:
-        case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
-            if(ctx->getCaps()->GL_ARB_ES2_COMPATIBILITY)
-                ctx->dispatcher().glGetBooleanv(pname,params);
-            else
-            {
-                GLint iparam;
-                glGetIntegerv(pname,&iparam);
-                *params = (iparam != 0);
-            }
-            break;
-
-        default:
-            ctx->dispatcher().glGetBooleanv(pname,params);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::bufferTarget(target) && GLESv2Validate::bufferParam(pname)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!ctx->isBindedBuffer(target),GL_INVALID_OPERATION);
-    bool ret = true;
-    switch(pname) {
-    case GL_BUFFER_SIZE:
-        ctx->getBufferSize(target,params);
-        break;
-    case GL_BUFFER_USAGE:
-        ctx->getBufferUsage(target,params);
-        break;
-    }
-}
-
-
-GL_APICALL GLenum GL_APIENTRY glGetError(void){
-    GET_CTX_RET(GL_NO_ERROR)
-    GLenum err = ctx->getGLerror();
-    if(err != GL_NO_ERROR) {
-        ctx->setGLerror(GL_NO_ERROR);
-        return err;
-    }
-    return ctx->dispatcher().glGetError();
-}
-
-GL_APICALL void  GL_APIENTRY glGetFloatv(GLenum pname, GLfloat* params){
-    GET_CTX();
-
-    if (ctx->glGetFloatv(pname,params)) {
-        return;
-    }
-
-    GLint i;
-
-    switch (pname) {
-    case GL_CURRENT_PROGRAM:
-    case GL_FRAMEBUFFER_BINDING:
-    case GL_RENDERBUFFER_BINDING:
-        glGetIntegerv(pname,&i);
-        *params = (GLfloat)i;
-        break;
-    case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = (GLfloat)getCompressedFormats(NULL); 
-        break;    
-    case GL_COMPRESSED_TEXTURE_FORMATS:
-        {
-            int nparams = getCompressedFormats(NULL);
-            if (nparams>0) {
-                int * iparams = new int[nparams];
-                getCompressedFormats(iparams);
-                for (int i=0; i<nparams; i++) params[i] = (GLfloat)iparams[i];
-                delete [] iparams;
-            }
-        }
-        break;
-
-    case GL_SHADER_COMPILER:
-    case GL_SHADER_BINARY_FORMATS:
-    case GL_NUM_SHADER_BINARY_FORMATS:
-    case GL_MAX_VERTEX_UNIFORM_VECTORS:
-    case GL_MAX_VARYING_VECTORS:
-    case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
-        if(ctx->getCaps()->GL_ARB_ES2_COMPATIBILITY)
-            ctx->dispatcher().glGetFloatv(pname,params);
-        else
-        {
-            glGetIntegerv(pname,&i);
-            *params = (GLfloat)i;
-        }
-        break;
-
-    default:
-        ctx->dispatcher().glGetFloatv(pname,params);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetIntegerv(GLenum pname, GLint* params){
-    GET_CTX();
-
-    if (ctx->glGetIntegerv(pname,params))
-    {
-        return;
-    }
-  
-    bool es2 = ctx->getCaps()->GL_ARB_ES2_COMPATIBILITY;
-    GLint i;
-
-    switch (pname) {
-    case GL_CURRENT_PROGRAM:
-        if (ctx->shareGroup().Ptr()) {
-            ctx->dispatcher().glGetIntegerv(pname,&i);
-            *params = ctx->shareGroup()->getLocalName(SHADER,i);
-        }
-        break;
-    case GL_FRAMEBUFFER_BINDING:
-        if (ctx->shareGroup().Ptr()) {
-            ctx->dispatcher().glGetIntegerv(pname,&i);
-            *params = ctx->shareGroup()->getLocalName(FRAMEBUFFER,i);
-        }
-        break;
-    case GL_RENDERBUFFER_BINDING:
-        if (ctx->shareGroup().Ptr()) {
-            ctx->dispatcher().glGetIntegerv(pname,&i);
-            *params = ctx->shareGroup()->getLocalName(RENDERBUFFER,i);
-        }
-        break;
-
-    case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
-        *params = getCompressedFormats(NULL); 
-        break;    
-    case GL_COMPRESSED_TEXTURE_FORMATS:
-        getCompressedFormats(params);
-        break;
-
-    case GL_SHADER_COMPILER:
-        if(es2)
-            ctx->dispatcher().glGetIntegerv(pname,params);
-        else
-            *params = 1;
-        break;
-
-    case GL_SHADER_BINARY_FORMATS:
-        if(es2)
-            ctx->dispatcher().glGetIntegerv(pname,params);
-        break;
-
-    case GL_NUM_SHADER_BINARY_FORMATS:
-        if(es2)
-            ctx->dispatcher().glGetIntegerv(pname,params);
-        else
-            *params = 0;
-        break;
-
-    case GL_MAX_VERTEX_UNIFORM_VECTORS:
-        if(es2)
-            ctx->dispatcher().glGetIntegerv(pname,params);
-        else
-            *params = 128;
-        break;
-
-    case GL_MAX_VARYING_VECTORS:
-        if(es2)
-            ctx->dispatcher().glGetIntegerv(pname,params);
-        else
-            *params = 8;
-        break;
-
-    case GL_MAX_FRAGMENT_UNIFORM_VECTORS:
-        if(es2)
-            ctx->dispatcher().glGetIntegerv(pname,params);
-        else
-            *params = 16;
-        break;
-
-    case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
-        ctx->dispatcher().glGetIntegerv(pname,params);
-        if(*params > 16)
-        {
-            // GLES spec requires only 2, and the ATI driver erronously
-            // returns 32 (although it supports only 16). This WAR is simple,
-            // compliant and good enough for developers.
-            *params = 16;
-        }
-        break;
-    default:
-        ctx->dispatcher().glGetIntegerv(pname,params);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::framebufferTarget(target)         &&
-                   GLESv2Validate::framebufferAttachment(attachment) &&
-                   GLESv2Validate::framebufferAttachmentParams(pname)),GL_INVALID_ENUM);
-
-    //
-    // Take the attachment attribute from our state - if available
-    //
-    GLuint fbName = ctx->getFramebufferBinding();
-    if (fbName) {
-        ObjectDataPtr fbObj = ctx->shareGroup()->getObjectData(FRAMEBUFFER,fbName);
-        if (fbObj.Ptr() != NULL) {
-            FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-            GLenum target;
-            GLuint name = fbData->getAttachment(attachment, &target, NULL);
-            if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE) {
-                if (target == GL_TEXTURE_2D) {
-                    *params = GL_TEXTURE;
-                    return;
-                }
-                else if (target == GL_RENDERBUFFER) {
-                    *params = GL_RENDERBUFFER;
-                    return;
-                }
-            }
-            else if (pname == GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME) {
-                *params = name;
-                return;
-            }
-        }
-    }
-
-    ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(target,attachment,pname,params);
-}
-
-GL_APICALL void  GL_APIENTRY glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::renderbufferTarget(target) && GLESv2Validate::renderbufferParams(pname)),GL_INVALID_ENUM);
-
-    //
-    // If this is a renderbuffer which is eglimage's target, we
-    // should query the underlying eglimage's texture object instead.
-    //
-    GLuint rb = ctx->getRenderbufferBinding();
-    if (rb) {
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(RENDERBUFFER,rb);
-        RenderbufferData *rbData = (RenderbufferData *)objData.Ptr();
-        if (rbData && rbData->sourceEGLImage != 0) {
-            GLenum texPname;
-            switch(pname) {
-                case GL_RENDERBUFFER_WIDTH:
-                    texPname = GL_TEXTURE_WIDTH;
-                    break;
-                case GL_RENDERBUFFER_HEIGHT:
-                    texPname = GL_TEXTURE_HEIGHT;
-                    break;
-                case GL_RENDERBUFFER_INTERNAL_FORMAT:
-                    texPname = GL_TEXTURE_INTERNAL_FORMAT;
-                    break;
-                case GL_RENDERBUFFER_RED_SIZE:
-                    texPname = GL_TEXTURE_RED_SIZE;
-                    break;
-                case GL_RENDERBUFFER_GREEN_SIZE:
-                    texPname = GL_TEXTURE_GREEN_SIZE;
-                    break;
-                case GL_RENDERBUFFER_BLUE_SIZE:
-                    texPname = GL_TEXTURE_BLUE_SIZE;
-                    break;
-                case GL_RENDERBUFFER_ALPHA_SIZE:
-                    texPname = GL_TEXTURE_ALPHA_SIZE;
-                    break;
-                case GL_RENDERBUFFER_DEPTH_SIZE:
-                    texPname = GL_TEXTURE_DEPTH_SIZE;
-                    break;
-                case GL_RENDERBUFFER_STENCIL_SIZE:
-                default:
-                    *params = 0; //XXX
-                    return;
-                    break;
-            }
-
-            GLint prevTex;
-            ctx->dispatcher().glGetIntegerv(GL_TEXTURE_BINDING_2D, &prevTex);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D,
-                                            rbData->eglImageGlobalTexName);
-            ctx->dispatcher().glGetTexLevelParameteriv(GL_TEXTURE_2D, 0,
-                                                       texPname,
-                                                       params);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, prevTex);
-            return;
-        }
-    }
-
-    ctx->dispatcher().glGetRenderbufferParameterivEXT(target,pname,params);
-}
-
-
-GL_APICALL void  GL_APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::programParam(pname),GL_INVALID_ENUM);
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        switch(pname) {
-        case GL_LINK_STATUS:
-            {
-                ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-                SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
-                SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-                ProgramData* programData = (ProgramData*)objData.Ptr();
-                params[0] = programData->getLinkStatus();
-            }
-            break;
-        //validate status should not return GL_TRUE if link failed
-        case GL_VALIDATE_STATUS:
-            {
-                ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-                SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
-                SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-                ProgramData* programData = (ProgramData*)objData.Ptr();
-                if (programData->getLinkStatus()==GL_TRUE) 
-                    ctx->dispatcher().glGetProgramiv(globalProgramName,pname,params);
-                else
-                    params[0] = GL_FALSE;
-            }
-            break;
-        case GL_INFO_LOG_LENGTH:
-            {
-                ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-                SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
-                SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-                ProgramData* programData = (ProgramData*)objData.Ptr();
-                GLint logLength = strlen(programData->getInfoLog());
-                params[0] = (logLength>0) ? logLength+1 : 0;
-            }
-            break;   
-        default:
-            ctx->dispatcher().glGetProgramiv(globalProgramName,pname,params);
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        ProgramData* programData = (ProgramData*)objData.Ptr();
-
-        if (bufsize==0) {
-            if (length) {
-                *length = 0;
-            }
-            return;
-        }
-
-        GLsizei logLength;
-        logLength = strlen(programData->getInfoLog());
-        
-        GLsizei returnLength=0;
-        if (infolog) {
-            returnLength = bufsize-1 < logLength ? bufsize-1 : logLength;
-            strncpy(infolog,programData->getInfoLog(),returnLength+1);
-            infolog[returnLength] = '\0';
-        }
-        if (length) {
-            *length = returnLength;
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint* params){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        SET_ERROR_IF(globalShaderName==0, GL_INVALID_VALUE);
-        switch(pname) {
-        case GL_INFO_LOG_LENGTH:
-            {
-                ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,shader);
-                SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
-                SET_ERROR_IF(objData.Ptr()->getDataType()!=SHADER_DATA,GL_INVALID_OPERATION);
-                ShaderParser* sp = (ShaderParser*)objData.Ptr();
-                GLint logLength = strlen(sp->getInfoLog());
-                params[0] = (logLength>0) ? logLength+1 : 0;
-            }
-            break;
-        default:
-            ctx->dispatcher().glGetShaderiv(globalShaderName,pname,params);
-        }
-    }
-}
-
-
-GL_APICALL void  GL_APIENTRY glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        SET_ERROR_IF(globalShaderName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,shader);
-        SET_ERROR_IF(!objData.Ptr() ,GL_INVALID_OPERATION);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=SHADER_DATA,GL_INVALID_OPERATION);
-        ShaderParser* sp = (ShaderParser*)objData.Ptr();
-
-        if (bufsize==0) {
-            if (length) {
-                *length = 0;
-            }
-            return;
-        }
-
-        GLsizei logLength;
-        logLength = strlen(sp->getInfoLog());
-        
-        GLsizei returnLength=0;
-        if (infolog) {
-            returnLength = bufsize-1 <logLength ? bufsize-1 : logLength;
-            strncpy(infolog,sp->getInfoLog(),returnLength+1);
-            infolog[returnLength] = '\0';
-        }
-        if (length) {
-            *length = returnLength;
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision){
-    GET_CTX_V2();
-    SET_ERROR_IF(!(GLESv2Validate::shaderType(shadertype) && GLESv2Validate::precisionType(precisiontype)),GL_INVALID_ENUM);
-
-    switch (precisiontype) {
-    case GL_LOW_INT:
-    case GL_MEDIUM_INT:
-    case GL_HIGH_INT:
-        range[0] = range[1] = 16;
-        *precision = 0;
-        break;
-
-    case GL_LOW_FLOAT:
-    case GL_MEDIUM_FLOAT:
-    case GL_HIGH_FLOAT:
-        if(ctx->dispatcher().glGetShaderPrecisionFormat != NULL) {
-            ctx->dispatcher().glGetShaderPrecisionFormat(shadertype,precisiontype,range,precision);
-        } else {
-            range[0] = range[1] = 127;
-            *precision = 24;
-        }
-        break;
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-       const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-       SET_ERROR_IF(globalShaderName == 0,GL_INVALID_VALUE);
-       ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,shader);
-       SET_ERROR_IF(!objData.Ptr(),GL_INVALID_OPERATION);
-       SET_ERROR_IF(objData.Ptr()->getDataType()!=SHADER_DATA,GL_INVALID_OPERATION);
-       const char* src = ((ShaderParser*)objData.Ptr())->getOriginalSrc();
-       int srcLength = 0;
-       if (src) {
-            srcLength = strlen(src);
-       }
-
-       int returnLength = bufsize<srcLength ? bufsize-1 : srcLength;
-       if (returnLength) {
-            strncpy(source,src, returnLength);
-            source[returnLength] = '\0';
-       }
-
-       if (length)
-          *length = returnLength;
-    }
-}
-
-
-GL_APICALL const GLubyte* GL_APIENTRY glGetString(GLenum name){
-    GET_CTX_RET(NULL)
-    static GLubyte VENDOR[]     = "Google";
-    static GLubyte RENDERER[]   = "OpenGL ES 2.0";
-    static GLubyte VERSION[]    = "OpenGL ES 2.0";
-    static GLubyte SHADING[]    = "OpenGL ES GLSL ES 1.0.17";
-    switch(name) {
-        case GL_VENDOR:
-            return VENDOR;
-        case GL_RENDERER:
-            return RENDERER;
-        case GL_VERSION:
-            return VERSION;
-        case GL_SHADING_LANGUAGE_VERSION:
-            return SHADING;
-        case GL_EXTENSIONS:
-            return (const GLubyte*)ctx->getExtensionString();
-        default:
-            RET_AND_SET_ERROR_IF(true,GL_INVALID_ENUM,NULL);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTarget(target) && GLESv2Validate::textureParams(pname)),GL_INVALID_ENUM);
-    ctx->dispatcher().glGetTexParameterfv(target,pname,params);
-
-}
-GL_APICALL void  GL_APIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTarget(target) && GLESv2Validate::textureParams(pname)),GL_INVALID_ENUM);
-    ctx->dispatcher().glGetTexParameteriv(target,pname,params);
-}
-
-GL_APICALL void  GL_APIENTRY glGetUniformfv(GLuint program, GLint location, GLfloat* params){
-    GET_CTX();
-    SET_ERROR_IF(location < 0,GL_INVALID_OPERATION);
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        ProgramData* pData = (ProgramData *)objData.Ptr();
-        SET_ERROR_IF(pData->getLinkStatus() != GL_TRUE,GL_INVALID_OPERATION);
-        ctx->dispatcher().glGetUniformfv(globalProgramName,location,params);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetUniformiv(GLuint program, GLint location, GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(location < 0,GL_INVALID_OPERATION);
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        ProgramData* pData = (ProgramData *)objData.Ptr();
-        SET_ERROR_IF(pData->getLinkStatus() != GL_TRUE,GL_INVALID_OPERATION);
-        ctx->dispatcher().glGetUniformiv(globalProgramName,location,params);
-    }
-}
-
-GL_APICALL int GL_APIENTRY glGetUniformLocation(GLuint program, const GLchar* name){
-    GET_CTX_RET(-1);
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        RET_AND_SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE,-1);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        RET_AND_SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION,-1);
-        ProgramData* pData = (ProgramData *)objData.Ptr();
-        RET_AND_SET_ERROR_IF(pData->getLinkStatus() != GL_TRUE,GL_INVALID_OPERATION,-1);
-        return ctx->dispatcher().glGetUniformLocation(globalProgramName,name);
-    }
-    return -1;
-}
-
-
-
-GL_APICALL void  GL_APIENTRY glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params){
-    GET_CTX_V2();
-    const GLESpointer* p = ctx->getPointer(index);
-    if(p) {
-        switch(pname){
-        case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:
-            *params = 0;
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_ENABLED:
-            *params = p->isEnable();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_SIZE:
-            *params = p->getSize();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_STRIDE:
-            *params = p->getStride();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_TYPE:
-            *params = p->getType();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:
-            *params = p->isNormalize();
-            break;
-        case GL_CURRENT_VERTEX_ATTRIB:
-            if(index == 0)
-            {
-                const float* att0 = ctx->getAtt0();
-                for(int i=0; i<4; i++)
-                    params[i] = att0[i];
-            }
-            else
-                ctx->dispatcher().glGetVertexAttribfv(index,pname,params);
-            break;
-        default:
-            ctx->setGLerror(GL_INVALID_ENUM);
-        }
-    } else {
-        ctx->setGLerror(GL_INVALID_VALUE);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params){
-    GET_CTX_V2();
-    const GLESpointer* p = ctx->getPointer(index);
-    if(p) {
-        switch(pname){
-        case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:
-            *params = 0;
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_ENABLED:
-            *params = p->isEnable();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_SIZE:
-            *params = p->getSize();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_STRIDE:
-            *params = p->getStride();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_TYPE:
-            *params = p->getType();
-            break;
-        case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED:
-            *params = p->isNormalize();
-            break;
-        case GL_CURRENT_VERTEX_ATTRIB:
-            if(index == 0)
-            {
-                const float* att0 = ctx->getAtt0();
-                for(int i=0; i<4; i++)
-                    params[i] = (GLint)att0[i];
-            }
-            else
-                ctx->dispatcher().glGetVertexAttribiv(index,pname,params);
-            break;
-        default:
-            ctx->setGLerror(GL_INVALID_ENUM);
-        }
-    } else {
-        ctx->setGLerror(GL_INVALID_VALUE);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer){
-    GET_CTX();
-    SET_ERROR_IF(pname != GL_VERTEX_ATTRIB_ARRAY_POINTER,GL_INVALID_ENUM);
-    SET_ERROR_IF((!GLESv2Validate::arrayIndex(ctx,index)),GL_INVALID_VALUE);
-
-    const GLESpointer* p = ctx->getPointer(index);
-    if(p) {
-        *pointer = const_cast<void *>( p->getBufferData());
-    } else {
-        ctx->setGLerror(GL_INVALID_VALUE);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glHint(GLenum target, GLenum mode){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::hintTargetMode(target,mode),GL_INVALID_ENUM);
-    ctx->dispatcher().glHint(target,mode);
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsEnabled(GLenum cap){
-    GET_CTX_RET(GL_FALSE);
-    RET_AND_SET_ERROR_IF(!GLESv2Validate::capability(cap),GL_INVALID_ENUM,GL_FALSE);
-    return ctx->dispatcher().glIsEnabled(cap);
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsBuffer(GLuint buffer){
-    GET_CTX_RET(GL_FALSE)
-    if(buffer && ctx->shareGroup().Ptr()) {
-       ObjectDataPtr objData = ctx->shareGroup()->getObjectData(VERTEXBUFFER,buffer);
-       return objData.Ptr() ? ((GLESbuffer*)objData.Ptr())->wasBinded():GL_FALSE;
-    }
-    return GL_FALSE;
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsFramebuffer(GLuint framebuffer){
-    GET_CTX_RET(GL_FALSE)
-    if(framebuffer && ctx->shareGroup().Ptr()){
-        return ctx->shareGroup()->isObject(FRAMEBUFFER,framebuffer) ? GL_TRUE :GL_FALSE;
-    }
-    return GL_FALSE;
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsRenderbuffer(GLuint renderbuffer){
-    GET_CTX_RET(GL_FALSE)
-    if(renderbuffer && ctx->shareGroup().Ptr()){
-        return ctx->shareGroup()->isObject(RENDERBUFFER,renderbuffer) ? GL_TRUE :GL_FALSE;
-    }
-    return GL_FALSE;
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsTexture(GLuint texture){
-    GET_CTX_RET(GL_FALSE)
-    if (texture==0)
-        return GL_FALSE;
-    TextureData* tex = getTextureData(texture);
-    return tex ? tex->wasBound : GL_FALSE;
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsProgram(GLuint program){
-    GET_CTX_RET(GL_FALSE)
-    if(program && ctx->shareGroup().Ptr() &&
-       ctx->shareGroup()->isObject(SHADER,program)) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        return ctx->dispatcher().glIsProgram(globalProgramName);
-    }
-    return GL_FALSE;
-}
-
-GL_APICALL GLboolean    GL_APIENTRY glIsShader(GLuint shader){
-    GET_CTX_RET(GL_FALSE)
-    if(shader && ctx->shareGroup().Ptr() &&
-       ctx->shareGroup()->isObject(SHADER,shader)) {
-        const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-        return ctx->dispatcher().glIsShader(globalShaderName);
-    }
-    return GL_FALSE;
-}
-
-GL_APICALL void  GL_APIENTRY glLineWidth(GLfloat width){
-    GET_CTX();
-    ctx->dispatcher().glLineWidth(width);
-}
-
-GL_APICALL void  GL_APIENTRY glLinkProgram(GLuint program){
-    GET_CTX();
-    GLint linkStatus = GL_FALSE;
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(!objData.Ptr(), GL_INVALID_OPERATION);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA, GL_INVALID_OPERATION);
-        ProgramData* programData = (ProgramData*)objData.Ptr();
-        GLint fragmentShader   = programData->getAttachedFragmentShader();
-        GLint vertexShader =  programData->getAttachedVertexShader();
-        if (vertexShader != 0 && fragmentShader!=0) {
-            /* validating that the fragment & vertex shaders were compiled successfuly*/
-            GLint fCompileStatus = GL_FALSE;
-            GLint vCompileStatus = GL_FALSE;
-            GLuint fragmentShaderGlobal = ctx->shareGroup()->getGlobalName(SHADER,fragmentShader);
-            GLuint vertexShaderGlobal = ctx->shareGroup()->getGlobalName(SHADER,vertexShader);
-            ctx->dispatcher().glGetShaderiv(fragmentShaderGlobal,GL_COMPILE_STATUS,&fCompileStatus);
-            ctx->dispatcher().glGetShaderiv(vertexShaderGlobal,GL_COMPILE_STATUS,&vCompileStatus);
-
-            if(fCompileStatus != 0 && vCompileStatus != 0){
-                ctx->dispatcher().glLinkProgram(globalProgramName);
-                ctx->dispatcher().glGetProgramiv(globalProgramName,GL_LINK_STATUS,&linkStatus);
-            }
-        }
-        programData->setLinkStatus(linkStatus);
-        
-        GLsizei infoLogLength=0;
-        GLchar* infoLog;
-        ctx->dispatcher().glGetProgramiv(globalProgramName,GL_INFO_LOG_LENGTH,&infoLogLength);
-        infoLog = new GLchar[infoLogLength+1];
-        ctx->dispatcher().glGetProgramInfoLog(globalProgramName,infoLogLength,NULL,infoLog);
-        programData->setInfoLog(infoLog);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glPixelStorei(GLenum pname, GLint param){
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::pixelStoreParam(pname),GL_INVALID_ENUM);
-    SET_ERROR_IF(!((param==1)||(param==2)||(param==4)||(param==8)), GL_INVALID_VALUE);
-    ctx->setUnpackAlignment(param);
-    ctx->dispatcher().glPixelStorei(pname,param);
-}
-
-GL_APICALL void  GL_APIENTRY glPolygonOffset(GLfloat factor, GLfloat units){
-    GET_CTX();
-    ctx->dispatcher().glPolygonOffset(factor,units);
-}
-
-GL_APICALL void  GL_APIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::readPixelFrmt(format) && GLESv2Validate::pixelType(ctx,type)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!(GLESv2Validate::pixelOp(format,type)),GL_INVALID_OPERATION);
-    ctx->dispatcher().glReadPixels(x,y,width,height,format,type,pixels);
-}
-
-
-GL_APICALL void  GL_APIENTRY glReleaseShaderCompiler(void){
-    GET_CTX();
-
-    if(ctx->dispatcher().glReleaseShaderCompiler != NULL)
-    {
-        ctx->dispatcher().glReleaseShaderCompiler();
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height){
-    GET_CTX();
-    GLenum internal = internalformat;
-    switch (internalformat) {
-    case GL_RGB565:
-        internal = GL_RGB;
-        break;
-    case GL_RGB5_A1:
-        internal = GL_RGBA;
-        break;
-    default:
-        internal = internalformat;
-        break;
-    }
-
-    // Get current bounded renderbuffer
-    // raise INVALID_OPERATIOn if no renderbuffer is bounded
-    GLuint rb = ctx->getRenderbufferBinding();
-    SET_ERROR_IF(rb == 0,GL_INVALID_OPERATION);
-    ObjectDataPtr objData = ctx->shareGroup()->getObjectData(RENDERBUFFER,rb);
-    RenderbufferData *rbData = (RenderbufferData *)objData.Ptr();
-    SET_ERROR_IF(!rbData,GL_INVALID_OPERATION);
-
-    //
-    // if the renderbuffer was an eglImage target, detach from
-    // the eglImage.
-    //
-    if (rbData->sourceEGLImage != 0) {
-        if (rbData->eglImageDetach) {
-            (*rbData->eglImageDetach)(rbData->sourceEGLImage);
-        }
-        rbData->sourceEGLImage = 0;
-        rbData->eglImageGlobalTexName = 0;
-    }
-
-    ctx->dispatcher().glRenderbufferStorageEXT(target,internal,width,height);
-}
-
-GL_APICALL void  GL_APIENTRY glSampleCoverage(GLclampf value, GLboolean invert){
-    GET_CTX();
-    ctx->dispatcher().glSampleCoverage(value,invert);
-}
-
-GL_APICALL void  GL_APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height){
-    GET_CTX();
-    ctx->dispatcher().glScissor(x,y,width,height);
-}
-
-GL_APICALL void  GL_APIENTRY glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length){
-    GET_CTX();
-
-    SET_ERROR_IF( (ctx->dispatcher().glShaderBinary == NULL), GL_INVALID_OPERATION);
-
-    if(ctx->shareGroup().Ptr()){
-        for(int i=0; i < n ; i++){
-            const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shaders[i]);
-            SET_ERROR_IF(globalShaderName == 0,GL_INVALID_VALUE);
-            ctx->dispatcher().glShaderBinary(1,&globalShaderName,binaryformat,binary,length);
-        }
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length){
-    GET_CTX_V2();
-    SET_ERROR_IF(count < 0,GL_INVALID_VALUE);
-    if(ctx->shareGroup().Ptr()){
-            const GLuint globalShaderName = ctx->shareGroup()->getGlobalName(SHADER,shader);
-            SET_ERROR_IF(globalShaderName == 0,GL_INVALID_VALUE);
-            ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,shader);
-            SET_ERROR_IF(!objData.Ptr(),GL_INVALID_OPERATION);
-            SET_ERROR_IF(objData.Ptr()->getDataType()!=SHADER_DATA,GL_INVALID_OPERATION);
-            ShaderParser* sp = (ShaderParser*)objData.Ptr();
-            sp->setSrc(ctx->glslVersion(),count,string,length);
-            ctx->dispatcher().glShaderSource(globalShaderName,1,sp->parsedLines(),NULL);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask){
-    GET_CTX();
-    ctx->dispatcher().glStencilFunc(func,ref,mask);
-}
-GL_APICALL void  GL_APIENTRY glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask){
-    GET_CTX();
-    ctx->dispatcher().glStencilFuncSeparate(face,func,ref,mask);
-}
-GL_APICALL void  GL_APIENTRY glStencilMask(GLuint mask){
-    GET_CTX();
-    ctx->dispatcher().glStencilMask(mask);
-}
-
-GL_APICALL void  GL_APIENTRY glStencilMaskSeparate(GLenum face, GLuint mask){
-    GET_CTX();
-    ctx->dispatcher().glStencilMaskSeparate(face,mask);
-}
-
-GL_APICALL void  GL_APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass){
-    GET_CTX();
-    ctx->dispatcher().glStencilOp(fail,zfail,zpass);
-}
-
-GL_APICALL void  GL_APIENTRY glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass){
-    GET_CTX();
-    ctx->dispatcher().glStencilOp(fail,zfail,zpass);
-}
-
-GL_APICALL void  GL_APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTargetEx(target) &&
-                   GLESv2Validate::pixelFrmt(ctx,internalformat) &&
-                   GLESv2Validate::pixelFrmt(ctx,format)&&
-                   GLESv2Validate::pixelType(ctx,type)),GL_INVALID_ENUM);
-
-    SET_ERROR_IF((format == GL_DEPTH_COMPONENT || internalformat == GL_DEPTH_COMPONENT) &&
-                    (type != GL_UNSIGNED_SHORT && type != GL_UNSIGNED_INT), GL_INVALID_OPERATION);
-
-    SET_ERROR_IF((type == GL_UNSIGNED_SHORT || type == GL_UNSIGNED_INT) &&
-                    (format != GL_DEPTH_COMPONENT || internalformat != GL_DEPTH_COMPONENT), GL_INVALID_OPERATION);
-
-    SET_ERROR_IF(!(GLESv2Validate::pixelOp(format,type) && internalformat == ((GLint)format)),GL_INVALID_OPERATION);
-    SET_ERROR_IF(border != 0,GL_INVALID_VALUE);
-
-    if (ctx->shareGroup().Ptr()){
-        TextureData *texData = getTextureTargetData(target);
-        if(texData) {
-            texData->width = width;
-            texData->height = height;
-            texData->border = border;
-            texData->internalFormat = internalformat;
-            texData->target = target;
-
-            if (texData->sourceEGLImage != 0) {
-                //
-                // This texture was a target of EGLImage,
-                // but now it is re-defined so we need to detach
-                // from the EGLImage and re-generate global texture name
-                // for it.
-                //
-                if (texData->eglImageDetach) {
-                    (*texData->eglImageDetach)(texData->sourceEGLImage);
-                }
-                unsigned int tex = ctx->getBindedTexture(target);
-                ctx->shareGroup()->replaceGlobalName(TEXTURE,
-                                                     tex,
-                                                     texData->oldGlobal);
-                ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, texData->oldGlobal);
-                texData->sourceEGLImage = 0;
-                texData->oldGlobal = 0;
-            }
-        }
-    }
-
-    if (type==GL_HALF_FLOAT_OES)
-        type = GL_HALF_FLOAT_NV;
-    if (pixels==NULL && type==GL_UNSIGNED_SHORT_5_5_5_1)
-        type = GL_UNSIGNED_SHORT;
-    ctx->dispatcher().glTexImage2D(target,level,internalformat,width,height,border,format,type,pixels);
-}
-
-
-GL_APICALL void  GL_APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTarget(target) && GLESv2Validate::textureParams(pname)),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexParameterf(target,pname,param);
-}
-GL_APICALL void  GL_APIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTarget(target) && GLESv2Validate::textureParams(pname)),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexParameterfv(target,pname,params);
-}
-GL_APICALL void  GL_APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTarget(target) && GLESv2Validate::textureParams(pname)),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexParameteri(target,pname,param);
-}
-GL_APICALL void  GL_APIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint* params){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTarget(target) && GLESv2Validate::textureParams(pname)),GL_INVALID_ENUM);
-    ctx->dispatcher().glTexParameteriv(target,pname,params);
-}
-
-GL_APICALL void  GL_APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels){
-    GET_CTX();
-    SET_ERROR_IF(!(GLESv2Validate::textureTargetEx(target) &&
-                   GLESv2Validate::pixelFrmt(ctx,format)&&
-                   GLESv2Validate::pixelType(ctx,type)),GL_INVALID_ENUM);
-    SET_ERROR_IF(!GLESv2Validate::pixelOp(format,type),GL_INVALID_OPERATION);
-    if (type==GL_HALF_FLOAT_OES)
-        type = GL_HALF_FLOAT_NV;
-
-    ctx->dispatcher().glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels);
-
-}
-
-GL_APICALL void  GL_APIENTRY glUniform1f(GLint location, GLfloat x){
-    GET_CTX();
-    ctx->dispatcher().glUniform1f(location,x);
-}
-GL_APICALL void  GL_APIENTRY glUniform1fv(GLint location, GLsizei count, const GLfloat* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform1fv(location,count,v);
-}
-
-GL_APICALL void  GL_APIENTRY glUniform1i(GLint location, GLint x){
-    GET_CTX();
-    ctx->dispatcher().glUniform1i(location,x);
-}
-GL_APICALL void  GL_APIENTRY glUniform1iv(GLint location, GLsizei count, const GLint* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform1iv(location,count,v);
-}
-GL_APICALL void  GL_APIENTRY glUniform2f(GLint location, GLfloat x, GLfloat y){
-    GET_CTX();
-    ctx->dispatcher().glUniform2f(location,x,y);
-}
-GL_APICALL void  GL_APIENTRY glUniform2fv(GLint location, GLsizei count, const GLfloat* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform2fv(location,count,v);
-}
-GL_APICALL void  GL_APIENTRY glUniform2i(GLint location, GLint x, GLint y){
-    GET_CTX();
-    ctx->dispatcher().glUniform2i(location,x,y);
-}
-GL_APICALL void  GL_APIENTRY glUniform2iv(GLint location, GLsizei count, const GLint* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform2iv(location,count,v);
-}
-GL_APICALL void  GL_APIENTRY glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z){
-    GET_CTX();
-    ctx->dispatcher().glUniform3f(location,x,y,z);
-}
-GL_APICALL void  GL_APIENTRY glUniform3fv(GLint location, GLsizei count, const GLfloat* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform3fv(location,count,v);
-}
-GL_APICALL void  GL_APIENTRY glUniform3i(GLint location, GLint x, GLint y, GLint z){
-    GET_CTX();
-    ctx->dispatcher().glUniform3i(location,x,y,z);
-}
-
-GL_APICALL void  GL_APIENTRY glUniform3iv(GLint location, GLsizei count, const GLint* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform3iv(location,count,v);
-}
-
-GL_APICALL void  GL_APIENTRY glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w){
-    GET_CTX();
-    ctx->dispatcher().glUniform4f(location,x,y,z,w);
-}
-
-GL_APICALL void  GL_APIENTRY glUniform4fv(GLint location, GLsizei count, const GLfloat* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform4fv(location,count,v);
-}
-
-GL_APICALL void  GL_APIENTRY glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w){
-    GET_CTX();
-    ctx->dispatcher().glUniform4i(location,x,y,z,w);
-}
-
-GL_APICALL void  GL_APIENTRY glUniform4iv(GLint location, GLsizei count, const GLint* v){
-    GET_CTX();
-    ctx->dispatcher().glUniform4iv(location,count,v);
-}
-
-GL_APICALL void  GL_APIENTRY glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value){
-    GET_CTX();
-    SET_ERROR_IF(transpose != GL_FALSE,GL_INVALID_VALUE);
-    ctx->dispatcher().glUniformMatrix2fv(location,count,transpose,value);
-}
-
-GL_APICALL void  GL_APIENTRY glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value){
-    GET_CTX();
-    SET_ERROR_IF(transpose != GL_FALSE,GL_INVALID_VALUE);
-    ctx->dispatcher().glUniformMatrix3fv(location,count,transpose,value);
-}
-
-GL_APICALL void  GL_APIENTRY glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value){
-    GET_CTX();
-    SET_ERROR_IF(transpose != GL_FALSE,GL_INVALID_VALUE);
-    ctx->dispatcher().glUniformMatrix4fv(location,count,transpose,value);
-}
-
-GL_APICALL void  GL_APIENTRY glUseProgram(GLuint program){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(program!=0 && globalProgramName==0,GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr() && (objData.Ptr()->getDataType()!=PROGRAM_DATA),GL_INVALID_OPERATION);
-        ctx->dispatcher().glUseProgram(globalProgramName);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glValidateProgram(GLuint program){
-    GET_CTX();
-    if(ctx->shareGroup().Ptr()) {
-        const GLuint globalProgramName = ctx->shareGroup()->getGlobalName(SHADER,program);
-        SET_ERROR_IF(globalProgramName==0, GL_INVALID_VALUE);
-        ObjectDataPtr objData = ctx->shareGroup()->getObjectData(SHADER,program);
-        SET_ERROR_IF(objData.Ptr()->getDataType()!=PROGRAM_DATA,GL_INVALID_OPERATION);
-        ProgramData* programData = (ProgramData*)objData.Ptr();
-        ctx->dispatcher().glValidateProgram(globalProgramName);
-
-        GLsizei infoLogLength=0;
-        GLchar* infoLog;
-        ctx->dispatcher().glGetProgramiv(globalProgramName,GL_INFO_LOG_LENGTH,&infoLogLength);
-        infoLog = new GLchar[infoLogLength+1];
-        ctx->dispatcher().glGetProgramInfoLog(globalProgramName,infoLogLength,NULL,infoLog);
-        programData->setInfoLog(infoLog);
-    }
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib1f(GLuint indx, GLfloat x){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib1f(indx,x);
-    if(indx == 0)
-        ctx->setAttribute0value(x, 0.0, 0.0, 1.0);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib1fv(GLuint indx, const GLfloat* values){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib1fv(indx,values);
-    if(indx == 0)
-        ctx->setAttribute0value(values[0], 0.0, 0.0, 1.0);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib2f(indx,x,y);
-    if(indx == 0)
-        ctx->setAttribute0value(x, y, 0.0, 1.0);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib2fv(GLuint indx, const GLfloat* values){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib2fv(indx,values);
-    if(indx == 0)
-        ctx->setAttribute0value(values[0], values[1], 0.0, 1.0);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib3f(indx,x,y,z);
-    if(indx == 0)
-        ctx->setAttribute0value(x, y, z, 1.0);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib3fv(GLuint indx, const GLfloat* values){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib3fv(indx,values);
-    if(indx == 0)
-        ctx->setAttribute0value(values[0], values[1], values[2], 1.0);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib4f(indx,x,y,z,w);
-    if(indx == 0)
-        ctx->setAttribute0value(x, y, z, w);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttrib4fv(GLuint indx, const GLfloat* values){
-    GET_CTX_V2();
-    ctx->dispatcher().glVertexAttrib4fv(indx,values);
-    if(indx == 0)
-        ctx->setAttribute0value(values[0], values[1], values[2], values[3]);
-}
-
-GL_APICALL void  GL_APIENTRY glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr){
-    GET_CTX();
-    SET_ERROR_IF((!GLESv2Validate::arrayIndex(ctx,indx)),GL_INVALID_VALUE);
-    if (type == GL_HALF_FLOAT_OES) type = GL_HALF_FLOAT;
-    ctx->setPointer(indx,size,type,stride,ptr,normalized);
-}
-
-GL_APICALL void  GL_APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height){
-    GET_CTX();
-    ctx->dispatcher().glViewport(x,y,width,height);
-}
-
-GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
-{
-    GET_CTX();
-    SET_ERROR_IF(!GLESv2Validate::textureTargetLimited(target),GL_INVALID_ENUM);
-    EglImage *img = s_eglIface->eglAttachEGLImage((unsigned int)image);
-    if (img) {
-        // Create the texture object in the underlying EGL implementation,
-        // flag to the OpenGL layer to skip the image creation and map the
-        // current binded texture object to the existing global object.
-        if (ctx->shareGroup().Ptr()) {
-            ObjectLocalName tex = TextureLocalName(target,ctx->getBindedTexture(target));
-            unsigned int oldGlobal = ctx->shareGroup()->getGlobalName(TEXTURE, tex);
-            // Delete old texture object
-            if (oldGlobal) {
-                ctx->dispatcher().glDeleteTextures(1, &oldGlobal);
-            }
-            // replace mapping and bind the new global object
-            ctx->shareGroup()->replaceGlobalName(TEXTURE, tex,img->globalTexName);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, img->globalTexName);
-            TextureData *texData = getTextureTargetData(target);
-            SET_ERROR_IF(texData==NULL,GL_INVALID_OPERATION);
-            texData->sourceEGLImage = (unsigned int)image;
-            texData->eglImageDetach = s_eglIface->eglDetachEGLImage;
-            texData->oldGlobal = oldGlobal;
-        }
-    }
-}
-
-GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
-{
-    GET_CTX();
-    SET_ERROR_IF(target != GL_RENDERBUFFER_OES,GL_INVALID_ENUM);
-    EglImage *img = s_eglIface->eglAttachEGLImage((unsigned int)image);
-    SET_ERROR_IF(!img,GL_INVALID_VALUE);
-    SET_ERROR_IF(!ctx->shareGroup().Ptr(),GL_INVALID_OPERATION);
-
-    // Get current bounded renderbuffer
-    // raise INVALID_OPERATIOn if no renderbuffer is bounded
-    GLuint rb = ctx->getRenderbufferBinding();
-    SET_ERROR_IF(rb == 0,GL_INVALID_OPERATION);
-    ObjectDataPtr objData = ctx->shareGroup()->getObjectData(RENDERBUFFER,rb);
-    RenderbufferData *rbData = (RenderbufferData *)objData.Ptr();
-    SET_ERROR_IF(!rbData,GL_INVALID_OPERATION);
-
-    //
-    // flag in the renderbufferData that it is an eglImage target
-    //
-    rbData->sourceEGLImage = (unsigned int)image;
-    rbData->eglImageDetach = s_eglIface->eglDetachEGLImage;
-    rbData->eglImageGlobalTexName = img->globalTexName;
-
-    //
-    // if the renderbuffer is attached to a framebuffer
-    // change the framebuffer attachment in the undelying OpenGL
-    // to point to the eglImage texture object.
-    //
-    if (rbData->attachedFB) {
-        // update the framebuffer attachment point to the
-        // underlying texture of the img
-        GLuint prevFB = ctx->getFramebufferBinding();
-        if (prevFB != rbData->attachedFB) {
-            ctx->dispatcher().glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 
-                                                   rbData->attachedFB);
-        }
-        ctx->dispatcher().glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT,
-                                                    rbData->attachedPoint,
-                                                    GL_TEXTURE_2D,
-                                                    img->globalTexName,0);
-        if (prevFB != rbData->attachedFB) {
-            ctx->dispatcher().glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 
-                                                   prevFB);
-        }
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Validate.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Validate.cpp
deleted file mode 100644
index 53d1314..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Validate.cpp
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLESv2Validate.h"
-
-bool GLESv2Validate::blendEquationMode(GLenum mode){
-    return mode == GL_FUNC_ADD             ||
-           mode == GL_FUNC_SUBTRACT        ||
-           mode == GL_FUNC_REVERSE_SUBTRACT;
-}
-
-bool GLESv2Validate::blendSrc(GLenum s) {
-   switch(s) {
-   case GL_ZERO:
-   case GL_ONE:
-   case GL_SRC_COLOR:
-   case GL_ONE_MINUS_SRC_COLOR:
-   case GL_DST_COLOR:
-   case GL_ONE_MINUS_DST_COLOR:
-   case GL_SRC_ALPHA:
-   case GL_ONE_MINUS_SRC_ALPHA:
-   case GL_DST_ALPHA:
-   case GL_ONE_MINUS_DST_ALPHA:
-   case GL_CONSTANT_COLOR:
-   case GL_ONE_MINUS_CONSTANT_COLOR:
-   case GL_CONSTANT_ALPHA:
-   case GL_ONE_MINUS_CONSTANT_ALPHA:
-   case GL_SRC_ALPHA_SATURATE:
-        return true;
-  }
-  return false;
-}
-
-
-bool GLESv2Validate::blendDst(GLenum d) {
-   switch(d) {
-   case GL_ZERO:
-   case GL_ONE:
-   case GL_SRC_COLOR:
-   case GL_ONE_MINUS_SRC_COLOR:
-   case GL_DST_COLOR:
-   case GL_ONE_MINUS_DST_COLOR:
-   case GL_SRC_ALPHA:
-   case GL_ONE_MINUS_SRC_ALPHA:
-   case GL_DST_ALPHA:
-   case GL_ONE_MINUS_DST_ALPHA:
-   case GL_CONSTANT_COLOR:
-   case GL_ONE_MINUS_CONSTANT_COLOR:
-   case GL_CONSTANT_ALPHA:
-   case GL_ONE_MINUS_CONSTANT_ALPHA:
-        return true;
-   }
-   return false;
-}
-
-bool GLESv2Validate::textureParams(GLenum param){
-    switch(param) {
-    case GL_TEXTURE_MIN_FILTER:
-    case GL_TEXTURE_MAG_FILTER:
-    case GL_TEXTURE_WRAP_S:
-    case GL_TEXTURE_WRAP_T:
-        return true;
-    default:
-        return false;
-    }
-}
-
-bool GLESv2Validate::hintTargetMode(GLenum target,GLenum mode){
-
-   switch(mode) {
-   case GL_FASTEST:
-   case GL_NICEST:
-   case GL_DONT_CARE:
-       break;
-   default: return false;
-   }
-   return target == GL_GENERATE_MIPMAP_HINT || target == GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES;
-}
-
-bool GLESv2Validate::capability(GLenum cap){
-    switch(cap){
-    case GL_BLEND:
-    case GL_CULL_FACE:
-    case GL_DEPTH_TEST:
-    case GL_DITHER:
-    case GL_POLYGON_OFFSET_FILL:
-    case GL_SAMPLE_ALPHA_TO_COVERAGE:
-    case GL_SAMPLE_COVERAGE:
-    case GL_SCISSOR_TEST:
-    case GL_STENCIL_TEST:
-        return true;
-    }
-    return false;
-}
-
-bool GLESv2Validate::pixelStoreParam(GLenum param){
-    return param == GL_PACK_ALIGNMENT || param == GL_UNPACK_ALIGNMENT;
-}
-
-bool GLESv2Validate::readPixelFrmt(GLenum format){
-    switch(format) {
-    case GL_ALPHA:
-    case GL_RGB:
-    case GL_RGBA:
-        return true;
-    }
-    return false;
-}
-
-
-bool GLESv2Validate::shaderType(GLenum type){
-    return type == GL_VERTEX_SHADER || type == GL_FRAGMENT_SHADER;
-}
-
-bool GLESv2Validate::precisionType(GLenum type){
-    switch(type){
-    case GL_LOW_FLOAT:
-    case GL_MEDIUM_FLOAT:
-    case GL_HIGH_FLOAT:
-    case GL_LOW_INT:
-    case GL_MEDIUM_INT:
-    case GL_HIGH_INT:
-        return true;
-    }
-    return false;
-}
-
-bool GLESv2Validate::arrayIndex(GLEScontext * ctx,GLuint index) {
-    return index < (GLuint)ctx->getCaps()->maxVertexAttribs;
-}
-
-bool GLESv2Validate::pixelType(GLEScontext * ctx,GLenum type) {
-    if(type == GL_UNSIGNED_SHORT || type == GL_UNSIGNED_INT)
-        return true;
-
-    return GLESvalidate::pixelType(ctx, type);
-}
-
-bool GLESv2Validate::pixelFrmt(GLEScontext* ctx,GLenum format) {
-    if(format == GL_DEPTH_COMPONENT)
-        return true;
-
-    return GLESvalidate::pixelFrmt(ctx, format);
-}
-
-bool GLESv2Validate::attribName(const GLchar* name){
-    const GLchar* found = strstr(name,"gl_");
-    return (!found) ||
-           (found != name) ; // attrib name does not start with gl_
-}
-
-bool GLESv2Validate::attribIndex(int index){
-    return index >=0 && index < GL_MAX_VERTEX_ATTRIBS;
-}
-
-bool GLESv2Validate::programParam(GLenum pname){
-    switch(pname){
-        case GL_DELETE_STATUS:
-        case GL_LINK_STATUS:
-        case GL_VALIDATE_STATUS:
-        case GL_INFO_LOG_LENGTH:
-        case GL_ATTACHED_SHADERS:
-        case GL_ACTIVE_ATTRIBUTES:
-        case GL_ACTIVE_ATTRIBUTE_MAX_LENGTH:
-        case GL_ACTIVE_UNIFORMS:
-        case GL_ACTIVE_UNIFORM_MAX_LENGTH:
-            return true;
-    }
-    return false;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Validate.h b/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Validate.h
deleted file mode 100644
index c62149b..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/GLESv2Validate.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef GLES_V2_VALIDATE_H
-#define GLES_V2_VALIDATE_H
-
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
-#include <GLcommon/GLESvalidate.h>
-
-struct GLESv2Validate:public GLESvalidate{
-static bool blendEquationMode(GLenum mode);
-static bool blendSrc(GLenum s);
-static bool blendDst(GLenum d);
-static bool textureParams(GLenum param);
-static bool hintTargetMode(GLenum target,GLenum mode);
-static bool capability(GLenum cap);
-static bool pixelStoreParam(GLenum param);
-static bool readPixelFrmt(GLenum format);
-static bool shaderType(GLenum type);
-static bool precisionType(GLenum type);
-static bool arrayIndex(GLEScontext * ctx,GLuint index);
-static bool pixelType(GLEScontext * ctx,GLenum type);
-static bool pixelFrmt(GLEScontext* ctx,GLenum format);
-static bool attribName(const GLchar* name);
-static bool attribIndex(int index);
-static bool programParam(GLenum pname);
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ProgramData.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_V2/ProgramData.cpp
deleted file mode 100644
index 656c782..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ProgramData.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLES2/gl2.h>
-#include <GLcommon/objectNameManager.h>
-#include "ProgramData.h"
-
-ProgramData::ProgramData() :  ObjectData(PROGRAM_DATA),
-                              AttachedVertexShader(0),
-                              AttachedFragmentShader(0),
-                              LinkStatus(GL_FALSE) {
-    infoLog = new GLchar[1];
-    infoLog[0] = '\0';
-}
-
-ProgramData::~ProgramData () {
-    delete[] infoLog;
-};
-
-void ProgramData::setInfoLog(GLchar* log) {
-    delete[] infoLog;
-    infoLog = log;
-}
-
-GLchar* ProgramData::getInfoLog() {
-    return infoLog;
-}
-
-GLuint ProgramData::getAttachedVertexShader() {
-    return AttachedVertexShader;
-}
-
-GLuint ProgramData::getAttachedFragmentShader() {
-    return AttachedFragmentShader;
-}
-
-GLuint ProgramData::getAttachedShader(GLenum type) {
-    GLuint shader = 0;
-    switch (type) {
-    case GL_VERTEX_SHADER:
-        shader = AttachedVertexShader;
-        break;
-    case GL_FRAGMENT_SHADER:
-        shader = AttachedFragmentShader;
-        break;
-    }
-    return shader;
-}
-
-bool ProgramData::attachShader(GLuint shader,GLenum type) {
-    if (type==GL_VERTEX_SHADER && AttachedVertexShader==0) {
-        AttachedVertexShader=shader;
-        return true;
-    }
-    else if (type==GL_FRAGMENT_SHADER && AttachedFragmentShader==0) {
-        AttachedFragmentShader=shader;
-        return true;
-    }
-    return false;
-}
-
-bool ProgramData::isAttached(GLuint shader) {
-    return (AttachedFragmentShader==shader || AttachedVertexShader==shader);
-}
-
-bool ProgramData::detachShader(GLuint shader) {
-    if (AttachedVertexShader==shader) {
-        AttachedVertexShader = 0;
-        return true;
-    }
-    else if (AttachedFragmentShader==shader) {
-        AttachedFragmentShader = 0;
-        return true;
-    }
-    return false;
-}
-
-void ProgramData::setLinkStatus(GLint status) {
-    LinkStatus = status;
-}
-
-GLint ProgramData::getLinkStatus() {
-    return LinkStatus;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ProgramData.h b/tools/emulator/opengl/host/libs/Translator/GLES_V2/ProgramData.h
deleted file mode 100644
index a79574a..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ProgramData.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef PROGRAM_DATA_H
-#define PROGRAM_DATA_H
-
-class ProgramData:public ObjectData{
-public:
-    ProgramData();
-    virtual ~ProgramData();
-
-    GLuint getAttachedVertexShader();
-    GLuint getAttachedFragmentShader();
-    GLuint getAttachedShader(GLenum type);
-
-    bool attachShader(GLuint shader,GLenum type);
-    bool isAttached(GLuint shader);
-    bool detachShader(GLuint shader);
-
-    void setLinkStatus(GLint status);
-    GLint getLinkStatus();
-
-    void setInfoLog(GLchar *log);
-    GLchar* getInfoLog();
-
-private:
-    GLuint AttachedVertexShader;
-    GLuint AttachedFragmentShader;
-    GLint  LinkStatus;
-    GLchar* infoLog;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ShaderParser.cpp b/tools/emulator/opengl/host/libs/Translator/GLES_V2/ShaderParser.cpp
deleted file mode 100644
index 82cf5b5..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ShaderParser.cpp
+++ /dev/null
@@ -1,327 +0,0 @@
-#include "ShaderParser.h"
-#include <string.h>
-
-ShaderParser::ShaderParser():ObjectData(SHADER_DATA),
-                             m_type(0),
-                             m_originalSrc(NULL),
-                             m_parsedLines(NULL) {
-    m_infoLog = new GLchar[1];
-    m_infoLog[0] = '\0';
-};
-
-ShaderParser::ShaderParser(GLenum type):ObjectData(SHADER_DATA), 
-                                        m_type(type),
-                                        m_originalSrc(NULL),
-                                        m_parsedLines(NULL) {
-
-    m_infoLog = new GLchar[1];
-    m_infoLog[0] = '\0';
-};
-
-void ShaderParser::setSrc(const Version& ver,GLsizei count,const GLchar** strings,const GLint* length){
-    for(int i = 0;i<count;i++){
-        m_src.append(strings[i]);
-    }
-    //store original source
-    if (m_originalSrc)
-        free(m_originalSrc);
-    m_originalSrc = strdup(m_src.c_str());
-
-    clearParsedSrc();
-
-    // parseGLSLversion must be called first since #version should be the
-    // first token in the shader source.
-    parseGLSLversion();
-    parseBuiltinConstants();
-    /*
-      version 1.30.10 is the first version of GLSL Language containing precision qualifiers
-      if the glsl version is less than 1.30.10 than we will use a shader parser which omits
-      all precision qualifiers from the shader source , otherwise we will use a shader parser
-      which set the default precisions to be the same as the default precisions of GLSL ES
-    */
-#if 0
-    if(ver < Version(1,30,10)){
-        parseOmitPrecision();
-     } else {
-        parseExtendDefaultPrecision();
-     }
-#else
-    //XXX: Until proved otherwise, glsl doesn't know/use those precision macros, so we omit then
-    parseOmitPrecision();
-#endif
-    parseLineNumbers();
-    parseOriginalSrc();
-}
-const GLchar** ShaderParser::parsedLines() {
-      m_parsedLines = (GLchar*)m_parsedSrc.c_str();
-      return const_cast<const GLchar**> (&m_parsedLines);
-};
-
-const char* ShaderParser::getOriginalSrc(){
-    return m_originalSrc;
-}
-
-void ShaderParser::parseLineNumbers()
-{
-    m_parsedSrc += "#line 1\n";
-}
-
-void ShaderParser::parseOriginalSrc() {
-    m_parsedSrc+=m_src;
-}
-
-void ShaderParser::parseGLSLversion() {
-
-    //
-    // find in shader the #version token if exist.
-    // That token should be the first non-comment or blank token
-    //
-    const char *src = m_src.c_str();
-    const int minGLSLVersion = 120;
-    int glslVersion = minGLSLVersion;
-    enum {
-        PARSE_NONE,
-        PARSE_IN_C_COMMENT,
-        PARSE_IN_LINE_COMMENT
-    } parseState = PARSE_NONE;
-    const char *c = src;
-
-    while( c && *c != '\0') {
-        if (parseState == PARSE_IN_C_COMMENT) {
-            if (*c == '*' && *(c+1) == '/') {
-                parseState = PARSE_NONE;
-                c += 2;
-            }
-            else c++;
-        }
-        else if (parseState == PARSE_IN_LINE_COMMENT) {
-            if (*c == '\n') {
-                parseState = PARSE_NONE;
-            }
-            c++;
-        }
-        else if (*c == '/' && *(c+1) == '/') {
-            parseState = PARSE_IN_LINE_COMMENT;
-            c += 2;
-        }
-        else if (*c == '/' && *(c+1) == '*') {
-            parseState = PARSE_IN_C_COMMENT;
-            c += 2;
-        }
-        else if (*c == ' ' || *c == '\t' || *c == '\r' || *c == '\n') {
-            c++;
-        }
-        else {
-            //
-            // We have reached the first non-blank character outside
-            // a comment, this must be a #version token or else #version
-            // token does not exist in this shader source.
-            //
-            if (!strncmp(c,"#version",8)) {
-                int ver;
-                if (sscanf(c+8,"%d",&ver) == 1) {
-                    //
-                    // parsed version string correctly, blank out the
-                    // version token from the source, we will add it later at
-                    // the begining of the shader.
-                    //
-                    char *cc = (char *)c;
-                    for (int i=0; i<8; i++,cc++) *cc = ' ';
-                    while (*cc < '0' || *cc > '9') { *cc = ' '; cc++; }
-                    while (*cc >= '0' && *cc <= '9') { *cc = ' '; cc++; }
-
-                    // Use the version from the source but only if
-                    // it is larger than our minGLSLVersion
-                    if (ver > minGLSLVersion) glslVersion = ver;
-                }
-            }
-
-            //
-            // break the loop, no need to go further on the source.
-            break;
-        }
-    }
-
-    //
-    // allow to force GLSL version through environment variable
-    //
-    const char *forceVersion = getenv("GOOGLE_GLES_FORCE_GLSL_VERSION");
-    if (forceVersion) {
-        int ver;
-        if (sscanf(forceVersion,"%d",&ver) == 1) {
-            glslVersion = ver;
-        }
-    }
-
-    //
-    // if glslVersion is defined, add it to the parsed source
-    //
-    if (glslVersion > 0) {
-        char vstr[16];
-        sprintf(vstr,"%d",glslVersion);
-        m_parsedSrc += std::string("#version ") + 
-                       std::string(vstr) + 
-                       std::string("\n");
-    }
-}
-
-void ShaderParser::parseBuiltinConstants()
-{
-    m_parsedSrc += 
-                   "const int _translator_gl_MaxVertexUniformVectors = 256;\n"
-                   "const int _translator_gl_MaxFragmentUniformVectors = 256;\n"
-                   "const int _translator_gl_MaxVaryingVectors = 15;\n"
-                   "#define gl_MaxVertexUniformVectors _translator_gl_MaxVertexUniformVectors\n"
-                   "#define gl_MaxFragmentUniformVectors _translator_gl_MaxFragmentUniformVectors\n"
-                   "#define gl_MaxVaryingVectors _translator_gl_MaxVaryingVectors\n";
-
-}
-
-void ShaderParser::parseOmitPrecision(){
-
-    //defines we need to add in order to Omit precisions qualifiers
-    static const GLchar defines[] = {
-                                         "#define GLES 1\n"
-                                         "#define lowp \n"
-                                         "#define mediump \n"
-                                         "#define highp \n"
-                                     };
-    m_parsedSrc+=defines;
-
-    //
-    // parse the source and blank out precision statements
-    // which has the following syntax:
-    //   precision {qualifier} {type};
-    // where {qualifier} is one of lowp,mediump or hightp
-    // type is any valid GLES defined type (we do not check that here!)
-    // NOTE: This is needed in order to workaround driver bug in
-    //       Intel/Linux where the compiler does not get statement like
-    //       "float;", otherwise we could just define a macro named
-    //       precision to be empty.
-    //
-    const char *src = m_src.c_str();
-
-    enum { 
-        PRECISION,
-        QUALIFIER,
-        SEMICOLON
-    } statementState = PRECISION;
-    const char *precision = NULL;
-    const char *delimiter = NULL;
-    
-    enum {
-        PARSE_NONE,
-        PARSE_IN_C_COMMENT,
-        PARSE_IN_LINE_COMMENT
-    } parseState = PARSE_NONE;
-    const char *c = src;
-    const char *t = NULL;
-
-    #define IS_DELIMITER(c) ( (c) == ' ' || (c) == '\t' || (c) == '\r' || (c) == '\n' )
-    #define IS_TOKEN_START(c) ( ((c) >= 'a' && (c) <='z') || ((c) >= 'A' && (c) <= 'Z') )
-    #define IS_TOKEN_DELIMITER(c) ( IS_DELIMITER(c) || (c) == ';' )
-
-    while( c && *c != '\0') {
-        if (parseState == PARSE_IN_C_COMMENT) {
-            if (*c == '*' && *(c+1) == '/') {
-                parseState = PARSE_NONE;
-                c += 2;
-            }
-            else c++;
-        }
-        else if (parseState == PARSE_IN_LINE_COMMENT) {
-            if (*c == '\n') {
-                parseState = PARSE_NONE;
-            }
-            c++;
-        }
-        else if (*c == '/' && *(c+1) == '/') {
-            parseState = PARSE_IN_LINE_COMMENT;
-            c += 2;
-        }
-        else if (*c == '/' && *(c+1) == '*') {
-            parseState = PARSE_IN_C_COMMENT;
-            c += 2;
-        }
-        else if (t && IS_TOKEN_DELIMITER(*c)) {
-            int tokenLen = c - t;
-            switch (statementState) {
-            case PRECISION:
-                if (tokenLen == 9 && !strncmp(t,"precision",9)) {
-                    statementState = QUALIFIER;
-                    precision = t;
-                }
-                break;
-            case QUALIFIER:
-                if ((tokenLen == 4 && !strncmp(t,"lowp",4)) ||
-                    (tokenLen == 7 && !strncmp(t,"mediump",7)) ||
-                    (tokenLen == 5 && !strncmp(t,"highp",5))) {
-                    statementState = SEMICOLON;
-                }
-                else {
-                    statementState = PRECISION;
-                }
-                break;
-            case SEMICOLON:
-                if (*c == ';') {
-                    for (char *r = (char *)precision; r<=c ; ++r) {
-                        *r = ' '; //blank the character
-                    }
-                }
-                statementState = PRECISION; //search for the next precision line
-                break;
-            default:
-                break;
-            }
-            c++;
-            t = NULL;
-        }
-        else if (IS_DELIMITER(*c)) {
-            c++;
-        }
-        else {
-            if (!t && IS_TOKEN_START(*c)) {
-                t = c;
-            }
-            c++;
-        }
-    }
-}
-
-void ShaderParser::parseExtendDefaultPrecision(){
-
-    //the precision lines which we need to add to the shader
-    static const GLchar extend[] = {
-                                      "#define GLES 1\n"
-                                      "precision lowp sampler2D;\n"
-                                      "precision lowp samplerCube;\n"
-                                   };
-
-    m_parsedSrc+=extend;
-}
-
-void ShaderParser::clearParsedSrc(){
-    m_parsedSrc.clear();
-}
-
-GLenum ShaderParser::getType() {
-    return m_type;
-}
-
-void ShaderParser::setInfoLog(GLchar* infoLog)
-{
-    delete[] m_infoLog;
-    m_infoLog = infoLog;
-}
-
-GLchar* ShaderParser::getInfoLog()
-{   
-    return m_infoLog;
-}
-
-ShaderParser::~ShaderParser(){
-    clearParsedSrc();
-    if (m_originalSrc)
-        free(m_originalSrc);
-    delete[] m_infoLog;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ShaderParser.h b/tools/emulator/opengl/host/libs/Translator/GLES_V2/ShaderParser.h
deleted file mode 100644
index 8c0ff3e..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLES_V2/ShaderParser.h
+++ /dev/null
@@ -1,38 +0,0 @@
-#ifndef SHADER_PARSER_H
-#define SHADER_PARSER_H
-
-#include "GLESv2Context.h"
-#include <string>
-#include <GLES2/gl2.h>
-#include <GLcommon/objectNameManager.h>
-
-class ShaderParser:public ObjectData{
-public:
-    ShaderParser();
-    ShaderParser(GLenum type);
-    void           setSrc(const Version& ver,GLsizei count,const GLchar** strings,const GLint* length);
-    const char*    getOriginalSrc();
-    const GLchar** parsedLines();
-    GLenum         getType();
-    ~ShaderParser();
-
-    void setInfoLog(GLchar * infoLog);
-    GLchar* getInfoLog();
-
-private:
-    void parseOriginalSrc();
-    void parseGLSLversion();
-    void parseBuiltinConstants();
-    void parseOmitPrecision();
-    void parseExtendDefaultPrecision();
-    void parseLineNumbers();
-    void clearParsedSrc();
-
-    GLenum      m_type;
-    char*       m_originalSrc;
-    std::string m_src;
-    std::string m_parsedSrc;
-    GLchar*     m_parsedLines;
-    GLchar*     m_infoLog;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk b/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
deleted file mode 100644
index 88d8bdf..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/Android.mk
+++ /dev/null
@@ -1,41 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-### EGL host implementation ########################
-$(call emugl-begin-host-static-library,libGLcommon)
-
-$(call emugl-import,libOpenglOsUtils)
-
-translator_path := $(LOCAL_PATH)/..
-
-LOCAL_SRC_FILES :=           \
-     GLDispatch.cpp          \
-     GLutils.cpp             \
-     GLEScontext.cpp         \
-     GLESvalidate.cpp        \
-     GLESpointer.cpp         \
-     GLESbuffer.cpp          \
-     DummyGLfuncs.cpp        \
-     RangeManip.cpp          \
-     TextureUtils.cpp        \
-     PaletteTexture.cpp      \
-     etc1.cpp                \
-     objectNameManager.cpp   \
-     FramebufferData.cpp
-
-ifeq ($(HOST_OS),linux)
-#    $(call emugl-export,LDFLAGS,-Wl,--whole-archive)
-    $(call emugl-export,LDLIBS,-lGL -ldl)
-    GL_COMMON_LINKER_FLAGS := -Wl,-Bsymbolic
-    $(call emugl-export,LDFLAGS,$(GL_COMMON_LINKER_FLAGS))
-endif
-
-ifeq ($(HOST_OS),windows)
-    $(call emugl-export,LDLIBS,-lopengl32 -lgdi32)
-    GL_COMMON_LINKER_FLAGS := -Wl,--add-stdcall-alias
-    $(call emugl-export,LDFLAGS,$(GL_COMMON_LINKER_FLAGS))
-endif
-
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH)/../include $(EMUGL_PATH)/shared)
-$(call emugl-export,STATIC_LIBRARIES, libcutils libutils liblog)
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/DummyGLfuncs.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/DummyGLfuncs.cpp
deleted file mode 100644
index 722aca0..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/DummyGLfuncs.cpp
+++ /dev/null
@@ -1,256 +0,0 @@
-#include "DummyGLfuncs.h"
-
-/*
-* Copyright (C) 2011 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.
-*/
-
-    void GLAPIENTRY dummy_glActiveTexture ( GLenum texture ){}
-    void GLAPIENTRY dummy_glBindBuffer (GLenum target, GLuint buffer){}
-    void GLAPIENTRY dummy_glBindTexture (GLenum target, GLuint texture){}
-    void GLAPIENTRY dummy_glBlendFunc (GLenum sfactor, GLenum dfactor){}
-    void GLAPIENTRY dummy_glBlendEquation( GLenum mode ){}
-    void GLAPIENTRY dummy_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha){}
-    void GLAPIENTRY dummy_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha){}
-    void GLAPIENTRY dummy_glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage){}
-    void GLAPIENTRY dummy_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data){}
-    void GLAPIENTRY dummy_glClear(GLbitfield mask){}
-    void GLAPIENTRY dummy_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha){}
-    void GLAPIENTRY dummy_glClearStencil(GLint s){}
-    void GLAPIENTRY dummy_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha){}
-    void GLAPIENTRY dummy_glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ){}
-    void GLAPIENTRY dummy_glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ){}
-    void GLAPIENTRY dummy_glCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border){}
-    void GLAPIENTRY dummy_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height){}
-    void GLAPIENTRY dummy_glCullFace(GLenum mode){}
-    void GLAPIENTRY dummy_glDeleteBuffers(GLsizei n, const GLuint *buffers){}
-    void GLAPIENTRY dummy_glDeleteTextures(GLsizei n, const GLuint *textures){}
-    void GLAPIENTRY dummy_glDepthFunc(GLenum func){}
-    void GLAPIENTRY dummy_glDepthMask(GLboolean flag){}
-    void GLAPIENTRY dummy_glDepthRange(GLclampd zNear, GLclampd zFar){}
-    void GLAPIENTRY dummy_glDisable(GLenum cap){}
-    void GLAPIENTRY dummy_glDrawArrays(GLenum mode, GLint first, GLsizei count){}
-    void GLAPIENTRY dummy_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices){}
-    void GLAPIENTRY dummy_glEnable(GLenum cap){}
-    void GLAPIENTRY dummy_glFinish(void){}
-    void GLAPIENTRY dummy_glFlush(void){}
-    void GLAPIENTRY dummy_glFrontFace(GLenum mode){}
-    void GLAPIENTRY dummy_glGenBuffers(GLsizei n, GLuint *buffers){}
-    void GLAPIENTRY dummy_glGenTextures(GLsizei n, GLuint *textures){}
-    void GLAPIENTRY dummy_glGetBooleanv(GLenum pname, GLboolean *params){}
-    void GLAPIENTRY dummy_glGetBufferParameteriv(GLenum, GLenum, GLint *){}
-    GLenum GLAPIENTRY dummy_glGetError(void){ return 0;}
-    void GLAPIENTRY dummy_glGetFloatv(GLenum pname, GLfloat *params){}
-    void GLAPIENTRY dummy_glGetIntegerv(GLenum pname, GLint *params){}
-    const GLubyte * GLAPIENTRY dummy_glGetString(GLenum name){ return 0;}
-    void GLAPIENTRY dummy_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params){}
-    void GLAPIENTRY dummy_glGetTexParameteriv(GLenum target, GLenum pname, GLint *params){}
-    void GLAPIENTRY dummy_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params){}
-    void GLAPIENTRY dummy_glHint(GLenum target, GLenum mode){}
-    GLboolean GLAPIENTRY dummy_glIsBuffer(GLuint){ return false;}
-    GLboolean GLAPIENTRY dummy_glIsEnabled(GLenum cap){ return false;}
-    GLboolean GLAPIENTRY dummy_glIsTexture(GLuint texture){return false;}
-    void GLAPIENTRY dummy_glLineWidth(GLfloat width){}
-    void GLAPIENTRY dummy_glPolygonOffset(GLfloat factor, GLfloat units){}
-    void GLAPIENTRY dummy_glPixelStorei(GLenum pname, GLint param){}
-    void GLAPIENTRY dummy_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels){}
-    void GLAPIENTRY dummy_glSampleCoverage(GLclampf value, GLboolean invert ){}
-    void GLAPIENTRY dummy_glScissor(GLint x, GLint y, GLsizei width, GLsizei height){}
-    void GLAPIENTRY dummy_glStencilFunc(GLenum func, GLint ref, GLuint mask){}
-    void GLAPIENTRY dummy_glStencilMask(GLuint mask){}
-    void GLAPIENTRY dummy_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass){}
-    void GLAPIENTRY dummy_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels){}
-    void GLAPIENTRY dummy_glTexParameteri(GLenum target, GLenum pname, GLint param){}
-    void GLAPIENTRY dummy_glTexParameteriv(GLenum target, GLenum pname, const GLint *params){}
-    void GLAPIENTRY dummy_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels){}
-    void GLAPIENTRY dummy_glViewport(GLint x, GLint y, GLsizei width, GLsizei height){}
-    void GLAPIENTRY dummy_glPushAttrib( GLbitfield mask ){}
-    void GLAPIENTRY dummy_glPopAttrib( void ){}
-    void GLAPIENTRY dummy_glPushClientAttrib( GLbitfield mask ){}
-    void GLAPIENTRY dummy_glPopClientAttrib( void ){}
-
-    /* OpenGL functions which are needed ONLY for implementing GLES 1.1*/
-    void GLAPIENTRY dummy_glAlphaFunc(GLenum func, GLclampf ref){}
-    void GLAPIENTRY dummy_glBegin( GLenum mode ){}
-    void GLAPIENTRY dummy_glClearDepth(GLclampd depth){}
-    void GLAPIENTRY dummy_glClientActiveTexture( GLenum texture ){}
-    void GLAPIENTRY dummy_glClipPlane(GLenum plane, const GLdouble *equation){}
-    void GLAPIENTRY dummy_glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha){}
-    void GLAPIENTRY dummy_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha){}
-    void GLAPIENTRY dummy_glColor4fv( const GLfloat *v ){}
-    void GLAPIENTRY dummy_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha){}
-    void GLAPIENTRY dummy_glColor4ubv( const GLubyte *v ){}
-    void GLAPIENTRY dummy_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer){}
-    void GLAPIENTRY dummy_glDisableClientState(GLenum array){}
-    void GLAPIENTRY dummy_glEnableClientState(GLenum array){}
-    void GLAPIENTRY dummy_glEnd(void){}
-    void GLAPIENTRY dummy_glFogf(GLenum pname, GLfloat param){}
-    void GLAPIENTRY dummy_glFogfv(GLenum pname, const GLfloat *params){}
-    void GLAPIENTRY dummy_glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar){}
-    void GLAPIENTRY dummy_glGetClipPlane(GLenum plane, GLdouble *equation){}
-    void GLAPIENTRY dummy_glGetDoublev( GLenum pname, GLdouble *params ){}
-    void GLAPIENTRY dummy_glGetLightfv(GLenum light, GLenum pname, GLfloat *params){}
-    void GLAPIENTRY dummy_glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params){}
-    void GLAPIENTRY dummy_glGetPointerv(GLenum pname, GLvoid* *params){}
-    void GLAPIENTRY dummy_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params){}
-    void GLAPIENTRY dummy_glGetTexEnviv(GLenum target, GLenum pname, GLint *params){}
-    void GLAPIENTRY dummy_glLightf(GLenum light, GLenum pname, GLfloat param){}
-    void GLAPIENTRY dummy_glLightfv(GLenum light, GLenum pname, const GLfloat *params){}
-    void GLAPIENTRY dummy_glLightModelf(GLenum pname, GLfloat param){}
-    void GLAPIENTRY dummy_glLightModelfv(GLenum pname, const GLfloat *params){}
-    void GLAPIENTRY dummy_glLoadIdentity(void){}
-    void GLAPIENTRY dummy_glLoadMatrixf(const GLfloat *m){}
-    void GLAPIENTRY dummy_glLogicOp(GLenum opcode){}
-    void GLAPIENTRY dummy_glMaterialf(GLenum face, GLenum pname, GLfloat param){}
-    void GLAPIENTRY dummy_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params){}
-    void GLAPIENTRY dummy_glMultiTexCoord2fv( GLenum target, const GLfloat *v ){}
-    void GLAPIENTRY dummy_glMultiTexCoord2sv( GLenum target, const GLshort *v ){}
-    void GLAPIENTRY dummy_glMultiTexCoord3fv( GLenum target, const GLfloat *v ){}
-    void GLAPIENTRY dummy_glMultiTexCoord3sv( GLenum target, const GLshort *v ){}
-    void GLAPIENTRY dummy_glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ){}
-    void GLAPIENTRY dummy_glMultiTexCoord4fv( GLenum target, const GLfloat *v ){}
-    void GLAPIENTRY dummy_glMultiTexCoord4sv( GLenum target, const GLshort *v ){}
-    void GLAPIENTRY dummy_glMultMatrixf(const GLfloat *m){}
-    void GLAPIENTRY dummy_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz){}
-    void GLAPIENTRY dummy_glNormal3fv( const GLfloat *v ){}
-    void GLAPIENTRY dummy_glNormal3sv(const GLshort *v ){}
-    void GLAPIENTRY dummy_glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar){}
-    void GLAPIENTRY dummy_glPointParameterf(GLenum, GLfloat){}
-    void GLAPIENTRY dummy_glPointParameterfv(GLenum, const GLfloat *){}
-    void GLAPIENTRY dummy_glPointSize(GLfloat size){}
-    void GLAPIENTRY dummy_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z){}
-    void GLAPIENTRY dummy_glScalef(GLfloat x, GLfloat y, GLfloat z){}
-    void GLAPIENTRY dummy_glTexEnvf(GLenum target, GLenum pname, GLfloat param){}
-    void GLAPIENTRY dummy_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params){}
-    void GLAPIENTRY dummy_glTexParameterf(GLenum target, GLenum pname, GLfloat param){}
-    void GLAPIENTRY dummy_glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params){}
-    void GLAPIENTRY dummy_glMatrixMode(GLenum mode){}
-    void GLAPIENTRY dummy_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer){}
-    void GLAPIENTRY dummy_glPopMatrix(void){}
-    void GLAPIENTRY dummy_glPushMatrix(void){}
-    void GLAPIENTRY dummy_glShadeModel(GLenum mode){}
-    void GLAPIENTRY dummy_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer){}
-    void GLAPIENTRY dummy_glTexEnvi(GLenum target, GLenum pname, GLint param){}
-    void GLAPIENTRY dummy_glTexEnviv(GLenum target, GLenum pname, const GLint *params){}
-    void GLAPIENTRY dummy_glTranslatef(GLfloat x, GLfloat y, GLfloat z){}
-    void GLAPIENTRY dummy_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer){}
-
-    /* OpenGL functions which are needed ONLY for implementing GLES 1.1 EXTENSIONS*/
-    GLboolean GLAPIENTRY dummy_glIsRenderbufferEXT(GLuint renderbuffer){ return false;}
-    void GLAPIENTRY dummy_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer){}
-    void GLAPIENTRY dummy_glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers){}
-    void GLAPIENTRY dummy_glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers){}
-    void GLAPIENTRY dummy_glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height){}
-    void GLAPIENTRY dummy_glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params){}
-    GLboolean GLAPIENTRY dummy_glIsFramebufferEXT(GLuint framebuffer){ return false;}
-    void GLAPIENTRY dummy_glBindFramebufferEXT(GLenum target, GLuint framebuffer){}
-    void GLAPIENTRY dummy_glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers){}
-    void GLAPIENTRY dummy_glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers){}
-    GLenum GLAPIENTRY dummy_glCheckFramebufferStatusEXT(GLenum target){ return 0;}
-    void GLAPIENTRY dummy_glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level){}
-    void GLAPIENTRY dummy_glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level){}
-    void GLAPIENTRY dummy_glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset){}
-    void GLAPIENTRY dummy_glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer){}
-    void GLAPIENTRY dummy_glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params){}
-    void GLAPIENTRY dummy_glGenerateMipmapEXT(GLenum target){}
-    void GLAPIENTRY dummy_glCurrentPaletteMatrixARB(GLint index){}
-    void GLAPIENTRY dummy_glMatrixIndexuivARB(GLint size, GLuint * indices){}
-    void GLAPIENTRY dummy_glMatrixIndexPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer){}
-    void GLAPIENTRY dummy_glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer){}
-    void GLAPIENTRY dummy_glTexGenf(GLenum coord, GLenum pname, GLfloat param ){}
-    void GLAPIENTRY dummy_glTexGeni(GLenum coord, GLenum pname, GLint param ){}
-    void GLAPIENTRY dummy_glTexGenf(GLenum coord, GLenum pname, const GLfloat *params ){}
-    void GLAPIENTRY dummy_glTexGeniv(GLenum coord, GLenum pname, const GLint *params ){}
-    void GLAPIENTRY dummy_glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params ){}
-    void GLAPIENTRY dummy_glGetTexGeniv(GLenum coord, GLenum pname, GLint *params ){}
-
-    /* Loading OpenGL functions which are needed ONLY for implementing GLES 2.0*/
-    void GL_APIENTRY dummy_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha){}
-    void GL_APIENTRY dummy_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask){}
-    void GL_APIENTRY dummy_glStencilMaskSeparate(GLenum face, GLuint mask){}
-    void GL_APIENTRY dummy_glGenerateMipmap(GLenum target){}
-    void GL_APIENTRY dummy_glBindFramebuffer(GLenum target, GLuint framebuffer){}
-    void GL_APIENTRY dummy_glBindRenderbuffer(GLenum target, GLuint renderbuffer){}
-    void GL_APIENTRY dummy_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers){}
-    void GL_APIENTRY dummy_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers){}
-    GLboolean GL_APIENTRY dummy_glIsProgram(GLuint program){ return false;}
-    GLboolean GL_APIENTRY dummy_glIsShader(GLuint shader){ return false;}
-    void GL_APIENTRY dummy_glVertexAttrib1f(GLuint indx, GLfloat x){}
-    void GL_APIENTRY dummy_glVertexAttrib1fv(GLuint indx, const GLfloat* values){}
-    void GL_APIENTRY dummy_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y){}
-    void GL_APIENTRY dummy_glVertexAttrib2fv(GLuint indx, const GLfloat* values){}
-    void GL_APIENTRY dummy_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z){}
-    void GL_APIENTRY dummy_glVertexAttrib3fv(GLuint indx, const GLfloat* values){}
-    void GL_APIENTRY dummy_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w){}
-    void GL_APIENTRY dummy_glVertexAttrib4fv(GLuint indx, const GLfloat* values){}
-    void GL_APIENTRY dummy_glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr){}
-    void GL_APIENTRY dummy_glDisableVertexAttribArray(GLuint index){}
-    void GL_APIENTRY dummy_glEnableVertexAttribArray(GLuint index){}
-    void GL_APIENTRY dummy_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params){}
-    void GL_APIENTRY dummy_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params){}
-    void GL_APIENTRY dummy_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer){}
-    void GL_APIENTRY dummy_glUniform1f(GLint location, GLfloat x){}
-    void GL_APIENTRY dummy_glUniform1fv(GLint location, GLsizei count, const GLfloat* v){}
-    void GL_APIENTRY dummy_glUniform1i(GLint location, GLint x){}
-    void GL_APIENTRY dummy_glUniform1iv(GLint location, GLsizei count, const GLint* v){}
-    void GL_APIENTRY dummy_glUniform2f(GLint location, GLfloat x, GLfloat y){}
-    void GL_APIENTRY dummy_glUniform2fv(GLint location, GLsizei count, const GLfloat* v){}
-    void GL_APIENTRY dummy_glUniform2i(GLint location, GLint x, GLint y){}
-    void GL_APIENTRY dummy_glUniform2iv(GLint location, GLsizei count, const GLint* v){}
-    void GL_APIENTRY dummy_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z){}
-    void GL_APIENTRY dummy_glUniform3fv(GLint location, GLsizei count, const GLfloat* v){}
-    void GL_APIENTRY dummy_glUniform3i(GLint location, GLint x, GLint y, GLint z){}
-    void GL_APIENTRY dummy_glUniform3iv(GLint location, GLsizei count, const GLint* v){}
-    void GL_APIENTRY dummy_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w){}
-    void GL_APIENTRY dummy_glUniform4fv(GLint location, GLsizei count, const GLfloat* v){}
-    void GL_APIENTRY dummy_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w){}
-    void GL_APIENTRY dummy_glUniform4iv(GLint location, GLsizei count, const GLint* v){}
-    void GL_APIENTRY dummy_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value){}
-    void GL_APIENTRY dummy_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value){}
-    void GL_APIENTRY dummy_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value){}
-    void GL_APIENTRY dummy_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params){}
-    void GL_APIENTRY dummy_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params){}
-    GLboolean GL_APIENTRY dummy_glIsFramebuffer(GLuint framebuffer){ return false;}
-    GLboolean GL_APIENTRY dummy_glIsRenderbuffer(GLuint renderbuffer){ return false;}
-    GLenum GL_APIENTRY dummy_glCheckFramebufferStatus(GLenum target){ return 0;}
-    void GL_APIENTRY dummy_glAttachShader(GLuint program, GLuint shader){}
-    void GL_APIENTRY dummy_glBindAttribLocation(GLuint program, GLuint index, const GLchar* name){}
-    void GL_APIENTRY dummy_glCompileShader(GLuint shader){}
-    GLuint GL_APIENTRY dummy_glCreateProgram(void){ return 0;}
-    GLuint GL_APIENTRY dummy_glCreateShader(GLenum type){ return 0;}
-    void GL_APIENTRY dummy_glDeleteProgram(GLuint program){}
-    void GL_APIENTRY dummy_glDeleteShader(GLuint shader){}
-    void GL_APIENTRY dummy_glDetachShader(GLuint program, GLuint shader){}
-    void GL_APIENTRY dummy_glLinkProgram(GLuint program){}
-    void GL_APIENTRY dummy_glUseProgram(GLuint program){}
-    void GL_APIENTRY dummy_glValidateProgram(GLuint program){}
-    void GL_APIENTRY dummy_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name){}
-    void GL_APIENTRY dummy_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name){}
-    void GL_APIENTRY dummy_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders){}
-    int  GL_APIENTRY dummy_glGetAttribLocation(GLuint program, const GLchar* name){ return 0;}
-    void GL_APIENTRY dummy_glGetProgramiv(GLuint program, GLenum pname, GLint* params){}
-    void GL_APIENTRY dummy_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog){}
-    void GL_APIENTRY dummy_glGetShaderiv(GLuint shader, GLenum pname, GLint* params){}
-    void GL_APIENTRY dummy_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog){}
-    void GL_APIENTRY dummy_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision){}
-    void GL_APIENTRY dummy_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source){}
-    void GL_APIENTRY dummy_glGetUniformfv(GLuint program, GLint location, GLfloat* params){}
-    void GL_APIENTRY dummy_glGetUniformiv(GLuint program, GLint location, GLint* params){}
-    int  GL_APIENTRY dummy_glGetUniformLocation(GLuint program, const GLchar* name){ return 0;}
-    void GL_APIENTRY dummy_glReleaseShaderCompiler(void){}
-    void GL_APIENTRY dummy_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height){}
-    void GL_APIENTRY dummy_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length){}
-    void GL_APIENTRY dummy_glShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length){}
-    void GL_APIENTRY dummy_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer){}
-    void GL_APIENTRY dummy_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level){}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/DummyGLfuncs.h b/tools/emulator/opengl/host/libs/Translator/GLcommon/DummyGLfuncs.h
deleted file mode 100644
index c7e3519..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/DummyGLfuncs.h
+++ /dev/null
@@ -1,265 +0,0 @@
-#ifndef DUMMY_GL_FUNCS_H
-#define DUMMY_GL_FUNCS_H
-
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <GLES/gl.h>
-#include <GLES2/gl2.h>
-
-#include <GLcommon/gldefs.h>
-#define GLAPIENTRY GL_APIENTRY
-
-    void GLAPIENTRY dummy_glActiveTexture ( GLenum texture );
-    void GLAPIENTRY dummy_glBindBuffer (GLenum target, GLuint buffer);
-    void GLAPIENTRY dummy_glBindTexture (GLenum target, GLuint texture);
-    void GLAPIENTRY dummy_glBlendFunc (GLenum sfactor, GLenum dfactor);
-    void GLAPIENTRY dummy_glBlendEquation( GLenum mode );
-    void GLAPIENTRY dummy_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
-    void GLAPIENTRY dummy_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-    void GLAPIENTRY dummy_glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-    void GLAPIENTRY dummy_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-    void GLAPIENTRY dummy_glClear(GLbitfield mask);
-    void GLAPIENTRY dummy_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    void GLAPIENTRY dummy_glClearStencil(GLint s);
-    void GLAPIENTRY dummy_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-    void GLAPIENTRY dummy_glCompressedTexImage2D( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
-    void GLAPIENTRY dummy_glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
-    void GLAPIENTRY dummy_glCopyTexImage2D(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-    void GLAPIENTRY dummy_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-    void GLAPIENTRY dummy_glCullFace(GLenum mode);
-    void GLAPIENTRY dummy_glDeleteBuffers(GLsizei n, const GLuint *buffers);
-    void GLAPIENTRY dummy_glDeleteTextures(GLsizei n, const GLuint *textures);
-    void GLAPIENTRY dummy_glDepthFunc(GLenum func);
-    void GLAPIENTRY dummy_glDepthMask(GLboolean flag);
-    void GLAPIENTRY dummy_glDepthRange(GLclampd zNear, GLclampd zFar);
-    void GLAPIENTRY dummy_glDisable(GLenum cap);
-    void GLAPIENTRY dummy_glDrawArrays(GLenum mode, GLint first, GLsizei count);
-    void GLAPIENTRY dummy_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-    void GLAPIENTRY dummy_glEnable(GLenum cap);
-    void GLAPIENTRY dummy_glFinish(void);
-    void GLAPIENTRY dummy_glFlush(void);
-    void GLAPIENTRY dummy_glFrontFace(GLenum mode);
-    void GLAPIENTRY dummy_glGenBuffers(GLsizei n, GLuint *buffers);
-    void GLAPIENTRY dummy_glGenTextures(GLsizei n, GLuint *textures);
-    void GLAPIENTRY dummy_glGetBooleanv(GLenum pname, GLboolean *params);
-    void GLAPIENTRY dummy_glGetBufferParameteriv(GLenum, GLenum, GLint *);
-    GLenum GLAPIENTRY dummy_glGetError(void);
-    void GLAPIENTRY dummy_glGetFloatv(GLenum pname, GLfloat *params);
-    void GLAPIENTRY dummy_glGetIntegerv(GLenum pname, GLint *params);
-    const GLubyte * GLAPIENTRY dummy_glGetString(GLenum name);
-    void GLAPIENTRY dummy_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
-    void GLAPIENTRY dummy_glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
-    void GLAPIENTRY dummy_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
-    void GLAPIENTRY dummy_glHint(GLenum target, GLenum mode);
-    GLboolean GLAPIENTRY dummy_glIsBuffer(GLuint);
-    GLboolean GLAPIENTRY dummy_glIsEnabled(GLenum cap);
-    GLboolean GLAPIENTRY dummy_glIsTexture(GLuint texture);
-    void GLAPIENTRY dummy_glLineWidth(GLfloat width);
-    void GLAPIENTRY dummy_glPolygonOffset(GLfloat factor, GLfloat units);
-    void GLAPIENTRY dummy_glPixelStorei(GLenum pname, GLint param);
-    void GLAPIENTRY dummy_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-    void GLAPIENTRY dummy_glSampleCoverage(GLclampf value, GLboolean invert );
-    void GLAPIENTRY dummy_glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
-    void GLAPIENTRY dummy_glStencilFunc(GLenum func, GLint ref, GLuint mask);
-    void GLAPIENTRY dummy_glStencilMask(GLuint mask);
-    void GLAPIENTRY dummy_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
-    void GLAPIENTRY dummy_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-    void GLAPIENTRY dummy_glTexParameteri(GLenum target, GLenum pname, GLint param);
-    void GLAPIENTRY dummy_glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
-    void GLAPIENTRY dummy_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-    void GLAPIENTRY dummy_glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
-    void GLAPIENTRY dummy_glPushAttrib( GLbitfield mask );
-    void GLAPIENTRY dummy_glPopAttrib( void );
-    void GLAPIENTRY dummy_glPushClientAttrib( GLbitfield mask );
-    void GLAPIENTRY dummy_glPopClientAttrib( void );
-
-    /* OpenGL functions which are needed ONLY for implementing GLES 1.1*/
-    void GLAPIENTRY dummy_glAlphaFunc(GLenum func, GLclampf ref);
-    void GLAPIENTRY dummy_glBegin( GLenum mode );
-    void GLAPIENTRY dummy_glClearDepth(GLclampd depth);
-    void GLAPIENTRY dummy_glClientActiveTexture( GLenum texture );
-    void GLAPIENTRY dummy_glClipPlane(GLenum plane, const GLdouble *equation);
-    void GLAPIENTRY dummy_glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-    void GLAPIENTRY dummy_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-    void GLAPIENTRY dummy_glColor4fv( const GLfloat *v );
-    void GLAPIENTRY dummy_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-    void GLAPIENTRY dummy_glColor4ubv( const GLubyte *v );
-    void GLAPIENTRY dummy_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    void GLAPIENTRY dummy_glDisableClientState(GLenum array);
-    void GLAPIENTRY dummy_glEnableClientState(GLenum array);
-    void GLAPIENTRY dummy_glEnd(void);
-    void GLAPIENTRY dummy_glFogf(GLenum pname, GLfloat param);
-    void GLAPIENTRY dummy_glFogfv(GLenum pname, const GLfloat *params);
-    void GLAPIENTRY dummy_glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-    void GLAPIENTRY dummy_glGetClipPlane(GLenum plane, GLdouble *equation);
-    void GLAPIENTRY dummy_glGetDoublev( GLenum pname, GLdouble *params );
-    void GLAPIENTRY dummy_glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
-    void GLAPIENTRY dummy_glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
-    void GLAPIENTRY dummy_glGetPointerv(GLenum pname, GLvoid* *params);
-    void GLAPIENTRY dummy_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
-    void GLAPIENTRY dummy_glGetTexEnviv(GLenum target, GLenum pname, GLint *params);
-    void GLAPIENTRY dummy_glLightf(GLenum light, GLenum pname, GLfloat param);
-    void GLAPIENTRY dummy_glLightfv(GLenum light, GLenum pname, const GLfloat *params);
-    void GLAPIENTRY dummy_glLightModelf(GLenum pname, GLfloat param);
-    void GLAPIENTRY dummy_glLightModelfv(GLenum pname, const GLfloat *params);
-    void GLAPIENTRY dummy_glLoadIdentity(void);
-    void GLAPIENTRY dummy_glLoadMatrixf(const GLfloat *m);
-    void GLAPIENTRY dummy_glLogicOp(GLenum opcode);
-    void GLAPIENTRY dummy_glMaterialf(GLenum face, GLenum pname, GLfloat param);
-    void GLAPIENTRY dummy_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params);
-    void GLAPIENTRY dummy_glMultiTexCoord2fv( GLenum target, const GLfloat *v );
-    void GLAPIENTRY dummy_glMultiTexCoord2sv( GLenum target, const GLshort *v );
-    void GLAPIENTRY dummy_glMultiTexCoord3fv( GLenum target, const GLfloat *v );
-    void GLAPIENTRY dummy_glMultiTexCoord3sv( GLenum target, const GLshort *v );
-    void GLAPIENTRY dummy_glMultiTexCoord4f( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
-    void GLAPIENTRY dummy_glMultiTexCoord4fv( GLenum target, const GLfloat *v );
-    void GLAPIENTRY dummy_glMultiTexCoord4sv( GLenum target, const GLshort *v );
-    void GLAPIENTRY dummy_glMultMatrixf(const GLfloat *m);
-    void GLAPIENTRY dummy_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
-    void GLAPIENTRY dummy_glNormal3fv( const GLfloat *v );
-    void GLAPIENTRY dummy_glNormal3sv(const GLshort *v );
-    void GLAPIENTRY dummy_glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-    void GLAPIENTRY dummy_glPointParameterf(GLenum, GLfloat);
-    void GLAPIENTRY dummy_glPointParameterfv(GLenum, const GLfloat *);
-    void GLAPIENTRY dummy_glPointSize(GLfloat size);
-    void GLAPIENTRY dummy_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-    void GLAPIENTRY dummy_glScalef(GLfloat x, GLfloat y, GLfloat z);
-    void GLAPIENTRY dummy_glTexEnvf(GLenum target, GLenum pname, GLfloat param);
-    void GLAPIENTRY dummy_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
-    void GLAPIENTRY dummy_glTexParameterf(GLenum target, GLenum pname, GLfloat param);
-    void GLAPIENTRY dummy_glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
-    void GLAPIENTRY dummy_glMatrixMode(GLenum mode);
-    void GLAPIENTRY dummy_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
-    void GLAPIENTRY dummy_glPopMatrix(void);
-    void GLAPIENTRY dummy_glPushMatrix(void);
-    void GLAPIENTRY dummy_glShadeModel(GLenum mode);
-    void GLAPIENTRY dummy_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    void GLAPIENTRY dummy_glTexEnvi(GLenum target, GLenum pname, GLint param);
-    void GLAPIENTRY dummy_glTexEnviv(GLenum target, GLenum pname, const GLint *params);
-    void GLAPIENTRY dummy_glTranslatef(GLfloat x, GLfloat y, GLfloat z);
-    void GLAPIENTRY dummy_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-
-    /* OpenGL functions which are needed ONLY for implementing GLES 1.1 EXTENSIONS*/
-    GLboolean GLAPIENTRY dummy_glIsRenderbufferEXT(GLuint renderbuffer);
-    void GLAPIENTRY dummy_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer);
-    void GLAPIENTRY dummy_glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers);
-    void GLAPIENTRY dummy_glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers);
-    void GLAPIENTRY dummy_glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-    void GLAPIENTRY dummy_glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params);
-    GLboolean GLAPIENTRY dummy_glIsFramebufferEXT(GLuint framebuffer);
-    void GLAPIENTRY dummy_glBindFramebufferEXT(GLenum target, GLuint framebuffer);
-    void GLAPIENTRY dummy_glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers);
-    void GLAPIENTRY dummy_glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers);
-    GLenum GLAPIENTRY dummy_glCheckFramebufferStatusEXT(GLenum target);
-    void GLAPIENTRY dummy_glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-    void GLAPIENTRY dummy_glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-    void GLAPIENTRY dummy_glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-    void GLAPIENTRY dummy_glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-    void GLAPIENTRY dummy_glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params);
-    void GLAPIENTRY dummy_glGenerateMipmapEXT(GLenum target);
-    void GLAPIENTRY dummy_glCurrentPaletteMatrixARB(GLint index);
-    void GLAPIENTRY dummy_glMatrixIndexuivARB(GLint size, GLuint * indices);
-    void GLAPIENTRY dummy_glMatrixIndexPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
-    void GLAPIENTRY dummy_glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
-    void GLAPIENTRY dummy_glTexGenf(GLenum coord, GLenum pname, GLfloat param );
-    void GLAPIENTRY dummy_glTexGeni(GLenum coord, GLenum pname, GLint param );
-    void GLAPIENTRY dummy_glTexGenf(GLenum coord, GLenum pname, const GLfloat *params );
-    void GLAPIENTRY dummy_glTexGeniv(GLenum coord, GLenum pname, const GLint *params );
-    void GLAPIENTRY dummy_glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params );
-    void GLAPIENTRY dummy_glGetTexGeniv(GLenum coord, GLenum pname, GLint *params );
-
-    /* Loading OpenGL functions which are needed ONLY for implementing GLES 2.0*/
-    void GL_APIENTRY dummy_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    void GL_APIENTRY dummy_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
-    void GL_APIENTRY dummy_glStencilMaskSeparate(GLenum face, GLuint mask);
-    void GL_APIENTRY dummy_glGenerateMipmap(GLenum target);
-    void GL_APIENTRY dummy_glBindFramebuffer(GLenum target, GLuint framebuffer);
-    void GL_APIENTRY dummy_glBindRenderbuffer(GLenum target, GLuint renderbuffer);
-    void GL_APIENTRY dummy_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
-    void GL_APIENTRY dummy_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
-    GLboolean GL_APIENTRY dummy_glIsProgram(GLuint program);
-    GLboolean GL_APIENTRY dummy_glIsShader(GLuint shader);
-    void GL_APIENTRY dummy_glVertexAttrib1f(GLuint indx, GLfloat x);
-    void GL_APIENTRY dummy_glVertexAttrib1fv(GLuint indx, const GLfloat* values);
-    void GL_APIENTRY dummy_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
-    void GL_APIENTRY dummy_glVertexAttrib2fv(GLuint indx, const GLfloat* values);
-    void GL_APIENTRY dummy_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-    void GL_APIENTRY dummy_glVertexAttrib3fv(GLuint indx, const GLfloat* values);
-    void GL_APIENTRY dummy_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    void GL_APIENTRY dummy_glVertexAttrib4fv(GLuint indx, const GLfloat* values);
-    void GL_APIENTRY dummy_glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
-    void GL_APIENTRY dummy_glDisableVertexAttribArray(GLuint index);
-    void GL_APIENTRY dummy_glEnableVertexAttribArray(GLuint index);
-    void GL_APIENTRY dummy_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
-    void GL_APIENTRY dummy_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
-    void GL_APIENTRY dummy_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer);
-    void GL_APIENTRY dummy_glUniform1f(GLint location, GLfloat x);
-    void GL_APIENTRY dummy_glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
-    void GL_APIENTRY dummy_glUniform1i(GLint location, GLint x);
-    void GL_APIENTRY dummy_glUniform1iv(GLint location, GLsizei count, const GLint* v);
-    void GL_APIENTRY dummy_glUniform2f(GLint location, GLfloat x, GLfloat y);
-    void GL_APIENTRY dummy_glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
-    void GL_APIENTRY dummy_glUniform2i(GLint location, GLint x, GLint y);
-    void GL_APIENTRY dummy_glUniform2iv(GLint location, GLsizei count, const GLint* v);
-    void GL_APIENTRY dummy_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
-    void GL_APIENTRY dummy_glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
-    void GL_APIENTRY dummy_glUniform3i(GLint location, GLint x, GLint y, GLint z);
-    void GL_APIENTRY dummy_glUniform3iv(GLint location, GLsizei count, const GLint* v);
-    void GL_APIENTRY dummy_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    void GL_APIENTRY dummy_glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
-    void GL_APIENTRY dummy_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
-    void GL_APIENTRY dummy_glUniform4iv(GLint location, GLsizei count, const GLint* v);
-    void GL_APIENTRY dummy_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-    void GL_APIENTRY dummy_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-    void GL_APIENTRY dummy_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-    void GL_APIENTRY dummy_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
-    void GL_APIENTRY dummy_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
-    GLboolean GL_APIENTRY dummy_glIsFramebuffer(GLuint framebuffer);
-    GLboolean GL_APIENTRY dummy_glIsRenderbuffer(GLuint renderbuffer);
-    GLenum GL_APIENTRY dummy_glCheckFramebufferStatus(GLenum target);
-    void GL_APIENTRY dummy_glAttachShader(GLuint program, GLuint shader);
-    void GL_APIENTRY dummy_glBindAttribLocation(GLuint program, GLuint index, const GLchar* name);
-    void GL_APIENTRY dummy_glCompileShader(GLuint shader);
-    GLuint GL_APIENTRY dummy_glCreateProgram(void);
-    GLuint GL_APIENTRY dummy_glCreateShader(GLenum type);
-    void GL_APIENTRY dummy_glDeleteProgram(GLuint program);
-    void GL_APIENTRY dummy_glDeleteShader(GLuint shader);
-    void GL_APIENTRY dummy_glDetachShader(GLuint program, GLuint shader);
-    void GL_APIENTRY dummy_glLinkProgram(GLuint program);
-    void GL_APIENTRY dummy_glUseProgram(GLuint program);
-    void GL_APIENTRY dummy_glValidateProgram(GLuint program);
-    void GL_APIENTRY dummy_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-    void GL_APIENTRY dummy_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-    void GL_APIENTRY dummy_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
-    int  GL_APIENTRY dummy_glGetAttribLocation(GLuint program, const GLchar* name);
-    void GL_APIENTRY dummy_glGetProgramiv(GLuint program, GLenum pname, GLint* params);
-    void GL_APIENTRY dummy_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-    void GL_APIENTRY dummy_glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
-    void GL_APIENTRY dummy_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-    void GL_APIENTRY dummy_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-    void GL_APIENTRY dummy_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-    void GL_APIENTRY dummy_glGetUniformfv(GLuint program, GLint location, GLfloat* params);
-    void GL_APIENTRY dummy_glGetUniformiv(GLuint program, GLint location, GLint* params);
-    int  GL_APIENTRY dummy_glGetUniformLocation(GLuint program, const GLchar* name);
-    void GL_APIENTRY dummy_glReleaseShaderCompiler(void);
-    void GL_APIENTRY dummy_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-    void GL_APIENTRY dummy_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
-    void GL_APIENTRY dummy_glShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
-    void GL_APIENTRY dummy_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-    void GL_APIENTRY dummy_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/FramebufferData.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/FramebufferData.cpp
deleted file mode 100644
index c923bfc..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/FramebufferData.cpp
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-#include <GLcommon/FramebufferData.h>
-#include <GLcommon/GLEScontext.h>
-
-RenderbufferData::RenderbufferData() : sourceEGLImage(0),
-                         eglImageDetach(NULL),
-                         attachedFB(0),
-                         attachedPoint(0),
-                         eglImageGlobalTexName(0) {
-}
-
-RenderbufferData::~RenderbufferData() {
-    if (sourceEGLImage && eglImageDetach) (*eglImageDetach)(sourceEGLImage);
-}
-
-
-FramebufferData::FramebufferData(GLuint name):m_dirty(false) {
-    m_fbName = name;
-    for (int i=0; i<MAX_ATTACH_POINTS; i++) {
-        m_attachPoints[i].target = 0;
-        m_attachPoints[i].name = 0;
-        m_attachPoints[i].obj = ObjectDataPtr(NULL);
-        m_attachPoints[i].owned = false;
-    }
-}
-
-FramebufferData::~FramebufferData() {
-for (int i=0; i<MAX_ATTACH_POINTS; i++) {
-    detachObject(i);
-}
-}
-
-void FramebufferData::setAttachment(GLenum attachment,
-               GLenum target,
-               GLuint name,
-               ObjectDataPtr obj,
-               bool takeOwnership) {
-int idx = attachmentPointIndex(attachment);
-
-    if (m_attachPoints[idx].target != target ||
-        m_attachPoints[idx].name != name ||
-        m_attachPoints[idx].obj.Ptr() != obj.Ptr() ||
-        m_attachPoints[idx].owned != takeOwnership) {
-
-        detachObject(idx); 
-
-        m_attachPoints[idx].target = target;
-        m_attachPoints[idx].name = name;
-        m_attachPoints[idx].obj = obj;
-        m_attachPoints[idx].owned = takeOwnership;
-
-        if (target == GL_RENDERBUFFER_OES && obj.Ptr() != NULL) {
-            RenderbufferData *rbData = (RenderbufferData *)obj.Ptr();
-            rbData->attachedFB = m_fbName;
-            rbData->attachedPoint = attachment;
-        }
-
-        m_dirty = true;
-    }
-}
-
-GLuint FramebufferData::getAttachment(GLenum attachment,
-                 GLenum *outTarget,
-                 ObjectDataPtr *outObj) {
-    int idx = attachmentPointIndex(attachment);
-    if (outTarget) *outTarget = m_attachPoints[idx].target;
-    if (outObj) *outObj = m_attachPoints[idx].obj;
-    return m_attachPoints[idx].name;
-}
-
-int FramebufferData::attachmentPointIndex(GLenum attachment)
-{
-    switch(attachment) {
-    case GL_COLOR_ATTACHMENT0_OES:
-        return 0;
-    case GL_DEPTH_ATTACHMENT_OES:
-        return 1;
-    case GL_STENCIL_ATTACHMENT_OES:
-        return 2;
-    default:
-        return MAX_ATTACH_POINTS;
-    }
-}
-
-void FramebufferData::detachObject(int idx) {
-    if (m_attachPoints[idx].target == GL_RENDERBUFFER_OES && m_attachPoints[idx].obj.Ptr() != NULL) {
-        RenderbufferData *rbData = (RenderbufferData *)m_attachPoints[idx].obj.Ptr();
-        rbData->attachedFB = 0;
-        rbData->attachedPoint = 0;
-    }
-
-    if(m_attachPoints[idx].owned)
-    {
-        switch(m_attachPoints[idx].target)
-        {
-        case GL_RENDERBUFFER_OES:
-            GLEScontext::dispatcher().glDeleteRenderbuffersEXT(1, &(m_attachPoints[idx].name));
-            break;
-        case GL_TEXTURE_2D:
-            GLEScontext::dispatcher().glDeleteTextures(1, &(m_attachPoints[idx].name));
-            break;
-        }
-    }
-
-    m_attachPoints[idx].target = 0;
-    m_attachPoints[idx].name = 0;
-    m_attachPoints[idx].obj = ObjectDataPtr(NULL);
-    m_attachPoints[idx].owned = false;
-}
-
-void FramebufferData::validate(GLEScontext* ctx)
-{
-    if(!getAttachment(GL_COLOR_ATTACHMENT0_OES, NULL, NULL))
-    {
-        // GLES does not require the framebuffer to have a color attachment.
-        // OpenGL does. Therefore, if no color is attached, create a dummy
-        // color texture and attach it.
-        // This dummy color texture will is owned by the FramebufferObject,
-        // and will be released by it when its object is detached.
-
-        GLint type = GL_NONE;
-        GLint name = 0;
-
-        ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT_OES, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &type);
-        if(type != GL_NONE)
-        {
-            ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT_OES, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &name);
-        }
-        else
-        {
-            ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT_OES, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, &type);
-            if(type != GL_NONE)
-            {
-                ctx->dispatcher().glGetFramebufferAttachmentParameterivEXT(GL_FRAMEBUFFER, GL_STENCIL_ATTACHMENT_OES, GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, &name);
-            }
-            else
-            {
-                // No color, depth or stencil attachments - do nothing
-                return;
-            }
-        }
-
-        // Find the existing attachment(s) dimensions
-        GLint width = 0;
-        GLint height = 0;
-
-        if(type == GL_RENDERBUFFER)
-        {
-            GLint prev;
-            ctx->dispatcher().glGetIntegerv(GL_RENDERBUFFER_BINDING, &prev);
-            ctx->dispatcher().glBindRenderbufferEXT(GL_RENDERBUFFER, name);
-            ctx->dispatcher().glGetRenderbufferParameterivEXT(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &width);
-            ctx->dispatcher().glGetRenderbufferParameterivEXT(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &height);
-            ctx->dispatcher().glBindRenderbufferEXT(GL_RENDERBUFFER, prev);
-        }
-        else if(type == GL_TEXTURE)
-        {
-            GLint prev;
-            ctx->dispatcher().glGetIntegerv(GL_TEXTURE_BINDING_2D, &prev);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, name);
-            ctx->dispatcher().glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_WIDTH, &width);
-            ctx->dispatcher().glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, GL_TEXTURE_HEIGHT, &height);
-            ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, prev);
-        }
-
-        // Create the color attachment and attch it
-        unsigned int tex = ctx->shareGroup()->genGlobalName(TEXTURE);
-        GLint prev;
-        ctx->dispatcher().glGetIntegerv(GL_TEXTURE_BINDING_2D, &prev);
-        ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, tex);
-
-        ctx->dispatcher().glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
-        ctx->dispatcher().glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST );
-        ctx->dispatcher().glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
-        ctx->dispatcher().glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE );
-        ctx->dispatcher().glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
-
-        ctx->dispatcher().glFramebufferTexture2DEXT(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, tex, 0);
-        setAttachment(GL_COLOR_ATTACHMENT0_OES, GL_TEXTURE_2D, tex, ObjectDataPtr(NULL), true);
-
-        ctx->dispatcher().glBindTexture(GL_TEXTURE_2D, prev);
-    }
-
-    if(m_dirty)
-    {
-        // This is a workaround for a bug found in several OpenGL
-        // drivers (e.g. ATI's) - after the framebuffer attachments
-        // have changed, and before the next draw, unbind and rebind
-        // the framebuffer to sort things out.
-        ctx->dispatcher().glBindFramebufferEXT(GL_FRAMEBUFFER,0);
-        ctx->dispatcher().glBindFramebufferEXT(GL_FRAMEBUFFER,ctx->shareGroup()->getGlobalName(FRAMEBUFFER,m_fbName));
-
-        m_dirty = false;
-    }
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp
deleted file mode 100644
index abed760..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp
+++ /dev/null
@@ -1,537 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <GLcommon/GLDispatch.h>
-#include <stdio.h>
-#include <OpenglOsUtils/osDynLibrary.h>
-
-#ifdef __linux__
-#include <GL/glx.h>
-#elif defined(WIN32)
-#include <windows.h>
-#endif
-
-#include "DummyGLfuncs.h"
-
-typedef void (*GL_FUNC_PTR)();
-
-static GL_FUNC_PTR getGLFuncAddress(const char *funcName) {
-    GL_FUNC_PTR ret = NULL;
-#ifdef __linux__
-    static osUtils::dynLibrary* libGL = osUtils::dynLibrary::open("libGL.so");
-    ret = (GL_FUNC_PTR)glXGetProcAddress((const GLubyte*)funcName);
-#elif defined(WIN32)
-    static osUtils::dynLibrary* libGL = osUtils::dynLibrary::open("opengl32");
-    ret = (GL_FUNC_PTR)wglGetProcAddress(funcName);
-#elif defined(__APPLE__)
-    static osUtils::dynLibrary* libGL = osUtils::dynLibrary::open("/System/Library/Frameworks/OpenGL.framework/OpenGL");
-#endif
-    if(!ret && libGL){
-        ret = libGL->findSymbol(funcName);
-    }
-    return ret;
-}
-
-#define LOAD_GL_FUNC(name)  {   void * funcAddrs = NULL;                                    \
-                                if(name == NULL){                                           \
-                                    funcAddrs = (void *)getGLFuncAddress(#name);            \
-                                    if(funcAddrs){                                          \
-                                        *(void**)(&name) = funcAddrs;                       \
-                                    } else {                                                \
-                                        fprintf(stderr,"could not load func %s\n",#name);   \
-                                        *(void**)(&name) = (void *)dummy_##name;            \
-                                    }                                                       \
-                                }                                                           \
-                           }
-
-#define LOAD_GLEXT_FUNC(name)  {   void * funcAddrs = NULL;                                \
-                                if(name == NULL){                                       \
-                                funcAddrs = (void *)getGLFuncAddress(#name);            \
-                                if(funcAddrs)                                           \
-                                    *(void**)(&name) = funcAddrs;                       \
-                                }                                                       \
-                           }
-
-/* initializing static GLDispatch members*/
-
-android::Mutex GLDispatch::s_lock;
-void (GLAPIENTRY *GLDispatch::glActiveTexture)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glBindBuffer)(GLenum,GLuint) = NULL;
-void (GLAPIENTRY *GLDispatch::glBindTexture)(GLenum, GLuint) = NULL;
-void (GLAPIENTRY *GLDispatch::glBlendFunc)(GLenum,GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glBlendEquation)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glBlendEquationSeparate)(GLenum,GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glBlendFuncSeparate)(GLenum,GLenum,GLenum,GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glBufferData)(GLenum,GLsizeiptr,const GLvoid *,GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glBufferSubData)(GLenum,GLintptr,GLsizeiptr,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glClear)(GLbitfield) = NULL;
-void (GLAPIENTRY *GLDispatch::glClearColor)(GLclampf,GLclampf,GLclampf,GLclampf) = NULL;
-void (GLAPIENTRY *GLDispatch::glClearStencil)(GLint) = NULL;
-void (GLAPIENTRY *GLDispatch::glColorMask)(GLboolean,GLboolean,GLboolean,GLboolean) = NULL;
-void (GLAPIENTRY *GLDispatch::glCompressedTexImage2D)(GLenum,GLint,GLenum,GLsizei,GLsizei,GLint,GLsizei, const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glCompressedTexSubImage2D)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLsizei,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glCopyTexImage2D)(GLenum,GLint,GLenum,GLint,GLint,GLsizei,GLsizei,GLint) = NULL;
-void (GLAPIENTRY *GLDispatch::glCopyTexSubImage2D)(GLenum,GLint,GLint,GLint,GLint,GLint,GLsizei,GLsizei) = NULL;
-void (GLAPIENTRY *GLDispatch::glCullFace)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glDeleteBuffers)(GLsizei,const GLuint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glDeleteTextures)(GLsizei,const GLuint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glDepthFunc)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glDepthMask)(GLboolean) = NULL;
-void (GLAPIENTRY *GLDispatch::glDepthRange)(GLclampd,GLclampd) = NULL;
-void (GLAPIENTRY *GLDispatch::glDisable)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glDrawArrays)(GLenum,GLint,GLsizei) = NULL;
-void (GLAPIENTRY *GLDispatch::glDrawElements)(GLenum,GLsizei,GLenum,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glEnable)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glFinish)() = NULL;
-void (GLAPIENTRY *GLDispatch::glFlush)() = NULL;
-void (GLAPIENTRY *GLDispatch::glFrontFace)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glGenBuffers)(GLsizei,GLuint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGenTextures)(GLsizei,GLuint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetBooleanv)(GLenum,GLboolean *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetBufferParameteriv)(GLenum, GLenum, GLint *) = NULL;
-GLenum (GLAPIENTRY *GLDispatch::glGetError)() = NULL;
-void (GLAPIENTRY *GLDispatch::glGetFloatv)(GLenum,GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetIntegerv)(GLenum,GLint *) = NULL;
-const GLubyte * (GLAPIENTRY *GLDispatch::glGetString) (GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexParameterfv)(GLenum,GLenum,GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexParameteriv)(GLenum,GLenum,GLint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params) = NULL;
-void (GLAPIENTRY *GLDispatch::glHint)(GLenum,GLenum) = NULL;
-GLboolean (GLAPIENTRY *GLDispatch::glIsBuffer)(GLuint) = NULL;
-GLboolean (GLAPIENTRY *GLDispatch::glIsEnabled)(GLenum) = NULL;
-GLboolean (GLAPIENTRY *GLDispatch::glIsTexture)(GLuint) = NULL;
-void (GLAPIENTRY *GLDispatch::glLineWidth)(GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glPolygonOffset)(GLfloat, GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glPixelStorei)(GLenum,GLint) = NULL;
-void (GLAPIENTRY *GLDispatch::glReadPixels)(GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glSampleCoverage)(GLclampf,GLboolean) = NULL;
-void (GLAPIENTRY *GLDispatch::glScissor)(GLint,GLint,GLsizei,GLsizei) = NULL;
-void (GLAPIENTRY *GLDispatch::glStencilFunc)(GLenum,GLint,GLuint) = NULL;
-void (GLAPIENTRY *GLDispatch::glStencilMask)(GLuint) = NULL;
-void (GLAPIENTRY *GLDispatch::glStencilOp)(GLenum, GLenum,GLenum);
-void (GLAPIENTRY *GLDispatch::glTexImage2D)(GLenum,GLint,GLint,GLsizei,GLsizei,GLint,GLenum,GLenum,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexParameterf)(GLenum,GLenum, GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexParameterfv)(GLenum,GLenum,const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexParameteri)(GLenum,GLenum,GLint) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexParameteriv)(GLenum,GLenum,const GLint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexSubImage2D)(GLenum,GLint,GLint,GLint,GLsizei,GLsizei,GLenum,GLenum,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glViewport)(GLint,GLint,GLsizei,GLsizei) = NULL;
-void (GLAPIENTRY *GLDispatch::glPushAttrib) ( GLbitfield mask ) = NULL;
-void (GLAPIENTRY *GLDispatch::glPopAttrib) ( void ) = NULL;
-void (GLAPIENTRY *GLDispatch::glPushClientAttrib) ( GLbitfield mask ) = NULL;
-void (GLAPIENTRY *GLDispatch::glPopClientAttrib) ( void ) = NULL;
-
-/*GLES 1.1*/
-void (GLAPIENTRY *GLDispatch::glAlphaFunc)(GLenum,GLclampf) = NULL;
-void (GLAPIENTRY *GLDispatch::glBegin)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glClearDepth)(GLclampd) = NULL;
-void (GLAPIENTRY *GLDispatch::glClientActiveTexture)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glClipPlane)(GLenum,const GLdouble *) = NULL;
-void (GLAPIENTRY *GLDispatch::glColor4d)(GLdouble,GLdouble,GLdouble,GLdouble) = NULL;
-void (GLAPIENTRY *GLDispatch::glColor4f)(GLfloat,GLfloat,GLfloat,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glColor4fv)(const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glColor4ub)(GLubyte,GLubyte,GLubyte,GLubyte) = NULL;
-void (GLAPIENTRY *GLDispatch::glColor4ubv)(const GLubyte *) = NULL;
-void (GLAPIENTRY *GLDispatch::glColorPointer)(GLint,GLenum,GLsizei,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glDisableClientState)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glEnableClientState)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glEnd)() = NULL;
-void (GLAPIENTRY *GLDispatch::glFogf)(GLenum, GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glFogfv)(GLenum,const GLfloat *);
-void (GLAPIENTRY *GLDispatch::glFrustum)(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetClipPlane)(GLenum,GLdouble *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetDoublev)(GLenum,GLdouble *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetLightfv)(GLenum,GLenum,GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetMaterialfv)(GLenum,GLenum,GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetPointerv)(GLenum,GLvoid**) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexEnvfv)(GLenum,GLenum,GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexEnviv)(GLenum,GLenum,GLint *)= NULL;
-void (GLAPIENTRY *GLDispatch::glLightf)(GLenum,GLenum,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glLightfv)(GLenum,GLenum,const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glLightModelf)(GLenum,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glLightModelfv)(GLenum,const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glLoadIdentity)() = NULL;
-void (GLAPIENTRY *GLDispatch::glLoadMatrixf)(const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glLogicOp)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glMaterialf)(GLenum,GLenum,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glMaterialfv)(GLenum,GLenum,const GLfloat *);
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord2fv)(GLenum, const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord2sv)(GLenum, const GLshort *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord3fv)(GLenum, const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord3sv)(GLenum,const GLshort *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord4f)(GLenum,GLfloat,GLfloat,GLfloat,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord4fv)(GLenum,const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultiTexCoord4sv)(GLenum,const GLshort *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMultMatrixf)(const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glNormal3f)(GLfloat,GLfloat,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glNormal3fv)(const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glNormal3sv)(const GLshort *) = NULL;
-void (GLAPIENTRY *GLDispatch::glOrtho)(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble) = NULL;
-void (GLAPIENTRY *GLDispatch::glPointParameterf)(GLenum, GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glPointParameterfv)(GLenum, const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glPointSize)(GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glRotatef)(GLfloat,GLfloat,GLfloat,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glScalef)(GLfloat,GLfloat,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexEnvf)(GLenum,GLenum,GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexEnvfv)(GLenum,GLenum,const GLfloat *) = NULL;
-void (GLAPIENTRY *GLDispatch::glMatrixMode)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glNormalPointer)(GLenum,GLsizei,const GLvoid *) = NULL;
-void (GLAPIENTRY *GLDispatch::glPopMatrix)() = NULL;
-void (GLAPIENTRY *GLDispatch::glPushMatrix)() = NULL;
-void (GLAPIENTRY *GLDispatch::glShadeModel)(GLenum) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexCoordPointer)(GLint,GLenum, GLsizei, const GLvoid*) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexEnvi)(GLenum ,GLenum,GLint) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexEnviv)(GLenum, GLenum, const GLint *) = NULL;
-void (GLAPIENTRY *GLDispatch::glTranslatef)(GLfloat,GLfloat, GLfloat) = NULL;
-void (GLAPIENTRY *GLDispatch::glVertexPointer)(GLint,GLenum,GLsizei, const GLvoid *) = NULL;
-
-/* GLES 1.1 EXTENSIONS*/
-GLboolean (GLAPIENTRY *GLDispatch::glIsRenderbufferEXT) (GLuint renderbuffer) = NULL;
-void (GLAPIENTRY *GLDispatch::glBindRenderbufferEXT) (GLenum target, GLuint renderbuffer) = NULL;
-void (GLAPIENTRY *GLDispatch::glDeleteRenderbuffersEXT) (GLsizei n, const GLuint *renderbuffers) = NULL;
-void (GLAPIENTRY *GLDispatch::glGenRenderbuffersEXT) (GLsizei n, GLuint *renderbuffers) = NULL;
-void (GLAPIENTRY *GLDispatch::glRenderbufferStorageEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetRenderbufferParameterivEXT) (GLenum target, GLenum pname, GLint *params) = NULL;
-GLboolean (GLAPIENTRY *GLDispatch::glIsFramebufferEXT) (GLuint framebuffer) = NULL;
-void (GLAPIENTRY *GLDispatch::glBindFramebufferEXT) (GLenum target, GLuint framebuffer) = NULL;
-void (GLAPIENTRY *GLDispatch::glDeleteFramebuffersEXT) (GLsizei n, const GLuint *framebuffers) = NULL;
-void (GLAPIENTRY *GLDispatch::glGenFramebuffersEXT) (GLsizei n, GLuint *framebuffers) = NULL;
-GLenum (GLAPIENTRY *GLDispatch::glCheckFramebufferStatusEXT) (GLenum target) = NULL;
-void (GLAPIENTRY *GLDispatch::glFramebufferTexture1DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = NULL;
-void (GLAPIENTRY *GLDispatch::glFramebufferTexture2DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = NULL;
-void (GLAPIENTRY *GLDispatch::glFramebufferTexture3DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) = NULL;
-void (GLAPIENTRY *GLDispatch::glFramebufferRenderbufferEXT) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetFramebufferAttachmentParameterivEXT) (GLenum target, GLenum attachment, GLenum pname, GLint *params) = NULL;
-void (GLAPIENTRY *GLDispatch::glGenerateMipmapEXT) (GLenum target) = NULL;
-void (GLAPIENTRY *GLDispatch::glCurrentPaletteMatrixARB) (GLint index) = NULL;
-void (GLAPIENTRY *GLDispatch::glMatrixIndexuivARB) (GLint size, GLuint * indices) = NULL;
-void (GLAPIENTRY *GLDispatch::glMatrixIndexPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = NULL;
-void (GLAPIENTRY *GLDispatch::glWeightPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexGenf) (GLenum coord, GLenum pname, GLfloat param ) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexGeni) (GLenum coord, GLenum pname, GLint param ) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexGenfv) (GLenum coord, GLenum pname, const GLfloat *params ) = NULL;
-void (GLAPIENTRY *GLDispatch::glTexGeniv) (GLenum coord, GLenum pname, const GLint *params ) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexGenfv) (GLenum coord, GLenum pname, GLfloat *params ) = NULL;
-void (GLAPIENTRY *GLDispatch::glGetTexGeniv) (GLenum coord, GLenum pname, GLint *params ) = NULL;
-
-/* GLES 2.0*/
-void (GL_APIENTRY *GLDispatch::glBlendColor)(GLclampf,GLclampf,GLclampf,GLclampf) = NULL;
-void (GL_APIENTRY *GLDispatch::glStencilFuncSeparate)(GLenum,GLenum,GLint,GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glStencilMaskSeparate)(GLenum,GLuint) = NULL;
-GLboolean (GL_APIENTRY *GLDispatch::glIsProgram)(GLuint program) = NULL;
-GLboolean (GL_APIENTRY *GLDispatch::glIsShader)(GLuint shader) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib1f)(GLuint,GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib1fv)(GLuint,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib2f)(GLuint,GLfloat, GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib2fv)(GLuint,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib3f)(GLuint,GLfloat, GLfloat,GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib3fv)(GLuint,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib4f)(GLuint,GLfloat,GLfloat,GLfloat,GLfloat ) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttrib4fv)(GLuint,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glVertexAttribPointer)(GLuint,GLint,GLenum,GLboolean,GLsizei,const GLvoid*) = NULL;
-void (GL_APIENTRY *GLDispatch::glDisableVertexAttribArray)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glEnableVertexAttribArray)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetVertexAttribfv)(GLuint,GLenum,GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetVertexAttribiv)(GLuint,GLenum,GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetVertexAttribPointerv)(GLuint,GLenum,GLvoid**) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform1f)(GLint,GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform1fv)(GLint,GLsizei,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform1i)(GLint,GLint) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform1iv)(GLint,GLsizei,const GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform2f)(GLint,GLfloat,GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform2fv)(GLint,GLsizei,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform2i)(GLint,GLint,GLint) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform2iv)(GLint ,GLsizei,const GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform3f)(GLint,GLfloat,GLfloat,GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform3fv)(GLint,GLsizei,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform3i)(GLint,GLint,GLint,GLint) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform3iv)(GLint,GLsizei,const GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform4f)(GLint,GLfloat,GLfloat,GLfloat,GLfloat) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform4fv)(GLint,GLsizei,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform4i)(GLint,GLint,GLint,GLint,GLint) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniform4iv)(GLint,GLsizei,const GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniformMatrix2fv)(GLint,GLsizei,GLboolean,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniformMatrix3fv)(GLint,GLsizei,GLboolean,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glUniformMatrix4fv)(GLint,GLsizei,GLboolean,const GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glAttachShader)(GLuint,GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glBindAttribLocation)(GLuint,GLuint,const GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glCompileShader)(GLuint) = NULL;
-GLuint (GL_APIENTRY *GLDispatch::glCreateProgram)() = NULL;
-GLuint (GL_APIENTRY *GLDispatch::glCreateShader)(GLenum) = NULL;
-void (GL_APIENTRY *GLDispatch::glDeleteProgram)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glDeleteShader)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glDetachShader)(GLuint,GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glLinkProgram)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glUseProgram)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glValidateProgram)(GLuint) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetActiveAttrib)(GLuint,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetActiveUniform)(GLuint,GLuint,GLsizei,GLsizei*,GLint*,GLenum*,GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetAttachedShaders)(GLuint,GLsizei,GLsizei*,GLuint*) = NULL;
-int  (GL_APIENTRY *GLDispatch::glGetAttribLocation)(GLuint,const GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetProgramiv)(GLuint,GLenum,GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetProgramInfoLog)(GLuint,GLsizei,GLsizei*,GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetShaderiv)(GLuint,GLenum,GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetShaderInfoLog)(GLuint,GLsizei,GLsizei*,GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetShaderPrecisionFormat)(GLenum,GLenum,GLint*,GLint*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetShaderSource)(GLuint,GLsizei,GLsizei*,GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetUniformfv)(GLuint,GLint,GLfloat*) = NULL;
-void (GL_APIENTRY *GLDispatch::glGetUniformiv)(GLuint,GLint,GLint*) = NULL;
-int  (GL_APIENTRY *GLDispatch::glGetUniformLocation)(GLuint,const GLchar*) = NULL;
-void (GL_APIENTRY *GLDispatch::glReleaseShaderCompiler)() = NULL;
-void (GL_APIENTRY *GLDispatch::glShaderBinary)(GLsizei,const GLuint*,GLenum,const GLvoid*,GLsizei) = NULL;
-void (GL_APIENTRY *GLDispatch::glShaderSource)(GLuint,GLsizei,const GLchar**,const GLint*) = NULL;
-
-GLDispatch::GLDispatch():m_isLoaded(false){};
-
-
-void GLDispatch::dispatchFuncs(GLESVersion version){
-    android::Mutex::Autolock mutex(s_lock);
-    if(m_isLoaded)
-        return;
-
-    /* Loading OpenGL functions which are needed for implementing BOTH GLES 1.1 & GLES 2.0*/
-    LOAD_GL_FUNC(glActiveTexture);
-    LOAD_GL_FUNC(glBindBuffer);
-    LOAD_GL_FUNC(glBindTexture);
-    LOAD_GL_FUNC(glBlendFunc);
-    LOAD_GL_FUNC(glBlendEquation);
-    LOAD_GL_FUNC(glBlendEquationSeparate);
-    LOAD_GL_FUNC(glBlendFuncSeparate);
-    LOAD_GL_FUNC(glBufferData);
-    LOAD_GL_FUNC(glBufferSubData);
-    LOAD_GL_FUNC(glClear);
-    LOAD_GL_FUNC(glClearColor);
-    LOAD_GL_FUNC(glClearDepth);
-    LOAD_GL_FUNC(glClearStencil);
-    LOAD_GL_FUNC(glColorMask);
-    LOAD_GL_FUNC(glCompressedTexImage2D);
-    LOAD_GL_FUNC(glCompressedTexSubImage2D);
-    LOAD_GL_FUNC(glCopyTexImage2D);
-    LOAD_GL_FUNC(glCopyTexSubImage2D);
-    LOAD_GL_FUNC(glCullFace);
-    LOAD_GL_FUNC(glDeleteBuffers);
-    LOAD_GL_FUNC(glDeleteTextures);
-    LOAD_GL_FUNC(glDepthFunc);
-    LOAD_GL_FUNC(glDepthMask);
-    LOAD_GL_FUNC(glDepthRange);
-    LOAD_GL_FUNC(glDisable);
-    LOAD_GL_FUNC(glDrawArrays);
-    LOAD_GL_FUNC(glDrawElements);
-    LOAD_GL_FUNC(glEnable);
-    LOAD_GL_FUNC(glFinish);
-    LOAD_GL_FUNC(glFlush);
-    LOAD_GL_FUNC(glFrontFace);
-    LOAD_GL_FUNC(glGenBuffers);
-    LOAD_GL_FUNC(glGenTextures);
-    LOAD_GL_FUNC(glGetBooleanv);
-    LOAD_GL_FUNC(glGetBufferParameteriv);
-    LOAD_GL_FUNC(glGetError);
-    LOAD_GL_FUNC(glGetFloatv);
-    LOAD_GL_FUNC(glGetIntegerv);
-    LOAD_GL_FUNC(glGetString);
-    LOAD_GL_FUNC(glTexParameterf);
-    LOAD_GL_FUNC(glTexParameterfv);
-    LOAD_GL_FUNC(glGetTexParameterfv);
-    LOAD_GL_FUNC(glGetTexParameteriv);
-    LOAD_GL_FUNC(glGetTexLevelParameteriv);
-    LOAD_GL_FUNC(glHint);
-    LOAD_GL_FUNC(glIsBuffer);
-    LOAD_GL_FUNC(glIsEnabled);
-    LOAD_GL_FUNC(glIsTexture);
-    LOAD_GL_FUNC(glLineWidth);
-    LOAD_GL_FUNC(glPolygonOffset);
-    LOAD_GL_FUNC(glPixelStorei);
-    LOAD_GL_FUNC(glReadPixels);
-    LOAD_GL_FUNC(glSampleCoverage);
-    LOAD_GL_FUNC(glScissor);
-    LOAD_GL_FUNC(glStencilFunc);
-    LOAD_GL_FUNC(glStencilMask);
-    LOAD_GL_FUNC(glStencilOp);
-    LOAD_GL_FUNC(glTexImage2D);
-    LOAD_GL_FUNC(glTexParameteri);
-    LOAD_GL_FUNC(glTexParameteriv);
-    LOAD_GL_FUNC(glTexSubImage2D);
-    LOAD_GL_FUNC(glViewport);
-    LOAD_GL_FUNC(glPushAttrib);
-    LOAD_GL_FUNC(glPushClientAttrib);
-    LOAD_GL_FUNC(glPopAttrib);
-    LOAD_GL_FUNC(glPopClientAttrib);
-    LOAD_GLEXT_FUNC(glIsRenderbufferEXT);
-    LOAD_GLEXT_FUNC(glBindRenderbufferEXT);
-    LOAD_GLEXT_FUNC(glDeleteRenderbuffersEXT);
-    LOAD_GLEXT_FUNC(glGenRenderbuffersEXT);
-    LOAD_GLEXT_FUNC(glRenderbufferStorageEXT);
-    LOAD_GLEXT_FUNC(glGetRenderbufferParameterivEXT);
-    LOAD_GLEXT_FUNC(glIsFramebufferEXT);
-    LOAD_GLEXT_FUNC(glBindFramebufferEXT);
-    LOAD_GLEXT_FUNC(glDeleteFramebuffersEXT);
-    LOAD_GLEXT_FUNC(glGenFramebuffersEXT);
-    LOAD_GLEXT_FUNC(glCheckFramebufferStatusEXT);
-    LOAD_GLEXT_FUNC(glFramebufferTexture1DEXT);
-    LOAD_GLEXT_FUNC(glFramebufferTexture2DEXT);
-    LOAD_GLEXT_FUNC(glFramebufferTexture3DEXT);
-    LOAD_GLEXT_FUNC(glFramebufferRenderbufferEXT);
-    LOAD_GLEXT_FUNC(glGetFramebufferAttachmentParameterivEXT);
-    LOAD_GLEXT_FUNC(glGenerateMipmapEXT);
-
-    /* Loading OpenGL functions which are needed ONLY for implementing GLES 1.1*/
-    if(version == GLES_1_1){
-        LOAD_GL_FUNC(glAlphaFunc);
-        LOAD_GL_FUNC(glBegin);
-        LOAD_GL_FUNC(glClientActiveTexture);
-        LOAD_GL_FUNC(glClipPlane);
-        LOAD_GL_FUNC(glColor4d);
-        LOAD_GL_FUNC(glColor4f);
-        LOAD_GL_FUNC(glColor4fv);
-        LOAD_GL_FUNC(glColor4ub);
-        LOAD_GL_FUNC(glColor4ubv);
-        LOAD_GL_FUNC(glColorPointer);
-        LOAD_GL_FUNC(glDisableClientState);
-        LOAD_GL_FUNC(glEnableClientState);
-        LOAD_GL_FUNC(glEnd);
-        LOAD_GL_FUNC(glFogf);
-        LOAD_GL_FUNC(glFogfv);
-        LOAD_GL_FUNC(glFrustum);
-        LOAD_GL_FUNC(glGetClipPlane);
-        LOAD_GL_FUNC(glGetDoublev);
-        LOAD_GL_FUNC(glGetLightfv);
-        LOAD_GL_FUNC(glGetMaterialfv);
-        LOAD_GL_FUNC(glGetPointerv);
-        LOAD_GL_FUNC(glGetTexEnvfv);
-        LOAD_GL_FUNC(glGetTexEnviv);
-        LOAD_GL_FUNC(glLightf);
-        LOAD_GL_FUNC(glLightfv);
-        LOAD_GL_FUNC(glLightModelf);
-        LOAD_GL_FUNC(glLightModelfv);
-        LOAD_GL_FUNC(glLoadIdentity);
-        LOAD_GL_FUNC(glLoadMatrixf);
-        LOAD_GL_FUNC(glLogicOp);
-        LOAD_GL_FUNC(glMaterialf);
-        LOAD_GL_FUNC(glMaterialfv);
-        LOAD_GL_FUNC(glMultiTexCoord2fv);
-        LOAD_GL_FUNC(glMultiTexCoord2sv);
-        LOAD_GL_FUNC(glMultiTexCoord3fv);
-        LOAD_GL_FUNC(glMultiTexCoord3sv);
-        LOAD_GL_FUNC(glMultiTexCoord4fv);
-        LOAD_GL_FUNC(glMultiTexCoord4sv);
-        LOAD_GL_FUNC(glMultiTexCoord4f);
-        LOAD_GL_FUNC(glMultMatrixf);
-        LOAD_GL_FUNC(glNormal3f);
-        LOAD_GL_FUNC(glNormal3fv);
-        LOAD_GL_FUNC(glNormal3sv);
-        LOAD_GL_FUNC(glOrtho);
-        LOAD_GL_FUNC(glPointParameterf);
-        LOAD_GL_FUNC(glPointParameterfv);
-        LOAD_GL_FUNC(glPointSize);
-        LOAD_GL_FUNC(glRotatef);
-        LOAD_GL_FUNC(glScalef);
-        LOAD_GL_FUNC(glTexEnvf);
-        LOAD_GL_FUNC(glTexEnvfv);
-        LOAD_GL_FUNC(glMatrixMode);
-        LOAD_GL_FUNC(glNormalPointer);
-        LOAD_GL_FUNC(glPopMatrix);
-        LOAD_GL_FUNC(glPushMatrix);
-        LOAD_GL_FUNC(glShadeModel);
-        LOAD_GL_FUNC(glTexCoordPointer);
-        LOAD_GL_FUNC(glTexEnvi);
-        LOAD_GL_FUNC(glTexEnviv);
-        LOAD_GL_FUNC(glTranslatef);
-        LOAD_GL_FUNC(glVertexPointer);
-
-        LOAD_GLEXT_FUNC(glCurrentPaletteMatrixARB);
-        LOAD_GLEXT_FUNC(glMatrixIndexuivARB);
-        LOAD_GLEXT_FUNC(glMatrixIndexPointerARB);
-        LOAD_GLEXT_FUNC(glWeightPointerARB);
-        LOAD_GLEXT_FUNC(glTexGenf);
-        LOAD_GLEXT_FUNC(glTexGeni);
-        LOAD_GLEXT_FUNC(glTexGenfv);
-        LOAD_GLEXT_FUNC(glTexGeniv);
-        LOAD_GLEXT_FUNC(glGetTexGenfv);
-        LOAD_GLEXT_FUNC(glGetTexGeniv);
-
-    } else if (version == GLES_2_0){
-
-    /* Loading OpenGL functions which are needed ONLY for implementing GLES 2.0*/
-
-        LOAD_GL_FUNC(glBlendColor);
-        LOAD_GL_FUNC(glBlendFuncSeparate);
-        LOAD_GL_FUNC(glStencilFuncSeparate);
-        LOAD_GL_FUNC(glIsProgram);
-        LOAD_GL_FUNC(glIsShader);
-        LOAD_GL_FUNC(glVertexAttrib1f);
-        LOAD_GL_FUNC(glVertexAttrib1fv);
-        LOAD_GL_FUNC(glVertexAttrib2f);
-        LOAD_GL_FUNC(glVertexAttrib2fv);
-        LOAD_GL_FUNC(glVertexAttrib3f);
-        LOAD_GL_FUNC(glVertexAttrib3fv);
-        LOAD_GL_FUNC(glVertexAttrib4f);
-        LOAD_GL_FUNC(glVertexAttrib4fv);
-        LOAD_GL_FUNC(glVertexAttribPointer);
-        LOAD_GL_FUNC(glDisableVertexAttribArray);
-        LOAD_GL_FUNC(glEnableVertexAttribArray);
-        LOAD_GL_FUNC(glGetVertexAttribfv);
-        LOAD_GL_FUNC(glGetVertexAttribiv);
-        LOAD_GL_FUNC(glGetVertexAttribPointerv);
-        LOAD_GL_FUNC(glUniform1f);
-        LOAD_GL_FUNC(glUniform1fv);
-        LOAD_GL_FUNC(glUniform1i);
-        LOAD_GL_FUNC(glUniform1iv);
-        LOAD_GL_FUNC(glUniform2f);
-        LOAD_GL_FUNC(glUniform2fv);
-        LOAD_GL_FUNC(glUniform2i);
-        LOAD_GL_FUNC(glUniform2iv);
-        LOAD_GL_FUNC(glUniform3f);
-        LOAD_GL_FUNC(glUniform3fv);
-        LOAD_GL_FUNC(glUniform3i);
-        LOAD_GL_FUNC(glUniform3iv);
-        LOAD_GL_FUNC(glUniform4f);
-        LOAD_GL_FUNC(glUniform4fv);
-        LOAD_GL_FUNC(glUniform4i);
-        LOAD_GL_FUNC(glUniform4iv);
-        LOAD_GL_FUNC(glUniformMatrix2fv);
-        LOAD_GL_FUNC(glUniformMatrix3fv);
-        LOAD_GL_FUNC(glUniformMatrix4fv);
-        LOAD_GL_FUNC(glAttachShader);
-        LOAD_GL_FUNC(glBindAttribLocation);
-        LOAD_GL_FUNC(glCompileShader);
-        LOAD_GL_FUNC(glCreateProgram);
-        LOAD_GL_FUNC(glCreateShader);
-        LOAD_GL_FUNC(glDeleteProgram);
-        LOAD_GL_FUNC(glDeleteShader);
-        LOAD_GL_FUNC(glDetachShader);
-        LOAD_GL_FUNC(glLinkProgram);
-        LOAD_GL_FUNC(glUseProgram);
-        LOAD_GL_FUNC(glValidateProgram);
-        LOAD_GL_FUNC(glGetActiveAttrib);
-        LOAD_GL_FUNC(glGetActiveUniform);
-        LOAD_GL_FUNC(glGetAttachedShaders);
-        LOAD_GL_FUNC(glGetAttribLocation);
-        LOAD_GL_FUNC(glGetProgramiv);
-        LOAD_GL_FUNC(glGetProgramInfoLog);
-        LOAD_GL_FUNC(glGetShaderiv);
-        LOAD_GL_FUNC(glGetShaderInfoLog);
-        LOAD_GLEXT_FUNC(glGetShaderPrecisionFormat);
-        LOAD_GL_FUNC(glGetShaderSource);
-        LOAD_GL_FUNC(glGetUniformfv);
-        LOAD_GL_FUNC(glGetUniformiv);
-        LOAD_GL_FUNC(glGetUniformLocation);
-        LOAD_GLEXT_FUNC(glReleaseShaderCompiler);
-        LOAD_GLEXT_FUNC(glShaderBinary);
-        LOAD_GL_FUNC(glShaderSource);
-        LOAD_GL_FUNC(glStencilMaskSeparate);
-    }
-    m_isLoaded = true;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESbuffer.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESbuffer.cpp
deleted file mode 100644
index b055cc7..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESbuffer.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLcommon/GLESbuffer.h>
-#include <string.h>
-
-bool  GLESbuffer::setBuffer(GLuint size,GLuint usage,const GLvoid* data) {
-    m_size = size;
-    m_usage = usage;
-    if(m_data) {
-        delete [] m_data;
-        m_data = NULL;
-    }
-    m_data = new unsigned char[size];
-    if(m_data) {
-        memcpy(m_data,data,size);
-        m_conversionManager.clear();
-        m_conversionManager.addRange(Range(0,m_size));
-        return true;
-    }
-    return false;
-}
-
-bool  GLESbuffer::setSubBuffer(GLint offset,GLuint size,const GLvoid* data) {
-    if(offset + size > m_size) return false;
-    memcpy(m_data+offset,data,size);
-    m_conversionManager.addRange(Range(offset,size));
-    m_conversionManager.merge();
-    return true;
-}
-
-void  GLESbuffer::getConversions(const RangeList& rIn,RangeList& rOut) {
-        m_conversionManager.delRanges(rIn,rOut);
-        rOut.merge();
-}
-
-GLESbuffer::~GLESbuffer() {
-    if(m_data) {
-        delete [] m_data;
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLEScontext.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/GLEScontext.cpp
deleted file mode 100644
index 22b4c8b..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLEScontext.cpp
+++ /dev/null
@@ -1,695 +0,0 @@
-#include <GLcommon/GLEScontext.h>
-#include <GLcommon/GLconversion_macros.h>
-#include <GLcommon/GLESmacros.h>
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-#include <GLcommon/GLESvalidate.h>
-#include <GLcommon/TextureUtils.h>
-#include <GLcommon/FramebufferData.h>
-#include <strings.h>
-
-//decleration
-static void convertFixedDirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,unsigned int nBytes,unsigned int strideOut,int attribSize);
-static void convertFixedIndirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,GLsizei count,GLenum indices_type,const GLvoid* indices,unsigned int strideOut,int attribSize);
-static void convertByteDirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,unsigned int nBytes,unsigned int strideOut,int attribSize);
-static void convertByteIndirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,GLsizei count,GLenum indices_type,const GLvoid* indices,unsigned int strideOut,int attribSize);
-
-GLESConversionArrays::~GLESConversionArrays() {
-    for(std::map<GLenum,ArrayData>::iterator it = m_arrays.begin(); it != m_arrays.end();it++) {
-        if((*it).second.allocated){
-            if((*it).second.type == GL_FLOAT){
-                GLfloat* p = (GLfloat *)((*it).second.data);
-                if(p) delete[] p;
-            } else if((*it).second.type == GL_SHORT){
-                GLshort* p = (GLshort *)((*it).second.data);
-                if(p) delete[] p;
-            }
-        }
-    }
-}
-
-void GLESConversionArrays::allocArr(unsigned int size,GLenum type){
-    if(type == GL_FIXED){
-        m_arrays[m_current].data = new GLfloat[size];
-        m_arrays[m_current].type = GL_FLOAT;
-    } else if(type == GL_BYTE){
-        m_arrays[m_current].data = new GLshort[size];
-        m_arrays[m_current].type = GL_SHORT;
-    }
-    m_arrays[m_current].stride = 0;
-    m_arrays[m_current].allocated = true;
-}
-
-void GLESConversionArrays::setArr(void* data,unsigned int stride,GLenum type){
-   m_arrays[m_current].type = type;
-   m_arrays[m_current].data = data;
-   m_arrays[m_current].stride = stride;
-   m_arrays[m_current].allocated = false;
-}
-
-void* GLESConversionArrays::getCurrentData(){
-    return m_arrays[m_current].data;
-}
-
-ArrayData& GLESConversionArrays::getCurrentArray(){
-    return m_arrays[m_current];
-}
-
-unsigned int GLESConversionArrays::getCurrentIndex(){
-    return m_current;
-}
-
-ArrayData& GLESConversionArrays::operator[](int i){
-    return m_arrays[i];
-}
-
-void GLESConversionArrays::operator++(){
-    m_current++;
-}
-
-GLDispatch     GLEScontext::s_glDispatch;
-android::Mutex GLEScontext::s_lock;
-std::string*   GLEScontext::s_glExtensions= NULL;
-GLSupport      GLEScontext::s_glSupport;
-
-Version::Version():m_major(0),
-                   m_minor(0),
-                   m_release(0){};
-
-Version::Version(int major,int minor,int release):m_major(major),
-                                                  m_minor(minor),
-                                                  m_release(release){};
-
-Version::Version(const Version& ver):m_major(ver.m_major),
-                                     m_minor(ver.m_minor),
-                                     m_release(ver.m_release){}
-
-Version::Version(const char* versionString){
-    m_release = 0;
-    if((!versionString) ||
-      ((!(sscanf(versionString,"%d.%d"   ,&m_major,&m_minor) == 2)) &&
-       (!(sscanf(versionString,"%d.%d.%d",&m_major,&m_minor,&m_release) == 3)))){
-        m_major = m_minor = 0; // the version is not in the right format
-    }
-}
-
-Version& Version::operator=(const Version& ver){
-    m_major   = ver.m_major;
-    m_minor   = ver.m_minor;
-    m_release = ver.m_release;
-    return *this;
-}
-
-bool Version::operator<(const Version& ver) const{
-    if(m_major < ver.m_major) return true;
-    if(m_major == ver.m_major){
-        if(m_minor < ver.m_minor) return true;
-        if(m_minor == ver.m_minor){
-           return m_release < ver.m_release;
-        }
-    }
-    return false;
-}
-
-void GLEScontext::init() {
-
-    if (!s_glExtensions) {
-        initCapsLocked(s_glDispatch.glGetString(GL_EXTENSIONS));
-        s_glExtensions = new std::string("");
-    }
-
-    if (!m_initialized) {
-        initExtensionString();
-
-        int maxTexUnits = getMaxTexUnits();
-        m_texState = new textureUnitState[maxTexUnits];
-        for (int i=0;i<maxTexUnits;++i) {
-            for (int j=0;j<NUM_TEXTURE_TARGETS;++j)
-            {
-                m_texState[i][j].texture = 0;
-                m_texState[i][j].enabled = GL_FALSE;
-            }
-        }
-    }
-}
-
-GLEScontext::GLEScontext():
-                           m_initialized(false)    ,
-                           m_activeTexture(0)      ,
-                           m_unpackAlignment(4)    ,
-                           m_glError(GL_NO_ERROR)  ,
-                           m_texState(0)          ,
-                           m_arrayBuffer(0)        ,
-                           m_elementBuffer(0),
-                           m_renderbuffer(0),
-                           m_framebuffer(0)
-{
-};
-
-GLenum GLEScontext::getGLerror() {
-    return m_glError;
-}
-
-void GLEScontext::setGLerror(GLenum err) {
-    m_glError = err;
-}
-
-void GLEScontext::setActiveTexture(GLenum tex) {
-   m_activeTexture = tex - GL_TEXTURE0;
-}
-
-GLEScontext::~GLEScontext() {
-    for(ArraysMap::iterator it = m_map.begin(); it != m_map.end();it++) {
-        GLESpointer* p = (*it).second;
-        if(p) {
-            delete p;
-        }
-    }
-    delete[] m_texState;
-    m_texState = NULL;
-}
-
-const GLvoid* GLEScontext::setPointer(GLenum arrType,GLint size,GLenum type,GLsizei stride,const GLvoid* data,bool normalize) {
-    GLuint bufferName = m_arrayBuffer;
-    if(bufferName) {
-        unsigned int offset = reinterpret_cast<unsigned int>(data);
-        GLESbuffer* vbo = static_cast<GLESbuffer*>(m_shareGroup->getObjectData(VERTEXBUFFER,bufferName).Ptr());
-        m_map[arrType]->setBuffer(size,type,stride,vbo,bufferName,offset,normalize);
-        return  static_cast<const unsigned char*>(vbo->getData()) +  offset;
-    }
-    m_map[arrType]->setArray(size,type,stride,data,normalize);
-    return data;
-}
-
-void GLEScontext::enableArr(GLenum arr,bool enable) {
-    m_map[arr]->enable(enable);
-}
-
-bool GLEScontext::isArrEnabled(GLenum arr) {
-    return m_map[arr]->isEnable();
-}
-
-const GLESpointer* GLEScontext::getPointer(GLenum arrType) {
-    if (m_map.find(arrType) != m_map.end()) return m_map[arrType];
-    return NULL;
-}
-
-static void convertFixedDirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,unsigned int nBytes,unsigned int strideOut,int attribSize) {
-
-    for(unsigned int i = 0; i < nBytes;i+=strideOut) {
-        const GLfixed* fixed_data = (const GLfixed *)dataIn;
-        //filling attrib
-        for(int j=0;j<attribSize;j++) {
-            reinterpret_cast<GLfloat*>(&static_cast<unsigned char*>(dataOut)[i])[j] = X2F(fixed_data[j]);
-        }
-        dataIn += strideIn;
-    }
-}
-
-static void convertFixedIndirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,GLsizei count,GLenum indices_type,const GLvoid* indices,unsigned int strideOut,int attribSize) {
-    for(int i = 0 ;i < count ;i++) {
-        unsigned short index = indices_type == GL_UNSIGNED_BYTE? ((GLubyte *)indices)[i]:
-                                                             ((GLushort *)indices)[i];
-        const GLfixed* fixed_data = (GLfixed *)(dataIn  + index*strideIn);
-        GLfloat* float_data = reinterpret_cast<GLfloat*>(static_cast<unsigned char*>(dataOut) + index*strideOut);
-
-        for(int j=0;j<attribSize;j++) {
-            float_data[j] = X2F(fixed_data[j]);
-         }
-    }
-}
-
-static void convertByteDirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,unsigned int nBytes,unsigned int strideOut,int attribSize) {
-
-    for(unsigned int i = 0; i < nBytes;i+=strideOut) {
-        const GLbyte* byte_data = (const GLbyte *)dataIn;
-        //filling attrib
-        for(int j=0;j<attribSize;j++) {
-            reinterpret_cast<GLshort*>(&static_cast<unsigned char*>(dataOut)[i])[j] = B2S(byte_data[j]);
-        }
-        dataIn += strideIn;
-    }
-}
-
-static void convertByteIndirectLoop(const char* dataIn,unsigned int strideIn,void* dataOut,GLsizei count,GLenum indices_type,const GLvoid* indices,unsigned int strideOut,int attribSize) {
-    for(int i = 0 ;i < count ;i++) {
-        unsigned short index = indices_type == GL_UNSIGNED_BYTE? ((GLubyte *)indices)[i]:
-                                                             ((GLushort *)indices)[i];
-        const GLbyte* bytes_data = (GLbyte *)(dataIn  + index*strideIn);
-        GLshort* short_data = reinterpret_cast<GLshort*>(static_cast<unsigned char*>(dataOut) + index*strideOut);
-
-        for(int j=0;j<attribSize;j++) {
-            short_data[j] = B2S(bytes_data[j]);
-         }
-    }
-}
-static void directToBytesRanges(GLint first,GLsizei count,GLESpointer* p,RangeList& list) {
-
-    int attribSize = p->getSize()*4; //4 is the sizeof GLfixed or GLfloat in bytes
-    int stride = p->getStride()?p->getStride():attribSize;
-    int start  = p->getBufferOffset()+first*attribSize;
-    if(!p->getStride()) {
-        list.addRange(Range(start,count*attribSize));
-    } else {
-        for(int i = 0 ;i < count; i++,start+=stride) {
-            list.addRange(Range(start,attribSize));
-        }
-    }
-}
-
-static void indirectToBytesRanges(const GLvoid* indices,GLenum indices_type,GLsizei count,GLESpointer* p,RangeList& list) {
-
-    int attribSize = p->getSize() * 4; //4 is the sizeof GLfixed or GLfloat in bytes
-    int stride = p->getStride()?p->getStride():attribSize;
-    int start  = p->getBufferOffset();
-    for(int i=0 ; i < count; i++) {
-        GLushort index = (indices_type == GL_UNSIGNED_SHORT?
-                         static_cast<const GLushort*>(indices)[i]:
-                         static_cast<const GLubyte*>(indices)[i]);
-        list.addRange(Range(start+index*stride,attribSize));
-
-    }
-}
-
-int bytesRangesToIndices(RangeList& ranges,GLESpointer* p,GLushort* indices) {
-
-    int attribSize = p->getSize() * 4; //4 is the sizeof GLfixed or GLfloat in bytes
-    int stride = p->getStride()?p->getStride():attribSize;
-    int offset = p->getBufferOffset();
-
-    int n = 0;
-    for(int i=0;i<ranges.size();i++) {
-        int startIndex = (ranges[i].getStart() - offset) / stride;
-        int nElements = ranges[i].getSize()/attribSize;
-        for(int j=0;j<nElements;j++) {
-            indices[n++] = startIndex+j;
-        }
-    }
-    return n;
-}
-
-void GLEScontext::convertDirect(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum array_id,GLESpointer* p) {
-
-    GLenum type    = p->getType();
-    int attribSize = p->getSize();
-    unsigned int size = attribSize*count + first;
-    unsigned int bytes = type == GL_FIXED ? sizeof(GLfixed):sizeof(GLbyte);
-    cArrs.allocArr(size,type);
-    int stride = p->getStride()?p->getStride():bytes*attribSize;
-    const char* data = (const char*)p->getArrayData() + (first*stride);
-
-    if(type == GL_FIXED) {
-        convertFixedDirectLoop(data,stride,cArrs.getCurrentData(),size*sizeof(GLfloat),attribSize*sizeof(GLfloat),attribSize);
-    } else if(type == GL_BYTE) {
-        convertByteDirectLoop(data,stride,cArrs.getCurrentData(),size*sizeof(GLshort),attribSize*sizeof(GLshort),attribSize);
-    }
-}
-
-void GLEScontext::convertDirectVBO(GLESConversionArrays& cArrs,GLint first,GLsizei count,GLenum array_id,GLESpointer* p) {
-
-    RangeList ranges;
-    RangeList conversions;
-    GLushort* indices = NULL;
-    GLenum type    = p->getType();
-    int attribSize = p->getSize();
-    int stride = p->getStride()?p->getStride():sizeof(GLfixed)*attribSize;
-    unsigned int size = p->getStride()?p->getStride()*count:attribSize*count*sizeof(GLfixed);
-    char* data = (char*)p->getBufferData() + (first*stride);
-
-    if(p->bufferNeedConversion()) {
-        directToBytesRanges(first,count,p,ranges); //converting indices range to buffer bytes ranges by offset
-        p->getBufferConversions(ranges,conversions); // getting from the buffer the relevant ranges that still needs to be converted
-
-        if(conversions.size()) { // there are some elements to convert
-           indices = new GLushort[count];
-           int nIndices = bytesRangesToIndices(conversions,p,indices); //converting bytes ranges by offset to indices in this array
-           convertFixedIndirectLoop(data,stride,data,nIndices,GL_UNSIGNED_SHORT,indices,stride,attribSize);
-        }
-    }
-    if(indices) delete[] indices;
-    cArrs.setArr(data,p->getStride(),GL_FLOAT);
-}
-
-int GLEScontext::findMaxIndex(GLsizei count,GLenum type,const GLvoid* indices) {
-    //finding max index
-    int max = 0;
-    if(type == GL_UNSIGNED_BYTE) {
-        GLubyte*  b_indices  =(GLubyte *)indices;
-        for(int i=0;i<count;i++) {
-            if(b_indices[i] > max) max = b_indices[i];
-        }
-    } else {
-        GLushort* us_indices =(GLushort *)indices;
-        for(int i=0;i<count;i++) {
-            if(us_indices[i] > max) max = us_indices[i];
-        }
-    }
-    return max;
-}
-
-void GLEScontext::convertIndirect(GLESConversionArrays& cArrs,GLsizei count,GLenum indices_type,const GLvoid* indices,GLenum array_id,GLESpointer* p) {
-    GLenum type    = p->getType();
-    int maxElements = findMaxIndex(count,type,indices) + 1;
-
-    int attribSize = p->getSize();
-    int size = attribSize * maxElements;
-    unsigned int bytes = type == GL_FIXED ? sizeof(GLfixed):sizeof(GLbyte);
-    cArrs.allocArr(size,type);
-    int stride = p->getStride()?p->getStride():bytes*attribSize;
-
-    const char* data = (const char*)p->getArrayData();
-    if(type == GL_FIXED) {
-        convertFixedIndirectLoop(data,stride,cArrs.getCurrentData(),count,indices_type,indices,attribSize*sizeof(GLfloat),attribSize);
-    } else if(type == GL_BYTE){
-        convertByteIndirectLoop(data,stride,cArrs.getCurrentData(),count,indices_type,indices,attribSize*sizeof(GLshort),attribSize);
-    }
-}
-
-void GLEScontext::convertIndirectVBO(GLESConversionArrays& cArrs,GLsizei count,GLenum indices_type,const GLvoid* indices,GLenum array_id,GLESpointer* p) {
-    RangeList ranges;
-    RangeList conversions;
-    GLushort* conversionIndices = NULL;
-    GLenum type    = p->getType();
-    int attribSize = p->getSize();
-    int stride = p->getStride()?p->getStride():sizeof(GLfixed)*attribSize;
-    char* data = static_cast<char*>(p->getBufferData());
-    if(p->bufferNeedConversion()) {
-        indirectToBytesRanges(indices,indices_type,count,p,ranges); //converting indices range to buffer bytes ranges by offset
-        p->getBufferConversions(ranges,conversions); // getting from the buffer the relevant ranges that still needs to be converted
-        if(conversions.size()) { // there are some elements to convert
-            conversionIndices = new GLushort[count];
-            int nIndices = bytesRangesToIndices(conversions,p,conversionIndices); //converting bytes ranges by offset to indices in this array
-            convertFixedIndirectLoop(data,stride,data,nIndices,GL_UNSIGNED_SHORT,conversionIndices,stride,attribSize);
-        }
-    }
-    if(conversionIndices) delete[] conversionIndices;
-    cArrs.setArr(data,p->getStride(),GL_FLOAT);
-}
-
-
-
-void GLEScontext::bindBuffer(GLenum target,GLuint buffer) {
-    if(target == GL_ARRAY_BUFFER) {
-        m_arrayBuffer = buffer;
-    } else {
-       m_elementBuffer = buffer;
-    }
-}
-
-void GLEScontext::unbindBuffer(GLuint buffer) {
-    if(m_arrayBuffer == buffer)
-    {
-        m_arrayBuffer = 0;
-    }
-    if(m_elementBuffer == buffer)
-    {
-        m_elementBuffer = 0;
-    }
-}
-
-//checks if any buffer is binded to target
-bool GLEScontext::isBindedBuffer(GLenum target) {
-    if(target == GL_ARRAY_BUFFER) {
-        return m_arrayBuffer != 0;
-    } else {
-        return m_elementBuffer != 0;
-    }
-}
-
-GLuint GLEScontext::getBuffer(GLenum target) {
-    return target == GL_ARRAY_BUFFER ? m_arrayBuffer:m_elementBuffer;
-}
-
-GLvoid* GLEScontext::getBindedBuffer(GLenum target) {
-    GLuint bufferName = getBuffer(target);
-    if(!bufferName) return NULL;
-
-    GLESbuffer* vbo = static_cast<GLESbuffer*>(m_shareGroup->getObjectData(VERTEXBUFFER,bufferName).Ptr());
-    return vbo->getData();
-}
-
-void GLEScontext::getBufferSize(GLenum target,GLint* param) {
-    GLuint bufferName = getBuffer(target);
-    GLESbuffer* vbo = static_cast<GLESbuffer*>(m_shareGroup->getObjectData(VERTEXBUFFER,bufferName).Ptr());
-    *param = vbo->getSize();
-}
-
-void GLEScontext::getBufferUsage(GLenum target,GLint* param) {
-    GLuint bufferName = getBuffer(target);
-    GLESbuffer* vbo = static_cast<GLESbuffer*>(m_shareGroup->getObjectData(VERTEXBUFFER,bufferName).Ptr());
-    *param = vbo->getUsage();
-}
-
-bool GLEScontext::setBufferData(GLenum target,GLsizeiptr size,const GLvoid* data,GLenum usage) {
-    GLuint bufferName = getBuffer(target);
-    if(!bufferName) return false;
-    GLESbuffer* vbo = static_cast<GLESbuffer*>(m_shareGroup->getObjectData(VERTEXBUFFER,bufferName).Ptr());
-    return vbo->setBuffer(size,usage,data);
-}
-
-bool GLEScontext::setBufferSubData(GLenum target,GLintptr offset,GLsizeiptr size,const GLvoid* data) {
-
-    GLuint bufferName = getBuffer(target);
-    if(!bufferName) return false;
-    GLESbuffer* vbo = static_cast<GLESbuffer*>(m_shareGroup->getObjectData(VERTEXBUFFER,bufferName).Ptr());
-    return vbo->setSubBuffer(offset,size,data);
-}
-
-const char * GLEScontext::getExtensionString() {
-    const char * ret;
-    s_lock.lock();
-    if (s_glExtensions)
-        ret = s_glExtensions->c_str();
-    else
-        ret="";
-    s_lock.unlock();
-    return ret;
-}
-
-void GLEScontext::getGlobalLock() {
-    s_lock.lock();
-}
-
-void GLEScontext::releaseGlobalLock() {
-    s_lock.unlock();
-}
-
-
-void GLEScontext::initCapsLocked(const GLubyte * extensionString)
-{
-    const char* cstring = (const char*)extensionString;
-
-    s_glDispatch.glGetIntegerv(GL_MAX_VERTEX_ATTRIBS,&s_glSupport.maxVertexAttribs);
-    s_glDispatch.glGetIntegerv(GL_MAX_CLIP_PLANES,&s_glSupport.maxClipPlane);
-    s_glDispatch.glGetIntegerv(GL_MAX_LIGHTS,&s_glSupport.maxLights);
-    s_glDispatch.glGetIntegerv(GL_MAX_TEXTURE_SIZE,&s_glSupport.maxTexSize);
-    s_glDispatch.glGetIntegerv(GL_MAX_TEXTURE_UNITS,&s_glSupport.maxTexUnits);
-    s_glDispatch.glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS,&s_glSupport.maxTexImageUnits);
-    const GLubyte* glslVersion = s_glDispatch.glGetString(GL_SHADING_LANGUAGE_VERSION);
-    s_glSupport.glslVersion = Version((const  char*)(glslVersion));
-
-    if (strstr(cstring,"GL_EXT_bgra ")!=NULL)
-        s_glSupport.GL_EXT_TEXTURE_FORMAT_BGRA8888 = true;
-
-    if (strstr(cstring,"GL_EXT_framebuffer_object ")!=NULL)
-        s_glSupport.GL_EXT_FRAMEBUFFER_OBJECT = true;
-
-    if (strstr(cstring,"GL_ARB_vertex_blend ")!=NULL)
-        s_glSupport.GL_ARB_VERTEX_BLEND = true;
-
-    if (strstr(cstring,"GL_ARB_matrix_palette ")!=NULL)
-        s_glSupport.GL_ARB_MATRIX_PALETTE = true;
-
-    if (strstr(cstring,"GL_EXT_packed_depth_stencil ")!=NULL )
-        s_glSupport.GL_EXT_PACKED_DEPTH_STENCIL = true;
-
-    if (strstr(cstring,"GL_OES_read_format ")!=NULL)
-        s_glSupport.GL_OES_READ_FORMAT = true;
-
-    if (strstr(cstring,"GL_ARB_half_float_pixel ")!=NULL)
-        s_glSupport.GL_ARB_HALF_FLOAT_PIXEL = true;
-
-    if (strstr(cstring,"GL_NV_half_float ")!=NULL)
-        s_glSupport.GL_NV_HALF_FLOAT = true;
-
-    if (strstr(cstring,"GL_ARB_half_float_vertex ")!=NULL)
-        s_glSupport.GL_ARB_HALF_FLOAT_VERTEX = true;
-
-    if (strstr(cstring,"GL_SGIS_generate_mipmap ")!=NULL)
-        s_glSupport.GL_SGIS_GENERATE_MIPMAP = true;
-
-    if (strstr(cstring,"GL_ARB_ES2_compatibility ")!=NULL)
-        s_glSupport.GL_ARB_ES2_COMPATIBILITY = true;
-
-    if (strstr(cstring,"GL_OES_standard_derivatives ")!=NULL)
-        s_glSupport.GL_OES_STANDARD_DERIVATIVES = true;
-
-}
-
-bool GLEScontext::isTextureUnitEnabled(GLenum unit) {
-    for (int i=0;i<NUM_TEXTURE_TARGETS;++i) {
-        if (m_texState[unit-GL_TEXTURE0][i].enabled)
-            return true;
-    }
-    return false;
-}
-
-bool GLEScontext::glGetBooleanv(GLenum pname, GLboolean *params)
-{
-    GLint iParam;
-
-    if(glGetIntegerv(pname, &iParam))
-    {
-        *params = (iParam != 0);
-        return true;
-    }
-
-    return false;
-}
-
-bool GLEScontext::glGetFixedv(GLenum pname, GLfixed *params)
-{
-    bool result = false;
-    GLint numParams = 1;
-
-    GLint* iParams = new GLint[numParams];
-    if (numParams>0 && glGetIntegerv(pname,iParams)) {
-        while(numParams >= 0)
-        {
-            params[numParams] = I2X(iParams[numParams]);
-            numParams--;
-        }
-        result = true;
-    }
-    delete [] iParams;
-
-    return result;
-}
-
-bool GLEScontext::glGetFloatv(GLenum pname, GLfloat *params)
-{
-    bool result = false;
-    GLint numParams = 1;
-
-    GLint* iParams = new GLint[numParams];
-    if (numParams>0 && glGetIntegerv(pname,iParams)) {
-        while(numParams >= 0)
-        {
-            params[numParams] = (GLfloat)iParams[numParams];
-            numParams--;
-        }
-        result = true;
-    }
-    delete [] iParams;
-
-    return result;
-}        
-
-bool GLEScontext::glGetIntegerv(GLenum pname, GLint *params)
-{
-    switch(pname)
-    {
-        case GL_ARRAY_BUFFER_BINDING:
-            *params = m_arrayBuffer;
-            break;
-
-        case GL_ELEMENT_ARRAY_BUFFER_BINDING:
-            *params = m_elementBuffer;
-            break;
-
-        case GL_TEXTURE_BINDING_CUBE_MAP:
-            *params = m_texState[m_activeTexture][TEXTURE_CUBE_MAP].texture;
-            break;
-
-        case GL_TEXTURE_BINDING_2D:
-            *params = m_texState[m_activeTexture][TEXTURE_2D].texture;
-            break;
-
-        case GL_ACTIVE_TEXTURE:
-            *params = m_activeTexture+GL_TEXTURE0;
-            break;
-
-        case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
-            *params = GL_UNSIGNED_BYTE;
-            break;
-
-        case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
-            *params = GL_RGBA;
-            break;
-        default:
-            return false;
-    }
-
-    return true;
-}
-
-TextureTarget GLEScontext::GLTextureTargetToLocal(GLenum target) {
-    TextureTarget value=TEXTURE_2D;
-    switch (target) {
-    case GL_TEXTURE_CUBE_MAP:
-    case GL_TEXTURE_CUBE_MAP_POSITIVE_X:
-    case GL_TEXTURE_CUBE_MAP_POSITIVE_Y:
-    case GL_TEXTURE_CUBE_MAP_POSITIVE_Z:
-    case GL_TEXTURE_CUBE_MAP_NEGATIVE_X:
-    case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y:
-    case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z:
-        value = TEXTURE_CUBE_MAP;
-        break;
-    case GL_TEXTURE_2D:
-        value = TEXTURE_2D;
-        break;
-    }
-    return value;
-}
-
-unsigned int GLEScontext::getBindedTexture(GLenum target) {
-    TextureTarget pos = GLTextureTargetToLocal(target);
-    return m_texState[m_activeTexture][pos].texture;
-}
-  
-unsigned int GLEScontext::getBindedTexture(GLenum unit, GLenum target) {
-    TextureTarget pos = GLTextureTargetToLocal(target);
-    return m_texState[unit-GL_TEXTURE0][pos].texture;
-}
-
-void GLEScontext::setBindedTexture(GLenum target, unsigned int tex) {
-    TextureTarget pos = GLTextureTargetToLocal(target);
-    m_texState[m_activeTexture][pos].texture = tex;
-}
-
-void GLEScontext::setTextureEnabled(GLenum target, GLenum enable) {
-    TextureTarget pos = GLTextureTargetToLocal(target);
-    m_texState[m_activeTexture][pos].enabled = enable;
-}
-
-#define INTERNAL_NAME(x) (x +0x100000000ll);
-
-ObjectLocalName GLEScontext::getDefaultTextureName(GLenum target) {
-    ObjectLocalName name = 0;
-    switch (GLTextureTargetToLocal(target)) {
-    case TEXTURE_2D:
-        name = INTERNAL_NAME(0);
-        break;
-    case TEXTURE_CUBE_MAP:
-        name = INTERNAL_NAME(1);
-        break;
-    default:
-        name = 0;
-        break;
-    }
-    return name;
-}
-
-void GLEScontext::drawValidate(void)
-{
-    if(m_framebuffer == 0)
-        return;
-
-    ObjectDataPtr fbObj = m_shareGroup->getObjectData(FRAMEBUFFER,m_framebuffer);
-    if (fbObj.Ptr() == NULL)
-        return;
-
-    FramebufferData *fbData = (FramebufferData *)fbObj.Ptr();
-
-    fbData->validate(this);
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESpointer.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESpointer.cpp
deleted file mode 100644
index 372257e..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESpointer.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLcommon/GLESpointer.h>
-#include <stdlib.h>
-
-GLESpointer::GLESpointer():m_size(4),
-                           m_type(GL_FLOAT),
-                           m_stride(0),
-                           m_enabled(false),
-                           m_normalize(false),
-                           m_data(NULL),
-                           m_buffer(NULL),
-                           m_bufferName(0),
-                           m_buffOffset(0),
-                           m_isVBO(false){};
-
-
-GLenum GLESpointer:: getType() const {
-    return m_type;
-}
-
-GLint GLESpointer::getSize() const  {
-    return m_size;
-}
-
-GLsizei GLESpointer::getStride() const {
-    return m_stride;
-}
-
-const GLvoid* GLESpointer::getArrayData() const {
-    return m_data;
-}
-
-GLvoid* GLESpointer::getBufferData() const {
-    return  m_buffer ? static_cast<unsigned char*>(m_buffer->getData()) + m_buffOffset : NULL;
-}
-
-const GLvoid* GLESpointer::getData() const{
-    return m_isVBO ? getBufferData():getArrayData();
-}
-
-void GLESpointer::redirectPointerData(){
-    m_data = getBufferData();
-}
-
-GLuint GLESpointer::getBufferName() const {
-    return m_bufferName;
-}
-
-unsigned int GLESpointer::getBufferOffset() const {
-
-    return  m_buffOffset;
-}
-
-bool GLESpointer::isEnable() const {
-    return m_enabled;
-}
-
-bool GLESpointer::isNormalize() const {
-    return m_normalize;
-}
-
-bool GLESpointer::isVBO() const {
-    return m_isVBO;
-}
-
-void GLESpointer::enable(bool b) {
-    m_enabled = b;
-}
-
-void GLESpointer::setArray(GLint size,GLenum type,GLsizei stride,const GLvoid* data,bool normalize) {
-    m_size   = size;
-    m_type   = type;
-    m_stride = stride;
-    m_data   = data;
-    m_buffer = NULL;
-    m_bufferName = 0;
-    m_normalize = normalize;
-    m_isVBO = false;
-}
-
-void GLESpointer::setBuffer(GLint size,GLenum type,GLsizei stride,GLESbuffer* buf,GLuint bufferName,int offset,bool normalize) {
-    m_size   = size;
-    m_type   = type;
-    m_stride = stride;
-    m_data   = NULL;
-    m_buffer = buf;
-    m_bufferName = bufferName;
-    m_buffOffset = offset;
-    m_normalize = normalize;
-    m_isVBO = true;
-}
-
-void GLESpointer::getBufferConversions(const RangeList& rl,RangeList& rlOut) {
-    m_buffer->getConversions(rl,rlOut);
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESvalidate.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESvalidate.cpp
deleted file mode 100644
index 7233116..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLESvalidate.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-#include<GLcommon/GLESvalidate.h>
-#include<GLES/gl.h>
-#include<GLES/glext.h>
-#include<GLES2/gl2.h>
-#include<GLES2/gl2ext.h>
-#include <OpenglCodecCommon/ErrorLog.h>
-
-
-bool  GLESvalidate::textureEnum(GLenum e,unsigned int maxTex) {
-    return e >= GL_TEXTURE0 && e <= (GL_TEXTURE0 + maxTex);
-}
-
-bool GLESvalidate::pixelType(GLEScontext * ctx, GLenum type) {
-    if ((ctx && ctx->getCaps()->GL_EXT_PACKED_DEPTH_STENCIL) &&
-       (type == GL_UNSIGNED_INT_24_8_OES) )
-        return true;
-
-    if (ctx &&
-       (ctx->getCaps()->GL_ARB_HALF_FLOAT_PIXEL || ctx->getCaps()->GL_NV_HALF_FLOAT) &&
-       (type == GL_HALF_FLOAT_OES))
-        return true;
-
-    switch(type) {
-    case GL_UNSIGNED_BYTE:
-    case GL_UNSIGNED_SHORT_5_6_5:
-    case GL_UNSIGNED_SHORT_4_4_4_4:
-    case GL_UNSIGNED_SHORT_5_5_5_1:
-    case GL_FLOAT:
-        return true;
-    }
-    return false;
-}
-
-bool GLESvalidate::pixelOp(GLenum format,GLenum type) {
-     switch(type) {
-     case GL_UNSIGNED_SHORT_4_4_4_4:
-     case GL_UNSIGNED_SHORT_5_5_5_1:
-         return format == GL_RGBA;
-     case GL_UNSIGNED_SHORT_5_6_5:
-         return format == GL_RGB;
-     }
-     return true;
-}
-
-bool GLESvalidate::pixelFrmt(GLEScontext* ctx ,GLenum format) {
-    if (ctx && ctx->getCaps()->GL_EXT_TEXTURE_FORMAT_BGRA8888 && format == GL_BGRA_EXT)
-      return true;
-    if (ctx && ctx->getCaps()->GL_EXT_PACKED_DEPTH_STENCIL && format == GL_DEPTH_STENCIL_OES)
-      return true;
-    switch(format) {
-    case GL_ALPHA:
-    case GL_RGB:
-    case GL_RGBA:
-    case GL_LUMINANCE:
-    case GL_LUMINANCE_ALPHA:
-        return true;
-    }
-    return false;
-}
-
-bool GLESvalidate::bufferTarget(GLenum target) {
-    return target == GL_ARRAY_BUFFER || target == GL_ELEMENT_ARRAY_BUFFER;
-}
-
-bool GLESvalidate::bufferParam(GLenum param) {
- return  (param == GL_BUFFER_SIZE) || (param == GL_BUFFER_USAGE);
-}
-
-bool GLESvalidate::drawMode(GLenum mode) {
-    switch(mode) {
-    case GL_POINTS:
-    case GL_LINE_STRIP:
-    case GL_LINE_LOOP:
-    case GL_LINES:
-    case GL_TRIANGLE_STRIP:
-    case GL_TRIANGLE_FAN:
-    case GL_TRIANGLES:
-        return true;
-    }
-    return false;
-}
-
-bool GLESvalidate::drawType(GLenum mode) {
-    return  mode == GL_UNSIGNED_BYTE ||
-            mode == GL_UNSIGNED_SHORT ||
-            mode == GL_UNSIGNED_INT;
-}
-
-bool GLESvalidate::textureTarget(GLenum target) {
-    return target==GL_TEXTURE_2D || target==GL_TEXTURE_CUBE_MAP;
-}
-
-bool GLESvalidate::textureTargetLimited(GLenum target) {
-    return target==GL_TEXTURE_2D;
-}
-
-bool GLESvalidate::textureTargetEx(GLenum target) {
-    switch(target) {
-    case GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES:
-    case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES:
-    case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES:
-    case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES:
-    case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES:
-    case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES:
-    case GL_TEXTURE_2D:
-      return true;
-    } 
-    return false;
-}
-
-bool GLESvalidate::blendEquationMode(GLenum mode){
-    return mode == GL_FUNC_ADD             ||
-           mode == GL_FUNC_SUBTRACT        ||
-           mode == GL_FUNC_REVERSE_SUBTRACT;
-}
-
-bool GLESvalidate::framebufferTarget(GLenum target){
-    return target == GL_FRAMEBUFFER;
-}
-
-bool GLESvalidate::framebufferAttachment(GLenum attachment){
-    switch(attachment){
-    case GL_COLOR_ATTACHMENT0:
-    case GL_DEPTH_ATTACHMENT:
-    case GL_STENCIL_ATTACHMENT:
-        return true;
-    }
-    return false;
-}
-
-bool GLESvalidate::framebufferAttachmentParams(GLenum pname){
-    switch(pname){
-    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:
-    case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:
-    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:
-    case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:
-        return true;
-    }
-    return false;
-}
-
-bool GLESvalidate::renderbufferTarget(GLenum target){
-    return target == GL_RENDERBUFFER;
-}
-
-bool GLESvalidate::renderbufferParams(GLenum pname){
-    switch(pname){
-    case GL_RENDERBUFFER_WIDTH:
-    case GL_RENDERBUFFER_HEIGHT:
-    case GL_RENDERBUFFER_INTERNAL_FORMAT:
-    case GL_RENDERBUFFER_RED_SIZE:
-    case GL_RENDERBUFFER_GREEN_SIZE:
-    case GL_RENDERBUFFER_BLUE_SIZE:
-    case GL_RENDERBUFFER_ALPHA_SIZE:
-    case GL_RENDERBUFFER_DEPTH_SIZE:
-    case GL_RENDERBUFFER_STENCIL_SIZE:
-        return true;
-    }
-    return false;
-}
-
-bool GLESvalidate::texImgDim(GLsizei width,GLsizei height,int maxTexSize) {
-
- if( width < 0 || height < 0 || width > maxTexSize || height > maxTexSize)
-    return false;
- return isPowerOf2(width) && isPowerOf2(height);
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLutils.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/GLutils.cpp
deleted file mode 100644
index 46e292c..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/GLutils.cpp
+++ /dev/null
@@ -1,20 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLcommon/GLutils.h>
-
-bool isPowerOf2(int num) {
-    return (num & (num -1)) == 0;
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/PaletteTexture.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/PaletteTexture.cpp
deleted file mode 100644
index c99ed07..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/PaletteTexture.cpp
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLcommon/PaletteTexture.h"
-#include <stdio.h>
-
-
-
-struct Color
-{
-  Color(unsigned char r, unsigned char g,unsigned char b, unsigned char a):red(r),green(g),blue(b),alpha(a){};
-  unsigned char red;
-  unsigned char green;
-  unsigned char blue;
-  unsigned char alpha;
-};
-
-void getPaletteInfo(GLenum internalFormat,unsigned int& indexSizeBits,unsigned int& colorSizeBytes,GLenum& colorFrmt) {
-
-        colorFrmt = GL_RGB;
-        switch(internalFormat)
-    {
-    case GL_PALETTE4_RGB8_OES:
-        indexSizeBits = 4;
-        colorSizeBytes = 3;
-        break;
-
-    case GL_PALETTE4_RGBA8_OES:
-        indexSizeBits = 4;
-        colorSizeBytes = 4;
-        colorFrmt = GL_RGBA;
-        break;
-
-    case GL_PALETTE4_RGBA4_OES:
-    case GL_PALETTE4_RGB5_A1_OES:
-        colorFrmt = GL_RGBA;
-        /* fall-through */
-    case GL_PALETTE4_R5_G6_B5_OES:
-        indexSizeBits = 4;
-        colorSizeBytes = 2;
-        break;
-
-    case GL_PALETTE8_RGB8_OES:
-        indexSizeBits = 8;
-        colorSizeBytes = 3;
-        break;
-
-    case GL_PALETTE8_RGBA8_OES:
-        indexSizeBits = 8;
-        colorSizeBytes = 4;
-        colorFrmt = GL_RGBA;
-        break;
-
-    case GL_PALETTE8_RGBA4_OES:
-    case GL_PALETTE8_RGB5_A1_OES:
-        colorFrmt = GL_RGBA;
-        /* fall-through */
-    case GL_PALETTE8_R5_G6_B5_OES:
-        indexSizeBits = 8;
-        colorSizeBytes = 2;
-        break;
-    }
-}
-
-
-Color paletteColor(const unsigned char* pallete,unsigned int index,GLenum format)
-{
-        short s;
-        switch(format) {
-        //RGB
-    case GL_PALETTE4_RGB8_OES:
-    case GL_PALETTE8_RGB8_OES:
-            return Color(pallete[index],pallete[index+1],pallete[index+2],0);
-    case GL_PALETTE8_R5_G6_B5_OES:
-    case GL_PALETTE4_R5_G6_B5_OES:
-            s = *((short *)(pallete+index));
-            return Color((s >> 11)*255/31,((s >> 5) & 0x3f)*255/63 ,(s & 0x1f)*255/31,0);
-
-        //RGBA
-    case GL_PALETTE4_RGBA8_OES:
-    case GL_PALETTE8_RGBA8_OES:
-            return Color(pallete[index],pallete[index+1],pallete[index+2],pallete[index+3]);
-    case GL_PALETTE4_RGBA4_OES:
-    case GL_PALETTE8_RGBA4_OES:
-            s = *((short *)(pallete+index));
-            return Color(((s >> 12) & 0xf)*255/15,((s >> 8) & 0xf)*255/15,((s >> 4) & 0xf)*255/15 ,(s & 0xf)*255/15);
-    case GL_PALETTE4_RGB5_A1_OES:
-    case GL_PALETTE8_RGB5_A1_OES:
-            s = *((short *)(pallete+index));
-            return Color(((s >> 11) & 0x1f)*255/31,((s >> 6) & 0x1f)*255/31,((s >> 1) & 0x1f)*255/31 ,(s & 0x1) * 255);
-        default:
-            return Color(255,255,255,255);
-    }
-}
-
-unsigned char* uncompressTexture(GLenum internalformat,GLenum& formatOut,GLsizei width,GLsizei height,GLsizei imageSize, const GLvoid* data,GLint level) {
-
-    unsigned int indexSizeBits;  //the size of the color index in the pallete
-    unsigned int colorSizeBytes; //the size of each color cell in the pallete
-
-    getPaletteInfo(internalformat,indexSizeBits,colorSizeBytes,formatOut);
-    if(!data)
-    {
-        return NULL;
-    }
-
-    const unsigned char* palette = static_cast<const unsigned char *>(data);
-
-    //the pallete positioned in the begininng of the data
-    // so we jump over it to get to the colos indices in the palette
-
-    int nColors = 2 << (indexSizeBits -1); //2^indexSizeBits
-    int paletteSizeBytes = nColors*colorSizeBytes;
-    const unsigned char* imageIndices =  palette + paletteSizeBytes;
-
-    //jumping to the the correct mipmap level
-    for(int i=0;i<level;i++) {
-        imageIndices+= (width*height*indexSizeBits)/8;
-        width  = width  >> 1;
-        height = height >> 1;
-    }
-
-    int colorSizeOut = (formatOut == GL_RGB? 3:4);
-    int nPixels = width*height;
-    unsigned char* pixelsOut = new unsigned char[nPixels*colorSizeOut];
-    if(!pixelsOut) return NULL;
-
-    int leftBytes = ((palette + imageSize) /* the end of data pointer*/
-                      - imageIndices);
-    int leftPixels = (leftBytes * 8 )/indexSizeBits;
-
-    int maxIndices = (leftPixels < nPixels) ? leftPixels:nPixels;
-
-    //filling the pixels array
-    for(int i =0 ; i < maxIndices ; i++) {
-        int paletteIndex = 0;
-        int indexOut = i*colorSizeOut;
-        if(indexSizeBits == 4) {
-            paletteIndex = (i%2) == 0 ?
-                           imageIndices[i/2] >> 4:  //upper bits
-                           imageIndices[i/2] & 0xf; //lower bits
-        } else {
-            paletteIndex = imageIndices[i];
-        }
-
-        paletteIndex*=colorSizeBytes;
-        Color c = paletteColor(palette,paletteIndex,internalformat);
-
-        pixelsOut[indexOut] = c.red;
-        pixelsOut[indexOut+1] = c.green;
-        pixelsOut[indexOut+2] = c.blue;
-        if(formatOut == GL_RGBA) {
-            pixelsOut[indexOut+3] = c.alpha;
-        }
-    }
-    return pixelsOut;
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp
deleted file mode 100644
index 5ba609b..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/RangeManip.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLcommon/RangeManip.h>
-
-
-bool Range::rangeIntersection(const Range& r,Range& rOut) const {
-    if(m_start > r.getEnd() || r.getStart() > m_end) return false;
-    int max_start = (m_start > r.getStart())? m_start:r.getStart();
-    int min_end = (m_end < r.getEnd())?m_end:r.getEnd();
-    int size = min_end - max_start;
-    if(size) {
-        rOut.setRange(max_start,min_end-max_start);
-        return true;
-    }
-    return false;
-}
-
-bool Range::rangeUnion(const Range& r,Range& rOut) const {
-    if(m_start > r.getEnd() || r.getStart() > m_end) return false;
-    int min_start = (m_start < r.getStart())?m_start:r.getStart();
-    int max_end = (m_end > r.getEnd())?m_end:r.getEnd();
-    int size =  max_end - min_start;
-    if(size) {
-        rOut.setRange(min_start,max_end-min_start);
-        return false;
-    }
-    return false;
-}
-
-void RangeList::addRange(const Range& r) {
-    list.push_back(r);
-}
-
-void RangeList::addRanges(const RangeList& rl) {
-    for(int i =0; i< rl.size();i++) {
-       addRange(rl.list[i]);
-    }
-}
-
-void RangeList::delRanges(const RangeList& rl,RangeList& deleted) {
-    for(int i =0; i< rl.size();i++) {
-       delRange(rl.list[i],deleted);
-    }
-}
-
-bool RangeList::empty() const{
-    return list.empty();
-}
-
-int  RangeList::size() const{
-    return list.size();
-}
-void RangeList::clear() {
-    return list.clear();
-}
-
-void RangeList::erase(unsigned int i) {
-    if(i > list.size()) return;
-    list.erase(list.begin() +i);
-}
-
-void RangeList::delRange(const Range& r,RangeList& deleted) {
-    if(r.getSize() == 0) return;
-
-    Range intersection;
-    Range temp;
-    // compare new rect to each and any of the rects on the list
-    for (int i=0;i<(int)list.size();i++) { // i must be signed for i-- below
-     // if there is intersection
-     if (r.rangeIntersection(list[i],intersection)) {
-             Range old=list[i];
-         // remove old as it is about to be split
-         erase(i);
-         i--;
-         if (intersection!=old) { // otherwise split:
-             //intersection on right side
-             if(old.getStart() != intersection.getStart()) {
-                 list.insert(list.begin(),Range(old.getStart(),intersection.getStart() - old.getStart()));
-             }
-
-             //intersection on left side
-             if(old.getEnd() != intersection.getEnd()) {
-                 list.insert(list.begin(),Range(intersection.getEnd(),old.getEnd() - intersection.getEnd()));
-             }
-         }
-         deleted.addRange(intersection);
-     }
- }
-}
-
-void RangeList::merge() {
-    if(list.empty()) return;
-
-    Range temp;
-    bool changed;
-
-    do { // re-run if changed in last run
-        changed=0;
-        // run for each combinations of two rects in the list
-        for (int i=0;i<(((int)list.size())-1) && !changed ;i++)
-        {
-            for (int j=i+1;j<(int)list.size() && !changed ;j++)
-            {
-               if (list[i].rangeUnion(list[j],temp)) {
-                    // are them exactly one on left of the other
-                    list[i] = temp;
-                    erase(j);
-                    changed=1;
-               }
-            }
-        }
-    } while (changed);
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/TextureUtils.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/TextureUtils.cpp
deleted file mode 100644
index 81152f6..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/TextureUtils.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <GLcommon/TextureUtils.h>
-#include <GLcommon/GLESmacros.h>
-#include <GLcommon/GLDispatch.h>
-#include <GLcommon/GLESvalidate.h>
-#include <stdio.h>
-#include <cmath>
-
-int getCompressedFormats(int* formats){
-    if(formats){
-        //Palette
-        formats[0] = GL_PALETTE4_RGBA8_OES;
-        formats[1] = GL_PALETTE4_RGBA4_OES;
-        formats[2] = GL_PALETTE8_RGBA8_OES;
-        formats[3] = GL_PALETTE8_RGBA4_OES;
-        formats[4] = GL_PALETTE4_RGB8_OES;
-        formats[5] = GL_PALETTE8_RGB8_OES;
-        formats[6] = GL_PALETTE4_RGB5_A1_OES;
-        formats[7] = GL_PALETTE8_RGB5_A1_OES;
-        formats[8] = GL_PALETTE4_R5_G6_B5_OES;
-        formats[9] = GL_PALETTE8_R5_G6_B5_OES;
-        //ETC
-        formats[MAX_SUPPORTED_PALETTE] = GL_ETC1_RGB8_OES;
-    }
-    return MAX_SUPPORTED_PALETTE + MAX_ETC_SUPPORTED;
-}
-
-void  doCompressedTexImage2D(GLEScontext * ctx, GLenum target, GLint level, 
-                                          GLenum internalformat, GLsizei width, 
-                                          GLsizei height, GLint border, 
-                                          GLsizei imageSize, const GLvoid* data, void * funcPtr)
-{
-    /* XXX: This is just a hack to fix the resolve of glTexImage2D problem
-       It will be removed when we'll no longer link against ligGL */
-    typedef void (GLAPIENTRY *glTexImage2DPtr_t ) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-    glTexImage2DPtr_t glTexImage2DPtr;
-    glTexImage2DPtr =  (glTexImage2DPtr_t)funcPtr; 
-
-    switch (internalformat) {
-        case GL_ETC1_RGB8_OES:
-            {
-                GLint format = GL_RGB;
-                GLint type = GL_UNSIGNED_BYTE;
-
-                GLsizei compressedSize = etc1_get_encoded_data_size(width, height);
-                SET_ERROR_IF((compressedSize > imageSize), GL_INVALID_VALUE);
-
-                const int32_t align = ctx->getUnpackAlignment()-1;
-                const int32_t bpr = ((width * 3) + align) & ~align;
-                const size_t size = bpr * height;
-
-                etc1_byte* pOut = new etc1_byte[size];
-                int res = etc1_decode_image((const etc1_byte*)data, pOut, width, height, 3, bpr);
-                SET_ERROR_IF(res!=0, GL_INVALID_VALUE);
-                glTexImage2DPtr(target,level,format,width,height,border,format,type,pOut);
-                delete [] pOut;
-            }
-            break;
-            
-        case GL_PALETTE4_RGB8_OES:
-        case GL_PALETTE4_RGBA8_OES:
-        case GL_PALETTE4_R5_G6_B5_OES:
-        case GL_PALETTE4_RGBA4_OES:
-        case GL_PALETTE4_RGB5_A1_OES:
-        case GL_PALETTE8_RGB8_OES:
-        case GL_PALETTE8_RGBA8_OES:
-        case GL_PALETTE8_R5_G6_B5_OES:
-        case GL_PALETTE8_RGBA4_OES:
-        case GL_PALETTE8_RGB5_A1_OES:
-            {
-                SET_ERROR_IF(level > log2(ctx->getMaxTexSize()) || 
-                             border !=0 || level > 0 || 
-                             !GLESvalidate::texImgDim(width,height,ctx->getMaxTexSize()+2),GL_INVALID_VALUE)
-
-                int nMipmaps = -level + 1;
-                GLsizei tmpWidth  = width;
-                GLsizei tmpHeight = height;
-
-                for(int i = 0; i < nMipmaps ; i++)
-                {
-                   GLenum uncompressedFrmt;
-                   unsigned char* uncompressed = uncompressTexture(internalformat,uncompressedFrmt,width,height,imageSize,data,i);
-                   glTexImage2DPtr(target,i,uncompressedFrmt,tmpWidth,tmpHeight,border,uncompressedFrmt,GL_UNSIGNED_BYTE,uncompressed);
-                   tmpWidth/=2;
-                   tmpHeight/=2;
-                   delete[] uncompressed;
-                }
-            }
-            break;
-
-        default:
-            SET_ERROR_IF(1, GL_INVALID_ENUM);
-            break;
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/etc1.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/etc1.cpp
deleted file mode 100644
index 5ed2c3c..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/etc1.cpp
+++ /dev/null
@@ -1,670 +0,0 @@
-// Copyright 2009 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#include <ETC1/etc1.h>
-
-#include <string.h>
-
-/* From http://www.khronos.org/registry/gles/extensions/OES/OES_compressed_ETC1_RGB8_texture.txt
-
- The number of bits that represent a 4x4 texel block is 64 bits if
- <internalformat> is given by ETC1_RGB8_OES.
-
- The data for a block is a number of bytes,
-
- {q0, q1, q2, q3, q4, q5, q6, q7}
-
- where byte q0 is located at the lowest memory address and q7 at
- the highest. The 64 bits specifying the block is then represented
- by the following 64 bit integer:
-
- int64bit = 256*(256*(256*(256*(256*(256*(256*q0+q1)+q2)+q3)+q4)+q5)+q6)+q7;
-
- ETC1_RGB8_OES:
-
- a) bit layout in bits 63 through 32 if diffbit = 0
-
- 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48
- -----------------------------------------------
- | base col1 | base col2 | base col1 | base col2 |
- | R1 (4bits)| R2 (4bits)| G1 (4bits)| G2 (4bits)|
- -----------------------------------------------
-
- 47 46 45 44 43 42 41 40 39 38 37 36 35 34  33  32
- ---------------------------------------------------
- | base col1 | base col2 | table  | table  |diff|flip|
- | B1 (4bits)| B2 (4bits)| cw 1   | cw 2   |bit |bit |
- ---------------------------------------------------
-
-
- b) bit layout in bits 63 through 32 if diffbit = 1
-
- 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48
- -----------------------------------------------
- | base col1    | dcol 2 | base col1    | dcol 2 |
- | R1' (5 bits) | dR2    | G1' (5 bits) | dG2    |
- -----------------------------------------------
-
- 47 46 45 44 43 42 41 40 39 38 37 36 35 34  33  32
- ---------------------------------------------------
- | base col 1   | dcol 2 | table  | table  |diff|flip|
- | B1' (5 bits) | dB2    | cw 1   | cw 2   |bit |bit |
- ---------------------------------------------------
-
-
- c) bit layout in bits 31 through 0 (in both cases)
-
- 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16
- -----------------------------------------------
- |       most significant pixel index bits       |
- | p| o| n| m| l| k| j| i| h| g| f| e| d| c| b| a|
- -----------------------------------------------
-
- 15 14 13 12 11 10  9  8  7  6  5  4  3   2   1  0
- --------------------------------------------------
- |         least significant pixel index bits       |
- | p| o| n| m| l| k| j| i| h| g| f| e| d| c | b | a |
- --------------------------------------------------
-
-
- Add table 3.17.2: Intensity modifier sets for ETC1 compressed textures:
-
- table codeword                modifier table
- ------------------        ----------------------
- 0                     -8  -2  2   8
- 1                    -17  -5  5  17
- 2                    -29  -9  9  29
- 3                    -42 -13 13  42
- 4                    -60 -18 18  60
- 5                    -80 -24 24  80
- 6                   -106 -33 33 106
- 7                   -183 -47 47 183
-
-
- Add table 3.17.3 Mapping from pixel index values to modifier values for
- ETC1 compressed textures:
-
- pixel index value
- ---------------
- msb     lsb           resulting modifier value
- -----   -----          -------------------------
- 1       1            -b (large negative value)
- 1       0            -a (small negative value)
- 0       0             a (small positive value)
- 0       1             b (large positive value)
-
-
- */
-
-static const int kModifierTable[] = {
-/* 0 */2, 8, -2, -8,
-/* 1 */5, 17, -5, -17,
-/* 2 */9, 29, -9, -29,
-/* 3 */13, 42, -13, -42,
-/* 4 */18, 60, -18, -60,
-/* 5 */24, 80, -24, -80,
-/* 6 */33, 106, -33, -106,
-/* 7 */47, 183, -47, -183 };
-
-static const int kLookup[8] = { 0, 1, 2, 3, -4, -3, -2, -1 };
-
-static inline etc1_byte clamp(int x) {
-    return (etc1_byte) (x >= 0 ? (x < 255 ? x : 255) : 0);
-}
-
-static
-inline int convert4To8(int b) {
-    int c = b & 0xf;
-    return (c << 4) | c;
-}
-
-static
-inline int convert5To8(int b) {
-    int c = b & 0x1f;
-    return (c << 3) | (c >> 2);
-}
-
-static
-inline int convert6To8(int b) {
-    int c = b & 0x3f;
-    return (c << 2) | (c >> 4);
-}
-
-static
-inline int divideBy255(int d) {
-    return (d + 128 + (d >> 8)) >> 8;
-}
-
-static
-inline int convert8To4(int b) {
-    int c = b & 0xff;
-    return divideBy255(b * 15);
-}
-
-static
-inline int convert8To5(int b) {
-    int c = b & 0xff;
-    return divideBy255(b * 31);
-}
-
-static
-inline int convertDiff(int base, int diff) {
-    return convert5To8((0x1f & base) + kLookup[0x7 & diff]);
-}
-
-static
-void decode_subblock(etc1_byte* pOut, int r, int g, int b, const int* table,
-        etc1_uint32 low, bool second, bool flipped) {
-    int baseX = 0;
-    int baseY = 0;
-    if (second) {
-        if (flipped) {
-            baseY = 2;
-        } else {
-            baseX = 2;
-        }
-    }
-    for (int i = 0; i < 8; i++) {
-        int x, y;
-        if (flipped) {
-            x = baseX + (i >> 1);
-            y = baseY + (i & 1);
-        } else {
-            x = baseX + (i >> 2);
-            y = baseY + (i & 3);
-        }
-        int k = y + (x * 4);
-        int offset = ((low >> k) & 1) | ((low >> (k + 15)) & 2);
-        int delta = table[offset];
-        etc1_byte* q = pOut + 3 * (x + 4 * y);
-        *q++ = clamp(r + delta);
-        *q++ = clamp(g + delta);
-        *q++ = clamp(b + delta);
-    }
-}
-
-// Input is an ETC1 compressed version of the data.
-// Output is a 4 x 4 square of 3-byte pixels in form R, G, B
-
-void etc1_decode_block(const etc1_byte* pIn, etc1_byte* pOut) {
-    etc1_uint32 high = (pIn[0] << 24) | (pIn[1] << 16) | (pIn[2] << 8) | pIn[3];
-    etc1_uint32 low = (pIn[4] << 24) | (pIn[5] << 16) | (pIn[6] << 8) | pIn[7];
-    int r1, r2, g1, g2, b1, b2;
-    if (high & 2) {
-        // differential
-        int rBase = high >> 27;
-        int gBase = high >> 19;
-        int bBase = high >> 11;
-        r1 = convert5To8(rBase);
-        r2 = convertDiff(rBase, high >> 24);
-        g1 = convert5To8(gBase);
-        g2 = convertDiff(gBase, high >> 16);
-        b1 = convert5To8(bBase);
-        b2 = convertDiff(bBase, high >> 8);
-    } else {
-        // not differential
-        r1 = convert4To8(high >> 28);
-        r2 = convert4To8(high >> 24);
-        g1 = convert4To8(high >> 20);
-        g2 = convert4To8(high >> 16);
-        b1 = convert4To8(high >> 12);
-        b2 = convert4To8(high >> 8);
-    }
-    int tableIndexA = 7 & (high >> 5);
-    int tableIndexB = 7 & (high >> 2);
-    const int* tableA = kModifierTable + tableIndexA * 4;
-    const int* tableB = kModifierTable + tableIndexB * 4;
-    bool flipped = (high & 1) != 0;
-    decode_subblock(pOut, r1, g1, b1, tableA, low, false, flipped);
-    decode_subblock(pOut, r2, g2, b2, tableB, low, true, flipped);
-}
-
-typedef struct {
-    etc1_uint32 high;
-    etc1_uint32 low;
-    etc1_uint32 score; // Lower is more accurate
-} etc_compressed;
-
-static
-inline void take_best(etc_compressed* a, const etc_compressed* b) {
-    if (a->score > b->score) {
-        *a = *b;
-    }
-}
-
-static
-void etc_average_colors_subblock(const etc1_byte* pIn, etc1_uint32 inMask,
-        etc1_byte* pColors, bool flipped, bool second) {
-    int r = 0;
-    int g = 0;
-    int b = 0;
-
-    if (flipped) {
-        int by = 0;
-        if (second) {
-            by = 2;
-        }
-        for (int y = 0; y < 2; y++) {
-            int yy = by + y;
-            for (int x = 0; x < 4; x++) {
-                int i = x + 4 * yy;
-                if (inMask & (1 << i)) {
-                    const etc1_byte* p = pIn + i * 3;
-                    r += *(p++);
-                    g += *(p++);
-                    b += *(p++);
-                }
-            }
-        }
-    } else {
-        int bx = 0;
-        if (second) {
-            bx = 2;
-        }
-        for (int y = 0; y < 4; y++) {
-            for (int x = 0; x < 2; x++) {
-                int xx = bx + x;
-                int i = xx + 4 * y;
-                if (inMask & (1 << i)) {
-                    const etc1_byte* p = pIn + i * 3;
-                    r += *(p++);
-                    g += *(p++);
-                    b += *(p++);
-                }
-            }
-        }
-    }
-    pColors[0] = (etc1_byte)((r + 4) >> 3);
-    pColors[1] = (etc1_byte)((g + 4) >> 3);
-    pColors[2] = (etc1_byte)((b + 4) >> 3);
-}
-
-static
-inline int square(int x) {
-    return x * x;
-}
-
-static etc1_uint32 chooseModifier(const etc1_byte* pBaseColors,
-        const etc1_byte* pIn, etc1_uint32 *pLow, int bitIndex,
-        const int* pModifierTable) {
-    etc1_uint32 bestScore = ~0;
-    int bestIndex = 0;
-    int pixelR = pIn[0];
-    int pixelG = pIn[1];
-    int pixelB = pIn[2];
-    int r = pBaseColors[0];
-    int g = pBaseColors[1];
-    int b = pBaseColors[2];
-    for (int i = 0; i < 4; i++) {
-        int modifier = pModifierTable[i];
-        int decodedG = clamp(g + modifier);
-        etc1_uint32 score = (etc1_uint32) (6 * square(decodedG - pixelG));
-        if (score >= bestScore) {
-            continue;
-        }
-        int decodedR = clamp(r + modifier);
-        score += (etc1_uint32) (3 * square(decodedR - pixelR));
-        if (score >= bestScore) {
-            continue;
-        }
-        int decodedB = clamp(b + modifier);
-        score += (etc1_uint32) square(decodedB - pixelB);
-        if (score < bestScore) {
-            bestScore = score;
-            bestIndex = i;
-        }
-    }
-    etc1_uint32 lowMask = (((bestIndex >> 1) << 16) | (bestIndex & 1))
-            << bitIndex;
-    *pLow |= lowMask;
-    return bestScore;
-}
-
-static
-void etc_encode_subblock_helper(const etc1_byte* pIn, etc1_uint32 inMask,
-        etc_compressed* pCompressed, bool flipped, bool second,
-        const etc1_byte* pBaseColors, const int* pModifierTable) {
-    int score = pCompressed->score;
-    if (flipped) {
-        int by = 0;
-        if (second) {
-            by = 2;
-        }
-        for (int y = 0; y < 2; y++) {
-            int yy = by + y;
-            for (int x = 0; x < 4; x++) {
-                int i = x + 4 * yy;
-                if (inMask & (1 << i)) {
-                    score += chooseModifier(pBaseColors, pIn + i * 3,
-                            &pCompressed->low, yy + x * 4, pModifierTable);
-                }
-            }
-        }
-    } else {
-        int bx = 0;
-        if (second) {
-            bx = 2;
-        }
-        for (int y = 0; y < 4; y++) {
-            for (int x = 0; x < 2; x++) {
-                int xx = bx + x;
-                int i = xx + 4 * y;
-                if (inMask & (1 << i)) {
-                    score += chooseModifier(pBaseColors, pIn + i * 3,
-                            &pCompressed->low, y + xx * 4, pModifierTable);
-                }
-            }
-        }
-    }
-    pCompressed->score = score;
-}
-
-static bool inRange4bitSigned(int color) {
-    return color >= -4 && color <= 3;
-}
-
-static void etc_encodeBaseColors(etc1_byte* pBaseColors,
-        const etc1_byte* pColors, etc_compressed* pCompressed) {
-    int r1, g1, b1, r2, g2, b2; // 8 bit base colors for sub-blocks
-    bool differential;
-    {
-        int r51 = convert8To5(pColors[0]);
-        int g51 = convert8To5(pColors[1]);
-        int b51 = convert8To5(pColors[2]);
-        int r52 = convert8To5(pColors[3]);
-        int g52 = convert8To5(pColors[4]);
-        int b52 = convert8To5(pColors[5]);
-
-        r1 = convert5To8(r51);
-        g1 = convert5To8(g51);
-        b1 = convert5To8(b51);
-
-        int dr = r52 - r51;
-        int dg = g52 - g51;
-        int db = b52 - b51;
-
-        differential = inRange4bitSigned(dr) && inRange4bitSigned(dg)
-                && inRange4bitSigned(db);
-        if (differential) {
-            r2 = convert5To8(r51 + dr);
-            g2 = convert5To8(g51 + dg);
-            b2 = convert5To8(b51 + db);
-            pCompressed->high |= (r51 << 27) | ((7 & dr) << 24) | (g51 << 19)
-                    | ((7 & dg) << 16) | (b51 << 11) | ((7 & db) << 8) | 2;
-        }
-    }
-
-    if (!differential) {
-        int r41 = convert8To4(pColors[0]);
-        int g41 = convert8To4(pColors[1]);
-        int b41 = convert8To4(pColors[2]);
-        int r42 = convert8To4(pColors[3]);
-        int g42 = convert8To4(pColors[4]);
-        int b42 = convert8To4(pColors[5]);
-        r1 = convert4To8(r41);
-        g1 = convert4To8(g41);
-        b1 = convert4To8(b41);
-        r2 = convert4To8(r42);
-        g2 = convert4To8(g42);
-        b2 = convert4To8(b42);
-        pCompressed->high |= (r41 << 28) | (r42 << 24) | (g41 << 20) | (g42
-                << 16) | (b41 << 12) | (b42 << 8);
-    }
-    pBaseColors[0] = r1;
-    pBaseColors[1] = g1;
-    pBaseColors[2] = b1;
-    pBaseColors[3] = r2;
-    pBaseColors[4] = g2;
-    pBaseColors[5] = b2;
-}
-
-static
-void etc_encode_block_helper(const etc1_byte* pIn, etc1_uint32 inMask,
-        const etc1_byte* pColors, etc_compressed* pCompressed, bool flipped) {
-    pCompressed->score = ~0;
-    pCompressed->high = (flipped ? 1 : 0);
-    pCompressed->low = 0;
-
-    etc1_byte pBaseColors[6];
-
-    etc_encodeBaseColors(pBaseColors, pColors, pCompressed);
-
-    int originalHigh = pCompressed->high;
-
-    const int* pModifierTable = kModifierTable;
-    for (int i = 0; i < 8; i++, pModifierTable += 4) {
-        etc_compressed temp;
-        temp.score = 0;
-        temp.high = originalHigh | (i << 5);
-        temp.low = 0;
-        etc_encode_subblock_helper(pIn, inMask, &temp, flipped, false,
-                pBaseColors, pModifierTable);
-        take_best(pCompressed, &temp);
-    }
-    pModifierTable = kModifierTable;
-    etc_compressed firstHalf = *pCompressed;
-    for (int i = 0; i < 8; i++, pModifierTable += 4) {
-        etc_compressed temp;
-        temp.score = firstHalf.score;
-        temp.high = firstHalf.high | (i << 2);
-        temp.low = firstHalf.low;
-        etc_encode_subblock_helper(pIn, inMask, &temp, flipped, true,
-                pBaseColors + 3, pModifierTable);
-        if (i == 0) {
-            *pCompressed = temp;
-        } else {
-            take_best(pCompressed, &temp);
-        }
-    }
-}
-
-static void writeBigEndian(etc1_byte* pOut, etc1_uint32 d) {
-    pOut[0] = (etc1_byte)(d >> 24);
-    pOut[1] = (etc1_byte)(d >> 16);
-    pOut[2] = (etc1_byte)(d >> 8);
-    pOut[3] = (etc1_byte) d;
-}
-
-// Input is a 4 x 4 square of 3-byte pixels in form R, G, B
-// inmask is a 16-bit mask where bit (1 << (x + y * 4)) tells whether the corresponding (x,y)
-// pixel is valid or not. Invalid pixel color values are ignored when compressing.
-// Output is an ETC1 compressed version of the data.
-
-void etc1_encode_block(const etc1_byte* pIn, etc1_uint32 inMask,
-        etc1_byte* pOut) {
-    etc1_byte colors[6];
-    etc1_byte flippedColors[6];
-    etc_average_colors_subblock(pIn, inMask, colors, false, false);
-    etc_average_colors_subblock(pIn, inMask, colors + 3, false, true);
-    etc_average_colors_subblock(pIn, inMask, flippedColors, true, false);
-    etc_average_colors_subblock(pIn, inMask, flippedColors + 3, true, true);
-
-    etc_compressed a, b;
-    etc_encode_block_helper(pIn, inMask, colors, &a, false);
-    etc_encode_block_helper(pIn, inMask, flippedColors, &b, true);
-    take_best(&a, &b);
-    writeBigEndian(pOut, a.high);
-    writeBigEndian(pOut + 4, a.low);
-}
-
-// Return the size of the encoded image data (does not include size of PKM header).
-
-etc1_uint32 etc1_get_encoded_data_size(etc1_uint32 width, etc1_uint32 height) {
-    return (((width + 3) & ~3) * ((height + 3) & ~3)) >> 1;
-}
-
-// Encode an entire image.
-// pIn - pointer to the image data. Formatted such that the Red component of
-//       pixel (x,y) is at pIn + pixelSize * x + stride * y + redOffset;
-// pOut - pointer to encoded data. Must be large enough to store entire encoded image.
-
-int etc1_encode_image(const etc1_byte* pIn, etc1_uint32 width, etc1_uint32 height,
-        etc1_uint32 pixelSize, etc1_uint32 stride, etc1_byte* pOut) {
-    if (pixelSize < 2 || pixelSize > 3) {
-        return -1;
-    }
-    static const unsigned short kYMask[] = { 0x0, 0xf, 0xff, 0xfff, 0xffff };
-    static const unsigned short kXMask[] = { 0x0, 0x1111, 0x3333, 0x7777,
-            0xffff };
-    etc1_byte block[ETC1_DECODED_BLOCK_SIZE];
-    etc1_byte encoded[ETC1_ENCODED_BLOCK_SIZE];
-
-    etc1_uint32 encodedWidth = (width + 3) & ~3;
-    etc1_uint32 encodedHeight = (height + 3) & ~3;
-
-    for (etc1_uint32 y = 0; y < encodedHeight; y += 4) {
-        etc1_uint32 yEnd = height - y;
-        if (yEnd > 4) {
-            yEnd = 4;
-        }
-        int ymask = kYMask[yEnd];
-        for (etc1_uint32 x = 0; x < encodedWidth; x += 4) {
-            etc1_uint32 xEnd = width - x;
-            if (xEnd > 4) {
-                xEnd = 4;
-            }
-            int mask = ymask & kXMask[xEnd];
-            for (etc1_uint32 cy = 0; cy < yEnd; cy++) {
-                etc1_byte* q = block + (cy * 4) * 3;
-                const etc1_byte* p = pIn + pixelSize * x + stride * (y + cy);
-                if (pixelSize == 3) {
-                    memcpy(q, p, xEnd * 3);
-                } else {
-                    for (etc1_uint32 cx = 0; cx < xEnd; cx++) {
-                        int pixel = (p[1] << 8) | p[0];
-                        *q++ = convert5To8(pixel >> 11);
-                        *q++ = convert6To8(pixel >> 5);
-                        *q++ = convert5To8(pixel);
-                        p += pixelSize;
-                    }
-                }
-            }
-            etc1_encode_block(block, mask, encoded);
-            memcpy(pOut, encoded, sizeof(encoded));
-            pOut += sizeof(encoded);
-        }
-    }
-    return 0;
-}
-
-// Decode an entire image.
-// pIn - pointer to encoded data.
-// pOut - pointer to the image data. Will be written such that the Red component of
-//       pixel (x,y) is at pIn + pixelSize * x + stride * y + redOffset. Must be
-//        large enough to store entire image.
-
-
-int etc1_decode_image(const etc1_byte* pIn, etc1_byte* pOut,
-        etc1_uint32 width, etc1_uint32 height,
-        etc1_uint32 pixelSize, etc1_uint32 stride) {
-    if (pixelSize < 2 || pixelSize > 3) {
-        return -1;
-    }
-    etc1_byte block[ETC1_DECODED_BLOCK_SIZE];
-
-    etc1_uint32 encodedWidth = (width + 3) & ~3;
-    etc1_uint32 encodedHeight = (height + 3) & ~3;
-
-    for (etc1_uint32 y = 0; y < encodedHeight; y += 4) {
-        etc1_uint32 yEnd = height - y;
-        if (yEnd > 4) {
-            yEnd = 4;
-        }
-        for (etc1_uint32 x = 0; x < encodedWidth; x += 4) {
-            etc1_uint32 xEnd = width - x;
-            if (xEnd > 4) {
-                xEnd = 4;
-            }
-            etc1_decode_block(pIn, block);
-            pIn += ETC1_ENCODED_BLOCK_SIZE;
-            for (etc1_uint32 cy = 0; cy < yEnd; cy++) {
-                const etc1_byte* q = block + (cy * 4) * 3;
-                etc1_byte* p = pOut + pixelSize * x + stride * (y + cy);
-                if (pixelSize == 3) {
-                    memcpy(p, q, xEnd * 3);
-                } else {
-                    for (etc1_uint32 cx = 0; cx < xEnd; cx++) {
-                        etc1_byte r = *q++;
-                        etc1_byte g = *q++;
-                        etc1_byte b = *q++;
-                        etc1_uint32 pixel = ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3);
-                        *p++ = (etc1_byte) pixel;
-                        *p++ = (etc1_byte) (pixel >> 8);
-                    }
-                }
-            }
-        }
-    }
-    return 0;
-}
-
-static const char kMagic[] = { 'P', 'K', 'M', ' ', '1', '0' };
-
-static const etc1_uint32 ETC1_PKM_FORMAT_OFFSET = 6;
-static const etc1_uint32 ETC1_PKM_ENCODED_WIDTH_OFFSET = 8;
-static const etc1_uint32 ETC1_PKM_ENCODED_HEIGHT_OFFSET = 10;
-static const etc1_uint32 ETC1_PKM_WIDTH_OFFSET = 12;
-static const etc1_uint32 ETC1_PKM_HEIGHT_OFFSET = 14;
-
-static const etc1_uint32 ETC1_RGB_NO_MIPMAPS = 0;
-
-static void writeBEUint16(etc1_byte* pOut, etc1_uint32 data) {
-    pOut[0] = (etc1_byte) (data >> 8);
-    pOut[1] = (etc1_byte) data;
-}
-
-static etc1_uint32 readBEUint16(const etc1_byte* pIn) {
-    return (pIn[0] << 8) | pIn[1];
-}
-
-// Format a PKM header
-
-void etc1_pkm_format_header(etc1_byte* pHeader, etc1_uint32 width, etc1_uint32 height) {
-    memcpy(pHeader, kMagic, sizeof(kMagic));
-    etc1_uint32 encodedWidth = (width + 3) & ~3;
-    etc1_uint32 encodedHeight = (height + 3) & ~3;
-    writeBEUint16(pHeader + ETC1_PKM_FORMAT_OFFSET, ETC1_RGB_NO_MIPMAPS);
-    writeBEUint16(pHeader + ETC1_PKM_ENCODED_WIDTH_OFFSET, encodedWidth);
-    writeBEUint16(pHeader + ETC1_PKM_ENCODED_HEIGHT_OFFSET, encodedHeight);
-    writeBEUint16(pHeader + ETC1_PKM_WIDTH_OFFSET, width);
-    writeBEUint16(pHeader + ETC1_PKM_HEIGHT_OFFSET, height);
-}
-
-// Check if a PKM header is correctly formatted.
-
-etc1_bool etc1_pkm_is_valid(const etc1_byte* pHeader) {
-    if (memcmp(pHeader, kMagic, sizeof(kMagic))) {
-        return false;
-    }
-    etc1_uint32 format = readBEUint16(pHeader + ETC1_PKM_FORMAT_OFFSET);
-    etc1_uint32 encodedWidth = readBEUint16(pHeader + ETC1_PKM_ENCODED_WIDTH_OFFSET);
-    etc1_uint32 encodedHeight = readBEUint16(pHeader + ETC1_PKM_ENCODED_HEIGHT_OFFSET);
-    etc1_uint32 width = readBEUint16(pHeader + ETC1_PKM_WIDTH_OFFSET);
-    etc1_uint32 height = readBEUint16(pHeader + ETC1_PKM_HEIGHT_OFFSET);
-    return format == ETC1_RGB_NO_MIPMAPS &&
-            encodedWidth >= width && encodedWidth - width < 4 &&
-            encodedHeight >= height && encodedHeight - height < 4;
-}
-
-// Read the image width from a PKM header
-
-etc1_uint32 etc1_pkm_get_width(const etc1_byte* pHeader) {
-    return readBEUint16(pHeader + ETC1_PKM_WIDTH_OFFSET);
-}
-
-// Read the image height from a PKM header
-
-etc1_uint32 etc1_pkm_get_height(const etc1_byte* pHeader){
-    return readBEUint16(pHeader + ETC1_PKM_HEIGHT_OFFSET);
-}
diff --git a/tools/emulator/opengl/host/libs/Translator/GLcommon/objectNameManager.cpp b/tools/emulator/opengl/host/libs/Translator/GLcommon/objectNameManager.cpp
deleted file mode 100644
index cfea855..0000000
--- a/tools/emulator/opengl/host/libs/Translator/GLcommon/objectNameManager.cpp
+++ /dev/null
@@ -1,411 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <map>
-#include <GLcommon/objectNameManager.h>
-#include <GLcommon/GLEScontext.h>
-
-
-NameSpace::NameSpace(NamedObjectType p_type, GlobalNameSpace *globalNameSpace) :
-    m_nextName(0),
-    m_type(p_type),
-    m_globalNameSpace(globalNameSpace)
-{
-}
-
-NameSpace::~NameSpace()
-{
-    for (NamesMap::iterator n = m_localToGlobalMap.begin();
-         n != m_localToGlobalMap.end();
-         n++) {
-        m_globalNameSpace->deleteName(m_type, (*n).second);
-    }
-}
-
-ObjectLocalName
-NameSpace::genName(ObjectLocalName p_localName, bool genGlobal, bool genLocal)
-{
-
-    ObjectLocalName localName = p_localName;
-    if (genLocal) {
-        do {
-            localName = ++m_nextName;
-        } while( localName == 0 || m_localToGlobalMap.find(localName) != m_localToGlobalMap.end() );
-    }
-
-    if (genGlobal) {
-        unsigned int globalName = m_globalNameSpace->genName(m_type);
-        m_localToGlobalMap[localName] = globalName;
-    }
-
-    return localName;
-}
-
-
-unsigned int
-NameSpace::genGlobalName(void)
-{
-    return m_globalNameSpace->genName(m_type);
-}
-
-unsigned int
-NameSpace::getGlobalName(ObjectLocalName p_localName)
-{
-    NamesMap::iterator n( m_localToGlobalMap.find(p_localName) );
-    if (n != m_localToGlobalMap.end()) {
-        // object found - return its global name map
-        return (*n).second;
-    }
-
-    // object does not exist;
-    return 0;
-}
-
-ObjectLocalName
-NameSpace::getLocalName(unsigned int p_globalName)
-{
-    for(NamesMap::iterator it = m_localToGlobalMap.begin(); it != m_localToGlobalMap.end();it++){
-        if((*it).second == p_globalName){
-            // object found - return its local name
-            return (*it).first;
-        }
-    }
-
-    // object does not exist;
-    return 0;
-}
-
-void
-NameSpace::deleteName(ObjectLocalName p_localName)
-{
-    NamesMap::iterator n( m_localToGlobalMap.find(p_localName) );
-    if (n != m_localToGlobalMap.end()) {
-        m_globalNameSpace->deleteName(m_type, (*n).second);
-        m_localToGlobalMap.erase(p_localName);
-    }
-}
-
-bool
-NameSpace::isObject(ObjectLocalName p_localName)
-{
-    return (m_localToGlobalMap.find(p_localName) != m_localToGlobalMap.end() );
-}
-
-void
-NameSpace::replaceGlobalName(ObjectLocalName p_localName, unsigned int p_globalName)
-{
-    NamesMap::iterator n( m_localToGlobalMap.find(p_localName) );
-    if (n != m_localToGlobalMap.end()) {
-        m_globalNameSpace->deleteName(m_type, (*n).second);
-        (*n).second = p_globalName;
-    }
-}
-
-
-GlobalNameSpace::GlobalNameSpace()
-{
-    mutex_init(&m_lock);
-}
-
-GlobalNameSpace::~GlobalNameSpace()
-{
-    mutex_destroy(&m_lock);
-}
-
-unsigned int 
-GlobalNameSpace::genName(NamedObjectType p_type)
-{
-    if ( p_type >= NUM_OBJECT_TYPES ) return 0;
-    unsigned int name = 0;
-
-    mutex_lock(&m_lock);
-    switch (p_type) {
-    case VERTEXBUFFER:
-        GLEScontext::dispatcher().glGenBuffers(1,&name);
-        break;
-    case TEXTURE:
-        GLEScontext::dispatcher().glGenTextures(1,&name);
-        break;
-    case RENDERBUFFER:
-        GLEScontext::dispatcher().glGenRenderbuffersEXT(1,&name);
-        break;
-    case FRAMEBUFFER:
-        GLEScontext::dispatcher().glGenFramebuffersEXT(1,&name);
-        break;
-    case SHADER: //objects in shader namepace are not handled
-    default:
-        name = 0;
-    }
-    mutex_unlock(&m_lock);
-    return name;
-}
-
-void 
-GlobalNameSpace::deleteName(NamedObjectType p_type, unsigned int p_name)
-{
-}
-
-typedef std::pair<NamedObjectType, ObjectLocalName> ObjectIDPair;
-typedef std::map<ObjectIDPair, ObjectDataPtr> ObjectDataMap;
-
-ShareGroup::ShareGroup(GlobalNameSpace *globalNameSpace)
-{
-    mutex_init(&m_lock);
-
-    for (int i=0; i<NUM_OBJECT_TYPES; i++) {
-        m_nameSpace[i] = new NameSpace((NamedObjectType)i, globalNameSpace);
-    }
-
-    m_objectsData = NULL;
-}
-
-ShareGroup::~ShareGroup()
-{
-    mutex_lock(&m_lock);
-    for (int t = 0; t < NUM_OBJECT_TYPES; t++) {
-        delete m_nameSpace[t];
-    }
-
-    ObjectDataMap *map = (ObjectDataMap *)m_objectsData;
-    if (map) delete map;
-
-    mutex_unlock(&m_lock);
-    mutex_destroy(&m_lock);
-}
-
-ObjectLocalName
-ShareGroup::genName(NamedObjectType p_type, ObjectLocalName p_localName, bool genLocal)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return 0;
-
-    mutex_lock(&m_lock);
-    ObjectLocalName localName = m_nameSpace[p_type]->genName(p_localName,true,genLocal);
-    mutex_unlock(&m_lock);
-
-    return localName;
-}
-
-unsigned int
-ShareGroup::genGlobalName(NamedObjectType p_type)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return 0;
-
-    mutex_lock(&m_lock);
-    unsigned int name = m_nameSpace[p_type]->genGlobalName();
-    mutex_unlock(&m_lock);
-
-    return name;
-}
-
-unsigned int
-ShareGroup::getGlobalName(NamedObjectType p_type, ObjectLocalName p_localName)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return 0;
-
-    mutex_lock(&m_lock);
-    unsigned int globalName = m_nameSpace[p_type]->getGlobalName(p_localName);
-    mutex_unlock(&m_lock);
-
-    return globalName;
-}
-
-ObjectLocalName
-ShareGroup::getLocalName(NamedObjectType p_type, unsigned int p_globalName)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return 0;
-
-    mutex_lock(&m_lock);
-    ObjectLocalName localName = m_nameSpace[p_type]->getLocalName(p_globalName);
-    mutex_unlock(&m_lock);
-
-    return localName;
-}
-
-void
-ShareGroup::deleteName(NamedObjectType p_type, ObjectLocalName p_localName)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return;
-
-    mutex_lock(&m_lock);
-    m_nameSpace[p_type]->deleteName(p_localName);
-    ObjectDataMap *map = (ObjectDataMap *)m_objectsData;
-    if (map) {
-        map->erase( ObjectIDPair(p_type, p_localName) );
-    }
-    mutex_unlock(&m_lock);
-}
-
-bool
-ShareGroup::isObject(NamedObjectType p_type, ObjectLocalName p_localName)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return 0;
-
-    mutex_lock(&m_lock);
-    bool exist = m_nameSpace[p_type]->isObject(p_localName);
-    mutex_unlock(&m_lock);
-
-    return exist;
-}
-
-void
-ShareGroup::replaceGlobalName(NamedObjectType p_type, ObjectLocalName p_localName, unsigned int p_globalName)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return;
-
-    mutex_lock(&m_lock);
-    m_nameSpace[p_type]->replaceGlobalName(p_localName, p_globalName);
-    mutex_unlock(&m_lock);
-}
-
-void
-ShareGroup::setObjectData(NamedObjectType p_type, ObjectLocalName p_localName, ObjectDataPtr data)
-{
-    if (p_type >= NUM_OBJECT_TYPES) return;
-
-    mutex_lock(&m_lock);
-
-    ObjectDataMap *map = (ObjectDataMap *)m_objectsData;
-    if (!map) {
-        map = new ObjectDataMap();
-        m_objectsData = map;
-    }
-
-    ObjectIDPair id( p_type, p_localName );
-    map->insert( std::pair<ObjectIDPair, ObjectDataPtr>(id, data) );
-
-    mutex_unlock(&m_lock);
-}
-
-ObjectDataPtr
-ShareGroup::getObjectData(NamedObjectType p_type, ObjectLocalName p_localName)
-{
-    ObjectDataPtr ret;
-
-    if (p_type >= NUM_OBJECT_TYPES) return ret;
-
-    mutex_lock(&m_lock);
-
-    ObjectDataMap *map = (ObjectDataMap *)m_objectsData;
-    if (map) {
-        ObjectDataMap::iterator i = map->find( ObjectIDPair(p_type, p_localName) );
-        if (i != map->end()) ret = (*i).second;
-    }
-
-    mutex_unlock(&m_lock);
-
-    return ret;
-}
-
-ObjectNameManager::ObjectNameManager(GlobalNameSpace *globalNameSpace) :
-    m_globalNameSpace(globalNameSpace)
-{
-    mutex_init(&m_lock);
-}
-
-ObjectNameManager::~ObjectNameManager()
-{
-    mutex_destroy(&m_lock);
-}
-
-ShareGroupPtr
-ObjectNameManager::createShareGroup(void *p_groupName)
-{
-    mutex_lock(&m_lock);
-
-    ShareGroupPtr shareGroupReturn;
-
-    ShareGroupsMap::iterator s( m_groups.find(p_groupName) );
-    if (s != m_groups.end()) {
-        shareGroupReturn = (*s).second;
-    }
-    else {
-        //
-        // Group does not exist, create new group
-        //
-        shareGroupReturn = ShareGroupPtr( new ShareGroup(m_globalNameSpace) );
-        m_groups.insert( std::pair<void *, ShareGroupPtr>(p_groupName, shareGroupReturn) );
-    }
-
-    mutex_unlock(&m_lock);
-
-    return shareGroupReturn;
-}
-
-ShareGroupPtr
-ObjectNameManager::getShareGroup(void *p_groupName)
-{
-    mutex_lock(&m_lock);
-
-    ShareGroupPtr shareGroupReturn(NULL);
-
-    ShareGroupsMap::iterator s( m_groups.find(p_groupName) );
-    if (s != m_groups.end()) {
-        shareGroupReturn = (*s).second;
-    }
-    mutex_unlock(&m_lock);
-
-    return shareGroupReturn;
-}
-
-ShareGroupPtr
-ObjectNameManager::attachShareGroup(void *p_groupName, void *p_existingGroupName)
-{
-    mutex_lock(&m_lock);
-
-    ShareGroupPtr shareGroupReturn;
-
-    ShareGroupsMap::iterator s( m_groups.find(p_existingGroupName) );
-    if (s == m_groups.end()) {
-        // ShareGroup did not found !!!
-        mutex_unlock(&m_lock);
-        return ShareGroupPtr(NULL);
-    }
-
-    shareGroupReturn = (*s).second;
-
-    if (m_groups.find(p_groupName) == m_groups.end())
-    {
-        m_groups.insert( std::pair<void *, ShareGroupPtr>(p_groupName, shareGroupReturn) );
-    }
-
-    mutex_unlock(&m_lock);
-
-    return shareGroupReturn;
-}
-
-void
-ObjectNameManager::deleteShareGroup(void *p_groupName)
-{
-    mutex_lock(&m_lock);
-
-    ShareGroupsMap::iterator s( m_groups.find(p_groupName) );
-    if (s != m_groups.end()) {
-        m_groups.erase(s);
-    }
-
-    mutex_unlock(&m_lock);
-}
-
-void *ObjectNameManager::getGlobalContext()
-{
-    void *ret = NULL;
-
-    mutex_lock(&m_lock);
-    if (m_groups.size() > 0) ret = (*m_groups.begin()).first;
-    mutex_unlock(&m_lock);
-
-    return ret;
-}
-
diff --git a/tools/emulator/opengl/host/libs/Translator/include/EGL/egl.h b/tools/emulator/opengl/host/libs/Translator/include/EGL/egl.h
deleted file mode 100644
index 99ea342..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/EGL/egl.h
+++ /dev/null
@@ -1,329 +0,0 @@
-/* -*- mode: c; tab-width: 8; -*- */
-/* vi: set sw=4 ts=8: */
-/* Reference version of egl.h for EGL 1.4.
- * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $
- */
-
-/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#ifndef __egl_h_
-#define __egl_h_
-
-/* All platform-dependent types and macro boilerplate (such as EGLAPI
- * and EGLAPIENTRY) should go in eglplatform.h.
- */
-#include <EGL/eglplatform.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* EGL Types */
-/* EGLint is defined in eglplatform.h */
-typedef unsigned int EGLBoolean;
-typedef unsigned int EGLenum;
-typedef void *EGLConfig;
-typedef void *EGLContext;
-typedef void *EGLDisplay;
-typedef void *EGLSurface;
-typedef void *EGLClientBuffer;
-
-/* EGL Versioning */
-#define EGL_VERSION_1_0			1
-#define EGL_VERSION_1_1			1
-#define EGL_VERSION_1_2			1
-#define EGL_VERSION_1_3			1
-#define EGL_VERSION_1_4			1
-
-/* EGL Enumerants. Bitmasks and other exceptional cases aside, most
- * enums are assigned unique values starting at 0x3000.
- */
-
-/* EGL aliases */
-#define EGL_FALSE			0
-#define EGL_TRUE			1
-
-/* Out-of-band handle values */
-#define EGL_DEFAULT_DISPLAY		((EGLNativeDisplayType)0)
-#define EGL_NO_CONTEXT			((EGLContext)0)
-#define EGL_NO_DISPLAY			((EGLDisplay)0)
-#define EGL_NO_SURFACE			((EGLSurface)0)
-
-/* Out-of-band attribute value */
-#define EGL_DONT_CARE			((EGLint)-1)
-
-/* Errors / GetError return values */
-#define EGL_SUCCESS			0x3000
-#define EGL_NOT_INITIALIZED		0x3001
-#define EGL_BAD_ACCESS			0x3002
-#define EGL_BAD_ALLOC			0x3003
-#define EGL_BAD_ATTRIBUTE		0x3004
-#define EGL_BAD_CONFIG			0x3005
-#define EGL_BAD_CONTEXT			0x3006
-#define EGL_BAD_CURRENT_SURFACE		0x3007
-#define EGL_BAD_DISPLAY			0x3008
-#define EGL_BAD_MATCH			0x3009
-#define EGL_BAD_NATIVE_PIXMAP		0x300A
-#define EGL_BAD_NATIVE_WINDOW		0x300B
-#define EGL_BAD_PARAMETER		0x300C
-#define EGL_BAD_SURFACE			0x300D
-#define EGL_CONTEXT_LOST		0x300E	/* EGL 1.1 - IMG_power_management */
-
-/* Reserved 0x300F-0x301F for additional errors */
-
-/* Config attributes */
-#define EGL_BUFFER_SIZE			0x3020
-#define EGL_ALPHA_SIZE			0x3021
-#define EGL_BLUE_SIZE			0x3022
-#define EGL_GREEN_SIZE			0x3023
-#define EGL_RED_SIZE			0x3024
-#define EGL_DEPTH_SIZE			0x3025
-#define EGL_STENCIL_SIZE		0x3026
-#define EGL_CONFIG_CAVEAT		0x3027
-#define EGL_CONFIG_ID			0x3028
-#define EGL_LEVEL			0x3029
-#define EGL_MAX_PBUFFER_HEIGHT		0x302A
-#define EGL_MAX_PBUFFER_PIXELS		0x302B
-#define EGL_MAX_PBUFFER_WIDTH		0x302C
-#define EGL_NATIVE_RENDERABLE		0x302D
-#define EGL_NATIVE_VISUAL_ID		0x302E
-#define EGL_NATIVE_VISUAL_TYPE		0x302F
-#define EGL_SAMPLES			0x3031
-#define EGL_SAMPLE_BUFFERS		0x3032
-#define EGL_SURFACE_TYPE		0x3033
-#define EGL_TRANSPARENT_TYPE		0x3034
-#define EGL_TRANSPARENT_BLUE_VALUE	0x3035
-#define EGL_TRANSPARENT_GREEN_VALUE	0x3036
-#define EGL_TRANSPARENT_RED_VALUE	0x3037
-#define EGL_NONE			0x3038	/* Attrib list terminator */
-#define EGL_BIND_TO_TEXTURE_RGB		0x3039
-#define EGL_BIND_TO_TEXTURE_RGBA	0x303A
-#define EGL_MIN_SWAP_INTERVAL		0x303B
-#define EGL_MAX_SWAP_INTERVAL		0x303C
-#define EGL_LUMINANCE_SIZE		0x303D
-#define EGL_ALPHA_MASK_SIZE		0x303E
-#define EGL_COLOR_BUFFER_TYPE		0x303F
-#define EGL_RENDERABLE_TYPE		0x3040
-#define EGL_MATCH_NATIVE_PIXMAP		0x3041	/* Pseudo-attribute (not queryable) */
-#define EGL_CONFORMANT			0x3042
-
-/* Reserved 0x3041-0x304F for additional config attributes */
-
-/* Config attribute values */
-#define EGL_SLOW_CONFIG			0x3050	/* EGL_CONFIG_CAVEAT value */
-#define EGL_NON_CONFORMANT_CONFIG	0x3051	/* EGL_CONFIG_CAVEAT value */
-#define EGL_TRANSPARENT_RGB		0x3052	/* EGL_TRANSPARENT_TYPE value */
-#define EGL_RGB_BUFFER			0x308E	/* EGL_COLOR_BUFFER_TYPE value */
-#define EGL_LUMINANCE_BUFFER		0x308F	/* EGL_COLOR_BUFFER_TYPE value */
-
-/* More config attribute values, for EGL_TEXTURE_FORMAT */
-#define EGL_NO_TEXTURE			0x305C
-#define EGL_TEXTURE_RGB			0x305D
-#define EGL_TEXTURE_RGBA		0x305E
-#define EGL_TEXTURE_2D			0x305F
-
-/* Config attribute mask bits */
-#define EGL_PBUFFER_BIT			0x0001	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_PIXMAP_BIT			0x0002	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_WINDOW_BIT			0x0004	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_COLORSPACE_LINEAR_BIT	0x0020	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT	0x0040	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200	/* EGL_SURFACE_TYPE mask bits */
-#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400	/* EGL_SURFACE_TYPE mask bits */
-
-#define EGL_OPENGL_ES_BIT		0x0001	/* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENVG_BIT			0x0002	/* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_ES2_BIT		0x0004	/* EGL_RENDERABLE_TYPE mask bits */
-#define EGL_OPENGL_BIT			0x0008	/* EGL_RENDERABLE_TYPE mask bits */
-
-/* QueryString targets */
-#define EGL_VENDOR			0x3053
-#define EGL_VERSION			0x3054
-#define EGL_EXTENSIONS			0x3055
-#define EGL_CLIENT_APIS			0x308D
-
-/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
-#define EGL_HEIGHT			0x3056
-#define EGL_WIDTH			0x3057
-#define EGL_LARGEST_PBUFFER		0x3058
-#define EGL_TEXTURE_FORMAT		0x3080
-#define EGL_TEXTURE_TARGET		0x3081
-#define EGL_MIPMAP_TEXTURE		0x3082
-#define EGL_MIPMAP_LEVEL		0x3083
-#define EGL_RENDER_BUFFER		0x3086
-#define EGL_VG_COLORSPACE		0x3087
-#define EGL_VG_ALPHA_FORMAT		0x3088
-#define EGL_HORIZONTAL_RESOLUTION	0x3090
-#define EGL_VERTICAL_RESOLUTION		0x3091
-#define EGL_PIXEL_ASPECT_RATIO		0x3092
-#define EGL_SWAP_BEHAVIOR		0x3093
-#define EGL_MULTISAMPLE_RESOLVE		0x3099
-
-/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
-#define EGL_BACK_BUFFER			0x3084
-#define EGL_SINGLE_BUFFER		0x3085
-
-/* OpenVG color spaces */
-#define EGL_VG_COLORSPACE_sRGB		0x3089	/* EGL_VG_COLORSPACE value */
-#define EGL_VG_COLORSPACE_LINEAR	0x308A	/* EGL_VG_COLORSPACE value */
-
-/* OpenVG alpha formats */
-#define EGL_VG_ALPHA_FORMAT_NONPRE	0x308B	/* EGL_ALPHA_FORMAT value */
-#define EGL_VG_ALPHA_FORMAT_PRE		0x308C	/* EGL_ALPHA_FORMAT value */
-
-/* Constant scale factor by which fractional display resolutions &
- * aspect ratio are scaled when queried as integer values.
- */
-#define EGL_DISPLAY_SCALING		10000
-
-/* Unknown display resolution/aspect ratio */
-#define EGL_UNKNOWN			((EGLint)-1)
-
-/* Back buffer swap behaviors */
-#define EGL_BUFFER_PRESERVED		0x3094	/* EGL_SWAP_BEHAVIOR value */
-#define EGL_BUFFER_DESTROYED		0x3095	/* EGL_SWAP_BEHAVIOR value */
-
-/* CreatePbufferFromClientBuffer buffer types */
-#define EGL_OPENVG_IMAGE		0x3096
-
-/* QueryContext targets */
-#define EGL_CONTEXT_CLIENT_TYPE		0x3097
-
-/* CreateContext attributes */
-#define EGL_CONTEXT_CLIENT_VERSION	0x3098
-
-/* Multisample resolution behaviors */
-#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A	/* EGL_MULTISAMPLE_RESOLVE value */
-#define EGL_MULTISAMPLE_RESOLVE_BOX	0x309B	/* EGL_MULTISAMPLE_RESOLVE value */
-
-/* BindAPI/QueryAPI targets */
-#define EGL_OPENGL_ES_API		0x30A0
-#define EGL_OPENVG_API			0x30A1
-#define EGL_OPENGL_API			0x30A2
-
-/* GetCurrentSurface targets */
-#define EGL_DRAW			0x3059
-#define EGL_READ			0x305A
-
-/* WaitNative engines */
-#define EGL_CORE_NATIVE_ENGINE		0x305B
-
-/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
-#define EGL_COLORSPACE			EGL_VG_COLORSPACE
-#define EGL_ALPHA_FORMAT		EGL_VG_ALPHA_FORMAT
-#define EGL_COLORSPACE_sRGB		EGL_VG_COLORSPACE_sRGB
-#define EGL_COLORSPACE_LINEAR		EGL_VG_COLORSPACE_LINEAR
-#define EGL_ALPHA_FORMAT_NONPRE		EGL_VG_ALPHA_FORMAT_NONPRE
-#define EGL_ALPHA_FORMAT_PRE		EGL_VG_ALPHA_FORMAT_PRE
-
-/* EGL extensions must request enum blocks from the Khronos
- * API Registrar, who maintains the enumerant registry. Submit
- * a bug in Khronos Bugzilla against task "Registry".
- */
-
-
-
-/* EGL Functions */
-
-EGLAPI EGLint EGLAPIENTRY eglGetError(void);
-
-EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
-EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
-EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
-
-EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
-			 EGLint config_size, EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
-			   EGLConfig *configs, EGLint config_size,
-			   EGLint *num_config);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
-			      EGLint attribute, EGLint *value);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
-				  EGLNativeWindowType win,
-				  const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
-				   const EGLint *attrib_list);
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
-				  EGLNativePixmapType pixmap,
-				  const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
-			   EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
-EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
-
-EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
-	      EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
-	      EGLConfig config, const EGLint *attrib_list);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
-			    EGLint attribute, EGLint value);
-EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
-
-
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
-
-
-EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
-			    EGLContext share_context,
-			    const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
-EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
-			  EGLSurface read, EGLContext ctx);
-
-EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
-EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
-EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
-			   EGLint attribute, EGLint *value);
-
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
-EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
-EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
-EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
-			  EGLNativePixmapType target);
-
-/* This is a generic function pointer type, whose name indicates it must
- * be cast to the proper type *and calling convention* before use.
- */
-typedef void (*__eglMustCastToProperFunctionPointerType)(void);
-
-/* Now, define eglGetProcAddress using the generic function ptr. type */
-EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
-       eglGetProcAddress(const char *procname);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __egl_h_ */
diff --git a/tools/emulator/opengl/host/libs/Translator/include/EGL/eglext.h b/tools/emulator/opengl/host/libs/Translator/include/EGL/eglext.h
deleted file mode 100644
index 1ffcd56..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/EGL/eglext.h
+++ /dev/null
@@ -1,244 +0,0 @@
-#ifndef __eglext_h_
-#define __eglext_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-** Copyright (c) 2007-2010 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-#include <EGL/eglplatform.h>
-
-/*************************************************************/
-
-/* Header file version number */
-/* Current version at http://www.khronos.org/registry/egl/ */
-/* $Revision: 11249 $ on $Date: 2010-05-05 09:54:28 -0700 (Wed, 05 May 2010) $ */
-#define EGL_EGLEXT_VERSION 5
-
-#ifndef EGL_KHR_config_attribs
-#define EGL_KHR_config_attribs 1
-#define EGL_CONFORMANT_KHR			0x3042	/* EGLConfig attribute */
-#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR	0x0020	/* EGL_SURFACE_TYPE bitfield */
-#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR		0x0040	/* EGL_SURFACE_TYPE bitfield */
-#endif
-
-#ifndef EGL_KHR_lock_surface
-#define EGL_KHR_lock_surface 1
-#define EGL_READ_SURFACE_BIT_KHR		0x0001	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
-#define EGL_WRITE_SURFACE_BIT_KHR		0x0002	/* EGL_LOCK_USAGE_HINT_KHR bitfield */
-#define EGL_LOCK_SURFACE_BIT_KHR		0x0080	/* EGL_SURFACE_TYPE bitfield */
-#define EGL_OPTIMAL_FORMAT_BIT_KHR		0x0100	/* EGL_SURFACE_TYPE bitfield */
-#define EGL_MATCH_FORMAT_KHR			0x3043	/* EGLConfig attribute */
-#define EGL_FORMAT_RGB_565_EXACT_KHR		0x30C0	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_FORMAT_RGB_565_KHR			0x30C1	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_FORMAT_RGBA_8888_EXACT_KHR		0x30C2	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_FORMAT_RGBA_8888_KHR		0x30C3	/* EGL_MATCH_FORMAT_KHR value */
-#define EGL_MAP_PRESERVE_PIXELS_KHR		0x30C4	/* eglLockSurfaceKHR attribute */
-#define EGL_LOCK_USAGE_HINT_KHR			0x30C5	/* eglLockSurfaceKHR attribute */
-#define EGL_BITMAP_POINTER_KHR			0x30C6	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PITCH_KHR			0x30C7	/* eglQuerySurface attribute */
-#define EGL_BITMAP_ORIGIN_KHR			0x30C8	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR		0x30C9	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR	0x30CA	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR	0x30CB	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR	0x30CC	/* eglQuerySurface attribute */
-#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR	0x30CD	/* eglQuerySurface attribute */
-#define EGL_LOWER_LEFT_KHR			0x30CE	/* EGL_BITMAP_ORIGIN_KHR value */
-#define EGL_UPPER_LEFT_KHR			0x30CF	/* EGL_BITMAP_ORIGIN_KHR value */
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
-#endif
-
-#ifndef EGL_KHR_image
-#define EGL_KHR_image 1
-#define EGL_NATIVE_PIXMAP_KHR			0x30B0	/* eglCreateImageKHR target */
-typedef void *EGLImageKHR;
-#define EGL_NO_IMAGE_KHR			((EGLImageKHR)0)
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
-#endif
-
-#ifndef EGL_KHR_vg_parent_image
-#define EGL_KHR_vg_parent_image 1
-#define EGL_VG_PARENT_IMAGE_KHR			0x30BA	/* eglCreateImageKHR target */
-#endif
-
-#ifndef EGL_KHR_gl_texture_2D_image
-#define EGL_KHR_gl_texture_2D_image 1
-#define EGL_GL_TEXTURE_2D_KHR			0x30B1	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_LEVEL_KHR		0x30BC	/* eglCreateImageKHR attribute */
-#endif
-
-#ifndef EGL_KHR_gl_texture_cubemap_image
-#define EGL_KHR_gl_texture_cubemap_image 1
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR	0x30B3	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR	0x30B4	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR	0x30B5	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR	0x30B6	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR	0x30B7	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR	0x30B8	/* eglCreateImageKHR target */
-#endif
-
-#ifndef EGL_KHR_gl_texture_3D_image
-#define EGL_KHR_gl_texture_3D_image 1
-#define EGL_GL_TEXTURE_3D_KHR			0x30B2	/* eglCreateImageKHR target */
-#define EGL_GL_TEXTURE_ZOFFSET_KHR		0x30BD	/* eglCreateImageKHR attribute */
-#endif
-
-#ifndef EGL_KHR_gl_renderbuffer_image
-#define EGL_KHR_gl_renderbuffer_image 1
-#define EGL_GL_RENDERBUFFER_KHR			0x30B9	/* eglCreateImageKHR target */
-#endif
-
-#ifndef EGL_KHR_reusable_sync
-#define EGL_KHR_reusable_sync 1
-
-typedef void* EGLSyncKHR;
-typedef khronos_utime_nanoseconds_t EGLTimeKHR;
-
-#define EGL_SYNC_STATUS_KHR			0x30F1
-#define EGL_SIGNALED_KHR			0x30F2
-#define EGL_UNSIGNALED_KHR			0x30F3
-#define EGL_TIMEOUT_EXPIRED_KHR			0x30F5
-#define EGL_CONDITION_SATISFIED_KHR		0x30F6
-#define EGL_SYNC_TYPE_KHR			0x30F7
-#define EGL_SYNC_REUSABLE_KHR			0x30FA
-#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR		0x0001	/* eglClientWaitSyncKHR <flags> bitfield */
-#define EGL_FOREVER_KHR				0xFFFFFFFFFFFFFFFFull
-#define EGL_NO_SYNC_KHR				((EGLSyncKHR)0)
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-EGLAPI EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync);
-EGLAPI EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
-EGLAPI EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLSyncKHR (EGLAPIENTRYP PFNEGLCREATESYNCKHRPROC) (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync);
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value);
-#endif
-
-#ifndef EGL_KHR_image_base
-#define EGL_KHR_image_base 1
-/* Most interfaces defined by EGL_KHR_image_pixmap above */
-#define EGL_IMAGE_PRESERVED_KHR			0x30D2	/* eglCreateImageKHR attribute */
-#endif
-
-#ifndef EGL_KHR_image_pixmap
-#define EGL_KHR_image_pixmap 1
-/* Interfaces defined by EGL_KHR_image above */
-#endif
-
-#ifndef EGL_IMG_context_priority
-#define EGL_IMG_context_priority 1
-#define EGL_CONTEXT_PRIORITY_LEVEL_IMG		0x3100
-#define EGL_CONTEXT_PRIORITY_HIGH_IMG		0x3101
-#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG		0x3102
-#define EGL_CONTEXT_PRIORITY_LOW_IMG		0x3103
-#endif
-
-#ifndef EGL_NV_coverage_sample
-#define EGL_NV_coverage_sample 1
-#define EGL_COVERAGE_BUFFERS_NV 0x30E0
-#define EGL_COVERAGE_SAMPLES_NV 0x30E1
-#endif
-
-#ifndef EGL_NV_depth_nonlinear
-#define EGL_NV_depth_nonlinear 1
-#define EGL_DEPTH_ENCODING_NV 0x30E2
-#define EGL_DEPTH_ENCODING_NONE_NV 0
-#define EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30E3
-#endif
-
-#ifndef EGL_NV_sync
-#define EGL_NV_sync 1
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV	0x30E6
-#define EGL_SYNC_STATUS_NV			0x30E7
-#define EGL_SIGNALED_NV				0x30E8
-#define EGL_UNSIGNALED_NV			0x30E9
-#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV		0x0001
-#define EGL_FOREVER_NV				0xFFFFFFFFFFFFFFFFull
-#define EGL_ALREADY_SIGNALED_NV			0x30EA
-#define EGL_TIMEOUT_EXPIRED_NV			0x30EB
-#define EGL_CONDITION_SATISFIED_NV		0x30EC
-#define EGL_SYNC_TYPE_NV			0x30ED
-#define EGL_SYNC_CONDITION_NV			0x30EE
-#define EGL_SYNC_FENCE_NV			0x30EF
-#define EGL_NO_SYNC_NV				((EGLSyncNV)0)
-typedef void* EGLSyncNV;
-typedef unsigned long long EGLTimeNV;
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLSyncNV eglCreateFenceSyncNV (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
-EGLBoolean eglDestroySyncNV (EGLSyncNV sync);
-EGLBoolean eglFenceNV (EGLSyncNV sync);
-EGLint eglClientWaitSyncNV (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
-EGLBoolean eglSignalSyncNV (EGLSyncNV sync, EGLenum mode);
-EGLBoolean eglGetSyncAttribNV (EGLSyncNV sync, EGLint attribute, EGLint *value);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLSyncNV (EGLAPIENTRYP PFNEGLCREATEFENCESYNCNVPROC) (EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYSYNCNVPROC) (EGLSyncNV sync);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLFENCENVPROC) (EGLSyncNV sync);
-typedef EGLint (EGLAPIENTRYP PFNEGLCLIENTWAITSYNCNVPROC) (EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCNVPROC) (EGLSyncNV sync, EGLenum mode);
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBNVPROC) (EGLSyncNV sync, EGLint attribute, EGLint *value);
-#endif
-
-#ifndef EGL_KHR_fence_sync
-#define EGL_KHR_fence_sync 1
-/* Reuses most tokens and entry points from EGL_KHR_reusable_sync */
-#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR	0x30F0
-#define EGL_SYNC_CONDITION_KHR			0x30F8
-#define EGL_SYNC_FENCE_KHR			0x30F9
-#endif
-
-#ifndef EGL_ANDROID_image_native_buffer
-#define EGL_ANDROID_image_native_buffer 1
-struct android_native_buffer_t;
-#define EGL_NATIVE_BUFFER_ANDROID       0x3140  /* eglCreateImageKHR target */
-#endif
-
-#ifndef EGL_ANDROID_swap_rectangle
-#define EGL_ANDROID_swap_rectangle 1
-#ifdef EGL_EGLEXT_PROTOTYPES
-EGLAPI EGLBoolean EGLAPIENTRY eglSetSwapRectangleANDROID (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height);
-#endif /* EGL_EGLEXT_PROTOTYPES */
-typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSWAPRECTANGLEANDROIDPROC) (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/EGL/eglinternalplatform.h b/tools/emulator/opengl/host/libs/Translator/include/EGL/eglinternalplatform.h
deleted file mode 100644
index c387043..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/EGL/eglinternalplatform.h
+++ /dev/null
@@ -1,69 +0,0 @@
-#ifndef EGL_INTERNAL_PLATFORM_H
-#define EGL_INTERNAL_PLATFORM_H
-
-/*
-* Copyright (C) 2011 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.
-*/
-
-class SrfcInfo; //defined in Egl{$platform}Api.cpp
-typedef SrfcInfo* SURFACE;
-typedef SURFACE EGLNativeSurfaceType;
-
-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN 1
-#endif
-
-#include <GL/gl.h>
-#define WGL_WGLEXT_PROTOTYPES
-#include <GL/wglext.h>
-
-class WinDisplay; //defined in EglWindows.cpp
-typedef WinDisplay* DISPLAY;
-
-typedef PIXELFORMATDESCRIPTOR  EGLNativePixelFormatType;
-#define PIXEL_FORMAT_INITIALIZER {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
-typedef HGLRC                  EGLNativeContextType;
-typedef HPBUFFERARB            EGLNativePbufferType;
-typedef DISPLAY                EGLNativeInternalDisplayType;
-
-#elif defined(__APPLE__)
-
-typedef void*                  EGLNativePixelFormatType;
-#define PIXEL_FORMAT_INITIALIZER NULL
-typedef void*                  EGLNativeContextType;
-typedef void*                  EGLNativePbufferType;
-typedef EGLNativeDisplayType   EGLNativeInternalDisplayType;
-
-
-#elif defined(__unix__)
-
-/* X11 (tentative)  */
-#include <GL/glx.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef GLXFBConfig           EGLNativePixelFormatType;
-#define PIXEL_FORMAT_INITIALIZER 0;
-typedef GLXContext            EGLNativeContextType;
-typedef GLXPbuffer            EGLNativePbufferType;
-typedef EGLNativeDisplayType  EGLNativeInternalDisplayType;
-
-#else
-#error "Platform not recognized"
-#endif
-
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/EGL/eglplatform.h b/tools/emulator/opengl/host/libs/Translator/include/EGL/eglplatform.h
deleted file mode 100644
index b159cd7..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/EGL/eglplatform.h
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef __eglplatform_h_
-#define __eglplatform_h_
-/*
-** Copyright (c) 2007-2009 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-/* Platform-specific types and definitions for egl.h
- * $Revision: 9724 $ on $Date: 2009-12-02 02:05:33 -0800 (Wed, 02 Dec 2009) $
- *
- * Adopters may modify khrplatform.h and this file to suit their platform.
- * You are encouraged to submit all modifications to the Khronos group so that
- * they can be included in future versions of this file.  Please submit changes
- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
- * by filing a bug against product "EGL" component "Registry".
- */
-#include <KHR/khrplatform.h>
-
-/* Macros used in EGL function prototype declarations.
- *
- * EGL functions should be prototyped as:
- *
- * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
- * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
- *
- * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
- */
-
-#ifndef EGLAPI
-#define EGLAPI KHRONOS_APICALL
-#endif
-
-#ifndef EGLAPIENTRY
-#define EGLAPIENTRY  KHRONOS_APIENTRY
-#endif
-#define EGLAPIENTRYP EGLAPIENTRY*
-
-/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
- * are aliases of window-system-dependent types, such as X Display * or
- * Windows Device Context. They must be defined in platform-specific
- * code below. The EGL-prefixed versions of Native*Type are the same
- * types, renamed in EGL 1.3 so all types in the API start with "EGL".
- */
-
-#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN 1
-#endif
-#include <windows.h>
-
-
-
-typedef HDC                    EGLNativeDisplayType;
-typedef HBITMAP                EGLNativePixmapType;
-typedef HWND                   EGLNativeWindowType;
-
-#elif defined(__APPLE__)
-
-typedef unsigned int           EGLNativeDisplayType;
-typedef void*                  EGLNativePixmapType;
-typedef void*                  EGLNativeWindowType;
-
-
-#elif defined(__unix__)
-
-/* X11 (tentative)  */
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-typedef Display *           EGLNativeDisplayType;
-typedef Pixmap              EGLNativePixmapType;
-typedef Window              EGLNativeWindowType;
-
-#else
-#error "Platform not recognized"
-#endif
-
-/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
-typedef EGLNativeDisplayType NativeDisplayType;
-typedef EGLNativePixmapType  NativePixmapType;
-typedef EGLNativeWindowType  NativeWindowType;
-
-
-/* Define EGLint. This must be a signed integral type large enough to contain
- * all legal attribute names and values passed into and out of EGL, whether
- * their type is boolean, bitmask, enumerant (symbolic constant), integer,
- * handle, or other.  While in general a 32-bit integer will suffice, if
- * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
- * integer type.
- */
-typedef khronos_int32_t EGLint;
-
-#endif /* __eglplatform_h */
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GL/wglext.h b/tools/emulator/opengl/host/libs/Translator/include/GL/wglext.h
deleted file mode 100644
index 8e06d93..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GL/wglext.h
+++ /dev/null
@@ -1,901 +0,0 @@
-#ifndef __wglext_h_
-#define __wglext_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-** Copyright (c) 2007-2010 The Khronos Group Inc.
-**
-** Permission is hereby granted, free of charge, to any person obtaining a
-** copy of this software and/or associated documentation files (the
-** "Materials"), to deal in the Materials without restriction, including
-** without limitation the rights to use, copy, modify, merge, publish,
-** distribute, sublicense, and/or sell copies of the Materials, and to
-** permit persons to whom the Materials are furnished to do so, subject to
-** the following conditions:
-**
-** The above copyright notice and this permission notice shall be included
-** in all copies or substantial portions of the Materials.
-**
-** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
-*/
-
-/* Function declaration macros - to move into glplatform.h */
-
-#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
-#define WIN32_LEAN_AND_MEAN 1
-#include <windows.h>
-#endif
-
-#ifndef APIENTRY
-#define APIENTRY
-#endif
-#ifndef APIENTRYP
-#define APIENTRYP APIENTRY *
-#endif
-#ifndef GLAPI
-#define GLAPI extern
-#endif
-
-/*************************************************************/
-
-/* Header file version number */
-/* wglext.h last updated 2010/08/06 */
-/* Current version at http://www.opengl.org/registry/ */
-#define WGL_WGLEXT_VERSION 22
-
-#ifndef WGL_ARB_buffer_region
-#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001
-#define WGL_BACK_COLOR_BUFFER_BIT_ARB  0x00000002
-#define WGL_DEPTH_BUFFER_BIT_ARB       0x00000004
-#define WGL_STENCIL_BUFFER_BIT_ARB     0x00000008
-#endif
-
-#ifndef WGL_ARB_multisample
-#define WGL_SAMPLE_BUFFERS_ARB         0x2041
-#define WGL_SAMPLES_ARB                0x2042
-#endif
-
-#ifndef WGL_ARB_extensions_string
-#endif
-
-#ifndef WGL_ARB_pixel_format
-#define WGL_NUMBER_PIXEL_FORMATS_ARB   0x2000
-#define WGL_DRAW_TO_WINDOW_ARB         0x2001
-#define WGL_DRAW_TO_BITMAP_ARB         0x2002
-#define WGL_ACCELERATION_ARB           0x2003
-#define WGL_NEED_PALETTE_ARB           0x2004
-#define WGL_NEED_SYSTEM_PALETTE_ARB    0x2005
-#define WGL_SWAP_LAYER_BUFFERS_ARB     0x2006
-#define WGL_SWAP_METHOD_ARB            0x2007
-#define WGL_NUMBER_OVERLAYS_ARB        0x2008
-#define WGL_NUMBER_UNDERLAYS_ARB       0x2009
-#define WGL_TRANSPARENT_ARB            0x200A
-#define WGL_TRANSPARENT_RED_VALUE_ARB  0x2037
-#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
-#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
-#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
-#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
-#define WGL_SHARE_DEPTH_ARB            0x200C
-#define WGL_SHARE_STENCIL_ARB          0x200D
-#define WGL_SHARE_ACCUM_ARB            0x200E
-#define WGL_SUPPORT_GDI_ARB            0x200F
-#define WGL_SUPPORT_OPENGL_ARB         0x2010
-#define WGL_DOUBLE_BUFFER_ARB          0x2011
-#define WGL_STEREO_ARB                 0x2012
-#define WGL_PIXEL_TYPE_ARB             0x2013
-#define WGL_COLOR_BITS_ARB             0x2014
-#define WGL_RED_BITS_ARB               0x2015
-#define WGL_RED_SHIFT_ARB              0x2016
-#define WGL_GREEN_BITS_ARB             0x2017
-#define WGL_GREEN_SHIFT_ARB            0x2018
-#define WGL_BLUE_BITS_ARB              0x2019
-#define WGL_BLUE_SHIFT_ARB             0x201A
-#define WGL_ALPHA_BITS_ARB             0x201B
-#define WGL_ALPHA_SHIFT_ARB            0x201C
-#define WGL_ACCUM_BITS_ARB             0x201D
-#define WGL_ACCUM_RED_BITS_ARB         0x201E
-#define WGL_ACCUM_GREEN_BITS_ARB       0x201F
-#define WGL_ACCUM_BLUE_BITS_ARB        0x2020
-#define WGL_ACCUM_ALPHA_BITS_ARB       0x2021
-#define WGL_DEPTH_BITS_ARB             0x2022
-#define WGL_STENCIL_BITS_ARB           0x2023
-#define WGL_AUX_BUFFERS_ARB            0x2024
-#define WGL_NO_ACCELERATION_ARB        0x2025
-#define WGL_GENERIC_ACCELERATION_ARB   0x2026
-#define WGL_FULL_ACCELERATION_ARB      0x2027
-#define WGL_SWAP_EXCHANGE_ARB          0x2028
-#define WGL_SWAP_COPY_ARB              0x2029
-#define WGL_SWAP_UNDEFINED_ARB         0x202A
-#define WGL_TYPE_RGBA_ARB              0x202B
-#define WGL_TYPE_COLORINDEX_ARB        0x202C
-#endif
-
-#ifndef WGL_ARB_make_current_read
-#define ERROR_INVALID_PIXEL_TYPE_ARB   0x2043
-#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
-#endif
-
-#ifndef WGL_ARB_pbuffer
-#define WGL_DRAW_TO_PBUFFER_ARB        0x202D
-#define WGL_MAX_PBUFFER_PIXELS_ARB     0x202E
-#define WGL_MAX_PBUFFER_WIDTH_ARB      0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_ARB     0x2030
-#define WGL_PBUFFER_LARGEST_ARB        0x2033
-#define WGL_PBUFFER_WIDTH_ARB          0x2034
-#define WGL_PBUFFER_HEIGHT_ARB         0x2035
-#define WGL_PBUFFER_LOST_ARB           0x2036
-#endif
-
-#ifndef WGL_ARB_render_texture
-#define WGL_BIND_TO_TEXTURE_RGB_ARB    0x2070
-#define WGL_BIND_TO_TEXTURE_RGBA_ARB   0x2071
-#define WGL_TEXTURE_FORMAT_ARB         0x2072
-#define WGL_TEXTURE_TARGET_ARB         0x2073
-#define WGL_MIPMAP_TEXTURE_ARB         0x2074
-#define WGL_TEXTURE_RGB_ARB            0x2075
-#define WGL_TEXTURE_RGBA_ARB           0x2076
-#define WGL_NO_TEXTURE_ARB             0x2077
-#define WGL_TEXTURE_CUBE_MAP_ARB       0x2078
-#define WGL_TEXTURE_1D_ARB             0x2079
-#define WGL_TEXTURE_2D_ARB             0x207A
-#define WGL_MIPMAP_LEVEL_ARB           0x207B
-#define WGL_CUBE_MAP_FACE_ARB          0x207C
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080
-#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081
-#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082
-#define WGL_FRONT_LEFT_ARB             0x2083
-#define WGL_FRONT_RIGHT_ARB            0x2084
-#define WGL_BACK_LEFT_ARB              0x2085
-#define WGL_BACK_RIGHT_ARB             0x2086
-#define WGL_AUX0_ARB                   0x2087
-#define WGL_AUX1_ARB                   0x2088
-#define WGL_AUX2_ARB                   0x2089
-#define WGL_AUX3_ARB                   0x208A
-#define WGL_AUX4_ARB                   0x208B
-#define WGL_AUX5_ARB                   0x208C
-#define WGL_AUX6_ARB                   0x208D
-#define WGL_AUX7_ARB                   0x208E
-#define WGL_AUX8_ARB                   0x208F
-#define WGL_AUX9_ARB                   0x2090
-#endif
-
-#ifndef WGL_ARB_pixel_format_float
-#define WGL_TYPE_RGBA_FLOAT_ARB        0x21A0
-#endif
-
-#ifndef WGL_ARB_framebuffer_sRGB
-#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
-#endif
-
-#ifndef WGL_ARB_create_context
-#define WGL_CONTEXT_DEBUG_BIT_ARB      0x00000001
-#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
-#define WGL_CONTEXT_MAJOR_VERSION_ARB  0x2091
-#define WGL_CONTEXT_MINOR_VERSION_ARB  0x2092
-#define WGL_CONTEXT_LAYER_PLANE_ARB    0x2093
-#define WGL_CONTEXT_FLAGS_ARB          0x2094
-#define ERROR_INVALID_VERSION_ARB      0x2095
-#endif
-
-#ifndef WGL_ARB_create_context_profile
-#define WGL_CONTEXT_PROFILE_MASK_ARB   0x9126
-#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
-#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
-#define ERROR_INVALID_PROFILE_ARB      0x2096
-#endif
-
-#ifndef WGL_ARB_create_context_robustness
-#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
-#define WGL_LOSE_CONTEXT_ON_RESET_ARB  0x8252
-#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
-#define WGL_NO_RESET_NOTIFICATION_ARB  0x8261
-#endif
-
-#ifndef WGL_EXT_make_current_read
-#define ERROR_INVALID_PIXEL_TYPE_EXT   0x2043
-#endif
-
-#ifndef WGL_EXT_pixel_format
-#define WGL_NUMBER_PIXEL_FORMATS_EXT   0x2000
-#define WGL_DRAW_TO_WINDOW_EXT         0x2001
-#define WGL_DRAW_TO_BITMAP_EXT         0x2002
-#define WGL_ACCELERATION_EXT           0x2003
-#define WGL_NEED_PALETTE_EXT           0x2004
-#define WGL_NEED_SYSTEM_PALETTE_EXT    0x2005
-#define WGL_SWAP_LAYER_BUFFERS_EXT     0x2006
-#define WGL_SWAP_METHOD_EXT            0x2007
-#define WGL_NUMBER_OVERLAYS_EXT        0x2008
-#define WGL_NUMBER_UNDERLAYS_EXT       0x2009
-#define WGL_TRANSPARENT_EXT            0x200A
-#define WGL_TRANSPARENT_VALUE_EXT      0x200B
-#define WGL_SHARE_DEPTH_EXT            0x200C
-#define WGL_SHARE_STENCIL_EXT          0x200D
-#define WGL_SHARE_ACCUM_EXT            0x200E
-#define WGL_SUPPORT_GDI_EXT            0x200F
-#define WGL_SUPPORT_OPENGL_EXT         0x2010
-#define WGL_DOUBLE_BUFFER_EXT          0x2011
-#define WGL_STEREO_EXT                 0x2012
-#define WGL_PIXEL_TYPE_EXT             0x2013
-#define WGL_COLOR_BITS_EXT             0x2014
-#define WGL_RED_BITS_EXT               0x2015
-#define WGL_RED_SHIFT_EXT              0x2016
-#define WGL_GREEN_BITS_EXT             0x2017
-#define WGL_GREEN_SHIFT_EXT            0x2018
-#define WGL_BLUE_BITS_EXT              0x2019
-#define WGL_BLUE_SHIFT_EXT             0x201A
-#define WGL_ALPHA_BITS_EXT             0x201B
-#define WGL_ALPHA_SHIFT_EXT            0x201C
-#define WGL_ACCUM_BITS_EXT             0x201D
-#define WGL_ACCUM_RED_BITS_EXT         0x201E
-#define WGL_ACCUM_GREEN_BITS_EXT       0x201F
-#define WGL_ACCUM_BLUE_BITS_EXT        0x2020
-#define WGL_ACCUM_ALPHA_BITS_EXT       0x2021
-#define WGL_DEPTH_BITS_EXT             0x2022
-#define WGL_STENCIL_BITS_EXT           0x2023
-#define WGL_AUX_BUFFERS_EXT            0x2024
-#define WGL_NO_ACCELERATION_EXT        0x2025
-#define WGL_GENERIC_ACCELERATION_EXT   0x2026
-#define WGL_FULL_ACCELERATION_EXT      0x2027
-#define WGL_SWAP_EXCHANGE_EXT          0x2028
-#define WGL_SWAP_COPY_EXT              0x2029
-#define WGL_SWAP_UNDEFINED_EXT         0x202A
-#define WGL_TYPE_RGBA_EXT              0x202B
-#define WGL_TYPE_COLORINDEX_EXT        0x202C
-#endif
-
-#ifndef WGL_EXT_pbuffer
-#define WGL_DRAW_TO_PBUFFER_EXT        0x202D
-#define WGL_MAX_PBUFFER_PIXELS_EXT     0x202E
-#define WGL_MAX_PBUFFER_WIDTH_EXT      0x202F
-#define WGL_MAX_PBUFFER_HEIGHT_EXT     0x2030
-#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT  0x2031
-#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032
-#define WGL_PBUFFER_LARGEST_EXT        0x2033
-#define WGL_PBUFFER_WIDTH_EXT          0x2034
-#define WGL_PBUFFER_HEIGHT_EXT         0x2035
-#endif
-
-#ifndef WGL_EXT_depth_float
-#define WGL_DEPTH_FLOAT_EXT            0x2040
-#endif
-
-#ifndef WGL_3DFX_multisample
-#define WGL_SAMPLE_BUFFERS_3DFX        0x2060
-#define WGL_SAMPLES_3DFX               0x2061
-#endif
-
-#ifndef WGL_EXT_multisample
-#define WGL_SAMPLE_BUFFERS_EXT         0x2041
-#define WGL_SAMPLES_EXT                0x2042
-#endif
-
-#ifndef WGL_I3D_digital_video_control
-#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050
-#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D 0x2051
-#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D 0x2052
-#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D 0x2053
-#endif
-
-#ifndef WGL_I3D_gamma
-#define WGL_GAMMA_TABLE_SIZE_I3D       0x204E
-#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D  0x204F
-#endif
-
-#ifndef WGL_I3D_genlock
-#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
-#define WGL_GENLOCK_SOURCE_EXTENAL_SYNC_I3D 0x2045
-#define WGL_GENLOCK_SOURCE_EXTENAL_FIELD_I3D 0x2046
-#define WGL_GENLOCK_SOURCE_EXTENAL_TTL_I3D 0x2047
-#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048
-#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049
-#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A
-#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B
-#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C
-#endif
-
-#ifndef WGL_I3D_image_buffer
-#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
-#define WGL_IMAGE_BUFFER_LOCK_I3D      0x00000002
-#endif
-
-#ifndef WGL_I3D_swap_frame_lock
-#endif
-
-#ifndef WGL_NV_render_depth_texture
-#define WGL_BIND_TO_TEXTURE_DEPTH_NV   0x20A3
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20A4
-#define WGL_DEPTH_TEXTURE_FORMAT_NV    0x20A5
-#define WGL_TEXTURE_DEPTH_COMPONENT_NV 0x20A6
-#define WGL_DEPTH_COMPONENT_NV         0x20A7
-#endif
-
-#ifndef WGL_NV_render_texture_rectangle
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV 0x20A0
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20A1
-#define WGL_TEXTURE_RECTANGLE_NV       0x20A2
-#endif
-
-#ifndef WGL_ATI_pixel_format_float
-#define WGL_TYPE_RGBA_FLOAT_ATI        0x21A0
-#endif
-
-#ifndef WGL_NV_float_buffer
-#define WGL_FLOAT_COMPONENTS_NV        0x20B0
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3
-#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4
-#define WGL_TEXTURE_FLOAT_R_NV         0x20B5
-#define WGL_TEXTURE_FLOAT_RG_NV        0x20B6
-#define WGL_TEXTURE_FLOAT_RGB_NV       0x20B7
-#define WGL_TEXTURE_FLOAT_RGBA_NV      0x20B8
-#endif
-
-#ifndef WGL_3DL_stereo_control
-#define WGL_STEREO_EMITTER_ENABLE_3DL  0x2055
-#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
-#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
-#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
-#endif
-
-#ifndef WGL_EXT_pixel_format_packed_float
-#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
-#endif
-
-#ifndef WGL_EXT_framebuffer_sRGB
-#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
-#endif
-
-#ifndef WGL_NV_present_video
-#define WGL_NUM_VIDEO_SLOTS_NV         0x20F0
-#endif
-
-#ifndef WGL_NV_video_out
-#define WGL_BIND_TO_VIDEO_RGB_NV       0x20C0
-#define WGL_BIND_TO_VIDEO_RGBA_NV      0x20C1
-#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
-#define WGL_VIDEO_OUT_COLOR_NV         0x20C3
-#define WGL_VIDEO_OUT_ALPHA_NV         0x20C4
-#define WGL_VIDEO_OUT_DEPTH_NV         0x20C5
-#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
-#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
-#define WGL_VIDEO_OUT_FRAME            0x20C8
-#define WGL_VIDEO_OUT_FIELD_1          0x20C9
-#define WGL_VIDEO_OUT_FIELD_2          0x20CA
-#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
-#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
-#endif
-
-#ifndef WGL_NV_swap_group
-#endif
-
-#ifndef WGL_NV_gpu_affinity
-#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
-#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
-#endif
-
-#ifndef WGL_AMD_gpu_association
-#define WGL_GPU_VENDOR_AMD             0x1F00
-#define WGL_GPU_RENDERER_STRING_AMD    0x1F01
-#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
-#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
-#define WGL_GPU_RAM_AMD                0x21A3
-#define WGL_GPU_CLOCK_AMD              0x21A4
-#define WGL_GPU_NUM_PIPES_AMD          0x21A5
-#define WGL_GPU_NUM_SIMD_AMD           0x21A6
-#define WGL_GPU_NUM_RB_AMD             0x21A7
-#define WGL_GPU_NUM_SPI_AMD            0x21A8
-#endif
-
-#ifndef WGL_NV_video_capture
-#define WGL_UNIQUE_ID_NV               0x20CE
-#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
-#endif
-
-#ifndef WGL_NV_copy_image
-#endif
-
-#ifndef WGL_NV_multisample_coverage
-#define WGL_COVERAGE_SAMPLES_NV        0x2042
-#define WGL_COLOR_SAMPLES_NV           0x20B9
-#endif
-
-#ifndef WGL_EXT_create_context_es2_profile
-#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
-#endif
-
-
-/*************************************************************/
-
-#ifndef WGL_ARB_pbuffer
-DECLARE_HANDLE(HPBUFFERARB);
-#endif
-#ifndef WGL_EXT_pbuffer
-DECLARE_HANDLE(HPBUFFEREXT);
-#endif
-#ifndef WGL_NV_present_video
-DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
-#endif
-#ifndef WGL_NV_video_output
-DECLARE_HANDLE(HPVIDEODEV);
-#endif
-#ifndef WGL_NV_gpu_affinity
-DECLARE_HANDLE(HPGPUNV);
-DECLARE_HANDLE(HGPUNV);
-
-typedef struct _GPU_DEVICE {
-    DWORD  cb;
-    CHAR   DeviceName[32];
-    CHAR   DeviceString[128];
-    DWORD  Flags;
-    RECT   rcVirtualScreen;
-} GPU_DEVICE, *PGPU_DEVICE;
-#endif
-#ifndef WGL_NV_video_capture
-DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
-#endif
-
-#ifndef WGL_ARB_buffer_region
-#define WGL_ARB_buffer_region 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType);
-extern VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion);
-extern BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height);
-extern BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef HANDLE (WINAPI * PFNWGLCREATEBUFFERREGIONARBPROC) (HDC hDC, int iLayerPlane, UINT uType);
-typedef VOID (WINAPI * PFNWGLDELETEBUFFERREGIONARBPROC) (HANDLE hRegion);
-typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height);
-typedef BOOL (WINAPI * PFNWGLRESTOREBUFFERREGIONARBPROC) (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
-#endif
-
-#ifndef WGL_ARB_multisample
-#define WGL_ARB_multisample 1
-#endif
-
-#ifndef WGL_ARB_extensions_string
-#define WGL_ARB_extensions_string 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern const char * WINAPI wglGetExtensionsStringARB (HDC hdc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
-#endif
-
-#ifndef WGL_ARB_pixel_format
-#define WGL_ARB_pixel_format 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
-extern BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
-extern BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
-typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif
-
-#ifndef WGL_ARB_make_current_read
-#define WGL_ARB_make_current_read 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-extern HDC WINAPI wglGetCurrentReadDCARB (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
-#endif
-
-#ifndef WGL_ARB_pbuffer
-#define WGL_ARB_pbuffer 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-extern HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer);
-extern int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC);
-extern BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer);
-extern BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer);
-typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer, HDC hDC);
-typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer);
-typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
-#endif
-
-#ifndef WGL_ARB_render_texture
-#define WGL_ARB_render_texture 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
-extern BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
-extern BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
-typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC) (HPBUFFERARB hPbuffer, int iBuffer);
-typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, const int *piAttribList);
-#endif
-
-#ifndef WGL_ARB_pixel_format_float
-#define WGL_ARB_pixel_format_float 1
-#endif
-
-#ifndef WGL_ARB_framebuffer_sRGB
-#define WGL_ARB_framebuffer_sRGB 1
-#endif
-
-#ifndef WGL_ARB_create_context
-#define WGL_ARB_create_context 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
-#endif
-
-#ifndef WGL_ARB_create_context_profile
-#define WGL_ARB_create_context_profile 1
-#endif
-
-#ifndef WGL_ARB_create_context_robustness
-#define WGL_ARB_create_context_robustness 1
-#endif
-
-#ifndef WGL_EXT_display_color_table
-#define WGL_EXT_display_color_table 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id);
-extern GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length);
-extern GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id);
-extern VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef GLboolean (WINAPI * PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC) (GLushort id);
-typedef GLboolean (WINAPI * PFNWGLLOADDISPLAYCOLORTABLEEXTPROC) (const GLushort *table, GLuint length);
-typedef GLboolean (WINAPI * PFNWGLBINDDISPLAYCOLORTABLEEXTPROC) (GLushort id);
-typedef VOID (WINAPI * PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC) (GLushort id);
-#endif
-
-#ifndef WGL_EXT_extensions_string
-#define WGL_EXT_extensions_string 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern const char * WINAPI wglGetExtensionsStringEXT (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
-#endif
-
-#ifndef WGL_EXT_make_current_read
-#define WGL_EXT_make_current_read 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-extern HDC WINAPI wglGetCurrentReadDCEXT (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
-#endif
-
-#ifndef WGL_EXT_pbuffer
-#define WGL_EXT_pbuffer 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-extern HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer);
-extern int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC);
-extern BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer);
-extern BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef HPBUFFEREXT (WINAPI * PFNWGLCREATEPBUFFEREXTPROC) (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
-typedef HDC (WINAPI * PFNWGLGETPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer);
-typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCEXTPROC) (HPBUFFEREXT hPbuffer, HDC hDC);
-typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer);
-typedef BOOL (WINAPI * PFNWGLQUERYPBUFFEREXTPROC) (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
-#endif
-
-#ifndef WGL_EXT_pixel_format
-#define WGL_EXT_pixel_format 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
-extern BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
-extern BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
-typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVEXTPROC) (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
-typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATEXTPROC) (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
-#endif
-
-#ifndef WGL_EXT_swap_control
-#define WGL_EXT_swap_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglSwapIntervalEXT (int interval);
-extern int WINAPI wglGetSwapIntervalEXT (void);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
-typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
-#endif
-
-#ifndef WGL_EXT_depth_float
-#define WGL_EXT_depth_float 1
-#endif
-
-#ifndef WGL_NV_vertex_array_range
-#define WGL_NV_vertex_array_range 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern void* WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
-extern void WINAPI wglFreeMemoryNV (void *pointer);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef void* (WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
-typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
-#endif
-
-#ifndef WGL_3DFX_multisample
-#define WGL_3DFX_multisample 1
-#endif
-
-#ifndef WGL_EXT_multisample
-#define WGL_EXT_multisample 1
-#endif
-
-#ifndef WGL_OML_sync_control
-#define WGL_OML_sync_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
-extern BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator);
-extern INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
-extern INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
-extern BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
-extern BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETSYNCVALUESOMLPROC) (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
-typedef BOOL (WINAPI * PFNWGLGETMSCRATEOMLPROC) (HDC hdc, INT32 *numerator, INT32 *denominator);
-typedef INT64 (WINAPI * PFNWGLSWAPBUFFERSMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
-typedef INT64 (WINAPI * PFNWGLSWAPLAYERBUFFERSMSCOMLPROC) (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
-typedef BOOL (WINAPI * PFNWGLWAITFORMSCOMLPROC) (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
-typedef BOOL (WINAPI * PFNWGLWAITFORSBCOMLPROC) (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
-#endif
-
-#ifndef WGL_I3D_digital_video_control
-#define WGL_I3D_digital_video_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue);
-extern BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
-typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
-#endif
-
-#ifndef WGL_I3D_gamma
-#define WGL_I3D_gamma 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue);
-extern BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue);
-extern BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
-extern BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
-typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
-typedef BOOL (WINAPI * PFNWGLGETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
-typedef BOOL (WINAPI * PFNWGLSETGAMMATABLEI3DPROC) (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
-#endif
-
-#ifndef WGL_I3D_genlock
-#define WGL_I3D_genlock 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglEnableGenlockI3D (HDC hDC);
-extern BOOL WINAPI wglDisableGenlockI3D (HDC hDC);
-extern BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag);
-extern BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource);
-extern BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource);
-extern BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge);
-extern BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge);
-extern BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate);
-extern BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate);
-extern BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay);
-extern BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay);
-extern BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLENABLEGENLOCKI3DPROC) (HDC hDC);
-typedef BOOL (WINAPI * PFNWGLDISABLEGENLOCKI3DPROC) (HDC hDC);
-typedef BOOL (WINAPI * PFNWGLISENABLEDGENLOCKI3DPROC) (HDC hDC, BOOL *pFlag);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEI3DPROC) (HDC hDC, UINT uSource);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEI3DPROC) (HDC hDC, UINT *uSource);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT uEdge);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEEDGEI3DPROC) (HDC hDC, UINT *uEdge);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT uRate);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSAMPLERATEI3DPROC) (HDC hDC, UINT *uRate);
-typedef BOOL (WINAPI * PFNWGLGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT uDelay);
-typedef BOOL (WINAPI * PFNWGLGETGENLOCKSOURCEDELAYI3DPROC) (HDC hDC, UINT *uDelay);
-typedef BOOL (WINAPI * PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC) (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
-#endif
-
-#ifndef WGL_I3D_image_buffer
-#define WGL_I3D_image_buffer 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags);
-extern BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress);
-extern BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
-extern BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef LPVOID (WINAPI * PFNWGLCREATEIMAGEBUFFERI3DPROC) (HDC hDC, DWORD dwSize, UINT uFlags);
-typedef BOOL (WINAPI * PFNWGLDESTROYIMAGEBUFFERI3DPROC) (HDC hDC, LPVOID pAddress);
-typedef BOOL (WINAPI * PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
-typedef BOOL (WINAPI * PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC) (HDC hDC, const LPVOID *pAddress, UINT count);
-#endif
-
-#ifndef WGL_I3D_swap_frame_lock
-#define WGL_I3D_swap_frame_lock 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglEnableFrameLockI3D (void);
-extern BOOL WINAPI wglDisableFrameLockI3D (void);
-extern BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag);
-extern BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
-typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
-#endif
-
-#ifndef WGL_I3D_swap_frame_usage
-#define WGL_I3D_swap_frame_usage 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetFrameUsageI3D (float *pUsage);
-extern BOOL WINAPI wglBeginFrameTrackingI3D (void);
-extern BOOL WINAPI wglEndFrameTrackingI3D (void);
-extern BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETFRAMEUSAGEI3DPROC) (float *pUsage);
-typedef BOOL (WINAPI * PFNWGLBEGINFRAMETRACKINGI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLENDFRAMETRACKINGI3DPROC) (void);
-typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
-#endif
-
-#ifndef WGL_ATI_pixel_format_float
-#define WGL_ATI_pixel_format_float 1
-#endif
-
-#ifndef WGL_NV_float_buffer
-#define WGL_NV_float_buffer 1
-#endif
-
-#ifndef WGL_3DL_stereo_control
-#define WGL_3DL_stereo_control 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
-#endif
-
-#ifndef WGL_EXT_pixel_format_packed_float
-#define WGL_EXT_pixel_format_packed_float 1
-#endif
-
-#ifndef WGL_EXT_framebuffer_sRGB
-#define WGL_EXT_framebuffer_sRGB 1
-#endif
-
-#ifndef WGL_NV_present_video
-#define WGL_NV_present_video 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
-extern BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
-extern BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
-typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
-typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
-#endif
-
-#ifndef WGL_NV_video_output
-#define WGL_NV_video_output 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
-extern BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice);
-extern BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
-extern BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer);
-extern BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
-extern BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
-typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
-typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
-typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
-#endif
-
-#ifndef WGL_NV_swap_group
-#define WGL_NV_swap_group 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group);
-extern BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier);
-extern BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier);
-extern BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
-extern BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count);
-extern BOOL WINAPI wglResetFrameCountNV (HDC hDC);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
-typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
-typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
-typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
-typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
-typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
-#endif
-
-#ifndef WGL_NV_gpu_affinity
-#define WGL_NV_gpu_affinity 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu);
-extern BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
-extern HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList);
-extern BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
-extern BOOL WINAPI wglDeleteDCNV (HDC hdc);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
-typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
-typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
-typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
-typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
-#endif
-
-#ifndef WGL_AMD_gpu_association
-#define WGL_AMD_gpu_association 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids);
-extern INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data);
-extern UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc);
-extern HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id);
-extern HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList);
-extern BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc);
-extern BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc);
-extern HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void);
-extern VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids);
-typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data);
-typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
-typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
-typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList);
-typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
-typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
-typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
-typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-
-#ifndef WGL_NV_video_capture
-#define WGL_NV_video_capture 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
-extern UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
-extern BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-extern BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
-extern BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
-typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
-typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
-typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
-#endif
-
-#ifndef WGL_NV_copy_image
-#define WGL_NV_copy_image 1
-#ifdef WGL_WGLEXT_PROTOTYPES
-extern BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-#endif /* WGL_WGLEXT_PROTOTYPES */
-typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
-#endif
-
-#ifndef WGL_NV_multisample_coverage
-#define WGL_NV_multisample_coverage 1
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLES/gl.h b/tools/emulator/opengl/host/libs/Translator/include/GLES/gl.h
deleted file mode 100644
index 5b8d85a..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLES/gl.h
+++ /dev/null
@@ -1,770 +0,0 @@
-#ifndef __gl_h_
-#define __gl_h_
-
-/* $Revision: 10601 $ on $Date:: 2010-03-04 22:15:27 -0800 #$ */
-
-#include <GLES/glplatform.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-typedef void             GLvoid;
-typedef char             GLchar;
-typedef unsigned int     GLenum;
-typedef unsigned char    GLboolean;
-typedef unsigned int     GLbitfield;
-typedef khronos_int8_t   GLbyte;
-typedef short            GLshort;
-typedef int              GLint;
-typedef int              GLsizei;
-typedef khronos_uint8_t  GLubyte;
-typedef unsigned short   GLushort;
-typedef unsigned int     GLuint;
-typedef khronos_float_t  GLfloat;
-typedef khronos_float_t  GLclampf;
-typedef khronos_int32_t  GLfixed;
-typedef khronos_int32_t  GLclampx;
-
-typedef khronos_intptr_t GLintptr;
-typedef khronos_ssize_t  GLsizeiptr;
-
-
-/*************************************************************/
-
-/* OpenGL ES core versions */
-#define GL_VERSION_ES_CM_1_0          1
-#define GL_VERSION_ES_CL_1_0          1
-#define GL_VERSION_ES_CM_1_1          1
-#define GL_VERSION_ES_CL_1_1          1
-
-/* ClearBufferMask */
-#define GL_DEPTH_BUFFER_BIT               0x00000100
-#define GL_STENCIL_BUFFER_BIT             0x00000400
-#define GL_COLOR_BUFFER_BIT               0x00004000
-
-/* Boolean */
-#define GL_FALSE                          0
-#define GL_TRUE                           1
-
-/* BeginMode */
-#define GL_POINTS                         0x0000
-#define GL_LINES                          0x0001
-#define GL_LINE_LOOP                      0x0002
-#define GL_LINE_STRIP                     0x0003
-#define GL_TRIANGLES                      0x0004
-#define GL_TRIANGLE_STRIP                 0x0005
-#define GL_TRIANGLE_FAN                   0x0006
-
-/* AlphaFunction */
-#define GL_NEVER                          0x0200
-#define GL_LESS                           0x0201
-#define GL_EQUAL                          0x0202
-#define GL_LEQUAL                         0x0203
-#define GL_GREATER                        0x0204
-#define GL_NOTEQUAL                       0x0205
-#define GL_GEQUAL                         0x0206
-#define GL_ALWAYS                         0x0207
-
-/* BlendingFactorDest */
-#define GL_ZERO                           0
-#define GL_ONE                            1
-#define GL_SRC_COLOR                      0x0300
-#define GL_ONE_MINUS_SRC_COLOR            0x0301
-#define GL_SRC_ALPHA                      0x0302
-#define GL_ONE_MINUS_SRC_ALPHA            0x0303
-#define GL_DST_ALPHA                      0x0304
-#define GL_ONE_MINUS_DST_ALPHA            0x0305
-
-/* BlendingFactorSrc */
-/*      GL_ZERO */
-/*      GL_ONE */
-#define GL_DST_COLOR                      0x0306
-#define GL_ONE_MINUS_DST_COLOR            0x0307
-#define GL_SRC_ALPHA_SATURATE             0x0308
-/*      GL_SRC_ALPHA */
-/*      GL_ONE_MINUS_SRC_ALPHA */
-/*      GL_DST_ALPHA */
-/*      GL_ONE_MINUS_DST_ALPHA */
-
-/* ClipPlaneName */
-#define GL_CLIP_PLANE0                    0x3000
-#define GL_CLIP_PLANE1                    0x3001
-#define GL_CLIP_PLANE2                    0x3002
-#define GL_CLIP_PLANE3                    0x3003
-#define GL_CLIP_PLANE4                    0x3004
-#define GL_CLIP_PLANE5                    0x3005
-
-/* ColorMaterialFace */
-/*      GL_FRONT_AND_BACK */
-
-/* ColorMaterialParameter */
-/*      GL_AMBIENT_AND_DIFFUSE */
-
-/* ColorPointerType */
-/*      GL_UNSIGNED_BYTE */
-/*      GL_FLOAT */
-/*      GL_FIXED */
-
-/* CullFaceMode */
-#define GL_FRONT                          0x0404
-#define GL_BACK                           0x0405
-#define GL_FRONT_AND_BACK                 0x0408
-
-/* DepthFunction */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* EnableCap */
-#define GL_FOG                            0x0B60
-#define GL_LIGHTING                       0x0B50
-#define GL_TEXTURE_2D                     0x0DE1
-#define GL_CULL_FACE                      0x0B44
-#define GL_ALPHA_TEST                     0x0BC0
-#define GL_BLEND                          0x0BE2
-#define GL_COLOR_LOGIC_OP                 0x0BF2
-#define GL_DITHER                         0x0BD0
-#define GL_STENCIL_TEST                   0x0B90
-#define GL_DEPTH_TEST                     0x0B71
-/*      GL_LIGHT0 */
-/*      GL_LIGHT1 */
-/*      GL_LIGHT2 */
-/*      GL_LIGHT3 */
-/*      GL_LIGHT4 */
-/*      GL_LIGHT5 */
-/*      GL_LIGHT6 */
-/*      GL_LIGHT7 */
-#define GL_POINT_SMOOTH                   0x0B10
-#define GL_LINE_SMOOTH                    0x0B20
-#define GL_SCISSOR_TEST                   0x0C11
-#define GL_COLOR_MATERIAL                 0x0B57
-#define GL_NORMALIZE                      0x0BA1
-#define GL_RESCALE_NORMAL                 0x803A
-#define GL_POLYGON_OFFSET_FILL            0x8037
-#define GL_VERTEX_ARRAY                   0x8074
-#define GL_NORMAL_ARRAY                   0x8075
-#define GL_COLOR_ARRAY                    0x8076
-#define GL_TEXTURE_COORD_ARRAY            0x8078
-#define GL_MULTISAMPLE                    0x809D
-#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
-#define GL_SAMPLE_ALPHA_TO_ONE            0x809F
-#define GL_SAMPLE_COVERAGE                0x80A0
-
-/* ErrorCode */
-#define GL_NO_ERROR                       0
-#define GL_INVALID_ENUM                   0x0500
-#define GL_INVALID_VALUE                  0x0501
-#define GL_INVALID_OPERATION              0x0502
-#define GL_STACK_OVERFLOW                 0x0503
-#define GL_STACK_UNDERFLOW                0x0504
-#define GL_OUT_OF_MEMORY                  0x0505
-
-/* FogMode */
-/*      GL_LINEAR */
-#define GL_EXP                            0x0800
-#define GL_EXP2                           0x0801
-
-/* FogParameter */
-#define GL_FOG_DENSITY                    0x0B62
-#define GL_FOG_START                      0x0B63
-#define GL_FOG_END                        0x0B64
-#define GL_FOG_MODE                       0x0B65
-#define GL_FOG_COLOR                      0x0B66
-
-/* FrontFaceDirection */
-#define GL_CW                             0x0900
-#define GL_CCW                            0x0901
-
-/* GetPName */
-#define GL_CURRENT_COLOR                  0x0B00
-#define GL_CURRENT_NORMAL                 0x0B02
-#define GL_CURRENT_TEXTURE_COORDS         0x0B03
-#define GL_POINT_SIZE                     0x0B11
-#define GL_POINT_SIZE_MIN                 0x8126
-#define GL_POINT_SIZE_MAX                 0x8127
-#define GL_POINT_FADE_THRESHOLD_SIZE      0x8128
-#define GL_POINT_DISTANCE_ATTENUATION     0x8129
-#define GL_SMOOTH_POINT_SIZE_RANGE        0x0B12
-#define GL_LINE_WIDTH                     0x0B21
-#define GL_SMOOTH_LINE_WIDTH_RANGE        0x0B22
-#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
-#define GL_CULL_FACE_MODE                 0x0B45
-#define GL_FRONT_FACE                     0x0B46
-#define GL_SHADE_MODEL                    0x0B54
-#define GL_DEPTH_RANGE                    0x0B70
-#define GL_DEPTH_WRITEMASK                0x0B72
-#define GL_DEPTH_CLEAR_VALUE              0x0B73
-#define GL_DEPTH_FUNC                     0x0B74
-#define GL_STENCIL_CLEAR_VALUE            0x0B91
-#define GL_STENCIL_FUNC                   0x0B92
-#define GL_STENCIL_VALUE_MASK             0x0B93
-#define GL_STENCIL_FAIL                   0x0B94
-#define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
-#define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
-#define GL_STENCIL_REF                    0x0B97
-#define GL_STENCIL_WRITEMASK              0x0B98
-#define GL_MATRIX_MODE                    0x0BA0
-#define GL_VIEWPORT                       0x0BA2
-#define GL_MODELVIEW_STACK_DEPTH          0x0BA3
-#define GL_PROJECTION_STACK_DEPTH         0x0BA4
-#define GL_TEXTURE_STACK_DEPTH            0x0BA5
-#define GL_MODELVIEW_MATRIX               0x0BA6
-#define GL_PROJECTION_MATRIX              0x0BA7
-#define GL_TEXTURE_MATRIX                 0x0BA8
-#define GL_ALPHA_TEST_FUNC                0x0BC1
-#define GL_ALPHA_TEST_REF                 0x0BC2
-#define GL_BLEND_DST                      0x0BE0
-#define GL_BLEND_SRC                      0x0BE1
-#define GL_LOGIC_OP_MODE                  0x0BF0
-#define GL_SCISSOR_BOX                    0x0C10
-#define GL_SCISSOR_TEST                   0x0C11
-#define GL_COLOR_CLEAR_VALUE              0x0C22
-#define GL_COLOR_WRITEMASK                0x0C23
-#define GL_UNPACK_ALIGNMENT               0x0CF5
-#define GL_PACK_ALIGNMENT                 0x0D05
-#define GL_MAX_LIGHTS                     0x0D31
-#define GL_MAX_CLIP_PLANES                0x0D32
-#define GL_MAX_TEXTURE_SIZE               0x0D33
-#define GL_MAX_MODELVIEW_STACK_DEPTH      0x0D36
-#define GL_MAX_PROJECTION_STACK_DEPTH     0x0D38
-#define GL_MAX_TEXTURE_STACK_DEPTH        0x0D39
-#define GL_MAX_VIEWPORT_DIMS              0x0D3A
-#define GL_MAX_TEXTURE_UNITS              0x84E2
-#define GL_SUBPIXEL_BITS                  0x0D50
-#define GL_RED_BITS                       0x0D52
-#define GL_GREEN_BITS                     0x0D53
-#define GL_BLUE_BITS                      0x0D54
-#define GL_ALPHA_BITS                     0x0D55
-#define GL_DEPTH_BITS                     0x0D56
-#define GL_STENCIL_BITS                   0x0D57
-#define GL_POLYGON_OFFSET_UNITS           0x2A00
-#define GL_POLYGON_OFFSET_FILL            0x8037
-#define GL_POLYGON_OFFSET_FACTOR          0x8038
-#define GL_TEXTURE_BINDING_2D             0x8069
-#define GL_VERTEX_ARRAY_SIZE              0x807A
-#define GL_VERTEX_ARRAY_TYPE              0x807B
-#define GL_VERTEX_ARRAY_STRIDE            0x807C
-#define GL_NORMAL_ARRAY_TYPE              0x807E
-#define GL_NORMAL_ARRAY_STRIDE            0x807F
-#define GL_COLOR_ARRAY_SIZE               0x8081
-#define GL_COLOR_ARRAY_TYPE               0x8082
-#define GL_COLOR_ARRAY_STRIDE             0x8083
-#define GL_TEXTURE_COORD_ARRAY_SIZE       0x8088
-#define GL_TEXTURE_COORD_ARRAY_TYPE       0x8089
-#define GL_TEXTURE_COORD_ARRAY_STRIDE     0x808A
-#define GL_VERTEX_ARRAY_POINTER           0x808E
-#define GL_NORMAL_ARRAY_POINTER           0x808F
-#define GL_COLOR_ARRAY_POINTER            0x8090
-#define GL_TEXTURE_COORD_ARRAY_POINTER    0x8092
-#define GL_SAMPLE_BUFFERS                 0x80A8
-#define GL_SAMPLES                        0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
-
-/* GetTextureParameter */
-/*      GL_TEXTURE_MAG_FILTER */
-/*      GL_TEXTURE_MIN_FILTER */
-/*      GL_TEXTURE_WRAP_S */
-/*      GL_TEXTURE_WRAP_T */
-
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
-
-/* HintMode */
-#define GL_DONT_CARE                      0x1100
-#define GL_FASTEST                        0x1101
-#define GL_NICEST                         0x1102
-
-/* HintTarget */
-#define GL_PERSPECTIVE_CORRECTION_HINT    0x0C50
-#define GL_POINT_SMOOTH_HINT              0x0C51
-#define GL_LINE_SMOOTH_HINT               0x0C52
-#define GL_FOG_HINT                       0x0C54
-#define GL_GENERATE_MIPMAP_HINT           0x8192
-
-/* LightModelParameter */
-#define GL_LIGHT_MODEL_AMBIENT            0x0B53
-#define GL_LIGHT_MODEL_TWO_SIDE           0x0B52
-
-/* LightParameter */
-#define GL_AMBIENT                        0x1200
-#define GL_DIFFUSE                        0x1201
-#define GL_SPECULAR                       0x1202
-#define GL_POSITION                       0x1203
-#define GL_SPOT_DIRECTION                 0x1204
-#define GL_SPOT_EXPONENT                  0x1205
-#define GL_SPOT_CUTOFF                    0x1206
-#define GL_CONSTANT_ATTENUATION           0x1207
-#define GL_LINEAR_ATTENUATION             0x1208
-#define GL_QUADRATIC_ATTENUATION          0x1209
-
-/* DataType */
-#define GL_BYTE                           0x1400
-#define GL_UNSIGNED_BYTE                  0x1401
-#define GL_SHORT                          0x1402
-#define GL_UNSIGNED_SHORT                 0x1403
-#define GL_FLOAT                          0x1406
-#define GL_FIXED                          0x140C
-
-/* LogicOp */
-#define GL_CLEAR                          0x1500
-#define GL_AND                            0x1501
-#define GL_AND_REVERSE                    0x1502
-#define GL_COPY                           0x1503
-#define GL_AND_INVERTED                   0x1504
-#define GL_NOOP                           0x1505
-#define GL_XOR                            0x1506
-#define GL_OR                             0x1507
-#define GL_NOR                            0x1508
-#define GL_EQUIV                          0x1509
-#define GL_INVERT                         0x150A
-#define GL_OR_REVERSE                     0x150B
-#define GL_COPY_INVERTED                  0x150C
-#define GL_OR_INVERTED                    0x150D
-#define GL_NAND                           0x150E
-#define GL_SET                            0x150F
-
-/* MaterialFace */
-/*      GL_FRONT_AND_BACK */
-
-/* MaterialParameter */
-#define GL_EMISSION                       0x1600
-#define GL_SHININESS                      0x1601
-#define GL_AMBIENT_AND_DIFFUSE            0x1602
-/*      GL_AMBIENT */
-/*      GL_DIFFUSE */
-/*      GL_SPECULAR */
-
-/* MatrixMode */
-#define GL_MODELVIEW                      0x1700
-#define GL_PROJECTION                     0x1701
-#define GL_TEXTURE                        0x1702
-
-/* NormalPointerType */
-/*      GL_BYTE */
-/*      GL_SHORT */
-/*      GL_FLOAT */
-/*      GL_FIXED */
-
-/* PixelFormat */
-#define GL_ALPHA                          0x1906
-#define GL_RGB                            0x1907
-#define GL_RGBA                           0x1908
-#define GL_LUMINANCE                      0x1909
-#define GL_LUMINANCE_ALPHA                0x190A
-
-/* PixelStoreParameter */
-#define GL_UNPACK_ALIGNMENT               0x0CF5
-#define GL_PACK_ALIGNMENT                 0x0D05
-
-/* PixelType */
-/*      GL_UNSIGNED_BYTE */
-#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
-#define GL_UNSIGNED_SHORT_5_6_5           0x8363
-
-/* ShadingModel */
-#define GL_FLAT                           0x1D00
-#define GL_SMOOTH                         0x1D01
-
-/* StencilFunction */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* StencilOp */
-/*      GL_ZERO */
-#define GL_KEEP                           0x1E00
-#define GL_REPLACE                        0x1E01
-#define GL_INCR                           0x1E02
-#define GL_DECR                           0x1E03
-/*      GL_INVERT */
-
-/* StringName */
-#define GL_VENDOR                         0x1F00
-#define GL_RENDERER                       0x1F01
-#define GL_VERSION                        0x1F02
-#define GL_EXTENSIONS                     0x1F03
-
-/* TexCoordPointerType */
-/*      GL_SHORT */
-/*      GL_FLOAT */
-/*      GL_FIXED */
-/*      GL_BYTE */
-
-/* TextureEnvMode */
-#define GL_MODULATE                       0x2100
-#define GL_DECAL                          0x2101
-/*      GL_BLEND */
-#define GL_ADD                            0x0104
-/*      GL_REPLACE */
-
-/* TextureEnvParameter */
-#define GL_TEXTURE_ENV_MODE               0x2200
-#define GL_TEXTURE_ENV_COLOR              0x2201
-
-/* TextureEnvTarget */
-#define GL_TEXTURE_ENV                    0x2300
-
-/* TextureMagFilter */
-#define GL_NEAREST                        0x2600
-#define GL_LINEAR                         0x2601
-
-/* TextureMinFilter */
-/*      GL_NEAREST */
-/*      GL_LINEAR */
-#define GL_NEAREST_MIPMAP_NEAREST         0x2700
-#define GL_LINEAR_MIPMAP_NEAREST          0x2701
-#define GL_NEAREST_MIPMAP_LINEAR          0x2702
-#define GL_LINEAR_MIPMAP_LINEAR           0x2703
-
-/* TextureParameterName */
-#define GL_TEXTURE_MAG_FILTER             0x2800
-#define GL_TEXTURE_MIN_FILTER             0x2801
-#define GL_TEXTURE_WRAP_S                 0x2802
-#define GL_TEXTURE_WRAP_T                 0x2803
-#define GL_GENERATE_MIPMAP                0x8191
-
-/* TextureTarget */
-/*      GL_TEXTURE_2D */
-
-/* TextureUnit */
-#define GL_TEXTURE0                       0x84C0
-#define GL_TEXTURE1                       0x84C1
-#define GL_TEXTURE2                       0x84C2
-#define GL_TEXTURE3                       0x84C3
-#define GL_TEXTURE4                       0x84C4
-#define GL_TEXTURE5                       0x84C5
-#define GL_TEXTURE6                       0x84C6
-#define GL_TEXTURE7                       0x84C7
-#define GL_TEXTURE8                       0x84C8
-#define GL_TEXTURE9                       0x84C9
-#define GL_TEXTURE10                      0x84CA
-#define GL_TEXTURE11                      0x84CB
-#define GL_TEXTURE12                      0x84CC
-#define GL_TEXTURE13                      0x84CD
-#define GL_TEXTURE14                      0x84CE
-#define GL_TEXTURE15                      0x84CF
-#define GL_TEXTURE16                      0x84D0
-#define GL_TEXTURE17                      0x84D1
-#define GL_TEXTURE18                      0x84D2
-#define GL_TEXTURE19                      0x84D3
-#define GL_TEXTURE20                      0x84D4
-#define GL_TEXTURE21                      0x84D5
-#define GL_TEXTURE22                      0x84D6
-#define GL_TEXTURE23                      0x84D7
-#define GL_TEXTURE24                      0x84D8
-#define GL_TEXTURE25                      0x84D9
-#define GL_TEXTURE26                      0x84DA
-#define GL_TEXTURE27                      0x84DB
-#define GL_TEXTURE28                      0x84DC
-#define GL_TEXTURE29                      0x84DD
-#define GL_TEXTURE30                      0x84DE
-#define GL_TEXTURE31                      0x84DF
-#define GL_ACTIVE_TEXTURE                 0x84E0
-#define GL_CLIENT_ACTIVE_TEXTURE          0x84E1
-
-/* TextureWrapMode */
-#define GL_REPEAT                         0x2901
-#define GL_CLAMP_TO_EDGE                  0x812F
-
-/* VertexPointerType */
-/*      GL_SHORT */
-/*      GL_FLOAT */
-/*      GL_FIXED */
-/*      GL_BYTE */
-
-/* LightName */
-#define GL_LIGHT0                         0x4000
-#define GL_LIGHT1                         0x4001
-#define GL_LIGHT2                         0x4002
-#define GL_LIGHT3                         0x4003
-#define GL_LIGHT4                         0x4004
-#define GL_LIGHT5                         0x4005
-#define GL_LIGHT6                         0x4006
-#define GL_LIGHT7                         0x4007
-
-/* Buffer Objects */
-#define GL_ARRAY_BUFFER                   0x8892
-#define GL_ELEMENT_ARRAY_BUFFER           0x8893
-
-#define GL_ARRAY_BUFFER_BINDING               0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING       0x8895
-#define GL_VERTEX_ARRAY_BUFFER_BINDING        0x8896
-#define GL_NORMAL_ARRAY_BUFFER_BINDING        0x8897
-#define GL_COLOR_ARRAY_BUFFER_BINDING         0x8898
-#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
-
-#define GL_STATIC_DRAW                    0x88E4
-#define GL_DYNAMIC_DRAW                   0x88E8
-
-#define GL_BUFFER_SIZE                    0x8764
-#define GL_BUFFER_USAGE                   0x8765
-
-/* Texture combine + dot3 */
-#define GL_SUBTRACT                       0x84E7
-#define GL_COMBINE                        0x8570
-#define GL_COMBINE_RGB                    0x8571
-#define GL_COMBINE_ALPHA                  0x8572
-#define GL_RGB_SCALE                      0x8573
-#define GL_ADD_SIGNED                     0x8574
-#define GL_INTERPOLATE                    0x8575
-#define GL_CONSTANT                       0x8576
-#define GL_PRIMARY_COLOR                  0x8577
-#define GL_PREVIOUS                       0x8578
-#define GL_OPERAND0_RGB                   0x8590
-#define GL_OPERAND1_RGB                   0x8591
-#define GL_OPERAND2_RGB                   0x8592
-#define GL_OPERAND0_ALPHA                 0x8598
-#define GL_OPERAND1_ALPHA                 0x8599
-#define GL_OPERAND2_ALPHA                 0x859A
-
-#define GL_ALPHA_SCALE                    0x0D1C
-
-#define GL_SRC0_RGB                       0x8580
-#define GL_SRC1_RGB                       0x8581
-#define GL_SRC2_RGB                       0x8582
-#define GL_SRC0_ALPHA                     0x8588
-#define GL_SRC1_ALPHA                     0x8589
-#define GL_SRC2_ALPHA                     0x858A
-
-#define GL_DOT3_RGB                       0x86AE
-#define GL_DOT3_RGBA                      0x86AF
-
-/*------------------------------------------------------------------------*
- * required OES extension tokens
- *------------------------------------------------------------------------*/
-
-/* OES_read_format */
-#ifndef GL_OES_read_format
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES                   0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES                 0x8B9B
-#endif
-
-/* GL_OES_compressed_paletted_texture */
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_PALETTE4_RGB8_OES                                    0x8B90
-#define GL_PALETTE4_RGBA8_OES                                   0x8B91
-#define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
-#define GL_PALETTE4_RGBA4_OES                                   0x8B93
-#define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
-#define GL_PALETTE8_RGB8_OES                                    0x8B95
-#define GL_PALETTE8_RGBA8_OES                                   0x8B96
-#define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
-#define GL_PALETTE8_RGBA4_OES                                   0x8B98
-#define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
-#endif
-
-/* OES_point_size_array */
-#ifndef GL_OES_point_size_array
-#define GL_POINT_SIZE_ARRAY_OES                                 0x8B9C
-#define GL_POINT_SIZE_ARRAY_TYPE_OES                            0x898A
-#define GL_POINT_SIZE_ARRAY_STRIDE_OES                          0x898B
-#define GL_POINT_SIZE_ARRAY_POINTER_OES                         0x898C
-#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                  0x8B9F
-#endif
-
-/* GL_OES_point_sprite */
-#ifndef GL_OES_point_sprite
-#define GL_POINT_SPRITE_OES                                     0x8861
-#define GL_COORD_REPLACE_OES                                    0x8862
-#endif
-
-/*************************************************************/
-
-/* Available only in Common profile */
-GL_API void GL_APIENTRY glAlphaFunc (GLenum func, GLclampf ref);
-GL_API void GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_API void GL_APIENTRY glClearDepthf (GLclampf depth);
-GL_API void GL_APIENTRY glClipPlanef (GLenum plane, const GLfloat *equation);
-GL_API void GL_APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-GL_API void GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
-GL_API void GL_APIENTRY glFogf (GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glFogfv (GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-GL_API void GL_APIENTRY glGetClipPlanef (GLenum pname, GLfloat eqn[4]);
-GL_API void GL_APIENTRY glGetFloatv (GLenum pname, GLfloat *params);
-GL_API void GL_APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params);
-GL_API void GL_APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params);
-GL_API void GL_APIENTRY glGetTexEnvfv (GLenum env, GLenum pname, GLfloat *params);
-GL_API void GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params);
-GL_API void GL_APIENTRY glLightModelf (GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glLightModelfv (GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glLineWidth (GLfloat width);
-GL_API void GL_APIENTRY glLoadMatrixf (const GLfloat *m);
-GL_API void GL_APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glMultMatrixf (const GLfloat *m);
-GL_API void GL_APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
-GL_API void GL_APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz);
-GL_API void GL_APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-GL_API void GL_APIENTRY glPointParameterf (GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glPointSize (GLfloat size);
-GL_API void GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
-GL_API void GL_APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-GL_API void GL_APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z);
-GL_API void GL_APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z);
-
-/* Available in both Common and Common-Lite profiles */
-GL_API void GL_APIENTRY glActiveTexture (GLenum texture);
-GL_API void GL_APIENTRY glAlphaFuncx (GLenum func, GLclampx ref);
-GL_API void GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
-GL_API void GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
-GL_API void GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
-GL_API void GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-GL_API void GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-GL_API void GL_APIENTRY glClear (GLbitfield mask);
-GL_API void GL_APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
-GL_API void GL_APIENTRY glClearDepthx (GLclampx depth);
-GL_API void GL_APIENTRY glClearStencil (GLint s);
-GL_API void GL_APIENTRY glClientActiveTexture (GLenum texture);
-GL_API void GL_APIENTRY glClipPlanex (GLenum plane, const GLfixed *equation);
-GL_API void GL_APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-GL_API void GL_APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
-GL_API void GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-GL_API void GL_APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-GL_API void GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
-GL_API void GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
-GL_API void GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-GL_API void GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GL_API void GL_APIENTRY glCullFace (GLenum mode);
-GL_API void GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers);
-GL_API void GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures);
-GL_API void GL_APIENTRY glDepthFunc (GLenum func);
-GL_API void GL_APIENTRY glDepthMask (GLboolean flag);
-GL_API void GL_APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar);
-GL_API void GL_APIENTRY glDisable (GLenum cap);
-GL_API void GL_APIENTRY glDisableClientState (GLenum array);
-GL_API void GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
-GL_API void GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-GL_API void GL_APIENTRY glEnable (GLenum cap);
-GL_API void GL_APIENTRY glEnableClientState (GLenum array);
-GL_API void GL_APIENTRY glFinish (void);
-GL_API void GL_APIENTRY glFlush (void);
-GL_API void GL_APIENTRY glFogx (GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glFogxv (GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glFrontFace (GLenum mode);
-GL_API void GL_APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-GL_API void GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean *params);
-GL_API void GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params);
-GL_API void GL_APIENTRY glGetClipPlanex (GLenum pname, GLfixed eqn[4]);
-GL_API void GL_APIENTRY glGenBuffers (GLsizei n, GLuint *buffers);
-GL_API void GL_APIENTRY glGenTextures (GLsizei n, GLuint *textures);
-GL_API GLenum GL_APIENTRY glGetError (void);
-GL_API void GL_APIENTRY glGetFixedv (GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetIntegerv (GLenum pname, GLint *params);
-GL_API void GL_APIENTRY glGetLightxv (GLenum light, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetMaterialxv (GLenum face, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetPointerv (GLenum pname, GLvoid **params);
-GL_API const GLubyte * GL_APIENTRY glGetString (GLenum name);
-GL_API void GL_APIENTRY glGetTexEnviv (GLenum env, GLenum pname, GLint *params);
-GL_API void GL_APIENTRY glGetTexEnvxv (GLenum env, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params);
-GL_API void GL_APIENTRY glGetTexParameterxv (GLenum target, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glHint (GLenum target, GLenum mode);
-GL_API GLboolean GL_APIENTRY glIsBuffer (GLuint buffer);
-GL_API GLboolean GL_APIENTRY glIsEnabled (GLenum cap);
-GL_API GLboolean GL_APIENTRY glIsTexture (GLuint texture);
-GL_API void GL_APIENTRY glLightModelx (GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glLightModelxv (GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glLineWidthx (GLfixed width);
-GL_API void GL_APIENTRY glLoadIdentity (void);
-GL_API void GL_APIENTRY glLoadMatrixx (const GLfixed *m);
-GL_API void GL_APIENTRY glLogicOp (GLenum opcode);
-GL_API void GL_APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glMatrixMode (GLenum mode);
-GL_API void GL_APIENTRY glMultMatrixx (const GLfixed *m);
-GL_API void GL_APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
-GL_API void GL_APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz);
-GL_API void GL_APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer);
-GL_API void GL_APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-GL_API void GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
-GL_API void GL_APIENTRY glPointParameterx (GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glPointParameterxv (GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glPointSizex (GLfixed size);
-GL_API void GL_APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units);
-GL_API void GL_APIENTRY glPopMatrix (void);
-GL_API void GL_APIENTRY glPushMatrix (void);
-GL_API void GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-GL_API void GL_APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
-GL_API void GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
-GL_API void GL_APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert);
-GL_API void GL_APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z);
-GL_API void GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
-GL_API void GL_APIENTRY glShadeModel (GLenum mode);
-GL_API void GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
-GL_API void GL_APIENTRY glStencilMask (GLuint mask);
-GL_API void GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
-GL_API void GL_APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-GL_API void GL_APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param);
-GL_API void GL_APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params);
-GL_API void GL_APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-GL_API void GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
-GL_API void GL_APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params);
-GL_API void GL_APIENTRY glTexParameterxv (GLenum target, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-GL_API void GL_APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z);
-GL_API void GL_APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-GL_API void GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
-
-/*------------------------------------------------------------------------*
- * Required OES extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_OES_read_format */
-#ifndef GL_OES_read_format
-#define GL_OES_read_format 1
-#endif
-
-/* GL_OES_compressed_paletted_texture */
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_OES_compressed_paletted_texture 1
-#endif
-
-/* GL_OES_point_size_array */
-#ifndef GL_OES_point_size_array
-#define GL_OES_point_size_array 1
-GL_API void GL_APIENTRY glPointSizePointerOES (GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-/* GL_OES_point_sprite */
-#ifndef GL_OES_point_sprite
-#define GL_OES_point_sprite 1
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gl_h_ */
-
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLES/glext.h b/tools/emulator/opengl/host/libs/Translator/include/GLES/glext.h
deleted file mode 100644
index 130e4b0..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLES/glext.h
+++ /dev/null
@@ -1,1073 +0,0 @@
-#ifndef __glext_h_
-#define __glext_h_
-
-/* $Revision: 13240 $ on $Date:: 2010-12-17 15:16:00 -0800 #$ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-#ifndef GL_APIENTRYP
-#   define GL_APIENTRYP GL_APIENTRY*
-#endif
-
-/*------------------------------------------------------------------------*
- * OES extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_OES_blend_equation_separate */
-#ifndef GL_OES_blend_equation_separate
-/* BLEND_EQUATION_RGB_OES same as BLEND_EQUATION_OES */
-#define GL_BLEND_EQUATION_RGB_OES                               0x8009
-#define GL_BLEND_EQUATION_ALPHA_OES                             0x883D
-#endif
-
-/* GL_OES_blend_func_separate */
-#ifndef GL_OES_blend_func_separate
-#define GL_BLEND_DST_RGB_OES                                    0x80C8
-#define GL_BLEND_SRC_RGB_OES                                    0x80C9
-#define GL_BLEND_DST_ALPHA_OES                                  0x80CA
-#define GL_BLEND_SRC_ALPHA_OES                                  0x80CB
-#endif
-
-/* GL_OES_blend_subtract */
-#ifndef GL_OES_blend_subtract
-#define GL_BLEND_EQUATION_OES                                   0x8009
-#define GL_FUNC_ADD_OES                                         0x8006
-#define GL_FUNC_SUBTRACT_OES                                    0x800A
-#define GL_FUNC_REVERSE_SUBTRACT_OES                            0x800B
-#endif
-
-/* GL_OES_compressed_ETC1_RGB8_texture */
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_ETC1_RGB8_OES                                        0x8D64
-#endif
-
-/* GL_OES_depth24 */
-#ifndef GL_OES_depth24
-#define GL_DEPTH_COMPONENT24_OES                                0x81A6
-#endif
-
-/* GL_OES_depth32 */
-#ifndef GL_OES_depth32
-#define GL_DEPTH_COMPONENT32_OES                                0x81A7
-#endif
-
-/* GL_OES_draw_texture */
-#ifndef GL_OES_draw_texture
-#define GL_TEXTURE_CROP_RECT_OES                                0x8B9D
-#endif
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-typedef void* GLeglImageOES;
-#endif
-
-/* GL_OES_EGL_image_external */
-#ifndef GL_OES_EGL_image_external
-/* GLeglImageOES defined in GL_OES_EGL_image already. */
-#define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
-#define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
-#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
-#endif
-
-/* GL_OES_element_index_uint */
-#ifndef GL_OES_element_index_uint
-#define GL_UNSIGNED_INT                                         0x1405
-#endif
-
-/* GL_OES_fixed_point */
-#ifndef GL_OES_fixed_point
-#define GL_FIXED_OES                                            0x140C
-#endif
-
-/* GL_OES_framebuffer_object */
-#ifndef GL_OES_framebuffer_object
-#define GL_NONE_OES                                             0
-#define GL_FRAMEBUFFER_OES                                      0x8D40
-#define GL_RENDERBUFFER_OES                                     0x8D41
-#define GL_RGBA4_OES                                            0x8056
-#define GL_RGB5_A1_OES                                          0x8057
-#define GL_RGB565_OES                                           0x8D62
-#define GL_DEPTH_COMPONENT16_OES                                0x81A5
-#define GL_RENDERBUFFER_WIDTH_OES                               0x8D42
-#define GL_RENDERBUFFER_HEIGHT_OES                              0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES                     0x8D44
-#define GL_RENDERBUFFER_RED_SIZE_OES                            0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE_OES                          0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE_OES                           0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE_OES                          0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE_OES                          0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE_OES                        0x8D55
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES               0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES               0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES             0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES     0x8CD3
-#define GL_COLOR_ATTACHMENT0_OES                                0x8CE0
-#define GL_DEPTH_ATTACHMENT_OES                                 0x8D00
-#define GL_STENCIL_ATTACHMENT_OES                               0x8D20
-#define GL_FRAMEBUFFER_COMPLETE_OES                             0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES                0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES        0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES                0x8CD9
-#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES                   0x8CDA
-#define GL_FRAMEBUFFER_UNSUPPORTED_OES                          0x8CDD
-#define GL_FRAMEBUFFER_BINDING_OES                              0x8CA6
-#define GL_RENDERBUFFER_BINDING_OES                             0x8CA7
-#define GL_MAX_RENDERBUFFER_SIZE_OES                            0x84E8
-#define GL_INVALID_FRAMEBUFFER_OPERATION_OES                    0x0506
-#endif
-
-/* GL_OES_mapbuffer */
-#ifndef GL_OES_mapbuffer
-#define GL_WRITE_ONLY_OES                                       0x88B9
-#define GL_BUFFER_ACCESS_OES                                    0x88BB
-#define GL_BUFFER_MAPPED_OES                                    0x88BC
-#define GL_BUFFER_MAP_POINTER_OES                               0x88BD
-#endif
-
-/* GL_OES_matrix_get */
-#ifndef GL_OES_matrix_get
-#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES               0x898D
-#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES              0x898E
-#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES                 0x898F
-#endif
-
-/* GL_OES_matrix_palette */
-#ifndef GL_OES_matrix_palette
-#define GL_MAX_VERTEX_UNITS_OES                                 0x86A4
-#define GL_MAX_PALETTE_MATRICES_OES                             0x8842
-#define GL_MATRIX_PALETTE_OES                                   0x8840
-#define GL_MATRIX_INDEX_ARRAY_OES                               0x8844
-#define GL_WEIGHT_ARRAY_OES                                     0x86AD
-#define GL_CURRENT_PALETTE_MATRIX_OES                           0x8843
-#define GL_MATRIX_INDEX_ARRAY_SIZE_OES                          0x8846
-#define GL_MATRIX_INDEX_ARRAY_TYPE_OES                          0x8847
-#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES                        0x8848
-#define GL_MATRIX_INDEX_ARRAY_POINTER_OES                       0x8849
-#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES                0x8B9E
-#define GL_WEIGHT_ARRAY_SIZE_OES                                0x86AB
-#define GL_WEIGHT_ARRAY_TYPE_OES                                0x86A9
-#define GL_WEIGHT_ARRAY_STRIDE_OES                              0x86AA
-#define GL_WEIGHT_ARRAY_POINTER_OES                             0x86AC
-#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES                      0x889E
-#endif
-
-/* GL_OES_packed_depth_stencil */
-#ifndef GL_OES_packed_depth_stencil
-#define GL_DEPTH_STENCIL_OES                                    0x84F9
-#define GL_UNSIGNED_INT_24_8_OES                                0x84FA
-#define GL_DEPTH24_STENCIL8_OES                                 0x88F0
-#endif
-
-/* GL_OES_rgb8_rgba8 */
-#ifndef GL_OES_rgb8_rgba8
-#define GL_RGB8_OES                                             0x8051
-#define GL_RGBA8_OES                                            0x8058
-#endif
-
-/* GL_OES_stencil1 */
-#ifndef GL_OES_stencil1
-#define GL_STENCIL_INDEX1_OES                                   0x8D46
-#endif
-
-/* GL_OES_stencil4 */
-#ifndef GL_OES_stencil4
-#define GL_STENCIL_INDEX4_OES                                   0x8D47
-#endif
-
-/* GL_OES_stencil8 */
-#ifndef GL_OES_stencil8
-#define GL_STENCIL_INDEX8_OES                                   0x8D48
-#endif
-
-/* GL_OES_stencil_wrap */
-#ifndef GL_OES_stencil_wrap
-#define GL_INCR_WRAP_OES                                        0x8507
-#define GL_DECR_WRAP_OES                                        0x8508
-#endif
-
-/* GL_OES_texture_cube_map */
-#ifndef GL_OES_texture_cube_map
-#define GL_NORMAL_MAP_OES                                       0x8511
-#define GL_REFLECTION_MAP_OES                                   0x8512
-#define GL_TEXTURE_CUBE_MAP_OES                                 0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP_OES                         0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES                      0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES                      0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES                      0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES                      0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES                      0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES                      0x851A
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES                        0x851C
-#define GL_TEXTURE_GEN_MODE_OES                                 0x2500
-#define GL_TEXTURE_GEN_STR_OES                                  0x8D60
-#endif
-
-/* GL_OES_texture_mirrored_repeat */
-#ifndef GL_OES_texture_mirrored_repeat
-#define GL_MIRRORED_REPEAT_OES                                  0x8370
-#endif
-
-/* GL_OES_vertex_array_object */
-#ifndef GL_OES_vertex_array_object
-#define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
-#endif
-
-/*------------------------------------------------------------------------*
- * AMD extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_AMD_compressed_3DC_texture */
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_3DC_X_AMD                                            0x87F9
-#define GL_3DC_XY_AMD                                           0x87FA
-#endif
-
-/* GL_AMD_compressed_ATC_texture */
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_ATC_RGB_AMD                                          0x8C92
-#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
-#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
-#endif
-
-/*------------------------------------------------------------------------*
- * APPLE extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_APPLE_texture_2D_limited_npot */
-/* No new tokens introduced by this extension. */
-
-/* GL_APPLE_framebuffer_multisample */
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
-#define GL_MAX_SAMPLES_APPLE                                    0x8D57
-#define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
-#define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
-#endif
-
-/* GL_APPLE_texture_format_BGRA8888 */
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_BGRA_EXT                                             0x80E1
-#endif
-
-/* GL_APPLE_texture_max_level */
-#ifndef GL_APPLE_texture_max_level
-#define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
-#endif
-
-/*------------------------------------------------------------------------*
- * ARM extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_ARM_rgba8 */
-/* No new tokens introduced by this extension. */
-
-/*------------------------------------------------------------------------*
- * EXT extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_EXT_blend_minmax */
-#ifndef GL_EXT_blend_minmax
-#define GL_MIN_EXT                                              0x8007
-#define GL_MAX_EXT                                              0x8008
-#endif
-
-/* GL_EXT_discard_framebuffer */
-#ifndef GL_EXT_discard_framebuffer
-#define GL_COLOR_EXT                                            0x1800
-#define GL_DEPTH_EXT                                            0x1801
-#define GL_STENCIL_EXT                                          0x1802
-#endif
-
-/* GL_EXT_multi_draw_arrays */
-/* No new tokens introduced by this extension. */
-
-/* GL_EXT_read_format_bgra */
-#ifndef GL_EXT_read_format_bgra
-#define GL_BGRA_EXT                                             0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
-#endif
-
-/* GL_EXT_texture_filter_anisotropic */
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
-#endif
-
-/* GL_EXT_texture_format_BGRA8888 */
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_BGRA_EXT                                             0x80E1
-#endif
-
-/* GL_EXT_texture_lod_bias */
-#ifndef GL_EXT_texture_lod_bias
-#define GL_MAX_TEXTURE_LOD_BIAS_EXT                             0x84FD
-#define GL_TEXTURE_FILTER_CONTROL_EXT                           0x8500
-#define GL_TEXTURE_LOD_BIAS_EXT                                 0x8501
-#endif
-
-/*------------------------------------------------------------------------*
- * IMG extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_IMG_read_format */
-#ifndef GL_IMG_read_format
-#define GL_BGRA_IMG                                             0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
-#endif
-
-/* GL_IMG_texture_compression_pvrtc */
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
-#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
-#endif
-
-/* GL_IMG_texture_env_enhanced_fixed_function */
-#ifndef GL_IMG_texture_env_enhanced_fixed_function
-#define GL_MODULATE_COLOR_IMG                                   0x8C04
-#define GL_RECIP_ADD_SIGNED_ALPHA_IMG                           0x8C05
-#define GL_TEXTURE_ALPHA_MODULATE_IMG                           0x8C06
-#define GL_FACTOR_ALPHA_MODULATE_IMG                            0x8C07
-#define GL_FRAGMENT_ALPHA_MODULATE_IMG                          0x8C08
-#define GL_ADD_BLEND_IMG                                        0x8C09
-#define GL_DOT3_RGBA_IMG                                        0x86AF
-#endif
-
-/* GL_IMG_user_clip_plane */
-#ifndef GL_IMG_user_clip_plane
-#define GL_CLIP_PLANE0_IMG                                      0x3000
-#define GL_CLIP_PLANE1_IMG                                      0x3001
-#define GL_CLIP_PLANE2_IMG                                      0x3002
-#define GL_CLIP_PLANE3_IMG                                      0x3003
-#define GL_CLIP_PLANE4_IMG                                      0x3004
-#define GL_CLIP_PLANE5_IMG                                      0x3005
-#define GL_MAX_CLIP_PLANES_IMG                                  0x0D32
-#endif
-
-/* GL_IMG_multisampled_render_to_texture */
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
-#define GL_MAX_SAMPLES_IMG                                      0x9135
-#define GL_TEXTURE_SAMPLES_IMG                                  0x9136
-#endif
-
-/*------------------------------------------------------------------------*
- * NV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_NV_fence */
-#ifndef GL_NV_fence
-#define GL_ALL_COMPLETED_NV                                     0x84F2
-#define GL_FENCE_STATUS_NV                                      0x84F3
-#define GL_FENCE_CONDITION_NV                                   0x84F4
-#endif
-
-/*------------------------------------------------------------------------*
- * QCOM extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_QCOM_driver_control */
-/* No new tokens introduced by this extension. */
-
-/* GL_QCOM_extended_get */
-#ifndef GL_QCOM_extended_get
-#define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
-#define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
-#define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
-#define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
-#define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
-#define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
-#define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
-#define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
-#define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
-#define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
-#define GL_STATE_RESTORE                                        0x8BDC
-#endif
-
-/* GL_QCOM_extended_get2 */
-/* No new tokens introduced by this extension. */
-
-/* GL_QCOM_perfmon_global_mode */
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
-#endif
-
-/* GL_QCOM_writeonly_rendering */
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_WRITEONLY_RENDERING_QCOM                             0x8823
-#endif
-
-/* GL_QCOM_tiled_rendering */
-#ifndef GL_QCOM_tiled_rendering
-#define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
-#define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
-#define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
-#define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
-#define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
-#define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
-#define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
-#define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
-#define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
-#define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
-#define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
-#define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
-#define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
-#define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
-#define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
-#define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
-#define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
-#define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
-#define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
-#define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
-#define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
-#define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
-#define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
-#define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
-#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
-#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
-#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
-#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
-#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
-#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
-#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
-#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
-#endif
-
-/*------------------------------------------------------------------------*
- * End of extension tokens, start of corresponding extension functions
- *------------------------------------------------------------------------*/
-
-/*------------------------------------------------------------------------*
- * OES extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_OES_blend_equation_separate */
-#ifndef GL_OES_blend_equation_separate
-#define GL_OES_blend_equation_separate 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glBlendEquationSeparateOES (GLenum modeRGB, GLenum modeAlpha);
-#endif
-typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONSEPARATEOESPROC) (GLenum modeRGB, GLenum modeAlpha);
-#endif
-
-/* GL_OES_blend_func_separate */
-#ifndef GL_OES_blend_func_separate
-#define GL_OES_blend_func_separate 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glBlendFuncSeparateOES (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-#endif
-typedef void (GL_APIENTRYP PFNGLBLENDFUNCSEPARATEOESPROC) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-#endif
-
-/* GL_OES_blend_subtract */
-#ifndef GL_OES_blend_subtract
-#define GL_OES_blend_subtract 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glBlendEquationOES (GLenum mode);
-#endif
-typedef void (GL_APIENTRYP PFNGLBLENDEQUATIONOESPROC) (GLenum mode);
-#endif
-
-/* GL_OES_byte_coordinates */
-#ifndef GL_OES_byte_coordinates
-#define GL_OES_byte_coordinates 1
-#endif
-
-/* GL_OES_compressed_ETC1_RGB8_texture */
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_OES_compressed_ETC1_RGB8_texture 1
-#endif
-
-/* GL_OES_depth24 */
-#ifndef GL_OES_depth24
-#define GL_OES_depth24 1
-#endif
-
-/* GL_OES_depth32 */
-#ifndef GL_OES_depth32
-#define GL_OES_depth32 1
-#endif
-
-/* GL_OES_draw_texture */
-#ifndef GL_OES_draw_texture
-#define GL_OES_draw_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glDrawTexsOES (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
-GL_API void GL_APIENTRY glDrawTexiOES (GLint x, GLint y, GLint z, GLint width, GLint height);
-GL_API void GL_APIENTRY glDrawTexxOES (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
-GL_API void GL_APIENTRY glDrawTexsvOES (const GLshort *coords);
-GL_API void GL_APIENTRY glDrawTexivOES (const GLint *coords);
-GL_API void GL_APIENTRY glDrawTexxvOES (const GLfixed *coords);
-GL_API void GL_APIENTRY glDrawTexfOES (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
-GL_API void GL_APIENTRY glDrawTexfvOES (const GLfloat *coords);
-#endif
-typedef void (GL_APIENTRYP PFNGLDRAWTEXSOESPROC) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXIOESPROC) (GLint x, GLint y, GLint z, GLint width, GLint height);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXXOESPROC) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXSVOESPROC) (const GLshort *coords);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXIVOESPROC) (const GLint *coords);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXXVOESPROC) (const GLfixed *coords);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXFOESPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
-typedef void (GL_APIENTRYP PFNGLDRAWTEXFVOESPROC) (const GLfloat *coords);
-#endif
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-#define GL_OES_EGL_image 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
-GL_API void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
-#endif
-typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
-#endif
-
-/* GL_OES_EGL_image_external */
-#ifndef GL_OES_EGL_image_external
-#define GL_OES_EGL_image_external 1
-/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
-#endif
-
-/* GL_OES_element_index_uint */
-#ifndef GL_OES_element_index_uint
-#define GL_OES_element_index_uint 1
-#endif
-
-/* GL_OES_extended_matrix_palette */
-#ifndef GL_OES_extended_matrix_palette
-#define GL_OES_extended_matrix_palette 1
-#endif
-
-/* GL_OES_fbo_render_mipmap */
-#ifndef GL_OES_fbo_render_mipmap
-#define GL_OES_fbo_render_mipmap 1
-#endif
-
-/* GL_OES_fixed_point */
-#ifndef GL_OES_fixed_point
-#define GL_OES_fixed_point 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glAlphaFuncxOES (GLenum func, GLclampx ref);
-GL_API void GL_APIENTRY glClearColorxOES (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
-GL_API void GL_APIENTRY glClearDepthxOES (GLclampx depth);
-GL_API void GL_APIENTRY glClipPlanexOES (GLenum plane, const GLfixed *equation);
-GL_API void GL_APIENTRY glColor4xOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
-GL_API void GL_APIENTRY glDepthRangexOES (GLclampx zNear, GLclampx zFar);
-GL_API void GL_APIENTRY glFogxOES (GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glFogxvOES (GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glFrustumxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-GL_API void GL_APIENTRY glGetClipPlanexOES (GLenum pname, GLfixed eqn[4]);
-GL_API void GL_APIENTRY glGetFixedvOES (GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetLightxvOES (GLenum light, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetMaterialxvOES (GLenum face, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetTexEnvxvOES (GLenum env, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glGetTexParameterxvOES (GLenum target, GLenum pname, GLfixed *params);
-GL_API void GL_APIENTRY glLightModelxOES (GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glLightModelxvOES (GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glLightxOES (GLenum light, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glLightxvOES (GLenum light, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glLineWidthxOES (GLfixed width);
-GL_API void GL_APIENTRY glLoadMatrixxOES (const GLfixed *m);
-GL_API void GL_APIENTRY glMaterialxOES (GLenum face, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glMaterialxvOES (GLenum face, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glMultMatrixxOES (const GLfixed *m);
-GL_API void GL_APIENTRY glMultiTexCoord4xOES (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
-GL_API void GL_APIENTRY glNormal3xOES (GLfixed nx, GLfixed ny, GLfixed nz);
-GL_API void GL_APIENTRY glOrthoxOES (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-GL_API void GL_APIENTRY glPointParameterxOES (GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glPointParameterxvOES (GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glPointSizexOES (GLfixed size);
-GL_API void GL_APIENTRY glPolygonOffsetxOES (GLfixed factor, GLfixed units);
-GL_API void GL_APIENTRY glRotatexOES (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
-GL_API void GL_APIENTRY glSampleCoveragexOES (GLclampx value, GLboolean invert);
-GL_API void GL_APIENTRY glScalexOES (GLfixed x, GLfixed y, GLfixed z);
-GL_API void GL_APIENTRY glTexEnvxOES (GLenum target, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glTexEnvxvOES (GLenum target, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glTexParameterxOES (GLenum target, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glTexParameterxvOES (GLenum target, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glTranslatexOES (GLfixed x, GLfixed y, GLfixed z);
-#endif
-typedef void (GL_APIENTRYP PFNGLALPHAFUNCXOESPROC) (GLenum func, GLclampx ref);
-typedef void (GL_APIENTRYP PFNGLCLEARCOLORXOESPROC) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
-typedef void (GL_APIENTRYP PFNGLCLEARDEPTHXOESPROC) (GLclampx depth);
-typedef void (GL_APIENTRYP PFNGLCLIPPLANEXOESPROC) (GLenum plane, const GLfixed *equation);
-typedef void (GL_APIENTRYP PFNGLCOLOR4XOESPROC) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
-typedef void (GL_APIENTRYP PFNGLDEPTHRANGEXOESPROC) (GLclampx zNear, GLclampx zFar);
-typedef void (GL_APIENTRYP PFNGLFOGXOESPROC) (GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLFOGXVOESPROC) (GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLFRUSTUMXOESPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEXOESPROC) (GLenum pname, GLfixed eqn[4]);
-typedef void (GL_APIENTRYP PFNGLGETFIXEDVOESPROC) (GLenum pname, GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLGETLIGHTXVOESPROC) (GLenum light, GLenum pname, GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLGETMATERIALXVOESPROC) (GLenum face, GLenum pname, GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLGETTEXENVXVOESPROC) (GLenum env, GLenum pname, GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLGETTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLLIGHTMODELXOESPROC) (GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLLIGHTMODELXVOESPROC) (GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLLIGHTXOESPROC) (GLenum light, GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLLIGHTXVOESPROC) (GLenum light, GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLLINEWIDTHXOESPROC) (GLfixed width);
-typedef void (GL_APIENTRYP PFNGLLOADMATRIXXOESPROC) (const GLfixed *m);
-typedef void (GL_APIENTRYP PFNGLMATERIALXOESPROC) (GLenum face, GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLMATERIALXVOESPROC) (GLenum face, GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLMULTMATRIXXOESPROC) (const GLfixed *m);
-typedef void (GL_APIENTRYP PFNGLMULTITEXCOORD4XOESPROC) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
-typedef void (GL_APIENTRYP PFNGLNORMAL3XOESPROC) (GLfixed nx, GLfixed ny, GLfixed nz);
-typedef void (GL_APIENTRYP PFNGLORTHOXOESPROC) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
-typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXOESPROC) (GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLPOINTPARAMETERXVOESPROC) (GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLPOINTSIZEXOESPROC) (GLfixed size);
-typedef void (GL_APIENTRYP PFNGLPOLYGONOFFSETXOESPROC) (GLfixed factor, GLfixed units);
-typedef void (GL_APIENTRYP PFNGLROTATEXOESPROC) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
-typedef void (GL_APIENTRYP PFNGLSAMPLECOVERAGEXOESPROC) (GLclampx value, GLboolean invert);
-typedef void (GL_APIENTRYP PFNGLSCALEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
-typedef void (GL_APIENTRYP PFNGLTEXENVXOESPROC) (GLenum target, GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLTEXENVXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXOESPROC) (GLenum target, GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLTEXPARAMETERXVOESPROC) (GLenum target, GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLTRANSLATEXOESPROC) (GLfixed x, GLfixed y, GLfixed z);
-#endif
-
-/* GL_OES_framebuffer_object */
-#ifndef GL_OES_framebuffer_object
-#define GL_OES_framebuffer_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API GLboolean GL_APIENTRY glIsRenderbufferOES (GLuint renderbuffer);
-GL_API void GL_APIENTRY glBindRenderbufferOES (GLenum target, GLuint renderbuffer);
-GL_API void GL_APIENTRY glDeleteRenderbuffersOES (GLsizei n, const GLuint* renderbuffers);
-GL_API void GL_APIENTRY glGenRenderbuffersOES (GLsizei n, GLuint* renderbuffers);
-GL_API void GL_APIENTRY glRenderbufferStorageOES (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-GL_API void GL_APIENTRY glGetRenderbufferParameterivOES (GLenum target, GLenum pname, GLint* params);
-GL_API GLboolean GL_APIENTRY glIsFramebufferOES (GLuint framebuffer);
-GL_API void GL_APIENTRY glBindFramebufferOES (GLenum target, GLuint framebuffer);
-GL_API void GL_APIENTRY glDeleteFramebuffersOES (GLsizei n, const GLuint* framebuffers);
-GL_API void GL_APIENTRY glGenFramebuffersOES (GLsizei n, GLuint* framebuffers);
-GL_API GLenum GL_APIENTRY glCheckFramebufferStatusOES (GLenum target);
-GL_API void GL_APIENTRY glFramebufferRenderbufferOES (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-GL_API void GL_APIENTRY glFramebufferTexture2DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GL_API void GL_APIENTRY glGetFramebufferAttachmentParameterivOES (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-GL_API void GL_APIENTRY glGenerateMipmapOES (GLenum target);
-#endif
-typedef GLboolean (GL_APIENTRYP PFNGLISRENDERBUFFEROESPROC) (GLuint renderbuffer);
-typedef void (GL_APIENTRYP PFNGLBINDRENDERBUFFEROESPROC) (GLenum target, GLuint renderbuffer);
-typedef void (GL_APIENTRYP PFNGLDELETERENDERBUFFERSOESPROC) (GLsizei n, const GLuint* renderbuffers);
-typedef void (GL_APIENTRYP PFNGLGENRENDERBUFFERSOESPROC) (GLsizei n, GLuint* renderbuffers);
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVOESPROC) (GLenum target, GLenum pname, GLint* params);
-typedef GLboolean (GL_APIENTRYP PFNGLISFRAMEBUFFEROESPROC) (GLuint framebuffer);
-typedef void (GL_APIENTRYP PFNGLBINDFRAMEBUFFEROESPROC) (GLenum target, GLuint framebuffer);
-typedef void (GL_APIENTRYP PFNGLDELETEFRAMEBUFFERSOESPROC) (GLsizei n, const GLuint* framebuffers);
-typedef void (GL_APIENTRYP PFNGLGENFRAMEBUFFERSOESPROC) (GLsizei n, GLuint* framebuffers);
-typedef GLenum (GL_APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSOESPROC) (GLenum target);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEROESPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DOESPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-typedef void (GL_APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-typedef void (GL_APIENTRYP PFNGLGENERATEMIPMAPOESPROC) (GLenum target);
-#endif
-
-/* GL_OES_mapbuffer */
-#ifndef GL_OES_mapbuffer
-#define GL_OES_mapbuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
-GL_API GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
-GL_API void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid ** params);
-#endif
-typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
-typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
-typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid ** params);
-#endif
-
-/* GL_OES_matrix_get */
-#ifndef GL_OES_matrix_get
-#define GL_OES_matrix_get 1
-#endif
-
-/* GL_OES_matrix_palette */
-#ifndef GL_OES_matrix_palette
-#define GL_OES_matrix_palette 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glCurrentPaletteMatrixOES (GLuint matrixpaletteindex);
-GL_API void GL_APIENTRY glLoadPaletteFromModelViewMatrixOES (void);
-GL_API void GL_APIENTRY glMatrixIndexPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-GL_API void GL_APIENTRY glWeightPointerOES (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-typedef void (GL_APIENTRYP PFNGLCURRENTPALETTEMATRIXOESPROC) (GLuint matrixpaletteindex);
-typedef void (GL_APIENTRYP PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC) (void);
-typedef void (GL_APIENTRYP PFNGLMATRIXINDEXPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-typedef void (GL_APIENTRYP PFNGLWEIGHTPOINTEROESPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-#endif
-
-/* GL_OES_packed_depth_stencil */
-#ifndef GL_OES_packed_depth_stencil
-#define GL_OES_packed_depth_stencil 1
-#endif
-
-/* GL_OES_query_matrix */
-#ifndef GL_OES_query_matrix
-#define GL_OES_query_matrix 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API GLbitfield GL_APIENTRY glQueryMatrixxOES (GLfixed mantissa[16], GLint exponent[16]);
-#endif
-typedef GLbitfield (GL_APIENTRYP PFNGLQUERYMATRIXXOESPROC) (GLfixed mantissa[16], GLint exponent[16]);
-#endif
-
-/* GL_OES_rgb8_rgba8 */
-#ifndef GL_OES_rgb8_rgba8
-#define GL_OES_rgb8_rgba8 1
-#endif
-
-/* GL_OES_single_precision */
-#ifndef GL_OES_single_precision
-#define GL_OES_single_precision 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glDepthRangefOES (GLclampf zNear, GLclampf zFar);
-GL_API void GL_APIENTRY glFrustumfOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-GL_API void GL_APIENTRY glOrthofOES (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-GL_API void GL_APIENTRY glClipPlanefOES (GLenum plane, const GLfloat *equation);
-GL_API void GL_APIENTRY glGetClipPlanefOES (GLenum pname, GLfloat eqn[4]);
-GL_API void GL_APIENTRY glClearDepthfOES (GLclampf depth);
-#endif
-typedef void (GL_APIENTRYP PFNGLDEPTHRANGEFOESPROC) (GLclampf zNear, GLclampf zFar);
-typedef void (GL_APIENTRYP PFNGLFRUSTUMFOESPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-typedef void (GL_APIENTRYP PFNGLORTHOFOESPROC) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
-typedef void (GL_APIENTRYP PFNGLCLIPPLANEFOESPROC) (GLenum plane, const GLfloat *equation);
-typedef void (GL_APIENTRYP PFNGLGETCLIPPLANEFOESPROC) (GLenum pname, GLfloat eqn[4]);
-typedef void (GL_APIENTRYP PFNGLCLEARDEPTHFOESPROC) (GLclampf depth);
-#endif
-
-/* GL_OES_stencil1 */
-#ifndef GL_OES_stencil1
-#define GL_OES_stencil1 1
-#endif
-
-/* GL_OES_stencil4 */
-#ifndef GL_OES_stencil4
-#define GL_OES_stencil4 1
-#endif
-
-/* GL_OES_stencil8 */
-#ifndef GL_OES_stencil8
-#define GL_OES_stencil8 1
-#endif
-
-/* GL_OES_stencil_wrap */
-#ifndef GL_OES_stencil_wrap
-#define GL_OES_stencil_wrap 1
-#endif
-
-/* GL_OES_texture_cube_map */
-#ifndef GL_OES_texture_cube_map
-#define GL_OES_texture_cube_map 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glTexGenfOES (GLenum coord, GLenum pname, GLfloat param);
-GL_API void GL_APIENTRY glTexGenfvOES (GLenum coord, GLenum pname, const GLfloat *params);
-GL_API void GL_APIENTRY glTexGeniOES (GLenum coord, GLenum pname, GLint param);
-GL_API void GL_APIENTRY glTexGenivOES (GLenum coord, GLenum pname, const GLint *params);
-GL_API void GL_APIENTRY glTexGenxOES (GLenum coord, GLenum pname, GLfixed param);
-GL_API void GL_APIENTRY glTexGenxvOES (GLenum coord, GLenum pname, const GLfixed *params);
-GL_API void GL_APIENTRY glGetTexGenfvOES (GLenum coord, GLenum pname, GLfloat *params);
-GL_API void GL_APIENTRY glGetTexGenivOES (GLenum coord, GLenum pname, GLint *params);
-GL_API void GL_APIENTRY glGetTexGenxvOES (GLenum coord, GLenum pname, GLfixed *params);
-#endif
-typedef void (GL_APIENTRYP PFNGLTEXGENFOESPROC) (GLenum coord, GLenum pname, GLfloat param);
-typedef void (GL_APIENTRYP PFNGLTEXGENFVOESPROC) (GLenum coord, GLenum pname, const GLfloat *params);
-typedef void (GL_APIENTRYP PFNGLTEXGENIOESPROC) (GLenum coord, GLenum pname, GLint param);
-typedef void (GL_APIENTRYP PFNGLTEXGENIVOESPROC) (GLenum coord, GLenum pname, const GLint *params);
-typedef void (GL_APIENTRYP PFNGLTEXGENXOESPROC) (GLenum coord, GLenum pname, GLfixed param);
-typedef void (GL_APIENTRYP PFNGLTEXGENXVOESPROC) (GLenum coord, GLenum pname, const GLfixed *params);
-typedef void (GL_APIENTRYP PFNGLGETTEXGENFVOESPROC) (GLenum coord, GLenum pname, GLfloat *params);
-typedef void (GL_APIENTRYP PFNGLGETTEXGENIVOESPROC) (GLenum coord, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLGETTEXGENXVOESPROC) (GLenum coord, GLenum pname, GLfixed *params);
-#endif
-
-/* GL_OES_texture_env_crossbar */
-#ifndef GL_OES_texture_env_crossbar
-#define GL_OES_texture_env_crossbar 1
-#endif
-
-/* GL_OES_texture_mirrored_repeat */
-#ifndef GL_OES_texture_mirrored_repeat
-#define GL_OES_texture_mirrored_repeat 1
-#endif
-
-/* GL_OES_vertex_array_object */
-#ifndef GL_OES_vertex_array_object
-#define GL_OES_vertex_array_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glBindVertexArrayOES (GLuint array);
-GL_API void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
-GL_API void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
-GL_API GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
-#endif
-typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
-typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
-typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
-typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
-#endif
-
-/*------------------------------------------------------------------------*
- * AMD extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_AMD_compressed_3DC_texture */
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_AMD_compressed_3DC_texture 1
-#endif
-
-/* GL_AMD_compressed_ATC_texture */
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_AMD_compressed_ATC_texture 1
-#endif
-
-/*------------------------------------------------------------------------*
- * APPLE extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_APPLE_texture_2D_limited_npot */
-#ifndef GL_APPLE_texture_2D_limited_npot
-#define GL_APPLE_texture_2D_limited_npot 1
-#endif
-
-/* GL_APPLE_framebuffer_multisample */
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_APPLE_framebuffer_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_API void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
-#endif
-
-/* GL_APPLE_texture_format_BGRA8888 */
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_APPLE_texture_format_BGRA8888 1
-#endif
-
-/* GL_APPLE_texture_max_level */
-#ifndef GL_APPLE_texture_max_level
-#define GL_APPLE_texture_max_level 1
-#endif
-
-/*------------------------------------------------------------------------*
- * ARM extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_ARM_rgba8 */
-#ifndef GL_ARM_rgba8
-#define GL_ARM_rgba8 1
-#endif
-
-/*------------------------------------------------------------------------*
- * EXT extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_EXT_blend_minmax */
-#ifndef GL_EXT_blend_minmax
-#define GL_EXT_blend_minmax 1
-#endif
-
-/* GL_EXT_discard_framebuffer */
-#ifndef GL_EXT_discard_framebuffer
-#define GL_EXT_discard_framebuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
-#endif
-typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
-#endif
-
-/* GL_EXT_multi_draw_arrays */
-#ifndef GL_EXT_multi_draw_arrays
-#define GL_EXT_multi_draw_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
-GL_API void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
-#endif
-
-/* GL_EXT_read_format_bgra */
-#ifndef GL_EXT_read_format_bgra
-#define GL_EXT_read_format_bgra 1
-#endif
-
-/* GL_EXT_texture_filter_anisotropic */
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_EXT_texture_filter_anisotropic 1
-#endif
-
-/* GL_EXT_texture_format_BGRA8888 */
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_EXT_texture_format_BGRA8888 1
-#endif
-
-/* GL_EXT_texture_lod_bias */
-#ifndef GL_EXT_texture_lod_bias
-#define GL_EXT_texture_lod_bias 1
-#endif
-
-/*------------------------------------------------------------------------*
- * IMG extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_IMG_read_format */
-#ifndef GL_IMG_read_format
-#define GL_IMG_read_format 1
-#endif
-
-/* GL_IMG_texture_compression_pvrtc */
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_IMG_texture_compression_pvrtc 1
-#endif
-
-/* GL_IMG_texture_env_enhanced_fixed_function */
-#ifndef GL_IMG_texture_env_enhanced_fixed_function
-#define GL_IMG_texture_env_enhanced_fixed_function 1
-#endif
-
-/* GL_IMG_user_clip_plane */
-#ifndef GL_IMG_user_clip_plane
-#define GL_IMG_user_clip_plane 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glClipPlanefIMG (GLenum, const GLfloat *);
-GL_API void GL_APIENTRY glClipPlanexIMG (GLenum, const GLfixed *);
-#endif
-typedef void (GL_APIENTRYP PFNGLCLIPPLANEFIMGPROC) (GLenum p, const GLfloat *eqn);
-typedef void (GL_APIENTRYP PFNGLCLIPPLANEXIMGPROC) (GLenum p, const GLfixed *eqn);
-#endif
-
-/* GL_IMG_multisampled_render_to_texture */
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_IMG_multisampled_render_to_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_API void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
-#endif
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
-#endif
-
-/*------------------------------------------------------------------------*
- * NV extension functions
- *------------------------------------------------------------------------*/
-
-/* NV_fence */
-#ifndef GL_NV_fence
-#define GL_NV_fence 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
-GL_API void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
-GL_API GLboolean GL_APIENTRY glIsFenceNV (GLuint);
-GL_API GLboolean GL_APIENTRY glTestFenceNV (GLuint);
-GL_API void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
-GL_API void GL_APIENTRY glFinishFenceNV (GLuint);
-GL_API void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
-#endif
-typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
-typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
-typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
-typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
-typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
-typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
-#endif
-
-/*------------------------------------------------------------------------*
- * QCOM extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_QCOM_driver_control */
-#ifndef GL_QCOM_driver_control
-#define GL_QCOM_driver_control 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
-GL_API void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
-GL_API void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
-GL_API void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
-#endif
-typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
-typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
-typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-#endif
-
-/* GL_QCOM_extended_get */
-#ifndef GL_QCOM_extended_get
-#define GL_QCOM_extended_get 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
-GL_API void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
-GL_API void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
-GL_API void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
-GL_API void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
-GL_API void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
-GL_API void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
-GL_API void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
-#endif
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
-typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
-typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
-#endif
-
-/* GL_QCOM_extended_get2 */
-#ifndef GL_QCOM_extended_get2
-#define GL_QCOM_extended_get2 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
-GL_API void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
-GL_API GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
-GL_API void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
-#endif
-typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
-typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
-typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
-typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
-#endif
-
-/* GL_QCOM_perfmon_global_mode */
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_QCOM_perfmon_global_mode 1
-#endif
-
-/* GL_QCOM_writeonly_rendering */
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_QCOM_writeonly_rendering 1
-#endif
-
-/* GL_QCOM_tiled_rendering */
-#ifndef GL_QCOM_tiled_rendering
-#define GL_QCOM_tiled_rendering 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_API void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-GL_API void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
-#endif
-typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __glext_h_ */
-
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLES/glplatform.h b/tools/emulator/opengl/host/libs/Translator/include/GLES/glplatform.h
deleted file mode 100644
index 2db6ee2..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLES/glplatform.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __glplatform_h_
-#define __glplatform_h_
-
-/* $Revision: 10601 $ on $Date:: 2010-03-04 22:15:27 -0800 #$ */
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-/* Platform-specific types and definitions for OpenGL ES 1.X  gl.h
- *
- * Adopters may modify khrplatform.h and this file to suit their platform.
- * You are encouraged to submit all modifications to the Khronos group so that
- * they can be included in future versions of this file.  Please submit changes
- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
- * by filing a bug against product "OpenGL-ES" component "Registry".
- */
-
-#include <KHR/khrplatform.h>
-
-#ifndef GL_API
-#define GL_API      KHRONOS_APICALL
-#endif
-
-#ifndef GL_APIENTRY
-#define GL_APIENTRY KHRONOS_APIENTRY
-#endif
-
-#endif /* __glplatform_h_ */
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2.h b/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2.h
deleted file mode 100644
index e1d3b87..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2.h
+++ /dev/null
@@ -1,621 +0,0 @@
-#ifndef __gl2_h_
-#define __gl2_h_
-
-/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
-
-#include <GLES2/gl2platform.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-/*-------------------------------------------------------------------------
- * Data type definitions
- *-----------------------------------------------------------------------*/
-
-typedef void             GLvoid;
-typedef char             GLchar;
-typedef unsigned int     GLenum;
-typedef unsigned char    GLboolean;
-typedef unsigned int     GLbitfield;
-typedef khronos_int8_t   GLbyte;
-typedef short            GLshort;
-typedef int              GLint;
-typedef int              GLsizei;
-typedef khronos_uint8_t  GLubyte;
-typedef unsigned short   GLushort;
-typedef unsigned int     GLuint;
-typedef khronos_float_t  GLfloat;
-typedef khronos_float_t  GLclampf;
-typedef khronos_int32_t  GLfixed;
-
-/* GL types for handling large vertex buffer objects */
-typedef khronos_intptr_t GLintptr;
-typedef khronos_ssize_t  GLsizeiptr;
-
-/* OpenGL ES core versions */
-#define GL_ES_VERSION_2_0                 1
-
-/* ClearBufferMask */
-#define GL_DEPTH_BUFFER_BIT               0x00000100
-#define GL_STENCIL_BUFFER_BIT             0x00000400
-#define GL_COLOR_BUFFER_BIT               0x00004000
-
-/* Boolean */
-#define GL_FALSE                          0
-#define GL_TRUE                           1
-
-/* BeginMode */
-#define GL_POINTS                         0x0000
-#define GL_LINES                          0x0001
-#define GL_LINE_LOOP                      0x0002
-#define GL_LINE_STRIP                     0x0003
-#define GL_TRIANGLES                      0x0004
-#define GL_TRIANGLE_STRIP                 0x0005
-#define GL_TRIANGLE_FAN                   0x0006
-
-/* AlphaFunction (not supported in ES20) */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* BlendingFactorDest */
-#define GL_ZERO                           0
-#define GL_ONE                            1
-#define GL_SRC_COLOR                      0x0300
-#define GL_ONE_MINUS_SRC_COLOR            0x0301
-#define GL_SRC_ALPHA                      0x0302
-#define GL_ONE_MINUS_SRC_ALPHA            0x0303
-#define GL_DST_ALPHA                      0x0304
-#define GL_ONE_MINUS_DST_ALPHA            0x0305
-
-/* BlendingFactorSrc */
-/*      GL_ZERO */
-/*      GL_ONE */
-#define GL_DST_COLOR                      0x0306
-#define GL_ONE_MINUS_DST_COLOR            0x0307
-#define GL_SRC_ALPHA_SATURATE             0x0308
-/*      GL_SRC_ALPHA */
-/*      GL_ONE_MINUS_SRC_ALPHA */
-/*      GL_DST_ALPHA */
-/*      GL_ONE_MINUS_DST_ALPHA */
-
-/* BlendEquationSeparate */
-#define GL_FUNC_ADD                       0x8006
-#define GL_BLEND_EQUATION                 0x8009
-#define GL_BLEND_EQUATION_RGB             0x8009    /* same as BLEND_EQUATION */
-#define GL_BLEND_EQUATION_ALPHA           0x883D
-
-/* BlendSubtract */
-#define GL_FUNC_SUBTRACT                  0x800A
-#define GL_FUNC_REVERSE_SUBTRACT          0x800B
-
-/* Separate Blend Functions */
-#define GL_BLEND_DST_RGB                  0x80C8
-#define GL_BLEND_SRC_RGB                  0x80C9
-#define GL_BLEND_DST_ALPHA                0x80CA
-#define GL_BLEND_SRC_ALPHA                0x80CB
-#define GL_CONSTANT_COLOR                 0x8001
-#define GL_ONE_MINUS_CONSTANT_COLOR       0x8002
-#define GL_CONSTANT_ALPHA                 0x8003
-#define GL_ONE_MINUS_CONSTANT_ALPHA       0x8004
-#define GL_BLEND_COLOR                    0x8005
-
-/* Buffer Objects */
-#define GL_ARRAY_BUFFER                   0x8892
-#define GL_ELEMENT_ARRAY_BUFFER           0x8893
-#define GL_ARRAY_BUFFER_BINDING           0x8894
-#define GL_ELEMENT_ARRAY_BUFFER_BINDING   0x8895
-
-#define GL_STREAM_DRAW                    0x88E0
-#define GL_STATIC_DRAW                    0x88E4
-#define GL_DYNAMIC_DRAW                   0x88E8
-
-#define GL_BUFFER_SIZE                    0x8764
-#define GL_BUFFER_USAGE                   0x8765
-
-#define GL_CURRENT_VERTEX_ATTRIB          0x8626
-
-/* CullFaceMode */
-#define GL_FRONT                          0x0404
-#define GL_BACK                           0x0405
-#define GL_FRONT_AND_BACK                 0x0408
-
-/* DepthFunction */
-/*      GL_NEVER */
-/*      GL_LESS */
-/*      GL_EQUAL */
-/*      GL_LEQUAL */
-/*      GL_GREATER */
-/*      GL_NOTEQUAL */
-/*      GL_GEQUAL */
-/*      GL_ALWAYS */
-
-/* EnableCap */
-#define GL_TEXTURE_2D                     0x0DE1
-#define GL_CULL_FACE                      0x0B44
-#define GL_BLEND                          0x0BE2
-#define GL_DITHER                         0x0BD0
-#define GL_STENCIL_TEST                   0x0B90
-#define GL_DEPTH_TEST                     0x0B71
-#define GL_SCISSOR_TEST                   0x0C11
-#define GL_POLYGON_OFFSET_FILL            0x8037
-#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809E
-#define GL_SAMPLE_COVERAGE                0x80A0
-
-/* ErrorCode */
-#define GL_NO_ERROR                       0
-#define GL_INVALID_ENUM                   0x0500
-#define GL_INVALID_VALUE                  0x0501
-#define GL_INVALID_OPERATION              0x0502
-#define GL_OUT_OF_MEMORY                  0x0505
-
-/* FrontFaceDirection */
-#define GL_CW                             0x0900
-#define GL_CCW                            0x0901
-
-/* GetPName */
-#define GL_LINE_WIDTH                     0x0B21
-#define GL_ALIASED_POINT_SIZE_RANGE       0x846D
-#define GL_ALIASED_LINE_WIDTH_RANGE       0x846E
-#define GL_CULL_FACE_MODE                 0x0B45
-#define GL_FRONT_FACE                     0x0B46
-#define GL_DEPTH_RANGE                    0x0B70
-#define GL_DEPTH_WRITEMASK                0x0B72
-#define GL_DEPTH_CLEAR_VALUE              0x0B73
-#define GL_DEPTH_FUNC                     0x0B74
-#define GL_STENCIL_CLEAR_VALUE            0x0B91
-#define GL_STENCIL_FUNC                   0x0B92
-#define GL_STENCIL_FAIL                   0x0B94
-#define GL_STENCIL_PASS_DEPTH_FAIL        0x0B95
-#define GL_STENCIL_PASS_DEPTH_PASS        0x0B96
-#define GL_STENCIL_REF                    0x0B97
-#define GL_STENCIL_VALUE_MASK             0x0B93
-#define GL_STENCIL_WRITEMASK              0x0B98
-#define GL_STENCIL_BACK_FUNC              0x8800
-#define GL_STENCIL_BACK_FAIL              0x8801
-#define GL_STENCIL_BACK_PASS_DEPTH_FAIL   0x8802
-#define GL_STENCIL_BACK_PASS_DEPTH_PASS   0x8803
-#define GL_STENCIL_BACK_REF               0x8CA3
-#define GL_STENCIL_BACK_VALUE_MASK        0x8CA4
-#define GL_STENCIL_BACK_WRITEMASK         0x8CA5
-#define GL_VIEWPORT                       0x0BA2
-#define GL_SCISSOR_BOX                    0x0C10
-/*      GL_SCISSOR_TEST */
-#define GL_COLOR_CLEAR_VALUE              0x0C22
-#define GL_COLOR_WRITEMASK                0x0C23
-#define GL_UNPACK_ALIGNMENT               0x0CF5
-#define GL_PACK_ALIGNMENT                 0x0D05
-#define GL_MAX_TEXTURE_SIZE               0x0D33
-#define GL_MAX_VIEWPORT_DIMS              0x0D3A
-#define GL_SUBPIXEL_BITS                  0x0D50
-#define GL_RED_BITS                       0x0D52
-#define GL_GREEN_BITS                     0x0D53
-#define GL_BLUE_BITS                      0x0D54
-#define GL_ALPHA_BITS                     0x0D55
-#define GL_DEPTH_BITS                     0x0D56
-#define GL_STENCIL_BITS                   0x0D57
-#define GL_POLYGON_OFFSET_UNITS           0x2A00
-/*      GL_POLYGON_OFFSET_FILL */
-#define GL_POLYGON_OFFSET_FACTOR          0x8038
-#define GL_TEXTURE_BINDING_2D             0x8069
-#define GL_SAMPLE_BUFFERS                 0x80A8
-#define GL_SAMPLES                        0x80A9
-#define GL_SAMPLE_COVERAGE_VALUE          0x80AA
-#define GL_SAMPLE_COVERAGE_INVERT         0x80AB
-
-/* GetTextureParameter */
-/*      GL_TEXTURE_MAG_FILTER */
-/*      GL_TEXTURE_MIN_FILTER */
-/*      GL_TEXTURE_WRAP_S */
-/*      GL_TEXTURE_WRAP_T */
-
-#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
-#define GL_COMPRESSED_TEXTURE_FORMATS     0x86A3
-
-/* HintMode */
-#define GL_DONT_CARE                      0x1100
-#define GL_FASTEST                        0x1101
-#define GL_NICEST                         0x1102
-
-/* HintTarget */
-#define GL_GENERATE_MIPMAP_HINT            0x8192
-
-/* DataType */
-#define GL_BYTE                           0x1400
-#define GL_UNSIGNED_BYTE                  0x1401
-#define GL_SHORT                          0x1402
-#define GL_UNSIGNED_SHORT                 0x1403
-#define GL_INT                            0x1404
-#define GL_UNSIGNED_INT                   0x1405
-#define GL_FLOAT                          0x1406
-#define GL_FIXED                          0x140C
-
-/* PixelFormat */
-#define GL_DEPTH_COMPONENT                0x1902
-#define GL_ALPHA                          0x1906
-#define GL_RGB                            0x1907
-#define GL_RGBA                           0x1908
-#define GL_LUMINANCE                      0x1909
-#define GL_LUMINANCE_ALPHA                0x190A
-
-/* PixelType */
-/*      GL_UNSIGNED_BYTE */
-#define GL_UNSIGNED_SHORT_4_4_4_4         0x8033
-#define GL_UNSIGNED_SHORT_5_5_5_1         0x8034
-#define GL_UNSIGNED_SHORT_5_6_5           0x8363
-
-/* Shaders */
-#define GL_FRAGMENT_SHADER                  0x8B30
-#define GL_VERTEX_SHADER                    0x8B31
-#define GL_MAX_VERTEX_ATTRIBS               0x8869
-#define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8DFB
-#define GL_MAX_VARYING_VECTORS              0x8DFC
-#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
-#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8B4C
-#define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872
-#define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8DFD
-#define GL_SHADER_TYPE                      0x8B4F
-#define GL_DELETE_STATUS                    0x8B80
-#define GL_LINK_STATUS                      0x8B82
-#define GL_VALIDATE_STATUS                  0x8B83
-#define GL_ATTACHED_SHADERS                 0x8B85
-#define GL_ACTIVE_UNIFORMS                  0x8B86
-#define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8B87
-#define GL_ACTIVE_ATTRIBUTES                0x8B89
-#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8B8A
-#define GL_SHADING_LANGUAGE_VERSION         0x8B8C
-#define GL_CURRENT_PROGRAM                  0x8B8D
-
-/* StencilFunction */
-#define GL_NEVER                          0x0200
-#define GL_LESS                           0x0201
-#define GL_EQUAL                          0x0202
-#define GL_LEQUAL                         0x0203
-#define GL_GREATER                        0x0204
-#define GL_NOTEQUAL                       0x0205
-#define GL_GEQUAL                         0x0206
-#define GL_ALWAYS                         0x0207
-
-/* StencilOp */
-/*      GL_ZERO */
-#define GL_KEEP                           0x1E00
-#define GL_REPLACE                        0x1E01
-#define GL_INCR                           0x1E02
-#define GL_DECR                           0x1E03
-#define GL_INVERT                         0x150A
-#define GL_INCR_WRAP                      0x8507
-#define GL_DECR_WRAP                      0x8508
-
-/* StringName */
-#define GL_VENDOR                         0x1F00
-#define GL_RENDERER                       0x1F01
-#define GL_VERSION                        0x1F02
-#define GL_EXTENSIONS                     0x1F03
-
-/* TextureMagFilter */
-#define GL_NEAREST                        0x2600
-#define GL_LINEAR                         0x2601
-
-/* TextureMinFilter */
-/*      GL_NEAREST */
-/*      GL_LINEAR */
-#define GL_NEAREST_MIPMAP_NEAREST         0x2700
-#define GL_LINEAR_MIPMAP_NEAREST          0x2701
-#define GL_NEAREST_MIPMAP_LINEAR          0x2702
-#define GL_LINEAR_MIPMAP_LINEAR           0x2703
-
-/* TextureParameterName */
-#define GL_TEXTURE_MAG_FILTER             0x2800
-#define GL_TEXTURE_MIN_FILTER             0x2801
-#define GL_TEXTURE_WRAP_S                 0x2802
-#define GL_TEXTURE_WRAP_T                 0x2803
-
-/* TextureTarget */
-/*      GL_TEXTURE_2D */
-#define GL_TEXTURE                        0x1702
-
-#define GL_TEXTURE_CUBE_MAP               0x8513
-#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518
-#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519
-#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851A
-#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851C
-
-/* TextureUnit */
-#define GL_TEXTURE0                       0x84C0
-#define GL_TEXTURE1                       0x84C1
-#define GL_TEXTURE2                       0x84C2
-#define GL_TEXTURE3                       0x84C3
-#define GL_TEXTURE4                       0x84C4
-#define GL_TEXTURE5                       0x84C5
-#define GL_TEXTURE6                       0x84C6
-#define GL_TEXTURE7                       0x84C7
-#define GL_TEXTURE8                       0x84C8
-#define GL_TEXTURE9                       0x84C9
-#define GL_TEXTURE10                      0x84CA
-#define GL_TEXTURE11                      0x84CB
-#define GL_TEXTURE12                      0x84CC
-#define GL_TEXTURE13                      0x84CD
-#define GL_TEXTURE14                      0x84CE
-#define GL_TEXTURE15                      0x84CF
-#define GL_TEXTURE16                      0x84D0
-#define GL_TEXTURE17                      0x84D1
-#define GL_TEXTURE18                      0x84D2
-#define GL_TEXTURE19                      0x84D3
-#define GL_TEXTURE20                      0x84D4
-#define GL_TEXTURE21                      0x84D5
-#define GL_TEXTURE22                      0x84D6
-#define GL_TEXTURE23                      0x84D7
-#define GL_TEXTURE24                      0x84D8
-#define GL_TEXTURE25                      0x84D9
-#define GL_TEXTURE26                      0x84DA
-#define GL_TEXTURE27                      0x84DB
-#define GL_TEXTURE28                      0x84DC
-#define GL_TEXTURE29                      0x84DD
-#define GL_TEXTURE30                      0x84DE
-#define GL_TEXTURE31                      0x84DF
-#define GL_ACTIVE_TEXTURE                 0x84E0
-
-/* TextureWrapMode */
-#define GL_REPEAT                         0x2901
-#define GL_CLAMP_TO_EDGE                  0x812F
-#define GL_MIRRORED_REPEAT                0x8370
-
-/* Uniform Types */
-#define GL_FLOAT_VEC2                     0x8B50
-#define GL_FLOAT_VEC3                     0x8B51
-#define GL_FLOAT_VEC4                     0x8B52
-#define GL_INT_VEC2                       0x8B53
-#define GL_INT_VEC3                       0x8B54
-#define GL_INT_VEC4                       0x8B55
-#define GL_BOOL                           0x8B56
-#define GL_BOOL_VEC2                      0x8B57
-#define GL_BOOL_VEC3                      0x8B58
-#define GL_BOOL_VEC4                      0x8B59
-#define GL_FLOAT_MAT2                     0x8B5A
-#define GL_FLOAT_MAT3                     0x8B5B
-#define GL_FLOAT_MAT4                     0x8B5C
-#define GL_SAMPLER_2D                     0x8B5E
-#define GL_SAMPLER_CUBE                   0x8B60
-
-/* Vertex Arrays */
-#define GL_VERTEX_ATTRIB_ARRAY_ENABLED        0x8622
-#define GL_VERTEX_ATTRIB_ARRAY_SIZE           0x8623
-#define GL_VERTEX_ATTRIB_ARRAY_STRIDE         0x8624
-#define GL_VERTEX_ATTRIB_ARRAY_TYPE           0x8625
-#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED     0x886A
-#define GL_VERTEX_ATTRIB_ARRAY_POINTER        0x8645
-#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
-
-/* Read Format */
-#define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8B9A
-#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
-
-/* Shader Source */
-#define GL_COMPILE_STATUS                 0x8B81
-#define GL_INFO_LOG_LENGTH                0x8B84
-#define GL_SHADER_SOURCE_LENGTH           0x8B88
-#define GL_SHADER_COMPILER                0x8DFA
-
-/* Shader Binary */
-#define GL_SHADER_BINARY_FORMATS          0x8DF8
-#define GL_NUM_SHADER_BINARY_FORMATS      0x8DF9
-
-/* Shader Precision-Specified Types */
-#define GL_LOW_FLOAT                      0x8DF0
-#define GL_MEDIUM_FLOAT                   0x8DF1
-#define GL_HIGH_FLOAT                     0x8DF2
-#define GL_LOW_INT                        0x8DF3
-#define GL_MEDIUM_INT                     0x8DF4
-#define GL_HIGH_INT                       0x8DF5
-
-/* Framebuffer Object. */
-#define GL_FRAMEBUFFER                    0x8D40
-#define GL_RENDERBUFFER                   0x8D41
-
-#define GL_RGBA4                          0x8056
-#define GL_RGB5_A1                        0x8057
-#define GL_RGB565                         0x8D62
-#define GL_DEPTH_COMPONENT16              0x81A5
-#define GL_STENCIL_INDEX                  0x1901
-#define GL_STENCIL_INDEX8                 0x8D48
-
-#define GL_RENDERBUFFER_WIDTH             0x8D42
-#define GL_RENDERBUFFER_HEIGHT            0x8D43
-#define GL_RENDERBUFFER_INTERNAL_FORMAT   0x8D44
-#define GL_RENDERBUFFER_RED_SIZE          0x8D50
-#define GL_RENDERBUFFER_GREEN_SIZE        0x8D51
-#define GL_RENDERBUFFER_BLUE_SIZE         0x8D52
-#define GL_RENDERBUFFER_ALPHA_SIZE        0x8D53
-#define GL_RENDERBUFFER_DEPTH_SIZE        0x8D54
-#define GL_RENDERBUFFER_STENCIL_SIZE      0x8D55
-
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8CD0
-#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8CD1
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8CD2
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
-
-#define GL_COLOR_ATTACHMENT0              0x8CE0
-#define GL_DEPTH_ATTACHMENT               0x8D00
-#define GL_STENCIL_ATTACHMENT             0x8D20
-
-#define GL_NONE                           0
-
-#define GL_FRAMEBUFFER_COMPLETE                      0x8CD5
-#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT         0x8CD6
-#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
-#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS         0x8CD9
-#define GL_FRAMEBUFFER_UNSUPPORTED                   0x8CDD
-
-#define GL_FRAMEBUFFER_BINDING            0x8CA6
-#define GL_RENDERBUFFER_BINDING           0x8CA7
-#define GL_MAX_RENDERBUFFER_SIZE          0x84E8
-
-#define GL_INVALID_FRAMEBUFFER_OPERATION  0x0506
-
-/*-------------------------------------------------------------------------
- * GL core functions.
- *-----------------------------------------------------------------------*/
-
-GL_APICALL void         GL_APIENTRY glActiveTexture (GLenum texture);
-GL_APICALL void         GL_APIENTRY glAttachShader (GLuint program, GLuint shader);
-GL_APICALL void         GL_APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glBindBuffer (GLenum target, GLuint buffer);
-GL_APICALL void         GL_APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer);
-GL_APICALL void         GL_APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer);
-GL_APICALL void         GL_APIENTRY glBindTexture (GLenum target, GLuint texture);
-GL_APICALL void         GL_APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_APICALL void         GL_APIENTRY glBlendEquation ( GLenum mode );
-GL_APICALL void         GL_APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha);
-GL_APICALL void         GL_APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor);
-GL_APICALL void         GL_APIENTRY glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-GL_APICALL void         GL_APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
-GL_APICALL void         GL_APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
-GL_APICALL GLenum       GL_APIENTRY glCheckFramebufferStatus (GLenum target);
-GL_APICALL void         GL_APIENTRY glClear (GLbitfield mask);
-GL_APICALL void         GL_APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-GL_APICALL void         GL_APIENTRY glClearDepthf (GLclampf depth);
-GL_APICALL void         GL_APIENTRY glClearStencil (GLint s);
-GL_APICALL void         GL_APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-GL_APICALL void         GL_APIENTRY glCompileShader (GLuint shader);
-GL_APICALL void         GL_APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void         GL_APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void         GL_APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-GL_APICALL void         GL_APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL GLuint       GL_APIENTRY glCreateProgram (void);
-GL_APICALL GLuint       GL_APIENTRY glCreateShader (GLenum type);
-GL_APICALL void         GL_APIENTRY glCullFace (GLenum mode);
-GL_APICALL void         GL_APIENTRY glDeleteBuffers (GLsizei n, const GLuint* buffers);
-GL_APICALL void         GL_APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint* framebuffers);
-GL_APICALL void         GL_APIENTRY glDeleteProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint* renderbuffers);
-GL_APICALL void         GL_APIENTRY glDeleteShader (GLuint shader);
-GL_APICALL void         GL_APIENTRY glDeleteTextures (GLsizei n, const GLuint* textures);
-GL_APICALL void         GL_APIENTRY glDepthFunc (GLenum func);
-GL_APICALL void         GL_APIENTRY glDepthMask (GLboolean flag);
-GL_APICALL void         GL_APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar);
-GL_APICALL void         GL_APIENTRY glDetachShader (GLuint program, GLuint shader);
-GL_APICALL void         GL_APIENTRY glDisable (GLenum cap);
-GL_APICALL void         GL_APIENTRY glDisableVertexAttribArray (GLuint index);
-GL_APICALL void         GL_APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count);
-GL_APICALL void         GL_APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
-GL_APICALL void         GL_APIENTRY glEnable (GLenum cap);
-GL_APICALL void         GL_APIENTRY glEnableVertexAttribArray (GLuint index);
-GL_APICALL void         GL_APIENTRY glFinish (void);
-GL_APICALL void         GL_APIENTRY glFlush (void);
-GL_APICALL void         GL_APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-GL_APICALL void         GL_APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-GL_APICALL void         GL_APIENTRY glFrontFace (GLenum mode);
-GL_APICALL void         GL_APIENTRY glGenBuffers (GLsizei n, GLuint* buffers);
-GL_APICALL void         GL_APIENTRY glGenerateMipmap (GLenum target);
-GL_APICALL void         GL_APIENTRY glGenFramebuffers (GLsizei n, GLuint* framebuffers);
-GL_APICALL void         GL_APIENTRY glGenRenderbuffers (GLsizei n, GLuint* renderbuffers);
-GL_APICALL void         GL_APIENTRY glGenTextures (GLsizei n, GLuint* textures);
-GL_APICALL void         GL_APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
-GL_APICALL int          GL_APIENTRY glGetAttribLocation (GLuint program, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetBooleanv (GLenum pname, GLboolean* params);
-GL_APICALL void         GL_APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL GLenum       GL_APIENTRY glGetError (void);
-GL_APICALL void         GL_APIENTRY glGetFloatv (GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetIntegerv (GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-GL_APICALL void         GL_APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-GL_APICALL void         GL_APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-GL_APICALL void         GL_APIENTRY glGetShaderSource (GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-GL_APICALL const GLubyte* GL_APIENTRY glGetString (GLenum name);
-GL_APICALL void         GL_APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetUniformiv (GLuint program, GLint location, GLint* params);
-GL_APICALL int          GL_APIENTRY glGetUniformLocation (GLuint program, const GLchar* name);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat* params);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint* params);
-GL_APICALL void         GL_APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid** pointer);
-GL_APICALL void         GL_APIENTRY glHint (GLenum target, GLenum mode);
-GL_APICALL GLboolean    GL_APIENTRY glIsBuffer (GLuint buffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsEnabled (GLenum cap);
-GL_APICALL GLboolean    GL_APIENTRY glIsFramebuffer (GLuint framebuffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsProgram (GLuint program);
-GL_APICALL GLboolean    GL_APIENTRY glIsRenderbuffer (GLuint renderbuffer);
-GL_APICALL GLboolean    GL_APIENTRY glIsShader (GLuint shader);
-GL_APICALL GLboolean    GL_APIENTRY glIsTexture (GLuint texture);
-GL_APICALL void         GL_APIENTRY glLineWidth (GLfloat width);
-GL_APICALL void         GL_APIENTRY glLinkProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glPixelStorei (GLenum pname, GLint param);
-GL_APICALL void         GL_APIENTRY glPolygonOffset (GLfloat factor, GLfloat units);
-GL_APICALL void         GL_APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glReleaseShaderCompiler (void);
-GL_APICALL void         GL_APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-GL_APICALL void         GL_APIENTRY glSampleCoverage (GLclampf value, GLboolean invert);
-GL_APICALL void         GL_APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL void         GL_APIENTRY glShaderBinary (GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
-GL_APICALL void         GL_APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
-GL_APICALL void         GL_APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilMask (GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask);
-GL_APICALL void         GL_APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass);
-GL_APICALL void         GL_APIENTRY glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
-GL_APICALL void         GL_APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param);
-GL_APICALL void         GL_APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat* params);
-GL_APICALL void         GL_APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param);
-GL_APICALL void         GL_APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint* params);
-GL_APICALL void         GL_APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void         GL_APIENTRY glUniform1f (GLint location, GLfloat x);
-GL_APICALL void         GL_APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform1i (GLint location, GLint x);
-GL_APICALL void         GL_APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform2f (GLint location, GLfloat x, GLfloat y);
-GL_APICALL void         GL_APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform2i (GLint location, GLint x, GLint y);
-GL_APICALL void         GL_APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform3f (GLint location, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void         GL_APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform3i (GLint location, GLint x, GLint y, GLint z);
-GL_APICALL void         GL_APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniform4f (GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void         GL_APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat* v);
-GL_APICALL void         GL_APIENTRY glUniform4i (GLint location, GLint x, GLint y, GLint z, GLint w);
-GL_APICALL void         GL_APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint* v);
-GL_APICALL void         GL_APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-GL_APICALL void         GL_APIENTRY glUseProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glValidateProgram (GLuint program);
-GL_APICALL void         GL_APIENTRY glVertexAttrib1f (GLuint indx, GLfloat x);
-GL_APICALL void         GL_APIENTRY glVertexAttrib1fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib2f (GLuint indx, GLfloat x, GLfloat y);
-GL_APICALL void         GL_APIENTRY glVertexAttrib2fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib3f (GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-GL_APICALL void         GL_APIENTRY glVertexAttrib3fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttrib4f (GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-GL_APICALL void         GL_APIENTRY glVertexAttrib4fv (GLuint indx, const GLfloat* values);
-GL_APICALL void         GL_APIENTRY glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
-GL_APICALL void         GL_APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gl2_h_ */
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2ext.h b/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2ext.h
deleted file mode 100644
index 46f6093..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2ext.h
+++ /dev/null
@@ -1,973 +0,0 @@
-#ifndef __gl2ext_h_
-#define __gl2ext_h_
-
-/* $Revision: 13239 $ on $Date:: 2010-12-17 15:13:56 -0800 #$ */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-#ifndef GL_APIENTRYP
-#   define GL_APIENTRYP GL_APIENTRY*
-#endif
-
-/*------------------------------------------------------------------------*
- * OES extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_OES_compressed_ETC1_RGB8_texture */
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_ETC1_RGB8_OES                                        0x8D64
-#endif
-
-/* GL_OES_compressed_paletted_texture */
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_PALETTE4_RGB8_OES                                    0x8B90
-#define GL_PALETTE4_RGBA8_OES                                   0x8B91
-#define GL_PALETTE4_R5_G6_B5_OES                                0x8B92
-#define GL_PALETTE4_RGBA4_OES                                   0x8B93
-#define GL_PALETTE4_RGB5_A1_OES                                 0x8B94
-#define GL_PALETTE8_RGB8_OES                                    0x8B95
-#define GL_PALETTE8_RGBA8_OES                                   0x8B96
-#define GL_PALETTE8_R5_G6_B5_OES                                0x8B97
-#define GL_PALETTE8_RGBA4_OES                                   0x8B98
-#define GL_PALETTE8_RGB5_A1_OES                                 0x8B99
-#endif
-
-/* GL_OES_depth24 */
-#ifndef GL_OES_depth24
-#define GL_DEPTH_COMPONENT24_OES                                0x81A6
-#endif
-
-/* GL_OES_depth32 */
-#ifndef GL_OES_depth32
-#define GL_DEPTH_COMPONENT32_OES                                0x81A7
-#endif
-
-/* GL_OES_depth_texture */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-typedef void* GLeglImageOES;
-#endif
-
-/* GL_OES_EGL_image_external */
-#ifndef GL_OES_EGL_image_external
-/* GLeglImageOES defined in GL_OES_EGL_image already. */
-#define GL_TEXTURE_EXTERNAL_OES                                 0x8D65
-#define GL_SAMPLER_EXTERNAL_OES                                 0x8D66
-#define GL_TEXTURE_BINDING_EXTERNAL_OES                         0x8D67
-#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                     0x8D68
-#endif
-
-/* GL_OES_element_index_uint */
-#ifndef GL_OES_element_index_uint
-#define GL_UNSIGNED_INT                                         0x1405
-#endif
-
-/* GL_OES_get_program_binary */
-#ifndef GL_OES_get_program_binary
-#define GL_PROGRAM_BINARY_LENGTH_OES                            0x8741
-#define GL_NUM_PROGRAM_BINARY_FORMATS_OES                       0x87FE
-#define GL_PROGRAM_BINARY_FORMATS_OES                           0x87FF
-#endif
-
-/* GL_OES_mapbuffer */
-#ifndef GL_OES_mapbuffer
-#define GL_WRITE_ONLY_OES                                       0x88B9
-#define GL_BUFFER_ACCESS_OES                                    0x88BB
-#define GL_BUFFER_MAPPED_OES                                    0x88BC
-#define GL_BUFFER_MAP_POINTER_OES                               0x88BD
-#endif
-
-/* GL_OES_packed_depth_stencil */
-#ifndef GL_OES_packed_depth_stencil
-#define GL_DEPTH_STENCIL_OES                                    0x84F9
-#define GL_UNSIGNED_INT_24_8_OES                                0x84FA
-#define GL_DEPTH24_STENCIL8_OES                                 0x88F0
-#endif
-
-/* GL_OES_rgb8_rgba8 */
-#ifndef GL_OES_rgb8_rgba8
-#define GL_RGB8_OES                                             0x8051
-#define GL_RGBA8_OES                                            0x8058
-#endif
-
-/* GL_OES_standard_derivatives */
-#ifndef GL_OES_standard_derivatives
-#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                  0x8B8B
-#endif
-
-/* GL_OES_stencil1 */
-#ifndef GL_OES_stencil1
-#define GL_STENCIL_INDEX1_OES                                   0x8D46
-#endif
-
-/* GL_OES_stencil4 */
-#ifndef GL_OES_stencil4
-#define GL_STENCIL_INDEX4_OES                                   0x8D47
-#endif
-
-/* GL_OES_texture_3D */
-#ifndef GL_OES_texture_3D
-#define GL_TEXTURE_WRAP_R_OES                                   0x8072
-#define GL_TEXTURE_3D_OES                                       0x806F
-#define GL_TEXTURE_BINDING_3D_OES                               0x806A
-#define GL_MAX_3D_TEXTURE_SIZE_OES                              0x8073
-#define GL_SAMPLER_3D_OES                                       0x8B5F
-#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES        0x8CD4
-#endif
-
-/* GL_OES_texture_float */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_texture_float_linear */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_texture_half_float */
-#ifndef GL_OES_texture_half_float
-#define GL_HALF_FLOAT_OES                                       0x8D61
-#endif
-
-/* GL_OES_texture_half_float_linear */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_texture_npot */
-/* No new tokens introduced by this extension. */
-
-/* GL_OES_vertex_array_object */
-#ifndef GL_OES_vertex_array_object
-#define GL_VERTEX_ARRAY_BINDING_OES                             0x85B5
-#endif
-
-/* GL_OES_vertex_half_float */
-/* GL_HALF_FLOAT_OES defined in GL_OES_texture_half_float already. */
-
-/* GL_OES_vertex_type_10_10_10_2 */
-#ifndef GL_OES_vertex_type_10_10_10_2
-#define GL_UNSIGNED_INT_10_10_10_2_OES                          0x8DF6
-#define GL_INT_10_10_10_2_OES                                   0x8DF7
-#endif
-
-/*------------------------------------------------------------------------*
- * AMD extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_AMD_compressed_3DC_texture */
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_3DC_X_AMD                                            0x87F9
-#define GL_3DC_XY_AMD                                           0x87FA
-#endif
-
-/* GL_AMD_compressed_ATC_texture */
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_ATC_RGB_AMD                                          0x8C92
-#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                          0x8C93
-#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                      0x87EE
-#endif
-
-/* GL_AMD_performance_monitor */
-#ifndef GL_AMD_performance_monitor
-#define GL_COUNTER_TYPE_AMD                                     0x8BC0
-#define GL_COUNTER_RANGE_AMD                                    0x8BC1
-#define GL_UNSIGNED_INT64_AMD                                   0x8BC2
-#define GL_PERCENTAGE_AMD                                       0x8BC3
-#define GL_PERFMON_RESULT_AVAILABLE_AMD                         0x8BC4
-#define GL_PERFMON_RESULT_SIZE_AMD                              0x8BC5
-#define GL_PERFMON_RESULT_AMD                                   0x8BC6
-#endif
-
-/* GL_AMD_program_binary_Z400 */
-#ifndef GL_AMD_program_binary_Z400
-#define GL_Z400_BINARY_AMD                                      0x8740
-#endif
-
-/*------------------------------------------------------------------------*
- * ANGLE extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_ANGLE_framebuffer_blit */
-#ifndef GL_ANGLE_framebuffer_blit
-#define GL_READ_FRAMEBUFFER_ANGLE                               0x8CA8
-#define GL_DRAW_FRAMEBUFFER_ANGLE                               0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                       0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_ANGLE                       0x8CAA
-#endif
-
-/* GL_ANGLE_framebuffer_multisample */
-#ifndef GL_ANGLE_framebuffer_multisample
-#define GL_RENDERBUFFER_SAMPLES_ANGLE                           0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE             0x8D56
-#define GL_MAX_SAMPLES_ANGLE                                    0x8D57
-#endif
-
-/*------------------------------------------------------------------------*
- * APPLE extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_APPLE_rgb_422 */
-#ifndef GL_APPLE_rgb_422
-#define GL_RGB_422_APPLE                                        0x8A1F
-#define GL_UNSIGNED_SHORT_8_8_APPLE                             0x85BA
-#define GL_UNSIGNED_SHORT_8_8_REV_APPLE                         0x85BB
-#endif
-
-/* GL_APPLE_framebuffer_multisample */
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_RENDERBUFFER_SAMPLES_APPLE                           0x8CAB
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE             0x8D56
-#define GL_MAX_SAMPLES_APPLE                                    0x8D57
-#define GL_READ_FRAMEBUFFER_APPLE                               0x8CA8
-#define GL_DRAW_FRAMEBUFFER_APPLE                               0x8CA9
-#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                       0x8CA6
-#define GL_READ_FRAMEBUFFER_BINDING_APPLE                       0x8CAA
-#endif
-
-/* GL_APPLE_texture_format_BGRA8888 */
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_BGRA_EXT                                             0x80E1
-#endif
-
-/* GL_APPLE_texture_max_level */
-#ifndef GL_APPLE_texture_max_level
-#define GL_TEXTURE_MAX_LEVEL_APPLE                              0x813D
-#endif
-
-/*------------------------------------------------------------------------*
- * ARM extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_ARM_mali_shader_binary */
-#ifndef GL_ARM_mali_shader_binary
-#define GL_MALI_SHADER_BINARY_ARM                               0x8F60
-#endif
-
-/* GL_ARM_rgba8 */
-/* No new tokens introduced by this extension. */
-
-/*------------------------------------------------------------------------*
- * EXT extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_EXT_blend_minmax */
-#ifndef GL_EXT_blend_minmax
-#define GL_MIN_EXT                                              0x8007
-#define GL_MAX_EXT                                              0x8008
-#endif
-
-/* GL_EXT_discard_framebuffer */
-#ifndef GL_EXT_discard_framebuffer
-#define GL_COLOR_EXT                                            0x1800
-#define GL_DEPTH_EXT                                            0x1801
-#define GL_STENCIL_EXT                                          0x1802
-#endif
-
-/* GL_EXT_multi_draw_arrays */
-/* No new tokens introduced by this extension. */
-
-/* GL_EXT_read_format_bgra */
-#ifndef GL_EXT_read_format_bgra
-#define GL_BGRA_EXT                                             0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
-#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
-#endif
-
-/* GL_EXT_texture_filter_anisotropic */
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
-#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
-#endif
-
-/* GL_EXT_texture_format_BGRA8888 */
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_BGRA_EXT                                             0x80E1
-#endif
-
-/* GL_EXT_texture_type_2_10_10_10_REV */
-#ifndef GL_EXT_texture_type_2_10_10_10_REV
-#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                      0x8368
-#endif
-
-/* GL_EXT_texture_compression_dxt1 */
-#ifndef GL_EXT_texture_compression_dxt1
-#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                         0x83F0
-#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                        0x83F1
-#endif
-
-/* GL_EXT_shader_texture_lod */
-/* No new tokens introduced by this extension. */
-
-/*------------------------------------------------------------------------*
- * IMG extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_IMG_program_binary */
-#ifndef GL_IMG_program_binary
-#define GL_SGX_PROGRAM_BINARY_IMG                               0x9130
-#endif
-
-/* GL_IMG_read_format */
-#ifndef GL_IMG_read_format
-#define GL_BGRA_IMG                                             0x80E1
-#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                       0x8365
-#endif
-
-/* GL_IMG_shader_binary */
-#ifndef GL_IMG_shader_binary
-#define GL_SGX_BINARY_IMG                                       0x8C0A
-#endif
-
-/* GL_IMG_texture_compression_pvrtc */
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                      0x8C00
-#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                      0x8C01
-#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                     0x8C02
-#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                     0x8C03
-#endif
-
-/* GL_IMG_multisampled_render_to_texture */
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_RENDERBUFFER_SAMPLES_IMG                             0x9133
-#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG               0x9134
-#define GL_MAX_SAMPLES_IMG                                      0x9135
-#define GL_TEXTURE_SAMPLES_IMG                                  0x9136
-#endif
-
-/*------------------------------------------------------------------------*
- * NV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_NV_fence */
-#ifndef GL_NV_fence
-#define GL_ALL_COMPLETED_NV                                     0x84F2
-#define GL_FENCE_STATUS_NV                                      0x84F3
-#define GL_FENCE_CONDITION_NV                                   0x84F4
-#endif
-
-/* GL_NV_coverage_sample */
-#ifndef GL_NV_coverage_sample
-#define GL_COVERAGE_COMPONENT_NV                                0x8ED0
-#define GL_COVERAGE_COMPONENT4_NV                               0x8ED1
-#define GL_COVERAGE_ATTACHMENT_NV                               0x8ED2
-#define GL_COVERAGE_BUFFERS_NV                                  0x8ED3
-#define GL_COVERAGE_SAMPLES_NV                                  0x8ED4
-#define GL_COVERAGE_ALL_FRAGMENTS_NV                            0x8ED5
-#define GL_COVERAGE_EDGE_FRAGMENTS_NV                           0x8ED6
-#define GL_COVERAGE_AUTOMATIC_NV                                0x8ED7
-#define GL_COVERAGE_BUFFER_BIT_NV                               0x8000
-#endif
-
-/* GL_NV_depth_nonlinear */
-#ifndef GL_NV_depth_nonlinear
-#define GL_DEPTH_COMPONENT16_NONLINEAR_NV                       0x8E2C
-#endif
-
-/*------------------------------------------------------------------------*
- * QCOM extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_QCOM_driver_control */
-/* No new tokens introduced by this extension. */
-
-/* GL_QCOM_extended_get */
-#ifndef GL_QCOM_extended_get
-#define GL_TEXTURE_WIDTH_QCOM                                   0x8BD2
-#define GL_TEXTURE_HEIGHT_QCOM                                  0x8BD3
-#define GL_TEXTURE_DEPTH_QCOM                                   0x8BD4
-#define GL_TEXTURE_INTERNAL_FORMAT_QCOM                         0x8BD5
-#define GL_TEXTURE_FORMAT_QCOM                                  0x8BD6
-#define GL_TEXTURE_TYPE_QCOM                                    0x8BD7
-#define GL_TEXTURE_IMAGE_VALID_QCOM                             0x8BD8
-#define GL_TEXTURE_NUM_LEVELS_QCOM                              0x8BD9
-#define GL_TEXTURE_TARGET_QCOM                                  0x8BDA
-#define GL_TEXTURE_OBJECT_VALID_QCOM                            0x8BDB
-#define GL_STATE_RESTORE                                        0x8BDC
-#endif
-
-/* GL_QCOM_extended_get2 */
-/* No new tokens introduced by this extension. */
-
-/* GL_QCOM_perfmon_global_mode */
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_PERFMON_GLOBAL_MODE_QCOM                             0x8FA0
-#endif
-
-/* GL_QCOM_writeonly_rendering */
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_WRITEONLY_RENDERING_QCOM                             0x8823
-#endif
-
-/* GL_QCOM_tiled_rendering */
-#ifndef GL_QCOM_tiled_rendering
-#define GL_COLOR_BUFFER_BIT0_QCOM                               0x00000001
-#define GL_COLOR_BUFFER_BIT1_QCOM                               0x00000002
-#define GL_COLOR_BUFFER_BIT2_QCOM                               0x00000004
-#define GL_COLOR_BUFFER_BIT3_QCOM                               0x00000008
-#define GL_COLOR_BUFFER_BIT4_QCOM                               0x00000010
-#define GL_COLOR_BUFFER_BIT5_QCOM                               0x00000020
-#define GL_COLOR_BUFFER_BIT6_QCOM                               0x00000040
-#define GL_COLOR_BUFFER_BIT7_QCOM                               0x00000080
-#define GL_DEPTH_BUFFER_BIT0_QCOM                               0x00000100
-#define GL_DEPTH_BUFFER_BIT1_QCOM                               0x00000200
-#define GL_DEPTH_BUFFER_BIT2_QCOM                               0x00000400
-#define GL_DEPTH_BUFFER_BIT3_QCOM                               0x00000800
-#define GL_DEPTH_BUFFER_BIT4_QCOM                               0x00001000
-#define GL_DEPTH_BUFFER_BIT5_QCOM                               0x00002000
-#define GL_DEPTH_BUFFER_BIT6_QCOM                               0x00004000
-#define GL_DEPTH_BUFFER_BIT7_QCOM                               0x00008000
-#define GL_STENCIL_BUFFER_BIT0_QCOM                             0x00010000
-#define GL_STENCIL_BUFFER_BIT1_QCOM                             0x00020000
-#define GL_STENCIL_BUFFER_BIT2_QCOM                             0x00040000
-#define GL_STENCIL_BUFFER_BIT3_QCOM                             0x00080000
-#define GL_STENCIL_BUFFER_BIT4_QCOM                             0x00100000
-#define GL_STENCIL_BUFFER_BIT5_QCOM                             0x00200000
-#define GL_STENCIL_BUFFER_BIT6_QCOM                             0x00400000
-#define GL_STENCIL_BUFFER_BIT7_QCOM                             0x00800000
-#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                         0x01000000
-#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                         0x02000000
-#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                         0x04000000
-#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                         0x08000000
-#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                         0x10000000
-#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                         0x20000000
-#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                         0x40000000
-#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                         0x80000000
-#endif
-
-/*------------------------------------------------------------------------*
- * VIV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_VIV_shader_binary */
-#ifndef GL_VIV_shader_binary
-#define GL_SHADER_BINARY_VIV                                    0x8FC4
-#endif
-
-/*------------------------------------------------------------------------*
- * End of extension tokens, start of corresponding extension functions
- *------------------------------------------------------------------------*/
-
-/*------------------------------------------------------------------------*
- * OES extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_OES_compressed_ETC1_RGB8_texture */
-#ifndef GL_OES_compressed_ETC1_RGB8_texture
-#define GL_OES_compressed_ETC1_RGB8_texture 1
-#endif
-
-/* GL_OES_compressed_paletted_texture */
-#ifndef GL_OES_compressed_paletted_texture
-#define GL_OES_compressed_paletted_texture 1
-#endif
-
-/* GL_OES_depth24 */
-#ifndef GL_OES_depth24
-#define GL_OES_depth24 1
-#endif
-
-/* GL_OES_depth32 */
-#ifndef GL_OES_depth32
-#define GL_OES_depth32 1
-#endif
-
-/* GL_OES_depth_texture */
-#ifndef GL_OES_depth_texture
-#define GL_OES_depth_texture 1
-#endif
-
-/* GL_OES_EGL_image */
-#ifndef GL_OES_EGL_image
-#define GL_OES_EGL_image 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glEGLImageTargetTexture2DOES (GLenum target, GLeglImageOES image);
-GL_APICALL void GL_APIENTRY glEGLImageTargetRenderbufferStorageOES (GLenum target, GLeglImageOES image);
-#endif
-typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLenum target, GLeglImageOES image);
-typedef void (GL_APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum target, GLeglImageOES image);
-#endif
-
-/* GL_OES_EGL_image_external */
-#ifndef GL_OES_EGL_image_external
-#define GL_OES_EGL_image_external 1
-/* glEGLImageTargetTexture2DOES defined in GL_OES_EGL_image already. */
-#endif
-
-/* GL_OES_element_index_uint */
-#ifndef GL_OES_element_index_uint
-#define GL_OES_element_index_uint 1
-#endif
-
-/* GL_OES_fbo_render_mipmap */
-#ifndef GL_OES_fbo_render_mipmap
-#define GL_OES_fbo_render_mipmap 1
-#endif
-
-/* GL_OES_fragment_precision_high */
-#ifndef GL_OES_fragment_precision_high
-#define GL_OES_fragment_precision_high 1
-#endif
-
-/* GL_OES_get_program_binary */
-#ifndef GL_OES_get_program_binary
-#define GL_OES_get_program_binary 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glGetProgramBinaryOES (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
-GL_APICALL void GL_APIENTRY glProgramBinaryOES (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
-#endif
-typedef void (GL_APIENTRYP PFNGLGETPROGRAMBINARYOESPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
-typedef void (GL_APIENTRYP PFNGLPROGRAMBINARYOESPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
-#endif
-
-/* GL_OES_mapbuffer */
-#ifndef GL_OES_mapbuffer
-#define GL_OES_mapbuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void* GL_APIENTRY glMapBufferOES (GLenum target, GLenum access);
-GL_APICALL GLboolean GL_APIENTRY glUnmapBufferOES (GLenum target);
-GL_APICALL void GL_APIENTRY glGetBufferPointervOES (GLenum target, GLenum pname, GLvoid** params);
-#endif
-typedef void* (GL_APIENTRYP PFNGLMAPBUFFEROESPROC) (GLenum target, GLenum access);
-typedef GLboolean (GL_APIENTRYP PFNGLUNMAPBUFFEROESPROC) (GLenum target);
-typedef void (GL_APIENTRYP PFNGLGETBUFFERPOINTERVOESPROC) (GLenum target, GLenum pname, GLvoid** params);
-#endif
-
-/* GL_OES_packed_depth_stencil */
-#ifndef GL_OES_packed_depth_stencil
-#define GL_OES_packed_depth_stencil 1
-#endif
-
-/* GL_OES_rgb8_rgba8 */
-#ifndef GL_OES_rgb8_rgba8
-#define GL_OES_rgb8_rgba8 1
-#endif
-
-/* GL_OES_standard_derivatives */
-#ifndef GL_OES_standard_derivatives
-#define GL_OES_standard_derivatives 1
-#endif
-
-/* GL_OES_stencil1 */
-#ifndef GL_OES_stencil1
-#define GL_OES_stencil1 1
-#endif
-
-/* GL_OES_stencil4 */
-#ifndef GL_OES_stencil4
-#define GL_OES_stencil4 1
-#endif
-
-/* GL_OES_texture_3D */
-#ifndef GL_OES_texture_3D
-#define GL_OES_texture_3D 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void GL_APIENTRY glTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
-GL_APICALL void GL_APIENTRY glCopyTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-GL_APICALL void GL_APIENTRY glCompressedTexImage3DOES (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void GL_APIENTRY glCompressedTexSubImage3DOES (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
-GL_APICALL void GL_APIENTRY glFramebufferTexture3DOES (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-#endif
-typedef void (GL_APIENTRYP PFNGLTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
-typedef void (GL_APIENTRYP PFNGLTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
-typedef void (GL_APIENTRYP PFNGLCOPYTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DOESPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
-typedef void (GL_APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DOES) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-#endif
-
-/* GL_OES_texture_float */
-#ifndef GL_OES_texture_float
-#define GL_OES_texture_float 1
-#endif
-
-/* GL_OES_texture_float_linear */
-#ifndef GL_OES_texture_float_linear
-#define GL_OES_texture_float_linear 1
-#endif
-
-/* GL_OES_texture_half_float */
-#ifndef GL_OES_texture_half_float
-#define GL_OES_texture_half_float 1
-#endif
-
-/* GL_OES_texture_half_float_linear */
-#ifndef GL_OES_texture_half_float_linear
-#define GL_OES_texture_half_float_linear 1
-#endif
-
-/* GL_OES_texture_npot */
-#ifndef GL_OES_texture_npot
-#define GL_OES_texture_npot 1
-#endif
-
-/* GL_OES_vertex_array_object */
-#ifndef GL_OES_vertex_array_object
-#define GL_OES_vertex_array_object 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glBindVertexArrayOES (GLuint array);
-GL_APICALL void GL_APIENTRY glDeleteVertexArraysOES (GLsizei n, const GLuint *arrays);
-GL_APICALL void GL_APIENTRY glGenVertexArraysOES (GLsizei n, GLuint *arrays);
-GL_APICALL GLboolean GL_APIENTRY glIsVertexArrayOES (GLuint array);
-#endif
-typedef void (GL_APIENTRYP PFNGLBINDVERTEXARRAYOESPROC) (GLuint array);
-typedef void (GL_APIENTRYP PFNGLDELETEVERTEXARRAYSOESPROC) (GLsizei n, const GLuint *arrays);
-typedef void (GL_APIENTRYP PFNGLGENVERTEXARRAYSOESPROC) (GLsizei n, GLuint *arrays);
-typedef GLboolean (GL_APIENTRYP PFNGLISVERTEXARRAYOESPROC) (GLuint array);
-#endif
-
-/* GL_OES_vertex_half_float */
-#ifndef GL_OES_vertex_half_float
-#define GL_OES_vertex_half_float 1
-#endif
-
-/* GL_OES_vertex_type_10_10_10_2 */
-#ifndef GL_OES_vertex_type_10_10_10_2
-#define GL_OES_vertex_type_10_10_10_2 1
-#endif
-
-/*------------------------------------------------------------------------*
- * AMD extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_AMD_compressed_3DC_texture */
-#ifndef GL_AMD_compressed_3DC_texture
-#define GL_AMD_compressed_3DC_texture 1
-#endif
-
-/* GL_AMD_compressed_ATC_texture */
-#ifndef GL_AMD_compressed_ATC_texture
-#define GL_AMD_compressed_ATC_texture 1
-#endif
-
-/* AMD_performance_monitor */
-#ifndef GL_AMD_performance_monitor
-#define GL_AMD_performance_monitor 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
-GL_APICALL void GL_APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors);
-GL_APICALL void GL_APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors);
-GL_APICALL void GL_APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
-GL_APICALL void GL_APIENTRY glBeginPerfMonitorAMD (GLuint monitor);
-GL_APICALL void GL_APIENTRY glEndPerfMonitorAMD (GLuint monitor);
-GL_APICALL void GL_APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
-#endif
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data);
-typedef void (GL_APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
-typedef void (GL_APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors);
-typedef void (GL_APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList);
-typedef void (GL_APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor);
-typedef void (GL_APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor);
-typedef void (GL_APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
-#endif
-
-/* GL_AMD_program_binary_Z400 */
-#ifndef GL_AMD_program_binary_Z400
-#define GL_AMD_program_binary_Z400 1
-#endif
-
-/*------------------------------------------------------------------------*
- * ANGLE extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_ANGLE_framebuffer_blit */
-#ifndef GL_ANGLE_framebuffer_blit
-#define GL_ANGLE_framebuffer_blit 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glBlitFramebufferANGLE (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-typedef void (GL_APIENTRYP PFNGLBLITFRAMEBUFFERANGLEPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
-#endif
-
-/* GL_ANGLE_framebuffer_multisample */
-#ifndef GL_ANGLE_framebuffer_multisample
-#define GL_ANGLE_framebuffer_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleANGLE (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-#endif
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-#endif
-
-/*------------------------------------------------------------------------*
- * APPLE extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_APPLE_rgb_422 */
-#ifndef GL_APPLE_rgb_422
-#define GL_APPLE_rgb_422 1
-#endif
-
-/* GL_APPLE_framebuffer_multisample */
-#ifndef GL_APPLE_framebuffer_multisample
-#define GL_APPLE_framebuffer_multisample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleAPPLE (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_APICALL void GL_APIENTRY glResolveMultisampleFramebufferAPPLE (void);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC) (void);
-#endif
-
-/* GL_APPLE_texture_format_BGRA8888 */
-#ifndef GL_APPLE_texture_format_BGRA8888
-#define GL_APPLE_texture_format_BGRA8888 1
-#endif
-
-/* GL_APPLE_texture_max_level */
-#ifndef GL_APPLE_texture_max_level
-#define GL_APPLE_texture_max_level 1
-#endif
-
-/*------------------------------------------------------------------------*
- * ARM extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_ARM_mali_shader_binary */
-#ifndef GL_ARM_mali_shader_binary
-#define GL_ARM_mali_shader_binary 1
-#endif
-
-/* GL_ARM_rgba8 */
-#ifndef GL_ARM_rgba8
-#define GL_ARM_rgba8 1
-#endif
-
-/*------------------------------------------------------------------------*
- * EXT extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_EXT_blend_minmax */
-#ifndef GL_EXT_blend_minmax
-#define GL_EXT_blend_minmax 1
-#endif
-
-/* GL_EXT_discard_framebuffer */
-#ifndef GL_EXT_discard_framebuffer
-#define GL_EXT_discard_framebuffer 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glDiscardFramebufferEXT (GLenum target, GLsizei numAttachments, const GLenum *attachments);
-#endif
-typedef void (GL_APIENTRYP PFNGLDISCARDFRAMEBUFFEREXTPROC) (GLenum target, GLsizei numAttachments, const GLenum *attachments);
-#endif
-
-#ifndef GL_EXT_multi_draw_arrays
-#define GL_EXT_multi_draw_arrays 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glMultiDrawArraysEXT (GLenum, GLint *, GLsizei *, GLsizei);
-GL_APICALL void GL_APIENTRY glMultiDrawElementsEXT (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei);
-#endif /* GL_GLEXT_PROTOTYPES */
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount);
-typedef void (GL_APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount);
-#endif
-
-/* GL_EXT_read_format_bgra */
-#ifndef GL_EXT_read_format_bgra
-#define GL_EXT_read_format_bgra 1
-#endif
-
-/* GL_EXT_texture_filter_anisotropic */
-#ifndef GL_EXT_texture_filter_anisotropic
-#define GL_EXT_texture_filter_anisotropic 1
-#endif
-
-/* GL_EXT_texture_format_BGRA8888 */
-#ifndef GL_EXT_texture_format_BGRA8888
-#define GL_EXT_texture_format_BGRA8888 1
-#endif
-
-/* GL_EXT_texture_type_2_10_10_10_REV */
-#ifndef GL_EXT_texture_type_2_10_10_10_REV
-#define GL_EXT_texture_type_2_10_10_10_REV 1
-#endif
-
-/* GL_EXT_texture_compression_dxt1 */
-#ifndef GL_EXT_texture_compression_dxt1
-#define GL_EXT_texture_compression_dxt1 1
-#endif
-
-/* GL_EXT_shader_texture_lod */
-#ifndef GL_EXT_shader_texture_lod
-#define GL_EXT_shader_texture_lod 1
-#endif
-
-/*------------------------------------------------------------------------*
- * IMG extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_IMG_program_binary */
-#ifndef GL_IMG_program_binary
-#define GL_IMG_program_binary 1
-#endif
-
-/* GL_IMG_read_format */
-#ifndef GL_IMG_read_format
-#define GL_IMG_read_format 1
-#endif
-
-/* GL_IMG_shader_binary */
-#ifndef GL_IMG_shader_binary
-#define GL_IMG_shader_binary 1
-#endif
-
-/* GL_IMG_texture_compression_pvrtc */
-#ifndef GL_IMG_texture_compression_pvrtc
-#define GL_IMG_texture_compression_pvrtc 1
-#endif
-
-/* GL_IMG_multisampled_render_to_texture */
-#ifndef GL_IMG_multisampled_render_to_texture
-#define GL_IMG_multisampled_render_to_texture 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glRenderbufferStorageMultisampleIMG (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-GL_APICALL void GL_APIENTRY glFramebufferTexture2DMultisampleIMG (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
-#endif
-typedef void (GL_APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMG) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
-typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMG) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
-#endif
-
-/*------------------------------------------------------------------------*
- * NV extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_NV_fence */
-#ifndef GL_NV_fence
-#define GL_NV_fence 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glDeleteFencesNV (GLsizei, const GLuint *);
-GL_APICALL void GL_APIENTRY glGenFencesNV (GLsizei, GLuint *);
-GL_APICALL GLboolean GL_APIENTRY glIsFenceNV (GLuint);
-GL_APICALL GLboolean GL_APIENTRY glTestFenceNV (GLuint);
-GL_APICALL void GL_APIENTRY glGetFenceivNV (GLuint, GLenum, GLint *);
-GL_APICALL void GL_APIENTRY glFinishFenceNV (GLuint);
-GL_APICALL void GL_APIENTRY glSetFenceNV (GLuint, GLenum);
-#endif
-typedef void (GL_APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences);
-typedef void (GL_APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences);
-typedef GLboolean (GL_APIENTRYP PFNGLISFENCENVPROC) (GLuint fence);
-typedef GLboolean (GL_APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence);
-typedef void (GL_APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence);
-typedef void (GL_APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition);
-#endif
-
-/* GL_NV_coverage_sample */
-#ifndef GL_NV_coverage_sample
-#define GL_NV_coverage_sample 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glCoverageMaskNV (GLboolean mask);
-GL_APICALL void GL_APIENTRY glCoverageOperationNV (GLenum operation);
-#endif
-typedef void (GL_APIENTRYP PFNGLCOVERAGEMASKNVPROC) (GLboolean mask);
-typedef void (GL_APIENTRYP PFNGLCOVERAGEOPERATIONNVPROC) (GLenum operation);
-#endif
-
-/* GL_NV_depth_nonlinear */
-#ifndef GL_NV_depth_nonlinear
-#define GL_NV_depth_nonlinear 1
-#endif
-
-/*------------------------------------------------------------------------*
- * QCOM extension functions
- *------------------------------------------------------------------------*/
-
-/* GL_QCOM_driver_control */
-#ifndef GL_QCOM_driver_control
-#define GL_QCOM_driver_control 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glGetDriverControlsQCOM (GLint *num, GLsizei size, GLuint *driverControls);
-GL_APICALL void GL_APIENTRY glGetDriverControlStringQCOM (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
-GL_APICALL void GL_APIENTRY glEnableDriverControlQCOM (GLuint driverControl);
-GL_APICALL void GL_APIENTRY glDisableDriverControlQCOM (GLuint driverControl);
-#endif
-typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSQCOMPROC) (GLint *num, GLsizei size, GLuint *driverControls);
-typedef void (GL_APIENTRYP PFNGLGETDRIVERCONTROLSTRINGQCOMPROC) (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
-typedef void (GL_APIENTRYP PFNGLENABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-typedef void (GL_APIENTRYP PFNGLDISABLEDRIVERCONTROLQCOMPROC) (GLuint driverControl);
-#endif
-
-/* GL_QCOM_extended_get */
-#ifndef GL_QCOM_extended_get
-#define GL_QCOM_extended_get 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glExtGetTexturesQCOM (GLuint *textures, GLint maxTextures, GLint *numTextures);
-GL_APICALL void GL_APIENTRY glExtGetBuffersQCOM (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
-GL_APICALL void GL_APIENTRY glExtGetRenderbuffersQCOM (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
-GL_APICALL void GL_APIENTRY glExtGetFramebuffersQCOM (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
-GL_APICALL void GL_APIENTRY glExtGetTexLevelParameterivQCOM (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
-GL_APICALL void GL_APIENTRY glExtTexObjectStateOverrideiQCOM (GLenum target, GLenum pname, GLint param);
-GL_APICALL void GL_APIENTRY glExtGetTexSubImageQCOM (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
-GL_APICALL void GL_APIENTRY glExtGetBufferPointervQCOM (GLenum target, GLvoid **params);
-#endif
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXTURESQCOMPROC) (GLuint *textures, GLint maxTextures, GLint *numTextures);
-typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERSQCOMPROC) (GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETRENDERBUFFERSQCOMPROC) (GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETFRAMEBUFFERSQCOMPROC) (GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC) (GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
-typedef void (GL_APIENTRYP PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC) (GLenum target, GLenum pname, GLint param);
-typedef void (GL_APIENTRYP PFNGLEXTGETTEXSUBIMAGEQCOMPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
-typedef void (GL_APIENTRYP PFNGLEXTGETBUFFERPOINTERVQCOMPROC) (GLenum target, GLvoid **params);
-#endif
-
-/* GL_QCOM_extended_get2 */
-#ifndef GL_QCOM_extended_get2
-#define GL_QCOM_extended_get2 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glExtGetShadersQCOM (GLuint *shaders, GLint maxShaders, GLint *numShaders);
-GL_APICALL void GL_APIENTRY glExtGetProgramsQCOM (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
-GL_APICALL GLboolean GL_APIENTRY glExtIsProgramBinaryQCOM (GLuint program);
-GL_APICALL void GL_APIENTRY glExtGetProgramBinarySourceQCOM (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
-#endif
-typedef void (GL_APIENTRYP PFNGLEXTGETSHADERSQCOMPROC) (GLuint *shaders, GLint maxShaders, GLint *numShaders);
-typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMSQCOMPROC) (GLuint *programs, GLint maxPrograms, GLint *numPrograms);
-typedef GLboolean (GL_APIENTRYP PFNGLEXTISPROGRAMBINARYQCOMPROC) (GLuint program);
-typedef void (GL_APIENTRYP PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC) (GLuint program, GLenum shadertype, GLchar *source, GLint *length);
-#endif
-
-/* GL_QCOM_perfmon_global_mode */
-#ifndef GL_QCOM_perfmon_global_mode
-#define GL_QCOM_perfmon_global_mode 1
-#endif
-
-/* GL_QCOM_writeonly_rendering */
-#ifndef GL_QCOM_writeonly_rendering
-#define GL_QCOM_writeonly_rendering 1
-#endif
-
-/* GL_QCOM_tiled_rendering */
-#ifndef GL_QCOM_tiled_rendering
-#define GL_QCOM_tiled_rendering 1
-#ifdef GL_GLEXT_PROTOTYPES
-GL_APICALL void GL_APIENTRY glStartTilingQCOM (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-GL_APICALL void GL_APIENTRY glEndTilingQCOM (GLbitfield preserveMask);
-#endif
-typedef void (GL_APIENTRYP PFNGLSTARTTILINGQCOMPROC) (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
-typedef void (GL_APIENTRYP PFNGLENDTILINGQCOMPROC) (GLbitfield preserveMask);
-#endif
-
-/*------------------------------------------------------------------------*
- * VIV extension tokens
- *------------------------------------------------------------------------*/
-
-/* GL_VIV_shader_binary */
-#ifndef GL_VIV_shader_binary
-#define GL_VIV_shader_binary 1
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __gl2ext_h_ */
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2platform.h b/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2platform.h
deleted file mode 100644
index c9fa3c4..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLES2/gl2platform.h
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef __gl2platform_h_
-#define __gl2platform_h_
-
-/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */
-
-/*
- * This document is licensed under the SGI Free Software B License Version
- * 2.0. For details, see http://oss.sgi.com/projects/FreeB/ .
- */
-
-/* Platform-specific types and definitions for OpenGL ES 2.X  gl2.h
- *
- * Adopters may modify khrplatform.h and this file to suit their platform.
- * You are encouraged to submit all modifications to the Khronos group so that
- * they can be included in future versions of this file.  Please submit changes
- * by sending them to the public Khronos Bugzilla (http://khronos.org/bugzilla)
- * by filing a bug against product "OpenGL-ES" component "Registry".
- */
-
-#include <KHR/khrplatform.h>
-
-#ifndef GL_APICALL
-#define GL_APICALL  KHRONOS_APICALL
-#endif
-
-#ifndef GL_APIENTRY
-#define GL_APIENTRY KHRONOS_APIENTRY
-#endif
-
-#endif /* __gl2platform_h_ */
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/FramebufferData.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/FramebufferData.h
deleted file mode 100644
index 46cb651..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/FramebufferData.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _FRAMEBUFFER_DATA_H
-#define _FRAMEBUFFER_DATA_H
-
-#include "objectNameManager.h"
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-
-class RenderbufferData : public ObjectData
-{
-public:
-    RenderbufferData();
-    ~RenderbufferData();
-
-    unsigned int sourceEGLImage;
-    void (*eglImageDetach)(unsigned int imageId);
-    GLuint attachedFB;
-    GLenum attachedPoint;
-    GLuint eglImageGlobalTexName;
-
-};
-
-const int MAX_ATTACH_POINTS = 3;
-
-class FramebufferData : public ObjectData
-{
-public:
-    explicit FramebufferData(GLuint name);
-    ~FramebufferData();
-
-    void setAttachment(GLenum attachment,
-                       GLenum target,
-                       GLuint name,
-                       ObjectDataPtr obj,
-                       bool takeOwnership = false);
-
-    GLuint getAttachment(GLenum attachment,
-                         GLenum *outTarget,
-                         ObjectDataPtr *outObj);
-
-    void validate(class GLEScontext* ctx);
-
-private:
-    inline int attachmentPointIndex(GLenum attachment);
-    void detachObject(int idx);
-
-private:
-    GLuint m_fbName;
-    struct attachPoint {
-        GLenum target; // OGL if owned, GLES otherwise
-        GLuint name; // OGL if owned, GLES otherwise
-        ObjectDataPtr obj;
-        bool owned;
-    } m_attachPoints[MAX_ATTACH_POINTS+1];
-    bool m_dirty;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLDispatch.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLDispatch.h
deleted file mode 100644
index de7d563..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLDispatch.h
+++ /dev/null
@@ -1,267 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLDISPATCHH
-#define GLDISPATCHH
-
-#include <GLES/gl.h>
-#include <GLES2/gl2.h>
-#include <utils/threads.h>
-#include "gldefs.h"
-#include "GLutils.h"
-
-#define GLAPIENTRY GL_APIENTRY
-typedef void(*FUNCPTR)();
-
-class GLDispatch
-{
-public:
-
-    GLDispatch();
-    void dispatchFuncs(GLESVersion version);
-
-    /* OpenGL functions which are needed for implementing BOTH GLES 1.1 & GLES 2.0*/
-    static void (GLAPIENTRY *glActiveTexture) ( GLenum texture );
-    static void (GLAPIENTRY *glBindBuffer) (GLenum target, GLuint buffer);
-    static void (GLAPIENTRY *glBindTexture) (GLenum target, GLuint texture);
-    static void (GLAPIENTRY *glBlendFunc) (GLenum sfactor, GLenum dfactor);
-    static void (GLAPIENTRY *glBlendEquation)( GLenum mode );
-    static void (GLAPIENTRY *glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
-    static void (GLAPIENTRY *glBlendFuncSeparate)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
-    static void (GLAPIENTRY *glBufferData) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
-    static void (GLAPIENTRY *glBufferSubData) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
-    static void (GLAPIENTRY *glClear) (GLbitfield mask);
-    static void (GLAPIENTRY *glClearColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    static void (GLAPIENTRY *glClearStencil) (GLint s);
-    static void (GLAPIENTRY *glColorMask) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
-    static void (GLAPIENTRY *glCompressedTexImage2D) ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data );
-    static void (GLAPIENTRY *glCompressedTexSubImage2D) ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data );
-    static void (GLAPIENTRY *glCopyTexImage2D) (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
-    static void (GLAPIENTRY *glCopyTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
-    static void (GLAPIENTRY *glCullFace) (GLenum mode);
-    static void (GLAPIENTRY *glDeleteBuffers) (GLsizei n, const GLuint *buffers);
-    static void (GLAPIENTRY *glDeleteTextures) (GLsizei n, const GLuint *textures);
-    static void (GLAPIENTRY *glDepthFunc) (GLenum func);
-    static void (GLAPIENTRY *glDepthMask) (GLboolean flag);
-    static void (GLAPIENTRY *glDepthRange) (GLclampd zNear, GLclampd zFar);
-    static void (GLAPIENTRY *glDisable) (GLenum cap);
-    static void (GLAPIENTRY *glDrawArrays) (GLenum mode, GLint first, GLsizei count);
-    static void (GLAPIENTRY *glDrawElements) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
-    static void (GLAPIENTRY *glEnable) (GLenum cap);
-    static void (GLAPIENTRY *glFinish) (void);
-    static void (GLAPIENTRY *glFlush) (void);
-    static void (GLAPIENTRY *glFrontFace) (GLenum mode);
-    static void (GLAPIENTRY *glGenBuffers) (GLsizei n, GLuint *buffers);
-    static void (GLAPIENTRY *glGenTextures) (GLsizei n, GLuint *textures);
-    static void (GLAPIENTRY *glGetBooleanv) (GLenum pname, GLboolean *params);
-    static void (GLAPIENTRY *glGetBufferParameteriv) (GLenum, GLenum, GLint *);
-    static GLenum (GLAPIENTRY *glGetError) (void);
-    static void (GLAPIENTRY *glGetFloatv) (GLenum pname, GLfloat *params);
-    static void (GLAPIENTRY *glGetIntegerv) (GLenum pname, GLint *params);
-    static const GLubyte * (GLAPIENTRY *glGetString) (GLenum name);
-    static void (GLAPIENTRY *glGetTexParameterfv) (GLenum target, GLenum pname, GLfloat *params);
-    static void (GLAPIENTRY *glGetTexParameteriv) (GLenum target, GLenum pname, GLint *params);
-    static void (GLAPIENTRY *glGetTexLevelParameteriv) (GLenum target, GLint level, GLenum pname, GLint *params);
-    static void (GLAPIENTRY *glHint) (GLenum target, GLenum mode);
-    static GLboolean (GLAPIENTRY *glIsBuffer) (GLuint);
-    static GLboolean (GLAPIENTRY *glIsEnabled) (GLenum cap);
-    static GLboolean (GLAPIENTRY *glIsTexture) (GLuint texture);
-    static void (GLAPIENTRY *glLineWidth) (GLfloat width);
-    static void (GLAPIENTRY *glPolygonOffset) (GLfloat factor, GLfloat units);
-    static void (GLAPIENTRY *glPixelStorei) (GLenum pname, GLint param);
-    static void (GLAPIENTRY *glReadPixels) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
-    static void (GLAPIENTRY *glSampleCoverage) ( GLclampf value, GLboolean invert );
-    static void (GLAPIENTRY *glScissor) (GLint x, GLint y, GLsizei width, GLsizei height);
-    static void (GLAPIENTRY *glStencilFunc) (GLenum func, GLint ref, GLuint mask);
-    static void (GLAPIENTRY *glStencilMask) (GLuint mask);
-    static void (GLAPIENTRY *glStencilOp) (GLenum fail, GLenum zfail, GLenum zpass);
-    static void (GLAPIENTRY *glTexImage2D) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
-    static void (GLAPIENTRY *glTexParameteri) (GLenum target, GLenum pname, GLint param);
-    static void (GLAPIENTRY *glTexParameteriv) (GLenum target, GLenum pname, const GLint *params);
-    static void (GLAPIENTRY *glTexSubImage2D) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
-    static void (GLAPIENTRY *glViewport) (GLint x, GLint y, GLsizei width, GLsizei height);
-    static void (GLAPIENTRY *glPushAttrib) ( GLbitfield mask );
-    static void (GLAPIENTRY *glPopAttrib) ( void );
-    static void (GLAPIENTRY *glPushClientAttrib) ( GLbitfield mask );
-    static void (GLAPIENTRY *glPopClientAttrib) ( void );
-    static GLboolean (GLAPIENTRY *glIsRenderbufferEXT) (GLuint renderbuffer);
-    static void (GLAPIENTRY *glBindRenderbufferEXT) (GLenum target, GLuint renderbuffer);
-    static void (GLAPIENTRY *glDeleteRenderbuffersEXT) (GLsizei n, const GLuint *renderbuffers);
-    static void (GLAPIENTRY *glGenRenderbuffersEXT) (GLsizei n, GLuint *renderbuffers);
-    static void (GLAPIENTRY *glRenderbufferStorageEXT) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-    static void (GLAPIENTRY *glGetRenderbufferParameterivEXT) (GLenum target, GLenum pname, GLint *params);
-    static GLboolean (GLAPIENTRY *glIsFramebufferEXT) (GLuint framebuffer);
-    static void (GLAPIENTRY *glBindFramebufferEXT) (GLenum target, GLuint framebuffer);
-    static void (GLAPIENTRY *glDeleteFramebuffersEXT) (GLsizei n, const GLuint *framebuffers);
-    static void (GLAPIENTRY *glGenFramebuffersEXT) (GLsizei n, GLuint *framebuffers);
-    static GLenum (GLAPIENTRY *glCheckFramebufferStatusEXT) (GLenum target);
-    static void (GLAPIENTRY *glFramebufferTexture1DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-    static void (GLAPIENTRY *glFramebufferTexture2DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
-    static void (GLAPIENTRY *glFramebufferTexture3DEXT) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
-    static void (GLAPIENTRY *glFramebufferRenderbufferEXT) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
-    static void (GLAPIENTRY *glGetFramebufferAttachmentParameterivEXT) (GLenum target, GLenum attachment, GLenum pname, GLint *params);
-    static void (GLAPIENTRY *glGenerateMipmapEXT) (GLenum target);
-
-    /* OpenGL functions which are needed ONLY for implementing GLES 1.1*/
-    static void (GLAPIENTRY *glAlphaFunc) (GLenum func, GLclampf ref);
-    static void (GLAPIENTRY *glBegin)( GLenum mode );
-    static void (GLAPIENTRY *glClearDepth) (GLclampd depth);
-    static void (GLAPIENTRY *glClientActiveTexture) ( GLenum texture );
-    static void (GLAPIENTRY *glClipPlane) (GLenum plane, const GLdouble *equation);
-    static void (GLAPIENTRY *glColor4d) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
-    static void (GLAPIENTRY *glColor4f) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
-    static void (GLAPIENTRY *glColor4fv) ( const GLfloat *v );
-    static void (GLAPIENTRY *glColor4ub) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
-    static void (GLAPIENTRY *glColor4ubv) ( const GLubyte *v );
-    static void (GLAPIENTRY *glColorPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    static void (GLAPIENTRY *glDisableClientState) (GLenum array);
-    static void (GLAPIENTRY *glEnableClientState) (GLenum array);
-    static void (GLAPIENTRY *glEnd) (void);
-    static void (GLAPIENTRY *glFogf) (GLenum pname, GLfloat param);
-    static void (GLAPIENTRY *glFogfv) (GLenum pname, const GLfloat *params);
-    static void (GLAPIENTRY *glFrustum) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-    static void (GLAPIENTRY *glGetClipPlane) (GLenum plane, GLdouble *equation);
-    static void (GLAPIENTRY *glGetDoublev) ( GLenum pname, GLdouble *params );
-    static void (GLAPIENTRY *glGetLightfv) (GLenum light, GLenum pname, GLfloat *params);
-    static void (GLAPIENTRY *glGetMaterialfv) (GLenum face, GLenum pname, GLfloat *params);
-    static void (GLAPIENTRY *glGetPointerv) (GLenum pname, GLvoid* *params);
-    static void (GLAPIENTRY *glGetTexEnvfv) (GLenum target, GLenum pname, GLfloat *params);
-    static void (GLAPIENTRY *glGetTexEnviv) (GLenum target, GLenum pname, GLint *params);
-    static void (GLAPIENTRY *glLightf) (GLenum light, GLenum pname, GLfloat param);
-    static void (GLAPIENTRY *glLightfv) (GLenum light, GLenum pname, const GLfloat *params);
-    static void (GLAPIENTRY *glLightModelf) (GLenum pname, GLfloat param);
-    static void (GLAPIENTRY *glLightModelfv) (GLenum pname, const GLfloat *params);
-    static void (GLAPIENTRY *glLoadIdentity) (void);
-    static void (GLAPIENTRY *glLoadMatrixf) (const GLfloat *m);
-    static void (GLAPIENTRY *glLogicOp) (GLenum opcode);
-    static void (GLAPIENTRY *glMaterialf) (GLenum face, GLenum pname, GLfloat param);
-    static void (GLAPIENTRY *glMaterialfv) (GLenum face, GLenum pname, const GLfloat *params);
-    static void (GLAPIENTRY *glMultiTexCoord2fv) ( GLenum target, const GLfloat *v );
-    static void (GLAPIENTRY *glMultiTexCoord2sv) ( GLenum target, const GLshort *v );
-    static void (GLAPIENTRY *glMultiTexCoord3fv) ( GLenum target, const GLfloat *v );
-    static void (GLAPIENTRY *glMultiTexCoord3sv) ( GLenum target, const GLshort *v );
-    static void (GLAPIENTRY *glMultiTexCoord4f) ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q );
-    static void (GLAPIENTRY *glMultiTexCoord4fv) ( GLenum target, const GLfloat *v );
-    static void (GLAPIENTRY *glMultiTexCoord4sv) ( GLenum target, const GLshort *v );
-    static void (GLAPIENTRY *glMultMatrixf) (const GLfloat *m);
-    static void (GLAPIENTRY *glNormal3f) (GLfloat nx, GLfloat ny, GLfloat nz);
-    static void (GLAPIENTRY *glNormal3fv) ( const GLfloat *v );
-    static void (GLAPIENTRY *glNormal3sv) ( const GLshort *v );
-    static void (GLAPIENTRY *glOrtho) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
-    static void (GLAPIENTRY *glPointParameterf) (GLenum, GLfloat);
-    static void (GLAPIENTRY *glPointParameterfv) (GLenum, const GLfloat *);
-    static void (GLAPIENTRY *glPointSize) (GLfloat size);
-    static void (GLAPIENTRY *glRotatef) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
-    static void (GLAPIENTRY *glScalef) (GLfloat x, GLfloat y, GLfloat z);
-    static void (GLAPIENTRY *glTexEnvf) (GLenum target, GLenum pname, GLfloat param);
-    static void (GLAPIENTRY *glTexEnvfv) (GLenum target, GLenum pname, const GLfloat *params);
-    static void (GLAPIENTRY *glTexParameterf) (GLenum target, GLenum pname, GLfloat param);
-    static void (GLAPIENTRY *glTexParameterfv) (GLenum target, GLenum pname, const GLfloat *params);
-    static void (GLAPIENTRY *glMatrixMode) (GLenum mode);
-    static void (GLAPIENTRY *glNormalPointer) (GLenum type, GLsizei stride, const GLvoid *pointer);
-    static void (GLAPIENTRY *glPopMatrix) (void);
-    static void (GLAPIENTRY *glPushMatrix) (void);
-    static void (GLAPIENTRY *glShadeModel) (GLenum mode);
-    static void (GLAPIENTRY *glTexCoordPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-    static void (GLAPIENTRY *glTexEnvi) (GLenum target, GLenum pname, GLint param);
-    static void (GLAPIENTRY *glTexEnviv) (GLenum target, GLenum pname, const GLint *params);
-    static void (GLAPIENTRY *glTranslatef) (GLfloat x, GLfloat y, GLfloat z);
-    static void (GLAPIENTRY *glVertexPointer) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
-
-    /* OpenGL functions which are needed ONLY for implementing GLES 1.1 EXTENSIONS*/
-    static void (GLAPIENTRY *glCurrentPaletteMatrixARB) (GLint index);
-    static void (GLAPIENTRY *glMatrixIndexuivARB) (GLint size, GLuint * indices);
-    static void (GLAPIENTRY *glMatrixIndexPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
-    static void (GLAPIENTRY *glWeightPointerARB) (GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
-    static void (GLAPIENTRY *glTexGenf) (GLenum coord, GLenum pname, GLfloat param );
-    static void (GLAPIENTRY *glTexGeni) (GLenum coord, GLenum pname, GLint param );
-    static void (GLAPIENTRY *glTexGenfv) (GLenum coord, GLenum pname, const GLfloat *params );
-    static void (GLAPIENTRY *glTexGeniv) (GLenum coord, GLenum pname, const GLint *params );
-    static void (GLAPIENTRY *glGetTexGenfv) (GLenum coord, GLenum pname, GLfloat *params );
-    static void (GLAPIENTRY *glGetTexGeniv) (GLenum coord, GLenum pname, GLint *params );
-
-    /* Loading OpenGL functions which are needed ONLY for implementing GLES 2.0*/
-    static void (GL_APIENTRY *glBlendColor) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-    static void (GL_APIENTRY *glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
-    static void (GL_APIENTRY *glStencilMaskSeparate)(GLenum face, GLuint mask);
-    static GLboolean (GL_APIENTRY *glIsProgram)(GLuint program);
-    static GLboolean (GL_APIENTRY *glIsShader)(GLuint shader);
-    static void (GL_APIENTRY *glVertexAttrib1f)(GLuint indx, GLfloat x);
-    static void (GL_APIENTRY *glVertexAttrib1fv)(GLuint indx, const GLfloat* values);
-    static void (GL_APIENTRY *glVertexAttrib2f)(GLuint indx, GLfloat x, GLfloat y);
-    static void (GL_APIENTRY *glVertexAttrib2fv)(GLuint indx, const GLfloat* values);
-    static void (GL_APIENTRY *glVertexAttrib3f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
-    static void (GL_APIENTRY *glVertexAttrib3fv)(GLuint indx, const GLfloat* values);
-    static void (GL_APIENTRY *glVertexAttrib4f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    static void (GL_APIENTRY *glVertexAttrib4fv)(GLuint indx, const GLfloat* values);
-    static void (GL_APIENTRY *glVertexAttribPointer)(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
-    static void (GL_APIENTRY *glDisableVertexAttribArray)(GLuint index);
-    static void (GL_APIENTRY *glEnableVertexAttribArray)(GLuint index);
-    static void (GL_APIENTRY *glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params);
-    static void (GL_APIENTRY *glGetVertexAttribiv)(GLuint index, GLenum pname, GLint* params);
-    static void (GL_APIENTRY *glGetVertexAttribPointerv)(GLuint index, GLenum pname, GLvoid** pointer);
-    static void (GL_APIENTRY *glUniform1f)(GLint location, GLfloat x);
-    static void (GL_APIENTRY *glUniform1fv)(GLint location, GLsizei count, const GLfloat* v);
-    static void (GL_APIENTRY *glUniform1i)(GLint location, GLint x);
-    static void (GL_APIENTRY *glUniform1iv)(GLint location, GLsizei count, const GLint* v);
-    static void (GL_APIENTRY *glUniform2f)(GLint location, GLfloat x, GLfloat y);
-    static void (GL_APIENTRY *glUniform2fv)(GLint location, GLsizei count, const GLfloat* v);
-    static void (GL_APIENTRY *glUniform2i)(GLint location, GLint x, GLint y);
-    static void (GL_APIENTRY *glUniform2iv)(GLint location, GLsizei count, const GLint* v);
-    static void (GL_APIENTRY *glUniform3f)(GLint location, GLfloat x, GLfloat y, GLfloat z);
-    static void (GL_APIENTRY *glUniform3fv)(GLint location, GLsizei count, const GLfloat* v);
-    static void (GL_APIENTRY *glUniform3i)(GLint location, GLint x, GLint y, GLint z);
-    static void (GL_APIENTRY *glUniform3iv)(GLint location, GLsizei count, const GLint* v);
-    static void (GL_APIENTRY *glUniform4f)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
-    static void (GL_APIENTRY *glUniform4fv)(GLint location, GLsizei count, const GLfloat* v);
-    static void (GL_APIENTRY *glUniform4i)(GLint location, GLint x, GLint y, GLint z, GLint w);
-    static void (GL_APIENTRY *glUniform4iv)(GLint location, GLsizei count, const GLint* v);
-    static void (GL_APIENTRY *glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-    static void (GL_APIENTRY *glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-    static void (GL_APIENTRY *glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
-    static void (GL_APIENTRY *glAttachShader)(GLuint program, GLuint shader);
-    static void (GL_APIENTRY *glBindAttribLocation)(GLuint program, GLuint index, const GLchar* name);
-    static void (GL_APIENTRY *glCompileShader)(GLuint shader);
-    static GLuint (GL_APIENTRY *glCreateProgram)(void);
-    static GLuint (GL_APIENTRY *glCreateShader)(GLenum type);
-    static void (GL_APIENTRY *glDeleteProgram)(GLuint program);
-    static void (GL_APIENTRY *glDeleteShader)(GLuint shader);
-    static void (GL_APIENTRY *glDetachShader)(GLuint program, GLuint shader);
-    static void (GL_APIENTRY *glLinkProgram)(GLuint program);
-    static void (GL_APIENTRY *glUseProgram)(GLuint program);
-    static void (GL_APIENTRY *glValidateProgram)(GLuint program);
-    static void (GL_APIENTRY *glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-    static void (GL_APIENTRY *glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
-    static void (GL_APIENTRY *glGetAttachedShaders)(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
-    static int  (GL_APIENTRY *glGetAttribLocation)(GLuint program, const GLchar* name);
-    static void (GL_APIENTRY *glGetProgramiv)(GLuint program, GLenum pname, GLint* params);
-    static void (GL_APIENTRY *glGetProgramInfoLog)(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-    static void (GL_APIENTRY *glGetShaderiv)(GLuint shader, GLenum pname, GLint* params);
-    static void (GL_APIENTRY *glGetShaderInfoLog)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
-    static void (GL_APIENTRY *glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
-    static void (GL_APIENTRY *glGetShaderSource)(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
-    static void (GL_APIENTRY *glGetUniformfv)(GLuint program, GLint location, GLfloat* params);
-    static void (GL_APIENTRY *glGetUniformiv)(GLuint program, GLint location, GLint* params);
-    static int  (GL_APIENTRY *glGetUniformLocation)(GLuint program, const GLchar* name);
-    static void (GL_APIENTRY *glReleaseShaderCompiler)(void);
-    static void (GL_APIENTRY *glShaderBinary)(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
-    static void (GL_APIENTRY *glShaderSource)(GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
-
-private:
-    bool                    m_isLoaded;
-    static android::Mutex   s_lock;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESbuffer.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESbuffer.h
deleted file mode 100644
index 3353ec1..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESbuffer.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLES_BUFFER_H
-#define GLES_BUFFER_H
-
-#include <stdio.h>
-#include <GLES/gl.h>
-#include <GLcommon/objectNameManager.h>
-#include <GLcommon/RangeManip.h>
-
-class GLESbuffer: public ObjectData {
-public:
-   GLESbuffer():ObjectData(BUFFER_DATA),m_size(0),m_usage(GL_STATIC_DRAW),m_data(NULL),m_wasBound(false){}
-   GLuint getSize(){return m_size;};
-   GLuint getUsage(){return m_usage;};
-   GLvoid* getData(){ return m_data;}
-   bool  setBuffer(GLuint size,GLuint usage,const GLvoid* data);
-   bool  setSubBuffer(GLint offset,GLuint size,const GLvoid* data);
-   void  getConversions(const RangeList& rIn,RangeList& rOut);
-   bool  fullyConverted(){return m_conversionManager.size() == 0;};
-   void  setBinded(){m_wasBound = true;};
-   bool  wasBinded(){return m_wasBound;};
-   ~GLESbuffer();
-
-private:
-    GLuint         m_size;
-    GLuint         m_usage;
-    unsigned char* m_data;
-    RangeList      m_conversionManager;
-    bool           m_wasBound;
-};
-
-typedef SmartPtr<GLESbuffer> GLESbufferPtr;
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLEScontext.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLEScontext.h
deleted file mode 100644
index d266e3d..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLEScontext.h
+++ /dev/null
@@ -1,193 +0,0 @@
-#ifndef GLES_CONTEXT_H
-#define GLES_CONTEXT_H
-
-#include "GLDispatch.h"
-#include "GLESpointer.h"
-#include "objectNameManager.h"
-#include <utils/threads.h>
-#include <string>
-
-typedef std::map<GLenum,GLESpointer*>  ArraysMap;
-
-enum TextureTarget {
-TEXTURE_2D,
-TEXTURE_CUBE_MAP,
-NUM_TEXTURE_TARGETS
-};
-
-typedef struct _textureTargetState {
-    GLuint texture;
-    GLboolean enabled;
-} textureTargetState;
-
-typedef textureTargetState textureUnitState[NUM_TEXTURE_TARGETS];
-
-class Version{
-public:
-    Version();
-    Version(int major,int minor,int release);
-    Version(const char* versionString);
-    Version(const Version& ver);
-    bool operator<(const Version& ver) const;
-    Version& operator=(const Version& ver);
-private:
-    int m_major;
-    int m_minor;
-    int m_release;
-};
-
-struct GLSupport {
-    GLSupport():maxLights(0),maxVertexAttribs(0),maxClipPlane(0),maxTexUnits(0), \
-                maxTexImageUnits(0),maxTexSize(0) , \
-                GL_EXT_TEXTURE_FORMAT_BGRA8888(false), GL_EXT_FRAMEBUFFER_OBJECT(false), \
-                GL_ARB_VERTEX_BLEND(false), GL_ARB_MATRIX_PALETTE(false), \
-                GL_EXT_PACKED_DEPTH_STENCIL(false) , GL_OES_READ_FORMAT(false), \
-                GL_ARB_HALF_FLOAT_PIXEL(false), GL_NV_HALF_FLOAT(false), \
-                GL_ARB_HALF_FLOAT_VERTEX(false),GL_SGIS_GENERATE_MIPMAP(false),
-                GL_ARB_ES2_COMPATIBILITY(false),GL_OES_STANDARD_DERIVATIVES(false) {} ;
-    int  maxLights;
-    int  maxVertexAttribs;
-    int  maxClipPlane;
-    int  maxTexUnits;
-    int  maxTexImageUnits;
-    int  maxTexSize;
-    Version glslVersion;
-    bool GL_EXT_TEXTURE_FORMAT_BGRA8888;
-    bool GL_EXT_FRAMEBUFFER_OBJECT;
-    bool GL_ARB_VERTEX_BLEND;
-    bool GL_ARB_MATRIX_PALETTE;
-    bool GL_EXT_PACKED_DEPTH_STENCIL;
-    bool GL_OES_READ_FORMAT;
-    bool GL_ARB_HALF_FLOAT_PIXEL;
-    bool GL_NV_HALF_FLOAT;
-    bool GL_ARB_HALF_FLOAT_VERTEX;
-    bool GL_SGIS_GENERATE_MIPMAP;
-    bool GL_ARB_ES2_COMPATIBILITY;
-    bool GL_OES_STANDARD_DERIVATIVES;
-
-};
-
-struct ArrayData{
-    ArrayData():data(NULL),
-                type(0),
-                stride(0),
-                allocated(false){};
-
-    void*        data;
-    GLenum       type;
-    unsigned int stride;
-    bool         allocated;
-};
-
-class GLESConversionArrays
-{
-public:
-    GLESConversionArrays():m_current(0){};
-    void setArr(void* data,unsigned int stride,GLenum type);
-    void allocArr(unsigned int size,GLenum type);
-    ArrayData& operator[](int i);
-    void* getCurrentData();
-    ArrayData& getCurrentArray();
-    unsigned int getCurrentIndex();
-    void operator++();
-
-    ~GLESConversionArrays();
-private:
-    std::map<GLenum,ArrayData> m_arrays;
-    unsigned int m_current;
-};
-
-class GLEScontext{
-public:
-    virtual void init();
-    GLEScontext();
-    GLenum getGLerror();
-    void setGLerror(GLenum err);
-    void setShareGroup(ShareGroupPtr grp){m_shareGroup = grp;};
-    ShareGroupPtr shareGroup() const { return m_shareGroup; }
-    virtual void setActiveTexture(GLenum tex);
-    unsigned int getBindedTexture(GLenum target);
-    unsigned int getBindedTexture(GLenum unit,GLenum target);
-    void setBindedTexture(GLenum target,unsigned int tex);
-    bool isTextureUnitEnabled(GLenum unit);
-    void setTextureEnabled(GLenum target, GLenum enable);
-    ObjectLocalName getDefaultTextureName(GLenum target);
-    bool isInitialized() { return m_initialized; };
-    void setUnpackAlignment(GLint param){ m_unpackAlignment = param; };
-    GLint getUnpackAlignment(){ return m_unpackAlignment; };
-
-    bool  isArrEnabled(GLenum);
-    void  enableArr(GLenum arr,bool enable);
-    const GLvoid* setPointer(GLenum arrType,GLint size,GLenum type,GLsizei stride,const GLvoid* data,bool normalize = false);
-    virtual const GLESpointer* getPointer(GLenum arrType);
-    virtual void setupArraysPointers(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct) = 0;
-    void bindBuffer(GLenum target,GLuint buffer);
-    void unbindBuffer(GLuint buffer);
-    bool isBuffer(GLuint buffer);
-    bool isBindedBuffer(GLenum target);
-    GLvoid* getBindedBuffer(GLenum target);
-    void getBufferSize(GLenum target,GLint* param);
-    void getBufferUsage(GLenum target,GLint* param);
-    bool setBufferData(GLenum target,GLsizeiptr size,const GLvoid* data,GLenum usage);
-    bool setBufferSubData(GLenum target,GLintptr offset,GLsizeiptr size,const GLvoid* data);
-    const char * getExtensionString();
-    void getGlobalLock();
-    void releaseGlobalLock();
-    virtual GLSupport*  getCaps(){return &s_glSupport;};
-    virtual ~GLEScontext();
-    virtual int getMaxTexUnits() = 0;
-    virtual void drawValidate(void);
-
-    void setRenderbufferBinding(GLuint rb) { m_renderbuffer = rb; }
-    GLuint getRenderbufferBinding() const { return m_renderbuffer; }
-    void setFramebufferBinding(GLuint fb) { m_framebuffer = fb; }
-    GLuint getFramebufferBinding() const { return m_framebuffer; }
-
-    static GLDispatch& dispatcher(){return s_glDispatch;};
-
-    static int getMaxLights(){return s_glSupport.maxLights;}
-    static int getMaxClipPlanes(){return s_glSupport.maxClipPlane;}
-    static int getMaxTexSize(){return s_glSupport.maxTexSize;}
-    static Version glslVersion(){return s_glSupport.glslVersion;}
-    static bool isAutoMipmapSupported(){return s_glSupport.GL_SGIS_GENERATE_MIPMAP;}
-    static TextureTarget GLTextureTargetToLocal(GLenum target);
-    static int findMaxIndex(GLsizei count,GLenum type,const GLvoid* indices);
-
-    virtual bool glGetIntegerv(GLenum pname, GLint *params);
-    virtual bool glGetBooleanv(GLenum pname, GLboolean *params);
-    virtual bool glGetFloatv(GLenum pname, GLfloat *params);
-    virtual bool glGetFixedv(GLenum pname, GLfixed *params);
-
-protected:
-    virtual bool needConvert(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum type,const GLvoid* indices,bool direct,GLESpointer* p,GLenum array_id) = 0;
-    void convertDirect(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum array_id,GLESpointer* p);
-    void convertDirectVBO(GLESConversionArrays& fArrs,GLint first,GLsizei count,GLenum array_id,GLESpointer* p);
-    void convertIndirect(GLESConversionArrays& fArrs,GLsizei count,GLenum type,const GLvoid* indices,GLenum array_id,GLESpointer* p);
-    void convertIndirectVBO(GLESConversionArrays& fArrs,GLsizei count,GLenum indices_type,const GLvoid* indices,GLenum array_id,GLESpointer* p);
-    void initCapsLocked(const GLubyte * extensionString);
-    virtual void initExtensionString() =0;
-    static android::Mutex s_lock;
-    static GLDispatch     s_glDispatch;
-    bool                  m_initialized;
-    unsigned int          m_activeTexture;
-    GLint                 m_unpackAlignment;
-    ArraysMap             m_map;
-    static std::string*   s_glExtensions;
-    static GLSupport      s_glSupport;
-
-private:
-
-    virtual void setupArr(const GLvoid* arr,GLenum arrayType,GLenum dataType,GLint size,GLsizei stride, GLboolean normalized, int pointsIndex = -1) = 0 ;
-    GLuint getBuffer(GLenum target);
-
-    ShareGroupPtr         m_shareGroup;
-    GLenum                m_glError;
-    textureUnitState*     m_texState;
-    unsigned int          m_arrayBuffer;
-    unsigned int          m_elementBuffer;
-    GLuint                m_renderbuffer;
-    GLuint                m_framebuffer;
-};
-
-#endif
-
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESmacros.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESmacros.h
deleted file mode 100644
index 95ffadb..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESmacros.h
+++ /dev/null
@@ -1,47 +0,0 @@
-#ifndef GLES_MACROS_H
-#define GLES_MACROS_H
-
-#define GET_CTX() \
-            if(!s_eglIface) return; \
-            GLEScontext *ctx = s_eglIface->getGLESContext(); \
-
-#define GET_CTX_CM() \
-            if(!s_eglIface) return; \
-            GLEScmContext *ctx = static_cast<GLEScmContext *>(s_eglIface->getGLESContext()); \
-            if(!ctx) return;
-
-#define GET_CTX_V2() \
-            if(!s_eglIface) return; \
-            GLESv2Context *ctx = static_cast<GLESv2Context *>(s_eglIface->getGLESContext()); \
-            if(!ctx) return;
-
-#define GET_CTX_RET(failure_ret) \
-            if(!s_eglIface) return failure_ret; \
-            GLEScontext *ctx = s_eglIface->getGLESContext(); \
-            if(!ctx) return failure_ret;
-
-#define GET_CTX_CM_RET(failure_ret) \
-            if(!s_eglIface) return failure_ret; \
-            GLEScmContext *ctx = static_cast<GLEScmContext *>(s_eglIface->getGLESContext()); \
-            if(!ctx) return failure_ret;
-
-#define GET_CTX_V2_RET(failure_ret) \
-            if(!s_eglIface) return failure_ret; \
-            GLESv2Context *ctx = static_cast<GLESv2Context *>(s_eglIface->getGLESContext()); \
-            if(!ctx) return failure_ret;
-
-
-#define SET_ERROR_IF(condition,err) if((condition)) {                            \
-                        fprintf(stderr, "%s:%s:%d error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
-                        ctx->setGLerror(err);                                    \
-                        return;                                                  \
-                    }
-
-
-#define RET_AND_SET_ERROR_IF(condition,err,ret) if((condition)) {                \
-                        fprintf(stderr, "%s:%s:%d error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
-                        ctx->setGLerror(err);                                    \
-                        return ret;                                              \
-                    }
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESpointer.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESpointer.h
deleted file mode 100644
index 851fe45..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESpointer.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLES_POINTER_H
-#define GLES_POINTER_H
-
-#include <GLES/gl.h>
-#include "GLESbuffer.h"
-
-class GLESpointer
-{
-
-public:
-    GLESpointer();
-    GLenum        getType() const;
-    GLint         getSize() const;
-    GLsizei       getStride() const;
-    const GLvoid* getArrayData() const;
-    GLvoid*       getBufferData() const;
-    GLuint        getBufferName() const;
-    GLboolean     getNormalized() const { return m_normalize ? GL_TRUE : GL_FALSE; }
-    const GLvoid* getData() const;
-    unsigned int  getBufferOffset() const;
-    void          redirectPointerData();
-    void          getBufferConversions(const RangeList& rl,RangeList& rlOut);
-    bool          bufferNeedConversion(){ return !m_buffer->fullyConverted();}
-    void          setArray (GLint size,GLenum type,GLsizei stride,const GLvoid* data,bool normalize = false);
-    void          setBuffer(GLint size,GLenum type,GLsizei stride,GLESbuffer* buf,GLuint bufferName,int offset,bool normalize = false);
-    bool          isEnable() const;
-    bool          isNormalize() const;
-    bool          isVBO() const;
-    void          enable(bool b);
-
-private:
-    GLint         m_size;
-    GLenum        m_type;
-    GLsizei       m_stride;
-    bool          m_enabled;
-    bool          m_normalize;
-    const GLvoid* m_data;
-    GLESbuffer*   m_buffer;
-    GLuint        m_bufferName;
-    unsigned int  m_buffOffset;
-    bool          m_isVBO;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESvalidate.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESvalidate.h
deleted file mode 100644
index 3daaa7c..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLESvalidate.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GLES_VALIDATE_H
-#define GLES_VALIDATE_H
-
-#include <GLES/gl.h>
-#include "GLEScontext.h"
-struct GLESvalidate
-{
-static bool textureEnum(GLenum e,unsigned int maxTex);
-static bool pixelType(GLEScontext * ctx,GLenum type);
-static bool pixelOp(GLenum format,GLenum type);
-static bool pixelFrmt(GLEScontext* ctx , GLenum format);
-static bool bufferTarget(GLenum target);
-static bool bufferParam(GLenum param);
-static bool drawMode(GLenum mode);
-static bool drawType(GLenum mode);
-static bool textureTarget(GLenum target);
-static bool textureTargetLimited(GLenum target);
-static bool textureTargetEx(GLenum target);
-static bool texImgDim(GLsizei width,GLsizei height,int maxTexSize);
-static bool blendEquationMode(GLenum mode);
-static bool framebufferTarget(GLenum target);
-static bool framebufferAttachment(GLenum attachment);
-static bool framebufferAttachmentParams(GLenum pname);
-static bool renderbufferTarget(GLenum target);
-static bool renderbufferParams(GLenum pname);
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLconversion_macros.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLconversion_macros.h
deleted file mode 100644
index 83e99b4..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLconversion_macros.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _GL_FIXED_OPS_H
-#define _GL_FIXED_OPS_H
-
-#define X2F(x)        (((float)(x))/65536.0f)
-#define X2D(x)        (((double)(x))/65536.0)
-#define X2I(x)        ((x) /65536)
-#define B2S(x)        ((short)x)
-
-
-#define F2X(d) ((d) > 32767.65535 ? 32767 * 65536 + 65535 :  \
-               (d) < -32768.65535 ? -32768 * 65536 + 65535 : \
-               ((GLfixed) ((d) * 65536)))
-
-#define I2X(d) ((d)*65536)
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLutils.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLutils.h
deleted file mode 100644
index 7e2a038..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/GLutils.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef GL_UTILS_H
-#define GL_UTILS_H
-
-typedef enum{
-             GLES_1_1 = 1,
-             GLES_2_0 = 2,
-             MAX_GLES_VERSION //Must be last
-            }GLESVersion;
-
-template <class T>
-void swap(T& x,T& y) {
-     T temp;
-     temp=x;
-     x=y;
-     y=temp;
-}
-
-bool isPowerOf2(int num);
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/PaletteTexture.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/PaletteTexture.h
deleted file mode 100644
index 90b206d..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/PaletteTexture.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __PALETTE_TEXTURE_H__
-#define __PALETTE_TEXTURE_H__
-
-#include <GLES/gl.h>
-
-#define MAX_SUPPORTED_PALETTE 10
-
-unsigned char* uncompressTexture(GLenum internalformat,GLenum& formatOut,GLsizei width,GLsizei height,GLsizei imageSize, const GLvoid* data,GLint level);
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/RangeManip.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/RangeManip.h
deleted file mode 100644
index e3162b8..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/RangeManip.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef RANGE_H
-#define RANGE_H
-
-#include <vector>
-
-class Range {
-
-public:
-    Range():m_start(0),m_end(0),m_size(0){};
-    Range(int start,int size):m_start(start),m_end(start+size),m_size(size){};
-    Range(const Range& r):m_start(r.m_start),m_end(r.m_end),m_size(r.m_size){};
-    void setRange(int start,int size){m_start = start; m_end = start+size; m_size = size;};
-    inline int getStart() const{return m_start;};
-    inline int getEnd() const{return m_end;};
-    inline int getSize() const{return m_size;};
-    Range& operator=(const Range& r) {
-        m_start = r.m_start;
-        m_end = r.m_end;
-        m_size = r.m_size;
-        return *this;
-    }
-    bool operator ==(const Range& r) const {
-        return m_start == r.m_start && m_size == r.m_size && m_end == r.m_end;
-    }
-    bool operator !=(const Range& r) const {return !((*this) == r);};
-    bool rangeIntersection(const Range& r,Range& rOut) const ;
-    bool rangeUnion(const Range& r,Range& rOut) const ;
-
-private:
-    int m_start;
-    int m_end;
-    int m_size;
-};
-
-class RangeList {
-public:
-      void addRange(const Range& r);
-      void addRanges(const RangeList& rl);
-      void delRange(const Range& r,RangeList& deleted);
-      void delRanges(const RangeList& rl,RangeList& deleted);
-      bool empty() const;
-      void merge();
-      int  size() const;
-      void clear();
-      Range& operator[](unsigned int i){return list[i];};
-private:
-  void erase(unsigned int i);
-  std::vector<Range> list;
-};
-
-
-
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/SmartPtr.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/SmartPtr.h
deleted file mode 100644
index 8ac93fb..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/SmartPtr.h
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __SMART_PTR_H
-#define __SMART_PTR_H
-
-#include <cutils/threads.h>
-#include <cutils/atomic.h>
-
-template <class T, bool threadSafe = false>
-class SmartPtr
-{
-public:
-    explicit SmartPtr(T* ptr = (T*)NULL) {
-        if (threadSafe) {
-            m_lock = new mutex_t;
-            mutex_init(m_lock);
-        }
-        else m_lock = NULL;
-
-        m_ptr = ptr;
-        if (ptr)
-           m_pRefCount = new int32_t(1);
-        else
-           m_pRefCount = NULL;
-    }
-
-    SmartPtr<T,threadSafe>(const SmartPtr<T,false>& rhs) {
-        if (threadSafe) {
-            m_lock = new mutex_t;
-            mutex_init(m_lock);
-        }
-        else m_lock = NULL;
-
-        m_pRefCount = rhs.m_pRefCount;
-        m_ptr       = rhs.m_ptr;
-        use();
-    }
-
-    SmartPtr<T,threadSafe>(SmartPtr<T,true>& rhs) {
-        if (threadSafe) {
-            m_lock = new mutex_t;
-            mutex_init(m_lock);
-        }
-        else m_lock = NULL;
-
-        if (rhs.m_lock) mutex_lock(rhs.m_lock);
-        m_pRefCount = rhs.m_pRefCount;
-        m_ptr       = rhs.m_ptr;
-        use();
-        if (rhs.m_lock) mutex_unlock(rhs.m_lock);
-    }
-
-    ~SmartPtr() {
-        if (m_lock) mutex_lock(m_lock);
-        release();
-        if (m_lock)
-        {
-            mutex_unlock(m_lock);
-            mutex_destroy(m_lock);
-            delete m_lock;
-        }
-    }
-
-    T* Ptr() const {
-        return m_ptr;
-    }
-
-    const T* constPtr() const
-    {
-        return m_ptr;
-    }
-
-    T* operator->() const {
-        return m_ptr;
-    }
-
-    T& operator*() const {
-        return *m_ptr;
-    }
-
-    // This gives STL lists something to compare.
-    bool operator <(const SmartPtr<T>& t1) const {
-        return m_ptr < t1.m_ptr;
-    }
-
-    SmartPtr<T,threadSafe>& operator=(const SmartPtr<T,false>& rhs)
-    {
-        if (m_ptr == rhs.m_ptr)
-            return *this;
-
-        if (m_lock) mutex_lock(m_lock);
-        release();
-        m_pRefCount = rhs.m_pRefCount;
-        m_ptr       = rhs.m_ptr;
-        use();
-        if (m_lock) mutex_unlock(m_lock);
-
-        return *this;
-    }
-
-    SmartPtr<T,threadSafe>& operator=(SmartPtr<T,true>& rhs)
-    {
-        if (m_ptr == rhs.m_ptr)
-            return *this;
-
-        if (m_lock) mutex_lock(m_lock);
-        release();
-        if (rhs.m_lock) mutex_lock(rhs.m_lock);
-        m_pRefCount = rhs.m_pRefCount;
-        m_ptr       = rhs.m_ptr;
-        use();
-        if (rhs.m_lock) mutex_unlock(rhs.m_lock);
-        if (m_lock) mutex_unlock(m_lock);
-
-        return *this;
-    }
-
-private:
-    int32_t  *m_pRefCount;
-    mutex_t  *m_lock;
-    T* m_ptr;
-
-    // Increment the reference count on this pointer by 1.
-    int use() {
-        if (!m_pRefCount) return 0;
-        return android_atomic_inc(m_pRefCount) + 1;
-    }
-
-    // Decrement the reference count on the pointer by 1.
-    // If the reference count goes to (or below) 0, the pointer is deleted.
-    int release() {
-        if (!m_pRefCount) return 0;
-
-        int iVal = android_atomic_dec(m_pRefCount);
-        if (iVal > 1)
-            return iVal - 1;
-
-        delete m_pRefCount;
-        m_pRefCount = NULL;
-
-        if (m_ptr) {
-            delete m_ptr;
-            m_ptr = NULL;
-        }
-        return 0;
-    }
-
-};
-
-#endif // of  __SMART_PTR_H
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/TextureUtils.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/TextureUtils.h
deleted file mode 100644
index 9b0c4ea..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/TextureUtils.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _TEXTURE_UTILS_H
-#define _TEXTURE_UTILS_H
-
-#include <GLES/gl.h>
-#include <GLES/glext.h>
-#include "GLEScontext.h"
-#include "PaletteTexture.h"
-#include "etc1.h"
-
-int getCompressedFormats(int* formats);
-void  doCompressedTexImage2D(GLEScontext * ctx, GLenum target, GLint level, 
-                                          GLenum internalformat, GLsizei width, 
-                                          GLsizei height, GLint border, 
-                                          GLsizei imageSize, const GLvoid* data, void * funcPtr);
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/TranslatorIfaces.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/TranslatorIfaces.h
deleted file mode 100644
index 3c5e15a..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/TranslatorIfaces.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef TRANSLATOR_IFACES_H
-#define TRANSLATOR_IFACES_H
-#include <GLES/gl.h>
-#include <string.h>
-#include "objectNameManager.h"
-
-extern "C" {
-
-/* This is a generic function pointer type, whose name indicates it must
- * be cast to the proper type *and calling convention* before use.
- */
-typedef void (*__translatorMustCastToProperFunctionPointerType)(void);
-
-typedef struct {
-  const char*                                     name;
-  __translatorMustCastToProperFunctionPointerType address;
-}ExtentionDescriptor;
-
-class TextureData : public ObjectData
-{
-public:
-    ~TextureData() {
-        if (sourceEGLImage && eglImageDetach) (*eglImageDetach)(sourceEGLImage);
-    }
-    TextureData():  ObjectData(TEXTURE_DATA),
-                    width(0),
-                    height(0),
-                    border(0),
-                    internalFormat(GL_RGBA),
-                    sourceEGLImage(0),
-                    wasBound(false),
-                    requiresAutoMipmap(false),
-                    target(0),
-                    oldGlobal(0) {
-        memset(crop_rect,0,4*sizeof(int));
-    };
-
-    unsigned int width;
-    unsigned int height;
-    unsigned int border;
-    unsigned int internalFormat;
-    unsigned int sourceEGLImage;
-    bool wasBound;
-    bool requiresAutoMipmap;
-    int          crop_rect[4];
-    void (*eglImageDetach)(unsigned int imageId);
-    GLenum target;
-    GLuint oldGlobal;
-};
-
-struct EglImage
-{
-    ~EglImage(){};
-    unsigned int imageId;
-    unsigned int globalTexName;
-    unsigned int width;
-    unsigned int height;
-    unsigned int internalFormat;
-    unsigned int border;
-};
-
-typedef SmartPtr<EglImage> ImagePtr;
-typedef  std::map< unsigned int, ImagePtr>       ImagesHndlMap;
-
-class GLEScontext;
-
-typedef struct {
-    GLEScontext*                                    (*createGLESContext)();
-    void                                            (*initContext)(GLEScontext*,ShareGroupPtr);
-    void                                            (*deleteGLESContext)(GLEScontext*);
-    void                                            (*flush)();
-    void                                            (*finish)();
-    void                                            (*setShareGroup)(GLEScontext*,ShareGroupPtr);
-    __translatorMustCastToProperFunctionPointerType (*getProcAddress)(const char*);
-}GLESiface;
-
-
-typedef struct {
-    GLEScontext* (*getGLESContext)();
-    EglImage* (*eglAttachEGLImage)(unsigned int imageId);
-    void        (*eglDetachEGLImage)(unsigned int imageId);
-}EGLiface;
-
-typedef GLESiface* (*__translator_getGLESIfaceFunc)(EGLiface*);
-
-}
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/etc1.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/etc1.h
deleted file mode 100644
index 15ee9ac..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/etc1.h
+++ /dev/null
@@ -1,108 +0,0 @@
-// Copyright 2009 Google Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-#ifndef __etc1_h__
-#define __etc1_h__
-
-#define MAX_ETC_SUPPORTED 1
-
-#define ETC1_ENCODED_BLOCK_SIZE 8
-#define ETC1_DECODED_BLOCK_SIZE 48
-
-#ifndef ETC1_RGB8_OES
-#define ETC1_RGB8_OES 0x8D64
-#endif
-
-typedef unsigned char etc1_byte;
-typedef int etc1_bool;
-typedef unsigned int etc1_uint32;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// Encode a block of pixels.
-//
-// pIn is a pointer to a ETC_DECODED_BLOCK_SIZE array of bytes that represent a
-// 4 x 4 square of 3-byte pixels in form R, G, B. Byte (3 * (x + 4 * y) is the R
-// value of pixel (x, y).
-//
-// validPixelMask is a 16-bit mask where bit (1 << (x + y * 4)) indicates whether
-// the corresponding (x,y) pixel is valid. Invalid pixel color values are ignored when compressing.
-//
-// pOut is an ETC1 compressed version of the data.
-
-void etc1_encode_block(const etc1_byte* pIn, etc1_uint32 validPixelMask, etc1_byte* pOut);
-
-// Decode a block of pixels.
-//
-// pIn is an ETC1 compressed version of the data.
-//
-// pOut is a pointer to a ETC_DECODED_BLOCK_SIZE array of bytes that represent a
-// 4 x 4 square of 3-byte pixels in form R, G, B. Byte (3 * (x + 4 * y) is the R
-// value of pixel (x, y).
-
-void etc1_decode_block(const etc1_byte* pIn, etc1_byte* pOut);
-
-// Return the size of the encoded image data (does not include size of PKM header).
-
-etc1_uint32 etc1_get_encoded_data_size(etc1_uint32 width, etc1_uint32 height);
-
-// Encode an entire image.
-// pIn - pointer to the image data. Formatted such that
-//       pixel (x,y) is at pIn + pixelSize * x + stride * y;
-// pOut - pointer to encoded data. Must be large enough to store entire encoded image.
-// pixelSize can be 2 or 3. 2 is an GL_UNSIGNED_SHORT_5_6_5 image, 3 is a GL_BYTE RGB image.
-// returns non-zero if there is an error.
-
-int etc1_encode_image(const etc1_byte* pIn, etc1_uint32 width, etc1_uint32 height,
-        etc1_uint32 pixelSize, etc1_uint32 stride, etc1_byte* pOut);
-
-// Decode an entire image.
-// pIn - pointer to encoded data.
-// pOut - pointer to the image data. Will be written such that
-//        pixel (x,y) is at pIn + pixelSize * x + stride * y. Must be
-//        large enough to store entire image.
-// pixelSize can be 2 or 3. 2 is an GL_UNSIGNED_SHORT_5_6_5 image, 3 is a GL_BYTE RGB image.
-// returns non-zero if there is an error.
-
-int etc1_decode_image(const etc1_byte* pIn, etc1_byte* pOut,
-        etc1_uint32 width, etc1_uint32 height,
-        etc1_uint32 pixelSize, etc1_uint32 stride);
-
-// Size of a PKM header, in bytes.
-
-#define ETC_PKM_HEADER_SIZE 16
-
-// Format a PKM header
-
-void etc1_pkm_format_header(etc1_byte* pHeader, etc1_uint32 width, etc1_uint32 height);
-
-// Check if a PKM header is correctly formatted.
-
-etc1_bool etc1_pkm_is_valid(const etc1_byte* pHeader);
-
-// Read the image width from a PKM header
-
-etc1_uint32 etc1_pkm_get_width(const etc1_byte* pHeader);
-
-// Read the image height from a PKM header
-
-etc1_uint32 etc1_pkm_get_height(const etc1_byte* pHeader);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/gldefs.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/gldefs.h
deleted file mode 100644
index 1f0c7ef..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/gldefs.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-
-typedef double      GLclampd;   /* double precision float in [0,1] */
-typedef double      GLdouble;   /* double precision float */
-
-#define GL_S                    0x2000
-#define GL_T                    0x2001
-#define GL_R                    0x2002
-#define GL_Q                    0x2003
-#define GL_TEXTURE_GEN_S            0x0C60
-#define GL_TEXTURE_GEN_T            0x0C61
-#define GL_TEXTURE_GEN_R            0x0C62
-#define GL_CLIENT_VERTEX_ARRAY_BIT    0x00000002
-#define GL_TRANSFORM_BIT      0x00001000
-#define GL_INT                0x1404
-#define GL_HALF_FLOAT_NV      0x140B
-#define GL_HALF_FLOAT         0x140B
-#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642
-#define GL_POINT_SPRITE       0x8861
-#define GL_FRAMEBUFFER_EXT                0x8D40
-#define GL_TEXTURE_WIDTH			0x1000
-#define GL_TEXTURE_HEIGHT			0x1001
-#define GL_TEXTURE_RED_SIZE			0x805C
-#define GL_TEXTURE_GREEN_SIZE			0x805D
-#define GL_TEXTURE_BLUE_SIZE			0x805E
-#define GL_TEXTURE_ALPHA_SIZE			0x805F
-#define GL_TEXTURE_DEPTH_SIZE             0x884A
-#define GL_TEXTURE_INTERNAL_FORMAT		0x1003
diff --git a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/objectNameManager.h b/tools/emulator/opengl/host/libs/Translator/include/GLcommon/objectNameManager.h
deleted file mode 100644
index 605fd29..0000000
--- a/tools/emulator/opengl/host/libs/Translator/include/GLcommon/objectNameManager.h
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _OBJECT_NAME_MANAGER_H
-#define _OBJECT_NAME_MANAGER_H
-
-#include <cutils/threads.h>
-#include <map>
-#include "SmartPtr.h"
-
-enum NamedObjectType {
-    VERTEXBUFFER = 0,
-    TEXTURE = 1,
-    RENDERBUFFER = 2,
-    FRAMEBUFFER = 3,
-    SHADER = 4,
-    NUM_OBJECT_TYPES = 5  // Must be last
-};
-
-enum ObjectDataType {
-    SHADER_DATA,
-    PROGRAM_DATA,
-    TEXTURE_DATA,
-    BUFFER_DATA,
-    UNDEFINED_DATA
-};
-
-class ObjectData
-{
-public:
-    ObjectData() : m_dataType(UNDEFINED_DATA) {};
-    ObjectData(ObjectDataType type): m_dataType(type) {};
-    ObjectDataType getDataType() { return m_dataType; };
-    virtual ~ObjectData() {};
-private:
-    ObjectDataType m_dataType;
-};
-typedef SmartPtr<ObjectData> ObjectDataPtr;
-typedef unsigned long long ObjectLocalName;
-typedef std::map<ObjectLocalName, unsigned int> NamesMap;
-
-//
-// Class NameSpace - this class manages allocations and deletions of objects
-//                   from a single "local" namespace (private to context group).
-//                   For each allocated object name, a "global" name is
-//                   generated as well to be used in the space where all
-//                   contexts are shared.
-//
-//   NOTE: this class does not used by the EGL/GLES layer directly,
-//         the EGL/GLES layer creates objects using the ShareGroup class
-//         interface (see below).
-class GlobalNameSpace;
-class NameSpace
-{
-    friend class ShareGroup;
-    friend class GlobalNameSpace;
-
-private:
-    NameSpace(NamedObjectType p_type, GlobalNameSpace *globalNameSpace);
-    ~NameSpace();
-
-    //
-    // genName - creates new object in the namespace and  returns its name.
-    //           if genLocal is false then the specified p_localName will be used.
-    //           This function also generate a global name for the object,
-    //           the value of the global name can be retrieved using the
-    //           getGlobalName function.
-    //
-    ObjectLocalName genName(ObjectLocalName p_localName, bool genGlobal, bool genLocal);
-
-    // genGlobalName() - This function creates a global name
-    //                   with no associated local name, for the
-    //                   translator internal use.
-    unsigned int genGlobalName(void);
-
-    //
-    // getGlobalName - returns the global name of an object or 0 if the object
-    //                 does not exist.
-    //
-    unsigned int getGlobalName(ObjectLocalName p_localName);
-
-    //
-    // getLocaalName - returns the local name of an object or 0 if the object
-    //                 does not exist.
-    //
-    ObjectLocalName getLocalName(unsigned int p_globalName);
-
-    //
-    // deleteName - deletes and object from the namespace as well as its
-    //              global name from the global name space.
-    //
-    void deleteName(ObjectLocalName p_localName);
-
-    //
-    // isObject - returns true if the named object exist.
-    //
-    bool isObject(ObjectLocalName p_localName);
-
-    //
-    // replaces an object to map to an existing global object
-    //
-    void replaceGlobalName(ObjectLocalName p_localName, unsigned int p_globalName);
-
-private:
-    ObjectLocalName m_nextName;
-    NamesMap m_localToGlobalMap;
-    const NamedObjectType m_type;
-    GlobalNameSpace *m_globalNameSpace;
-};
-
-class GlobalNameSpace
-{
-public:
-    GlobalNameSpace();
-    ~GlobalNameSpace();
-    unsigned int genName(NamedObjectType p_type);
-    void deleteName(NamedObjectType p_type, unsigned int p_name);
-
-private:
-    mutex_t m_lock;
-};
-
-//
-// class ShareGroup -
-//   That class manages objects of one "local" context share group, typically
-//   there will be one inctance of ShareGroup for each user OpenGL context
-//   unless the user context share with another user context. In that case they
-//   both will share the same ShareGroup instance.
-//   calls into that class gets serialized through a lock so it is thread safe.
-//
-class ShareGroup
-{
-    friend class ObjectNameManager;
-    friend class SmartPtr<ShareGroup>;  // to allow destructing when ShareGroupPtr refcount reaches zero
-
-public:
-
-    //
-    // genName - generates new object name and returns its name value.
-    //           if genLocal is false, p_localName will be used as the name.
-    //           This function also generates a "global" name for the object
-    //           which can be queried using the getGlobalName function.
-    //
-    ObjectLocalName genName(NamedObjectType p_type, ObjectLocalName p_localName = 0, bool genLocal= false);
-
-    // genGlobalName() - This function creates a global name
-    //                   with no associated local name, for the
-    //                   translator internal use.
-    unsigned int genGlobalName(NamedObjectType p_type);
-
-    //
-    // getGlobalName - retrieves the "global" name of an object or 0 if the
-    //                 object does not exist.
-    //
-    unsigned int getGlobalName(NamedObjectType p_type, ObjectLocalName p_localName);
-
-    //
-    // getLocalName - retrieves the "local" name of an object or 0 if the
-    //                 object does not exist.
-    //
-    ObjectLocalName getLocalName(NamedObjectType p_type, unsigned int p_globalName);
-
-    //
-    // deleteName - deletes and object from the namespace as well as its
-    //              global name from the global name space.
-    //
-    void deleteName(NamedObjectType p_type, ObjectLocalName p_localName);
-
-    //
-    // replaceGlobalName - replaces an object to map to an existing global
-    //        named object. (used when creating EGLImage siblings)
-    //
-    void replaceGlobalName(NamedObjectType p_type, ObjectLocalName p_localName, unsigned int p_globalName);
-
-    //
-    // isObject - returns true if the named object exist.
-    //
-    bool isObject(NamedObjectType p_type, ObjectLocalName p_localName);
-
-    //
-    // Assign object global data to a names object
-    //
-    void setObjectData(NamedObjectType p_type, ObjectLocalName p_localName, ObjectDataPtr data);
-
-    //
-    // Retrieve object global data
-    //
-    ObjectDataPtr getObjectData(NamedObjectType p_type, ObjectLocalName p_localName);
-
-private:
-    explicit ShareGroup(GlobalNameSpace *globalNameSpace);
-    ~ShareGroup();
-
-private:
-    mutex_t m_lock;
-    NameSpace *m_nameSpace[NUM_OBJECT_TYPES];
-    void *m_objectsData;
-};
-
-typedef SmartPtr<ShareGroup> ShareGroupPtr;
-typedef std::multimap<void *, ShareGroupPtr> ShareGroupsMap;
-
-//
-// ObjectNameManager -
-//   This class manages the set of all ShareGroups instances,
-//   each ShareGroup instance can be accessed through one or more 'groupName'
-//   values. the type of 'groupName' is void *, the intent is that the EGL
-//   layer will use the user context handle as the name for its ShareGroup
-//   object. Multiple names can be attached to a ShareGroup object to support
-//   user context sharing.
-//
-class ObjectNameManager
-{
-public:
-    explicit ObjectNameManager(GlobalNameSpace *globalNameSpace);
-    ~ObjectNameManager();
-
-    //
-    // createShareGroup - create a new ShareGroup object and attach it with
-    //                    the "name" specified by p_groupName.
-    //
-    ShareGroupPtr createShareGroup(void *p_groupName);
-
-    //
-    // attachShareGroup - find the ShareGroup object attached to the name
-    //    specified in p_existingGroupName and attach p_groupName to the same
-    //    ShareGroup instance.
-    //
-    ShareGroupPtr attachShareGroup(void *p_groupName, void *p_existingGroupName);
-
-    //
-    // getShareGroup - retreive a ShareGroup object based on its "name"
-    //
-    ShareGroupPtr getShareGroup(void *p_groupName);
-
-    //
-    // deleteShareGroup - deletes the attachment of the p_groupName to its
-    //           attached ShareGroup. When the last name of ShareGroup is
-    //           deleted the ShareGroup object is destroyed.
-    //
-    void deleteShareGroup(void *p_groupName);
-
-    //
-    //  getGlobalContext() - this function returns a name of an existing
-    //                       ShareGroup. The intent is that the EGL layer will
-    //                       use that function to get the GL context which each
-    //                       new context needs to share with.
-    //
-    void *getGlobalContext();
-
-private:
-    ShareGroupsMap m_groups;
-    mutex_t m_lock;
-    GlobalNameSpace *m_globalNameSpace;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk b/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk
deleted file mode 100644
index 3beee95..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/Android.mk
+++ /dev/null
@@ -1,52 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-### libOpenglRender #################################################
-$(call emugl-begin-host-shared-library,libOpenglRender)
-
-$(call emugl-import,libGLESv1_dec libGLESv2_dec lib_renderControl_dec libOpenglCodecCommon libOpenglOsUtils)
-
-OS_SRCS:=
-
-ifeq ($(HOST_OS),linux)
-    OS_SRCS = NativeLinuxSubWindow.cpp
-    LOCAL_LDLIBS += -lX11
-endif
-
-ifeq ($(HOST_OS),darwin)
-    OS_SRCS = NativeMacSubWindow.m
-    LOCAL_LDLIBS += -Wl,-framework,AppKit
-endif
-
-ifeq ($(HOST_OS),windows)
-    OS_SRCS = NativeWindowsSubWindow.cpp
-endif
-
-LOCAL_SRC_FILES := \
-    $(OS_SRCS)      \
-    render_api.cpp \
-    ColorBuffer.cpp \
-    EGLDispatch.cpp \
-    FBConfig.cpp \
-    FrameBuffer.cpp \
-    GLDispatch.cpp \
-    GL2Dispatch.cpp \
-    RenderContext.cpp \
-    WindowSurface.cpp \
-    RenderControl.cpp \
-    ThreadInfo.cpp \
-    RenderThread.cpp \
-    ReadBuffer.cpp \
-    RenderServer.cpp
-
-$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/host/include)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-# use Translator's egl/gles headers
-LOCAL_C_INCLUDES += $(EMUGL_PATH)/host/libs/Translator/include
-
-LOCAL_STATIC_LIBRARIES += libutils liblog
-
-#For gl debbuging
-#$(call emugl-export,CFLAGS,-DCHECK_GL_ERROR)
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/ColorBuffer.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/ColorBuffer.cpp
deleted file mode 100644
index 950abab..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/ColorBuffer.cpp
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "ColorBuffer.h"
-#include "FrameBuffer.h"
-#include "EGLDispatch.h"
-#include "GLDispatch.h"
-#include "ThreadInfo.h"
-#ifdef WITH_GLES2
-#include "GL2Dispatch.h"
-#endif
-#include <stdio.h>
-
-ColorBuffer *ColorBuffer::create(int p_width, int p_height,
-                                 GLenum p_internalFormat)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-
-    GLenum texInternalFormat = 0;
-
-    switch(p_internalFormat) {
-        case GL_RGB:
-        case GL_RGB565_OES:
-            texInternalFormat = GL_RGB;
-            break;
-
-        case GL_RGBA:
-        case GL_RGB5_A1_OES:
-        case GL_RGBA4_OES:
-            texInternalFormat = GL_RGBA;
-            break;
-
-        default:
-            return NULL;
-            break;
-    }
-
-    if (!fb->bind_locked()) {
-        return NULL;
-    }
-
-    ColorBuffer *cb = new ColorBuffer();
-
-
-    s_gl.glGenTextures(1, &cb->m_tex);
-    s_gl.glBindTexture(GL_TEXTURE_2D, cb->m_tex);
-    int nComp = (texInternalFormat == GL_RGB ? 3 : 4);
-    char *zBuff = new char[nComp*p_width*p_height];
-    if (zBuff) {
-        memset(zBuff, 0, nComp*p_width*p_height);
-    }
-    s_gl.glTexImage2D(GL_TEXTURE_2D, 0, texInternalFormat,
-                      p_width, p_height, 0,
-                      texInternalFormat,
-                      GL_UNSIGNED_BYTE, zBuff);
-    delete [] zBuff;
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-    s_gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-
-    //
-    // create another texture for that colorbuffer for blit
-    //
-    s_gl.glGenTextures(1, &cb->m_blitTex);
-    s_gl.glBindTexture(GL_TEXTURE_2D, cb->m_blitTex);
-    s_gl.glTexImage2D(GL_TEXTURE_2D, 0, texInternalFormat,
-                      p_width, p_height, 0,
-                      texInternalFormat,
-                      GL_UNSIGNED_BYTE, NULL);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-    s_gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-
-    cb->m_width = p_width;
-    cb->m_height = p_height;
-    cb->m_internalFormat = texInternalFormat;
-
-    if (fb->getCaps().has_eglimage_texture_2d) {
-        cb->m_eglImage = s_egl.eglCreateImageKHR(fb->getDisplay(),
-                                                 s_egl.eglGetCurrentContext(),
-                                                 EGL_GL_TEXTURE_2D_KHR,
-                                                 (EGLClientBuffer)cb->m_tex,
-                                                 NULL);
-
-        cb->m_blitEGLImage = s_egl.eglCreateImageKHR(fb->getDisplay(),
-                                                 s_egl.eglGetCurrentContext(),
-                                                 EGL_GL_TEXTURE_2D_KHR,
-                                                 (EGLClientBuffer)cb->m_blitTex,
-                                                 NULL);
-    }
-
-    fb->unbind_locked();
-    return cb;
-}
-
-ColorBuffer::ColorBuffer() :
-    m_tex(0),
-    m_eglImage(NULL),
-    m_fbo(0),
-    m_internalFormat(0)
-{
-}
-
-ColorBuffer::~ColorBuffer()
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    fb->bind_locked();
-    s_gl.glDeleteTextures(1, &m_tex);
-    if (m_eglImage) {
-        s_egl.eglDestroyImageKHR(fb->getDisplay(), m_eglImage);
-    }
-    if (m_fbo) {
-        s_gl.glDeleteFramebuffersOES(1, &m_fbo);
-    }
-    fb->unbind_locked();
-}
-
-void ColorBuffer::update(GLenum p_format, GLenum p_type, void *pixels)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb->bind_locked()) return;
-    s_gl.glBindTexture(GL_TEXTURE_2D, m_tex);
-    s_gl.glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-    s_gl.glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0,
-                         m_width, m_height, p_format, p_type, pixels);
-    fb->unbind_locked();
-}
-
-void ColorBuffer::subUpdate(int x, int y, int width, int height, GLenum p_format, GLenum p_type, void *pixels)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb->bind_locked()) return;
-    s_gl.glBindTexture(GL_TEXTURE_2D, m_tex);
-    s_gl.glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
-    s_gl.glTexSubImage2D(GL_TEXTURE_2D, 0, x, y,
-                         width, height, p_format, p_type, pixels);
-    fb->unbind_locked();
-}
-
-bool ColorBuffer::blitFromPbuffer(EGLSurface p_pbufSurface)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb->bind_locked()) return false;
-
-    //
-    // bind FBO object which has this colorbuffer as render target
-    //
-    if (!bind_fbo()) {
-        fb->unbind_locked();
-        return false;
-    }
-
-    //
-    // bind the pbuffer to a temporary texture object
-    //
-    GLuint tempTex;
-    s_gl.glGenTextures(1, &tempTex);
-    s_gl.glBindTexture(GL_TEXTURE_2D, tempTex);
-    if (!s_egl.eglBindTexImage(fb->getDisplay(), p_pbufSurface, EGL_BACK_BUFFER)) {
-        printf("eglBindTexImage failed 0x%x\n", s_egl.eglGetError());
-        s_gl.glDeleteTextures(1, &tempTex);
-        fb->unbind_locked();
-        return false;
-    }
-
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
-    s_gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
-    s_gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-    s_gl.glEnable(GL_TEXTURE_2D);
-
-    drawTexQuad();
-
-    //
-    // unbind FBO, release the pbuffer and delete the temp texture object
-    //
-    s_gl.glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
-    s_egl.eglReleaseTexImage(fb->getDisplay(), p_pbufSurface, EGL_BACK_BUFFER);
-    s_gl.glDeleteTextures(1, &tempTex);
-
-    fb->unbind_locked();
-    return true;
-}
-
-bool ColorBuffer::blitFromCurrentReadBuffer()
-{
-    RenderThreadInfo *tInfo = getRenderThreadInfo();
-    if (!tInfo->currContext.Ptr()) {
-        // no Current context
-        return false;
-    }
-
-    //
-    // Create a temporary texture inside the current context
-    // from the blit_texture EGLImage and copy the pixels
-    // from the current read buffer to that texture
-    //
-    GLuint tmpTex;
-    GLint currTexBind;
-    if (tInfo->currContext->isGL2()) {
-        s_gl2.glGetIntegerv(GL_TEXTURE_BINDING_2D, &currTexBind);
-        s_gl2.glGenTextures(1,&tmpTex);
-        s_gl2.glBindTexture(GL_TEXTURE_2D, tmpTex);
-        s_gl2.glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_blitEGLImage);
-        s_gl2.glCopyTexImage2D(GL_TEXTURE_2D, 0, m_internalFormat,
-                               0, 0, m_width, m_height, 0);
-    }
-    else {
-        s_gl.glGetIntegerv(GL_TEXTURE_BINDING_2D, &currTexBind);
-        s_gl.glGenTextures(1,&tmpTex);
-        s_gl.glBindTexture(GL_TEXTURE_2D, tmpTex);
-        s_gl.glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_blitEGLImage);
-        s_gl.glCopyTexImage2D(GL_TEXTURE_2D, 0, m_internalFormat,
-                              0, 0, m_width, m_height, 0);
-    }
-
-
-    //
-    // Now bind the frame buffer context and blit from
-    // m_blitTex into m_tex
-    //
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (fb->bind_locked()) {
-
-        //
-        // bind FBO object which has this colorbuffer as render target
-        //
-        if (bind_fbo()) {
-
-            //
-            // save current viewport and match it to the current
-            // colorbuffer size
-            //
-            GLint vport[4];
-            s_gl.glGetIntegerv(GL_VIEWPORT, vport);
-            s_gl.glViewport(0, 0, m_width, m_height);
-
-            // render m_blitTex
-            s_gl.glBindTexture(GL_TEXTURE_2D, m_blitTex);
-            s_gl.glEnable(GL_TEXTURE_2D);
-            s_gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-            drawTexQuad();  // this will render the texture flipped
-
-            // unbind the fbo
-            s_gl.glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
-
-            // restrore previous viewport
-            s_gl.glViewport(vport[0], vport[1], vport[2], vport[3]);
-        }
-
-        // unbind from the FrameBuffer context
-        fb->unbind_locked();
-    }
-
-    //
-    // delete the temporary texture and restore the texture binding
-    // inside the current context
-    //
-    if (tInfo->currContext->isGL2()) {
-        s_gl2.glDeleteTextures(1, &tmpTex);
-        s_gl2.glBindTexture(GL_TEXTURE_2D, currTexBind);
-    }
-    else {
-        s_gl.glDeleteTextures(1, &tmpTex);
-        s_gl.glBindTexture(GL_TEXTURE_2D, currTexBind);
-    }
-
-    return true;
-}
-
-bool ColorBuffer::bindToTexture()
-{
-    if (m_eglImage) {
-        RenderThreadInfo *tInfo = getRenderThreadInfo();
-        if (tInfo->currContext.Ptr()) {
-#ifdef WITH_GLES2
-            if (tInfo->currContext->isGL2()) {
-                s_gl2.glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_eglImage);
-            }
-            else {
-                s_gl.glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_eglImage);
-            }
-#else
-            s_gl.glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, m_eglImage);
-#endif
-            return true;
-        }
-    }
-    return false;
-}
-
-bool ColorBuffer::bindToRenderbuffer()
-{
-    if (m_eglImage) {
-        RenderThreadInfo *tInfo = getRenderThreadInfo();
-        if (tInfo->currContext.Ptr()) {
-#ifdef WITH_GLES2
-            if (tInfo->currContext->isGL2()) {
-                s_gl2.glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER_OES, m_eglImage);
-            }
-            else {
-                s_gl.glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER_OES, m_eglImage);
-            }
-#else
-            s_gl.glEGLImageTargetRenderbufferStorageOES(GL_RENDERBUFFER_OES, m_eglImage);
-#endif
-            return true;
-        }
-    }
-    return false;
-}
-
-bool ColorBuffer::bind_fbo()
-{
-    if (m_fbo) {
-        // fbo already exist - just bind
-        s_gl.glBindFramebufferOES(GL_FRAMEBUFFER_OES, m_fbo);
-        return true;
-    }
-
-    s_gl.glGenFramebuffersOES(1, &m_fbo);
-    s_gl.glBindFramebufferOES(GL_FRAMEBUFFER_OES, m_fbo);
-    s_gl.glFramebufferTexture2DOES(GL_FRAMEBUFFER_OES,
-                                   GL_COLOR_ATTACHMENT0_OES,
-                                   GL_TEXTURE_2D, m_tex, 0);
-    GLenum status = s_gl.glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES);
-    if (status != GL_FRAMEBUFFER_COMPLETE_OES) {
-        s_gl.glBindFramebufferOES(GL_FRAMEBUFFER_OES, 0);
-        s_gl.glDeleteFramebuffersOES(1, &m_fbo);
-        m_fbo = 0;
-        return false;
-    }
-
-    return true;
-}
-
-bool ColorBuffer::post()
-{
-    s_gl.glBindTexture(GL_TEXTURE_2D, m_tex);
-    s_gl.glEnable(GL_TEXTURE_2D);
-    s_gl.glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-    drawTexQuad();
-
-    return true;
-}
-
-void ColorBuffer::drawTexQuad()
-{
-    GLfloat verts[] = { -1.0f, -1.0f, 0.0f,
-                         -1.0f, +1.0f, 0.0f,
-                         +1.0f, -1.0f, 0.0f,
-                         +1.0f, +1.0f, 0.0f };
-
-    GLfloat tcoords[] = { 0.0f, 1.0f,
-                           0.0f, 0.0f,
-                           1.0f, 1.0f,
-                           1.0f, 0.0f };
-
-    s_gl.glClientActiveTexture(GL_TEXTURE0);
-    s_gl.glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-    s_gl.glTexCoordPointer(2, GL_FLOAT, 0, tcoords);
-
-    s_gl.glEnableClientState(GL_VERTEX_ARRAY);
-    s_gl.glVertexPointer(3, GL_FLOAT, 0, verts);
-    s_gl.glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/ColorBuffer.h b/tools/emulator/opengl/host/libs/libOpenglRender/ColorBuffer.h
deleted file mode 100644
index 5e01dcc..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/ColorBuffer.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIBRENDER_COLORBUFFER_H
-#define _LIBRENDER_COLORBUFFER_H
-
-#include <EGL/egl.h>
-#include <EGL/eglext.h>
-#include <GLES/gl.h>
-#include <SmartPtr.h>
-
-class ColorBuffer
-{
-public:
-    static ColorBuffer *create(int p_width, int p_height,
-                               GLenum p_internalFormat);
-    ~ColorBuffer();
-
-    GLuint getGLTextureName() const { return m_tex; }
-    GLuint getWidth() const { return m_width; }
-    GLuint getHeight() const { return m_height; }
-
-    void update(GLenum p_format, GLenum p_type, void *pixels);
-    void subUpdate(int x, int y, int width, int height, GLenum p_format, GLenum p_type, void *pixels);
-    bool blitFromPbuffer(EGLSurface p_pbufSurface);
-    bool post();
-    bool bindToTexture();
-    bool bindToRenderbuffer();
-    bool blitFromCurrentReadBuffer();
-
-private:
-    ColorBuffer();
-    void drawTexQuad();
-    bool bind_fbo();  // binds a fbo which have this texture as render target
-
-private:
-    GLuint m_tex;
-    GLuint m_blitTex;
-    EGLImageKHR m_eglImage;
-    EGLImageKHR m_blitEGLImage;
-    GLuint m_width;
-    GLuint m_height;
-    GLuint m_fbo;
-    GLenum m_internalFormat;
-};
-
-typedef SmartPtr<ColorBuffer> ColorBufferPtr;
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/EGLDispatch.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/EGLDispatch.cpp
deleted file mode 100644
index 5f05caf..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/EGLDispatch.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EGLDispatch.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "osDynLibrary.h"
-
-EGLDispatch s_egl;
-
-#ifdef _WIN32
-#define DEFAULT_EGL_LIB "libEGL_translator"
-#elif defined(__APPLE__)
-#define DEFAULT_EGL_LIB "libEGL_translator.dylib"
-#else
-#define DEFAULT_EGL_LIB "libEGL_translator.so"
-#endif
-
-bool init_egl_dispatch()
-{
-
-    const char *libName = getenv("ANDROID_EGL_LIB");
-    if (!libName) libName = DEFAULT_EGL_LIB;
-
-    osUtils::dynLibrary *lib = osUtils::dynLibrary::open(libName);
-    if (!lib) {
-        printf("Failed to open %s\n", libName);
-        return NULL;
-    }
-    s_egl.eglGetError = (eglGetError_t) lib->findSymbol("eglGetError");
-    s_egl.eglGetDisplay = (eglGetDisplay_t) lib->findSymbol("eglGetDisplay");
-    s_egl.eglInitialize = (eglInitialize_t) lib->findSymbol("eglInitialize");
-    s_egl.eglTerminate = (eglTerminate_t) lib->findSymbol("eglTerminate");
-    s_egl.eglQueryString = (eglQueryString_t) lib->findSymbol("eglQueryString");
-    s_egl.eglGetConfigs = (eglGetConfigs_t) lib->findSymbol("eglGetConfigs");
-    s_egl.eglChooseConfig = (eglChooseConfig_t) lib->findSymbol("eglChooseConfig");
-    s_egl.eglGetConfigAttrib = (eglGetConfigAttrib_t) lib->findSymbol("eglGetConfigAttrib");
-    s_egl.eglCreateWindowSurface = (eglCreateWindowSurface_t) lib->findSymbol("eglCreateWindowSurface");
-    s_egl.eglCreatePbufferSurface = (eglCreatePbufferSurface_t) lib->findSymbol("eglCreatePbufferSurface");
-    s_egl.eglCreatePixmapSurface = (eglCreatePixmapSurface_t) lib->findSymbol("eglCreatePixmapSurface");
-    s_egl.eglDestroySurface = (eglDestroySurface_t) lib->findSymbol("eglDestroySurface");
-    s_egl.eglQuerySurface = (eglQuerySurface_t) lib->findSymbol("eglQuerySurface");
-    s_egl.eglBindAPI = (eglBindAPI_t) lib->findSymbol("eglBindAPI");
-    s_egl.eglQueryAPI = (eglQueryAPI_t) lib->findSymbol("eglQueryAPI");
-    s_egl.eglWaitClient = (eglWaitClient_t) lib->findSymbol("eglWaitClient");
-    s_egl.eglReleaseThread = (eglReleaseThread_t) lib->findSymbol("eglReleaseThread");
-    s_egl.eglCreatePbufferFromClientBuffer = (eglCreatePbufferFromClientBuffer_t) lib->findSymbol("eglCreatePbufferFromClientBuffer");
-    s_egl.eglSurfaceAttrib = (eglSurfaceAttrib_t) lib->findSymbol("eglSurfaceAttrib");
-    s_egl.eglBindTexImage = (eglBindTexImage_t) lib->findSymbol("eglBindTexImage");
-    s_egl.eglReleaseTexImage = (eglReleaseTexImage_t) lib->findSymbol("eglReleaseTexImage");
-    s_egl.eglSwapInterval = (eglSwapInterval_t) lib->findSymbol("eglSwapInterval");
-    s_egl.eglCreateContext = (eglCreateContext_t) lib->findSymbol("eglCreateContext");
-    s_egl.eglDestroyContext = (eglDestroyContext_t) lib->findSymbol("eglDestroyContext");
-    s_egl.eglMakeCurrent = (eglMakeCurrent_t) lib->findSymbol("eglMakeCurrent");
-    s_egl.eglGetCurrentContext = (eglGetCurrentContext_t) lib->findSymbol("eglGetCurrentContext");
-    s_egl.eglGetCurrentSurface = (eglGetCurrentSurface_t) lib->findSymbol("eglGetCurrentSurface");
-    s_egl.eglGetCurrentDisplay = (eglGetCurrentDisplay_t) lib->findSymbol("eglGetCurrentDisplay");
-    s_egl.eglQueryContext = (eglQueryContext_t) lib->findSymbol("eglQueryContext");
-    s_egl.eglWaitGL = (eglWaitGL_t) lib->findSymbol("eglWaitGL");
-    s_egl.eglWaitNative = (eglWaitNative_t) lib->findSymbol("eglWaitNative");
-    s_egl.eglSwapBuffers = (eglSwapBuffers_t) lib->findSymbol("eglSwapBuffers");
-    s_egl.eglCopyBuffers = (eglCopyBuffers_t) lib->findSymbol("eglCopyBuffers");
-    s_egl.eglGetProcAddress = (eglGetProcAddress_t) lib->findSymbol("eglGetProcAddress");
-
-#define INIT_EGL_EXT_FUNC(name) \
-    if (s_egl.eglGetProcAddress) s_egl.name = (name ## _t) s_egl.eglGetProcAddress(#name); \
-    if (!s_egl.name || !s_egl.eglGetProcAddress) s_egl.name = (name ## _t) lib->findSymbol(#name)
-
-    INIT_EGL_EXT_FUNC(eglLockSurfaceKHR);
-    INIT_EGL_EXT_FUNC(eglUnlockSurfaceKHR);
-    INIT_EGL_EXT_FUNC(eglCreateImageKHR);
-    INIT_EGL_EXT_FUNC(eglDestroyImageKHR);
-    INIT_EGL_EXT_FUNC(eglCreateSyncKHR);
-    INIT_EGL_EXT_FUNC(eglDestroySyncKHR);
-    INIT_EGL_EXT_FUNC(eglClientWaitSyncKHR);
-    INIT_EGL_EXT_FUNC(eglSignalSyncKHR);
-    INIT_EGL_EXT_FUNC(eglGetSyncAttribKHR);
-    INIT_EGL_EXT_FUNC(eglSetSwapRectangleANDROID);
-
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/EGLDispatch.h b/tools/emulator/opengl/host/libs/libOpenglRender/EGLDispatch.h
deleted file mode 100644
index f74acba..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/EGLDispatch.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _EGL_DISPATCH_H
-#define _EGL_DISPATCH_H
-
-#include "egl_proc.h"
-
-struct EGLDispatch {
-    eglGetError_t eglGetError;
-    eglGetDisplay_t eglGetDisplay;
-    eglInitialize_t eglInitialize;
-    eglTerminate_t eglTerminate;
-    eglQueryString_t eglQueryString;
-    eglGetConfigs_t eglGetConfigs;
-    eglChooseConfig_t eglChooseConfig;
-    eglGetConfigAttrib_t eglGetConfigAttrib;
-    eglCreateWindowSurface_t eglCreateWindowSurface;
-    eglCreatePbufferSurface_t eglCreatePbufferSurface;
-    eglCreatePixmapSurface_t eglCreatePixmapSurface;
-    eglDestroySurface_t eglDestroySurface;
-    eglQuerySurface_t eglQuerySurface;
-    eglBindAPI_t eglBindAPI;
-    eglQueryAPI_t eglQueryAPI;
-    eglWaitClient_t eglWaitClient;
-    eglReleaseThread_t eglReleaseThread;
-    eglCreatePbufferFromClientBuffer_t eglCreatePbufferFromClientBuffer;
-    eglSurfaceAttrib_t eglSurfaceAttrib;
-    eglBindTexImage_t eglBindTexImage;
-    eglReleaseTexImage_t eglReleaseTexImage;
-    eglSwapInterval_t eglSwapInterval;
-    eglCreateContext_t eglCreateContext;
-    eglDestroyContext_t eglDestroyContext;
-    eglMakeCurrent_t eglMakeCurrent;
-    eglGetCurrentContext_t eglGetCurrentContext;
-    eglGetCurrentSurface_t eglGetCurrentSurface;
-    eglGetCurrentDisplay_t eglGetCurrentDisplay;
-    eglQueryContext_t eglQueryContext;
-    eglWaitGL_t eglWaitGL;
-    eglWaitNative_t eglWaitNative;
-    eglSwapBuffers_t eglSwapBuffers;
-    eglCopyBuffers_t eglCopyBuffers;
-    eglGetProcAddress_t eglGetProcAddress;
-    eglLockSurfaceKHR_t eglLockSurfaceKHR;
-    eglUnlockSurfaceKHR_t eglUnlockSurfaceKHR;
-    eglCreateImageKHR_t eglCreateImageKHR;
-    eglDestroyImageKHR_t eglDestroyImageKHR;
-    eglCreateSyncKHR_t eglCreateSyncKHR;
-    eglDestroySyncKHR_t eglDestroySyncKHR;
-    eglClientWaitSyncKHR_t eglClientWaitSyncKHR;
-    eglSignalSyncKHR_t eglSignalSyncKHR;
-    eglGetSyncAttribKHR_t eglGetSyncAttribKHR;
-    eglSetSwapRectangleANDROID_t eglSetSwapRectangleANDROID;
-};
-
-bool init_egl_dispatch();
-
-extern EGLDispatch s_egl;
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/FBConfig.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/FBConfig.cpp
deleted file mode 100644
index 089f1da..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/FBConfig.cpp
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "FBConfig.h"
-#include "FrameBuffer.h"
-#include "EGLDispatch.h"
-#include <stdio.h>
-
-FBConfig **FBConfig::s_fbConfigs = NULL;
-int FBConfig::s_numConfigs = 0;
-
-const GLuint FBConfig::s_configAttribs[] = {
-    EGL_DEPTH_SIZE,     // must be first - see getDepthSize()
-    EGL_STENCIL_SIZE,   // must be second - see getStencilSize()
-    EGL_RENDERABLE_TYPE,// must be third - see getRenderableType()
-    EGL_SURFACE_TYPE,   // must be fourth - see getSurfaceType()
-    EGL_CONFIG_ID,      // must be fifth  - see chooseConfig()
-    EGL_BUFFER_SIZE,
-    EGL_ALPHA_SIZE,
-    EGL_BLUE_SIZE,
-    EGL_GREEN_SIZE,
-    EGL_RED_SIZE,
-    EGL_CONFIG_CAVEAT,
-    EGL_LEVEL,
-    EGL_MAX_PBUFFER_HEIGHT,
-    EGL_MAX_PBUFFER_PIXELS,
-    EGL_MAX_PBUFFER_WIDTH,
-    EGL_NATIVE_RENDERABLE,
-    EGL_NATIVE_VISUAL_ID,
-    EGL_NATIVE_VISUAL_TYPE,
-    EGL_SAMPLES,
-    EGL_SAMPLE_BUFFERS,
-    EGL_TRANSPARENT_TYPE,
-    EGL_TRANSPARENT_BLUE_VALUE,
-    EGL_TRANSPARENT_GREEN_VALUE,
-    EGL_TRANSPARENT_RED_VALUE,
-    EGL_BIND_TO_TEXTURE_RGB,
-    EGL_BIND_TO_TEXTURE_RGBA,
-    EGL_MIN_SWAP_INTERVAL,
-    EGL_MAX_SWAP_INTERVAL,
-    EGL_LUMINANCE_SIZE,
-    EGL_ALPHA_MASK_SIZE,
-    EGL_COLOR_BUFFER_TYPE,
-    //EGL_MATCH_NATIVE_PIXMAP,
-    EGL_CONFORMANT
-};
-
-const int FBConfig::s_numConfigAttribs = sizeof(FBConfig::s_configAttribs) / sizeof(GLuint);
-
-InitConfigStatus FBConfig::initConfigList(FrameBuffer *fb)
-{
-    InitConfigStatus ret = INIT_CONFIG_FAILED;
-
-    if (!fb) {
-        return ret;
-    }
-
-    const FrameBufferCaps &caps = fb->getCaps();
-    EGLDisplay dpy = fb->getDisplay();
-
-    if (dpy == EGL_NO_DISPLAY) {
-        fprintf(stderr,"Could not get EGL Display\n");
-        return ret;
-    }
-
-    //
-    // Query the set of configs in the EGL backend
-    //
-    EGLint nConfigs;
-    if (!s_egl.eglGetConfigs(dpy, NULL, 0, &nConfigs)) {
-        fprintf(stderr, "Could not get number of available configs\n");
-        return ret;
-    }
-    EGLConfig *configs = new EGLConfig[nConfigs];
-    s_egl.eglGetConfigs(dpy, configs, nConfigs, &nConfigs);
-
-    //
-    // copy the config attributes, filter out
-    // configs we do not want to support.
-    //
-    int j = 0;
-    s_fbConfigs = new FBConfig*[nConfigs];
-    for (int i=0; i<nConfigs; i++) {
-
-        //
-        // filter out configs which does not support pbuffers.
-        // we only support pbuffer configs since we use a pbuffer
-        // handle to bind a guest created window object.
-        //
-        EGLint surfaceType;
-        s_egl.eglGetConfigAttrib(dpy, configs[i],
-                                 EGL_SURFACE_TYPE, &surfaceType);
-        if (!(surfaceType & EGL_PBUFFER_BIT)) continue;
-
-        //
-        // Filter out not RGB configs
-        //
-        EGLint redSize, greenSize, blueSize;
-        s_egl.eglGetConfigAttrib(dpy, configs[i], EGL_RED_SIZE, &redSize);
-        s_egl.eglGetConfigAttrib(dpy, configs[i], EGL_BLUE_SIZE, &blueSize);
-        s_egl.eglGetConfigAttrib(dpy, configs[i], EGL_GREEN_SIZE, &greenSize);
-        if (redSize==0 || greenSize==0 || blueSize==0) continue;
-
-        s_fbConfigs[j++] = new FBConfig(dpy, configs[i]);
-    }
-    s_numConfigs = j;
-
-    delete[] configs;
-
-    return s_numConfigs > 0 ? INIT_CONFIG_PASSED : INIT_CONFIG_FAILED;
-}
-
-const FBConfig *FBConfig::get(int p_config)
-{
-    if (p_config >= 0 && p_config < s_numConfigs) {
-        return s_fbConfigs[p_config];
-    }
-    return NULL;
-}
-
-int FBConfig::getNumConfigs()
-{
-    return s_numConfigs;
-}
-
-void FBConfig::packConfigsInfo(GLuint *buffer)
-{
-    memcpy(buffer, s_configAttribs, s_numConfigAttribs * sizeof(GLuint));
-    for (int i=0; i<s_numConfigs; i++) {
-        memcpy(buffer+(i+1)*s_numConfigAttribs,
-               s_fbConfigs[i]->m_attribValues,
-               s_numConfigAttribs * sizeof(GLuint));
-    }
-}
-
-int FBConfig::chooseConfig(FrameBuffer *fb, EGLint * attribs, uint32_t * configs, uint32_t configs_size)
-{
-    EGLDisplay dpy = fb->getDisplay();
-    int ret = 0;
-
-    if (dpy == EGL_NO_DISPLAY) {
-        fprintf(stderr,"Could not get EGL Display\n");
-        return ret;
-    }
-    //
-    // Query the num of configs in the EGL backend
-    //
-    EGLint nConfigs;
-    if (!s_egl.eglGetConfigs(dpy, NULL, 0, &nConfigs)) {
-        fprintf(stderr, "Could not get number of available configs\n");
-        return ret;
-    }
-    //
-    // Query the max matching configs in the backend
-    //
-    EGLConfig *matchedConfigs = new EGLConfig[nConfigs];
-
-    //
-    //Until we have EGLImage implementation, we force pbuf configs
-    //
-    bool needToAddPbufAttr = true;
-    int attribCnt = 0;
-    EGLint * attrib_p = attribs;
-    if (attribs) {
-        while (attrib_p[0] != EGL_NONE) {
-            if (attrib_p[0] == EGL_SURFACE_TYPE) {
-                attrib_p[1] = EGL_PBUFFER_BIT; //replace whatever was there before
-                needToAddPbufAttr = false;
-            }
-            attrib_p += 2;
-            attribCnt += 2;
-        }
-    }
-    EGLint * newAttribs = new EGLint[attribCnt + 1 + ((needToAddPbufAttr) ? 2 : 0)];
-    attrib_p = newAttribs;
-    if (needToAddPbufAttr) {
-        *(attrib_p++) = EGL_SURFACE_TYPE;
-        *(attrib_p++) = EGL_PBUFFER_BIT;
-    }
-    memcpy(attrib_p, attribs, attribCnt*sizeof(EGLint));
-    attrib_p += attribCnt;
-    *attrib_p = EGL_NONE;
-
-#if 0
-    if (newAttribs) {
-        EGLint * attrib_p = newAttribs;
-        while (attrib_p[0] != EGL_NONE) {
-            DBG("attr: 0x%x %d, ", attrib_p[0], attrib_p[1]);
-            attrib_p += 2;
-        }
-    }
-#endif
-
-    s_egl.eglChooseConfig(dpy, newAttribs, matchedConfigs, nConfigs, &nConfigs);
-
-    delete[] newAttribs;
-
-    //
-    // From all matchedConfigs we need only config_size FBConfigs, so we intersect both lists compating the CONFIG_ID attribute
-    //
-    uint32_t nVerifiedCfgs = 0;
-    for (int matchedIdx=0; matchedIdx<nConfigs; matchedIdx++) {
-        if ((configs != NULL) && (configs_size > 0) && (nVerifiedCfgs >= configs_size)) break; //We have enouhgt configs
-        int sCfgId;
-        s_egl.eglGetConfigAttrib(dpy, matchedConfigs[matchedIdx], EGL_CONFIG_ID, &sCfgId);
-        for (int fbIdx=0; fbIdx<s_numConfigs; fbIdx++) {
-            int dCfgId = s_fbConfigs[fbIdx]->m_attribValues[4]; //CONFIG_ID
-            if (sCfgId == dCfgId) {
-                //This config matches the requested attributes and filtered into fbConfigs, so we're happy with it
-                if (configs && nVerifiedCfgs < configs_size) {
-                    configs[nVerifiedCfgs] = fbIdx;
-                }
-                nVerifiedCfgs++;
-                break;
-            }
-        }
-    }
-
-    delete[] matchedConfigs;
-
-    return nVerifiedCfgs;
-}
-
-FBConfig::FBConfig(EGLDisplay p_eglDpy, EGLConfig p_eglCfg)
-{
-    m_eglConfig = p_eglCfg;
-    m_attribValues = new GLint[s_numConfigAttribs];
-    for (int i=0; i<s_numConfigAttribs; i++) {
-        m_attribValues[i] = 0;
-        s_egl.eglGetConfigAttrib(p_eglDpy, p_eglCfg, s_configAttribs[i], &m_attribValues[i]);
-
-        //
-        // All exported configs supports android native window rendering
-        //
-        if (s_configAttribs[i] == EGL_SURFACE_TYPE) {
-            m_attribValues[i] |= EGL_WINDOW_BIT;
-        }
-    }
-}
-
-FBConfig::~FBConfig()
-{
-    if (m_attribValues) {
-        delete[] m_attribValues;
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/FBConfig.h b/tools/emulator/opengl/host/libs/libOpenglRender/FBConfig.h
deleted file mode 100644
index 6388549..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/FBConfig.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIBRENDER_FBCONFIG_H
-#define _LIBRENDER_FBCONFIG_H
-
-#include <EGL/egl.h>
-#include <GLES/gl.h>
-
-class FrameBuffer;
-
-enum InitConfigStatus {
-    INIT_CONFIG_FAILED = 0,
-    INIT_CONFIG_PASSED = 1
-};
-
-class FBConfig
-{
-public:
-    static InitConfigStatus initConfigList(FrameBuffer *fb);
-    static const FBConfig *get(int p_config);
-    static int getNumConfigs();
-    static int getNumAttribs() { return s_numConfigAttribs; }
-    static void packConfigsInfo(GLuint *buffer);
-    static int chooseConfig(FrameBuffer *fb, EGLint * attribs, uint32_t * configs, uint32_t configs_size);
-    ~FBConfig();
-
-    EGLConfig getEGLConfig() const { return m_eglConfig; }
-    GLuint  getDepthSize() const { return (m_attribValues ? m_attribValues[0] : 0); }
-    GLuint  getStencilSize() const { return (m_attribValues ? m_attribValues[1] : 0); }
-    GLuint  getRenderableType() const { return (m_attribValues ? m_attribValues[2] : 0); }
-    GLuint getSurfaceType() const { return (m_attribValues ? m_attribValues[3] : 0); }
-
-private:
-    FBConfig(EGLDisplay p_eglDpy, EGLConfig p_eglCfg);
-
-private:
-    static FBConfig **s_fbConfigs;
-    static int s_numConfigs;
-    static const int s_numConfigAttribs;
-    static const GLuint s_configAttribs[];
-
-private:
-    EGLConfig m_eglConfig;
-    GLint *m_attribValues;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/FrameBuffer.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/FrameBuffer.cpp
deleted file mode 100644
index ef38bec..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/FrameBuffer.cpp
+++ /dev/null
@@ -1,824 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "FrameBuffer.h"
-#include "NativeSubWindow.h"
-#include "FBConfig.h"
-#include "EGLDispatch.h"
-#include "GLDispatch.h"
-#include "GL2Dispatch.h"
-#include "ThreadInfo.h"
-#include <stdio.h>
-#include "TimeUtils.h"
-
-FrameBuffer *FrameBuffer::s_theFrameBuffer = NULL;
-HandleType FrameBuffer::s_nextHandle = 0;
-
-#ifdef WITH_GLES2
-static const char *getGLES2ExtensionString(EGLDisplay p_dpy)
-{
-    EGLConfig config;
-    EGLSurface surface;
-
-    GLint configAttribs[] = {
-        EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT,
-        EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
-        EGL_NONE
-    };
-
-    int n;
-    if (!s_egl.eglChooseConfig(p_dpy, configAttribs,
-                               &config, 1, &n)) {
-        return NULL;
-    }
-
-    EGLint pbufAttribs[] = {
-        EGL_WIDTH, 1,
-        EGL_HEIGHT, 1,
-        EGL_NONE
-    };
-
-    surface = s_egl.eglCreatePbufferSurface(p_dpy, config, pbufAttribs);
-    if (surface == EGL_NO_SURFACE) {
-        return NULL;
-    }
-
-    GLint gl2ContextAttribs[] = {
-        EGL_CONTEXT_CLIENT_VERSION, 2,
-        EGL_NONE
-    };
-
-    EGLContext ctx = s_egl.eglCreateContext(p_dpy, config,
-                                            EGL_NO_CONTEXT,
-                                            gl2ContextAttribs);
-    if (ctx == EGL_NO_CONTEXT) {
-        s_egl.eglDestroySurface(p_dpy, surface);
-        return NULL;
-    }
-
-    if (!s_egl.eglMakeCurrent(p_dpy, surface, surface, ctx)) {
-        s_egl.eglDestroySurface(p_dpy, surface);
-        s_egl.eglDestroyContext(p_dpy, ctx);
-        return NULL;
-    }
-
-    const char *extString = (const char *)s_gl2.glGetString(GL_EXTENSIONS);
-    if (!extString) {
-        extString = "";
-    }
-
-    s_egl.eglMakeCurrent(p_dpy, NULL, NULL, NULL);
-    s_egl.eglDestroyContext(p_dpy, ctx);
-    s_egl.eglDestroySurface(p_dpy, surface);
-
-    return extString;
-}
-#endif
-
-void FrameBuffer::finalize(){
-    if(s_theFrameBuffer){
-        s_theFrameBuffer->removeSubWindow();
-        s_theFrameBuffer->m_colorbuffers.clear();
-        s_theFrameBuffer->m_windows.clear();
-        s_theFrameBuffer->m_contexts.clear();
-        s_egl.eglMakeCurrent(s_theFrameBuffer->m_eglDisplay, NULL, NULL, NULL);
-        s_egl.eglDestroyContext(s_theFrameBuffer->m_eglDisplay,s_theFrameBuffer->m_eglContext);
-        s_egl.eglDestroyContext(s_theFrameBuffer->m_eglDisplay,s_theFrameBuffer->m_pbufContext);
-        s_egl.eglDestroySurface(s_theFrameBuffer->m_eglDisplay,s_theFrameBuffer->m_pbufSurface);
-        s_theFrameBuffer = NULL;
-    }
-}
-
-bool FrameBuffer::initialize(int width, int height)
-{
-    if (s_theFrameBuffer != NULL) {
-        return true;
-    }
-
-    //
-    // allocate space for the FrameBuffer object
-    //
-    FrameBuffer *fb = new FrameBuffer(width, height);
-    if (!fb) {
-        ERR("Failed to create fb\n");
-        return false;
-    }
-
-#ifdef WITH_GLES2
-    //
-    // Try to load GLES2 Plugin, not mandatory
-    //
-    if (getenv("ANDROID_NO_GLES2")) {
-        fb->m_caps.hasGL2 = false;
-    }
-    else {
-        fb->m_caps.hasGL2 = s_gl2_enabled;
-    }
-#else
-    fb->m_caps.hasGL2 = false;
-#endif
-
-    //
-    // Initialize backend EGL display
-    //
-    fb->m_eglDisplay = s_egl.eglGetDisplay(EGL_DEFAULT_DISPLAY);
-    if (fb->m_eglDisplay == EGL_NO_DISPLAY) {
-        ERR("Failed to Initialize backend EGL display\n");
-        delete fb;
-        return false;
-    }
-
-    if (!s_egl.eglInitialize(fb->m_eglDisplay, &fb->m_caps.eglMajor, &fb->m_caps.eglMinor)) {
-        ERR("Failed to eglInitialize\n");
-        delete fb;
-        return false;
-    }
-
-    DBG("egl: %d %d\n", fb->m_caps.eglMajor, fb->m_caps.eglMinor);
-    s_egl.eglBindAPI(EGL_OPENGL_ES_API);
-
-    //
-    // if GLES2 plugin has loaded - try to make GLES2 context and
-    // get GLES2 extension string
-    //
-    const char *gl2Extensions = NULL;
-#ifdef WITH_GLES2
-    if (fb->m_caps.hasGL2) {
-        gl2Extensions = getGLES2ExtensionString(fb->m_eglDisplay);
-        if (!gl2Extensions) {
-            // Could not create GLES2 context - drop GL2 capability
-            fb->m_caps.hasGL2 = false;
-        }
-    }
-#endif
-
-    //
-    // Create EGL context for framebuffer post rendering.
-    //
-#if 0
-    GLint configAttribs[] = {
-        EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
-        EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
-        EGL_NONE
-    };
-#else
-    GLint configAttribs[] = {
-        EGL_RED_SIZE, 1,
-        EGL_GREEN_SIZE, 1,
-        EGL_BLUE_SIZE, 1,
-        EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT,
-        EGL_NONE
-    };
-#endif
-
-    int n;
-    if (!s_egl.eglChooseConfig(fb->m_eglDisplay, configAttribs,
-                               &fb->m_eglConfig, 1, &n)) {
-        ERR("Failed on eglChooseConfig\n");
-        delete fb;
-        return false;
-    }
-
-    GLint glContextAttribs[] = {
-        EGL_CONTEXT_CLIENT_VERSION, 1,
-        EGL_NONE
-    };
-
-    fb->m_eglContext = s_egl.eglCreateContext(fb->m_eglDisplay, fb->m_eglConfig,
-                                              EGL_NO_CONTEXT,
-                                              glContextAttribs);
-    if (fb->m_eglContext == EGL_NO_CONTEXT) {
-        printf("Failed to create Context 0x%x\n", s_egl.eglGetError());
-        delete fb;
-        return false;
-    }
-
-    //
-    // Create another context which shares with the eglContext to be used
-    // when we bind the pbuffer. That prevent switching drawable binding
-    // back and forth on framebuffer context.
-    // The main purpose of it is to solve a "blanking" behaviour we see on
-    // on Mac platform when switching binded drawable for a context however
-    // it is more efficient on other platforms as well.
-    //
-    fb->m_pbufContext = s_egl.eglCreateContext(fb->m_eglDisplay, fb->m_eglConfig,
-                                               fb->m_eglContext,
-                                               glContextAttribs);
-    if (fb->m_pbufContext == EGL_NO_CONTEXT) {
-        printf("Failed to create Pbuffer Context 0x%x\n", s_egl.eglGetError());
-        delete fb;
-        return false;
-    }
-
-    //
-    // create a 1x1 pbuffer surface which will be used for binding
-    // the FB context.
-    // The FB output will go to a subwindow, if one exist.
-    //
-    EGLint pbufAttribs[] = {
-        EGL_WIDTH, 1,
-        EGL_HEIGHT, 1,
-        EGL_NONE
-    };
-
-    fb->m_pbufSurface = s_egl.eglCreatePbufferSurface(fb->m_eglDisplay,
-                                                  fb->m_eglConfig,
-                                                  pbufAttribs);
-    if (fb->m_pbufSurface == EGL_NO_SURFACE) {
-        printf("Failed to create pbuf surface for FB 0x%x\n", s_egl.eglGetError());
-        delete fb;
-        return false;
-    }
-
-    // Make the context current
-    if (!fb->bind_locked()) {
-        ERR("Failed to make current\n");
-        delete fb;
-        return false;
-    }
-
-    //
-    // Initilize framebuffer capabilities
-    //
-    const char *glExtensions = (const char *)s_gl.glGetString(GL_EXTENSIONS);
-    bool has_gl_oes_image = false;
-    if (glExtensions) {
-        has_gl_oes_image = strstr(glExtensions, "GL_OES_EGL_image") != NULL;
-    }
-
-    if (fb->m_caps.hasGL2 && has_gl_oes_image) {
-        has_gl_oes_image &= (strstr(gl2Extensions, "GL_OES_EGL_image") != NULL);
-    }
-
-    const char *eglExtensions = s_egl.eglQueryString(fb->m_eglDisplay,
-                                                     EGL_EXTENSIONS);
-
-    if (eglExtensions && has_gl_oes_image) {
-        fb->m_caps.has_eglimage_texture_2d =
-             strstr(eglExtensions, "EGL_KHR_gl_texture_2D_image") != NULL;
-        fb->m_caps.has_eglimage_renderbuffer =
-             strstr(eglExtensions, "EGL_KHR_gl_renderbuffer_image") != NULL;
-    }
-    else {
-        fb->m_caps.has_eglimage_texture_2d = false;
-        fb->m_caps.has_eglimage_renderbuffer = false;
-    }
-
-    //
-    // Fail initialization if not all of the following extensions
-    // exist:
-    //     EGL_KHR_gl_texture_2d_image
-    //     GL_OES_EGL_IMAGE (by both GLES implementations [1 and 2])
-    //
-    if (!fb->m_caps.has_eglimage_texture_2d) {
-        ERR("Failed: Missing egl_image related extension(s)\n");
-        delete fb;
-        return false;
-    }
-
-    //
-    // Initialize set of configs
-    //
-    InitConfigStatus configStatus = FBConfig::initConfigList(fb);
-    if (configStatus == INIT_CONFIG_FAILED) {
-        ERR("Failed: Initialize set of configs\n");
-        delete fb;
-        return false;
-    }
-
-    //
-    // Check that we have config for each GLES and GLES2
-    //
-    int nConfigs = FBConfig::getNumConfigs();
-    int nGLConfigs = 0;
-    int nGL2Configs = 0;
-    for (int i=0; i<nConfigs; i++) {
-        GLint rtype = FBConfig::get(i)->getRenderableType();
-        if (0 != (rtype & EGL_OPENGL_ES_BIT)) {
-            nGLConfigs++;
-        }
-        if (0 != (rtype & EGL_OPENGL_ES2_BIT)) {
-            nGL2Configs++;
-        }
-    }
-
-    //
-    // Fail initialization if no GLES configs exist
-    //
-    if (nGLConfigs == 0) {
-        delete fb;
-        return false;
-    }
-
-    //
-    // If no GLES2 configs exist - not GLES2 capability
-    //
-    if (nGL2Configs == 0) {
-        fb->m_caps.hasGL2 = false;
-    }
-
-    //
-    // Initialize some GL state in the pbuffer context
-    //
-    fb->initGLState();
-
-    // release the FB context
-    fb->unbind_locked();
-
-    //
-    // Keep the singleton framebuffer pointer
-    //
-    s_theFrameBuffer = fb;
-    return true;
-}
-
-FrameBuffer::FrameBuffer(int p_width, int p_height) :
-    m_width(p_width),
-    m_height(p_height),
-    m_eglDisplay(EGL_NO_DISPLAY),
-    m_eglSurface(EGL_NO_SURFACE),
-    m_eglContext(EGL_NO_CONTEXT),
-    m_pbufContext(EGL_NO_CONTEXT),
-    m_prevContext(EGL_NO_CONTEXT),
-    m_prevReadSurf(EGL_NO_SURFACE),
-    m_prevDrawSurf(EGL_NO_SURFACE),
-    m_subWin(NULL),
-    m_subWinDisplay(NULL),
-    m_lastPostedColorBuffer(0),
-    m_zRot(0.0f),
-    m_eglContextInitialized(false),
-    m_statsNumFrames(0),
-    m_statsStartTime(0LL)
-{
-    m_fpsStats = getenv("SHOW_FPS_STATS") != NULL;
-}
-
-FrameBuffer::~FrameBuffer()
-{
-}
-
-bool FrameBuffer::setupSubWindow(FBNativeWindowType p_window,
-                                  int p_x, int p_y,
-                                  int p_width, int p_height, float zRot)
-{
-    bool success = false;
-
-    if (s_theFrameBuffer) {
-        s_theFrameBuffer->m_lock.lock();
-        FrameBuffer *fb = s_theFrameBuffer;
-        if (!fb->m_subWin) {
-
-            // create native subwindow for FB display output
-            fb->m_subWin = createSubWindow(p_window,
-                                           &fb->m_subWinDisplay,
-                                           p_x,p_y,p_width,p_height);
-            if (fb->m_subWin) {
-                fb->m_nativeWindow = p_window;
-
-                // create EGLSurface from the generated subwindow
-                fb->m_eglSurface = s_egl.eglCreateWindowSurface(fb->m_eglDisplay, 
-                                                    fb->m_eglConfig,
-                                                    fb->m_subWin,
-                                                    NULL);
-
-                if (fb->m_eglSurface == EGL_NO_SURFACE) {
-                    ERR("Failed to create surface\n");
-                    destroySubWindow(fb->m_subWinDisplay, fb->m_subWin);
-                    fb->m_subWin = NULL;
-                }
-                else if (fb->bindSubwin_locked()) {
-                    // Subwin creation was successfull,
-                    // update viewport and z rotation and draw
-                    // the last posted color buffer.
-                    s_gl.glViewport(0, 0, p_width, p_height);
-                    fb->m_zRot = zRot;
-                    fb->post( fb->m_lastPostedColorBuffer, false );
-                    fb->unbind_locked();
-                    success = true;
-                }
-             }
-        }
-        s_theFrameBuffer->m_lock.unlock();
-     }
-
-    return success;
-}
-
-bool FrameBuffer::removeSubWindow()
-{
-    bool removed = false;
-    if (s_theFrameBuffer) {
-        s_theFrameBuffer->m_lock.lock();
-        if (s_theFrameBuffer->m_subWin) {
-            s_egl.eglMakeCurrent(s_theFrameBuffer->m_eglDisplay, NULL, NULL, NULL);
-            s_egl.eglDestroySurface(s_theFrameBuffer->m_eglDisplay,
-                                    s_theFrameBuffer->m_eglSurface);
-            destroySubWindow(s_theFrameBuffer->m_subWinDisplay,
-                             s_theFrameBuffer->m_subWin);
-
-            s_theFrameBuffer->m_eglSurface = EGL_NO_SURFACE;
-            s_theFrameBuffer->m_subWin = NULL;
-            removed = true;
-        }
-        s_theFrameBuffer->m_lock.unlock();
-    }
-    return removed;
-}
-
-HandleType FrameBuffer::genHandle()
-{
-    HandleType id;
-    do {
-        id = ++s_nextHandle;
-    } while( id == 0 ||
-             m_contexts.find(id) != m_contexts.end() ||
-             m_windows.find(id) != m_windows.end() );
-
-    return id;
-}
-
-HandleType FrameBuffer::createColorBuffer(int p_width, int p_height,
-                                          GLenum p_internalFormat)
-{
-    android::Mutex::Autolock mutex(m_lock);
-    HandleType ret = 0;
-
-    ColorBufferPtr cb( ColorBuffer::create(p_width, p_height, p_internalFormat) );
-    if (cb.Ptr() != NULL) {
-        ret = genHandle();
-        m_colorbuffers[ret] = cb;
-    }
-    return ret;
-}
-
-HandleType FrameBuffer::createRenderContext(int p_config, HandleType p_share,
-                                            bool p_isGL2)
-{
-    android::Mutex::Autolock mutex(m_lock);
-    HandleType ret = 0;
-
-    RenderContextPtr share(NULL);
-    if (p_share != 0) {
-        RenderContextMap::iterator s( m_contexts.find(p_share) );
-        if (s == m_contexts.end()) {
-            return 0;
-        }
-        share = (*s).second;
-    }
-
-    RenderContextPtr rctx( RenderContext::create(p_config, share, p_isGL2) );
-    if (rctx.Ptr() != NULL) {
-        ret = genHandle();
-        m_contexts[ret] = rctx;
-    }
-    return ret;
-}
-
-HandleType FrameBuffer::createWindowSurface(int p_config, int p_width, int p_height)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    HandleType ret = 0;
-    WindowSurfacePtr win( WindowSurface::create(p_config, p_width, p_height) );
-    if (win.Ptr() != NULL) {
-        ret = genHandle();
-        m_windows[ret] = win;
-    }
-
-    return ret;
-}
-
-void FrameBuffer::DestroyRenderContext(HandleType p_context)
-{
-    android::Mutex::Autolock mutex(m_lock);
-    m_contexts.erase(p_context);
-}
-
-void FrameBuffer::DestroyWindowSurface(HandleType p_surface)
-{
-    android::Mutex::Autolock mutex(m_lock);
-    m_windows.erase(p_surface);
-}
-
-void FrameBuffer::DestroyColorBuffer(HandleType p_colorbuffer)
-{
-    android::Mutex::Autolock mutex(m_lock);
-    m_colorbuffers.erase(p_colorbuffer);
-}
-
-bool FrameBuffer::flushWindowSurfaceColorBuffer(HandleType p_surface)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    WindowSurfaceMap::iterator w( m_windows.find(p_surface) );
-    if (w == m_windows.end()) {
-        // bad surface handle
-        return false;
-    }
-
-    (*w).second->flushColorBuffer();
-
-    return true;
-}
-
-bool FrameBuffer::setWindowSurfaceColorBuffer(HandleType p_surface,
-                                              HandleType p_colorbuffer)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    WindowSurfaceMap::iterator w( m_windows.find(p_surface) );
-    if (w == m_windows.end()) {
-        // bad surface handle
-        return false;
-    }
-
-    ColorBufferMap::iterator c( m_colorbuffers.find(p_colorbuffer) );
-    if (c == m_colorbuffers.end()) {
-        // bad colorbuffer handle
-        return false;
-    }
-
-    (*w).second->setColorBuffer( (*c).second );
-
-    return true;
-}
-
-bool FrameBuffer::updateColorBuffer(HandleType p_colorbuffer,
-                                    int x, int y, int width, int height,
-                                    GLenum format, GLenum type, void *pixels)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    ColorBufferMap::iterator c( m_colorbuffers.find(p_colorbuffer) );
-    if (c == m_colorbuffers.end()) {
-        // bad colorbuffer handle
-        return false;
-    }
-
-    (*c).second->subUpdate(x, y, width, height, format, type, pixels);
-
-    return true;
-}
-
-bool FrameBuffer::bindColorBufferToTexture(HandleType p_colorbuffer)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    ColorBufferMap::iterator c( m_colorbuffers.find(p_colorbuffer) );
-    if (c == m_colorbuffers.end()) {
-        // bad colorbuffer handle
-        return false;
-    }
-
-    return (*c).second->bindToTexture();
-}
-
-bool FrameBuffer::bindColorBufferToRenderbuffer(HandleType p_colorbuffer)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    ColorBufferMap::iterator c( m_colorbuffers.find(p_colorbuffer) );
-    if (c == m_colorbuffers.end()) {
-        // bad colorbuffer handle
-        return false;
-    }
-
-    return (*c).second->bindToRenderbuffer();
-}
-
-bool FrameBuffer::bindContext(HandleType p_context,
-                              HandleType p_drawSurface,
-                              HandleType p_readSurface)
-{
-    android::Mutex::Autolock mutex(m_lock);
-
-    WindowSurfacePtr draw(NULL), read(NULL);
-    RenderContextPtr ctx(NULL);
-
-    //
-    // if this is not an unbind operation - make sure all handles are good
-    //
-    if (p_context || p_drawSurface || p_readSurface) {
-        RenderContextMap::iterator r( m_contexts.find(p_context) );
-        if (r == m_contexts.end()) {
-            // bad context handle
-            return false;
-        }
-
-        ctx = (*r).second;
-        WindowSurfaceMap::iterator w( m_windows.find(p_drawSurface) );
-        if (w == m_windows.end()) {
-            // bad surface handle
-            return false;
-        }
-        draw = (*w).second;
-
-        if (p_readSurface != p_drawSurface) {
-            WindowSurfaceMap::iterator w( m_windows.find(p_readSurface) );
-            if (w == m_windows.end()) {
-                // bad surface handle
-                return false;
-            }
-            read = (*w).second;
-        }
-        else {
-            read = draw;
-        }
-    }
-
-    if (!s_egl.eglMakeCurrent(m_eglDisplay,
-                              draw ? draw->getEGLSurface() : EGL_NO_SURFACE,
-                              read ? read->getEGLSurface() : EGL_NO_SURFACE,
-                              ctx ? ctx->getEGLContext() : EGL_NO_CONTEXT)) {
-        // MakeCurrent failed
-        return false;
-    }
-
-    //
-    // Bind the surface(s) to the context
-    //
-    RenderThreadInfo *tinfo = getRenderThreadInfo();
-    if (draw.Ptr() == NULL && read.Ptr() == NULL) {
-        // if this is an unbind operation - make sure the current bound
-        // surfaces get unbound from the context.
-        draw = tinfo->currDrawSurf;
-        read = tinfo->currReadSurf;
-    }
-
-    if (draw.Ptr() != NULL && read.Ptr() != NULL) {
-        if (p_readSurface != p_drawSurface) {
-            draw->bind( ctx, SURFACE_BIND_DRAW );
-            read->bind( ctx, SURFACE_BIND_READ );
-        }
-        else {
-            draw->bind( ctx, SURFACE_BIND_READDRAW );
-        }
-    }
-
-    //
-    // update thread info with current bound context
-    //
-    tinfo->currContext = ctx;
-    tinfo->currDrawSurf = draw;
-    tinfo->currReadSurf = read;
-    if (ctx) {
-        if (ctx->isGL2()) tinfo->m_gl2Dec.setContextData(&ctx->decoderContextData());
-        else tinfo->m_glDec.setContextData(&ctx->decoderContextData());
-    }
-    else {
-        tinfo->m_glDec.setContextData(NULL);
-        tinfo->m_gl2Dec.setContextData(NULL);
-    }
-    return true;
-}
-
-//
-// The framebuffer lock should be held when calling this function !
-//
-bool FrameBuffer::bind_locked()
-{
-    EGLContext prevContext = s_egl.eglGetCurrentContext();
-    EGLSurface prevReadSurf = s_egl.eglGetCurrentSurface(EGL_READ);
-    EGLSurface prevDrawSurf = s_egl.eglGetCurrentSurface(EGL_DRAW);
-
-    if (!s_egl.eglMakeCurrent(m_eglDisplay, m_pbufSurface,
-                              m_pbufSurface, m_pbufContext)) {
-        ERR("eglMakeCurrent failed\n");
-        return false;
-    }
-
-    m_prevContext = prevContext;
-    m_prevReadSurf = prevReadSurf;
-    m_prevDrawSurf = prevDrawSurf;
-    return true;
-}
-
-bool FrameBuffer::bindSubwin_locked()
-{
-    EGLContext prevContext = s_egl.eglGetCurrentContext();
-    EGLSurface prevReadSurf = s_egl.eglGetCurrentSurface(EGL_READ);
-    EGLSurface prevDrawSurf = s_egl.eglGetCurrentSurface(EGL_DRAW);
-
-    if (!s_egl.eglMakeCurrent(m_eglDisplay, m_eglSurface,
-                              m_eglSurface, m_eglContext)) {
-        ERR("eglMakeCurrent failed\n");
-        return false;
-    }
-
-    //
-    // initialize GL state in eglContext if not yet initilaized
-    //
-    if (!m_eglContextInitialized) {
-        initGLState();
-        m_eglContextInitialized = true;
-    }
-
-    m_prevContext = prevContext;
-    m_prevReadSurf = prevReadSurf;
-    m_prevDrawSurf = prevDrawSurf;
-    return true;
-}
-
-bool FrameBuffer::unbind_locked()
-{
-    if (!s_egl.eglMakeCurrent(m_eglDisplay, m_prevDrawSurf,
-                              m_prevReadSurf, m_prevContext)) {
-        return false;
-    }
-
-    m_prevContext = EGL_NO_CONTEXT;
-    m_prevReadSurf = EGL_NO_SURFACE;
-    m_prevDrawSurf = EGL_NO_SURFACE;
-    return true;
-}
-
-bool FrameBuffer::post(HandleType p_colorbuffer, bool needLock)
-{
-    if (needLock) m_lock.lock();
-    bool ret = false;
-
-    ColorBufferMap::iterator c( m_colorbuffers.find(p_colorbuffer) );
-    if (c != m_colorbuffers.end()) {
-
-        m_lastPostedColorBuffer = p_colorbuffer;
-        if (!m_subWin) {
-            // no subwindow created for the FB output
-            // cannot post the colorbuffer
-            if (needLock) m_lock.unlock();
-            return ret;
-        }
-
-
-        // bind the subwindow eglSurface
-        if (!bindSubwin_locked()) {
-            ERR("FrameBuffer::post eglMakeCurrent failed\n");
-            if (needLock) m_lock.unlock();
-            return false;
-        }
-
-        //
-        // render the color buffer to the window
-        //
-        s_gl.glPushMatrix();
-        s_gl.glRotatef(m_zRot, 0.0f, 0.0f, 1.0f);
-        if (m_zRot != 0.0f) {
-            s_gl.glClear(GL_COLOR_BUFFER_BIT);
-        }
-        ret = (*c).second->post();
-        s_gl.glPopMatrix();
-
-        if (ret) {
-
-            //
-            // output FPS statistics
-            //
-            if (m_fpsStats) {
-                long long currTime = GetCurrentTimeMS();
-                m_statsNumFrames++;
-                if (currTime - m_statsStartTime >= 1000) {
-                    float dt = (float)(currTime - m_statsStartTime) / 1000.0f;
-                    printf("FPS: %5.3f\n", (float)m_statsNumFrames / dt);
-                    m_statsStartTime = currTime;
-                    m_statsNumFrames = 0;
-                }
-            }
-
-            s_egl.eglSwapBuffers(m_eglDisplay, m_eglSurface);
-        }
- 
-        // restore previous binding
-        unbind_locked();
-    }
-
-    if (needLock) m_lock.unlock();
-    return ret;
-}
-
-bool FrameBuffer::repost()
-{
-    if (m_lastPostedColorBuffer) {
-        return post( m_lastPostedColorBuffer );
-    }
-    return false;
-}
-
-void FrameBuffer::initGLState()
-{
-    s_gl.glMatrixMode(GL_PROJECTION);
-    s_gl.glLoadIdentity();
-    s_gl.glOrthof(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
-    s_gl.glMatrixMode(GL_MODELVIEW);
-    s_gl.glLoadIdentity();
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/FrameBuffer.h b/tools/emulator/opengl/host/libs/libOpenglRender/FrameBuffer.h
deleted file mode 100644
index 4725317..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/FrameBuffer.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIBRENDER_FRAMEBUFFER_H
-#define _LIBRENDER_FRAMEBUFFER_H
-
-#include "libOpenglRender/render_api.h"
-#include "ColorBuffer.h"
-#include "RenderContext.h"
-#include "WindowSurface.h"
-#include <utils/threads.h>
-#include <map>
-#include <EGL/egl.h>
-#include <stdint.h>
-
-typedef uint32_t HandleType;
-typedef std::map<HandleType, RenderContextPtr> RenderContextMap;
-typedef std::map<HandleType, WindowSurfacePtr> WindowSurfaceMap;
-typedef std::map<HandleType, ColorBufferPtr> ColorBufferMap;
-
-struct FrameBufferCaps
-{
-    bool hasGL2;
-    bool has_eglimage_texture_2d;
-    bool has_eglimage_renderbuffer;
-    EGLint eglMajor;
-    EGLint eglMinor;
-};
-
-class FrameBuffer
-{
-public:
-    static bool initialize(int width, int height);
-    static bool setupSubWindow(FBNativeWindowType p_window,
-                                int x, int y,
-                                int width, int height, float zRot);
-    static bool removeSubWindow();
-    static void finalize();
-    static FrameBuffer *getFB() { return s_theFrameBuffer; }
-
-    const FrameBufferCaps &getCaps() const { return m_caps; }
-
-    int getWidth() const { return m_width; }
-    int getHeight() const { return m_height; }
-
-    HandleType createRenderContext(int p_config, HandleType p_share, bool p_isGL2 = false);
-    HandleType createWindowSurface(int p_config, int p_width, int p_height);
-    HandleType createColorBuffer(int p_width, int p_height, GLenum p_internalFormat);
-    void DestroyRenderContext(HandleType p_context);
-    void DestroyWindowSurface(HandleType p_surface);
-    void DestroyColorBuffer(HandleType p_colorbuffer);
-
-    bool  bindContext(HandleType p_context, HandleType p_drawSurface, HandleType p_readSurface);
-    bool  setWindowSurfaceColorBuffer(HandleType p_surface, HandleType p_colorbuffer);
-    bool  flushWindowSurfaceColorBuffer(HandleType p_surface);
-    bool  bindColorBufferToTexture(HandleType p_colorbuffer);
-    bool  bindColorBufferToRenderbuffer(HandleType p_colorbuffer);
-    bool updateColorBuffer(HandleType p_colorbuffer,
-                           int x, int y, int width, int height,
-                           GLenum format, GLenum type, void *pixels);
-
-    bool post(HandleType p_colorbuffer, bool needLock = true);
-    bool repost();
-
-    EGLDisplay getDisplay() const { return m_eglDisplay; }
-    EGLNativeWindowType getSubWindow() const { return m_subWin; }
-    bool bind_locked();
-    bool unbind_locked();
-
-    void setDisplayRotation(float zRot) {
-        m_zRot = zRot;
-        repost();
-    }
-
-private:
-    FrameBuffer(int p_width, int p_height);
-    ~FrameBuffer();
-    HandleType genHandle();
-    bool bindSubwin_locked();
-    void initGLState();
-
-private:
-    static FrameBuffer *s_theFrameBuffer;
-    static HandleType s_nextHandle;
-    int m_x;
-    int m_y;
-    int m_width;
-    int m_height;
-    android::Mutex m_lock;
-    FBNativeWindowType m_nativeWindow;
-    FrameBufferCaps m_caps;
-    EGLDisplay m_eglDisplay;
-    RenderContextMap m_contexts;
-    WindowSurfaceMap m_windows;
-    ColorBufferMap m_colorbuffers;
-
-    EGLSurface m_eglSurface;
-    EGLContext m_eglContext;
-    EGLSurface m_pbufSurface;
-    EGLContext m_pbufContext;
-
-    EGLContext m_prevContext;
-    EGLSurface m_prevReadSurf;
-    EGLSurface m_prevDrawSurf;
-    EGLNativeWindowType m_subWin;
-    EGLNativeDisplayType m_subWinDisplay;
-    EGLConfig  m_eglConfig;
-    HandleType m_lastPostedColorBuffer;
-    float      m_zRot;
-    bool       m_eglContextInitialized;
-
-    int m_statsNumFrames;
-    long long m_statsStartTime;
-    bool m_fpsStats;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/GL2Dispatch.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/GL2Dispatch.cpp
deleted file mode 100644
index b461807..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/GL2Dispatch.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-#ifdef WITH_GLES2
-#include "GL2Dispatch.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "osDynLibrary.h"
-
-gl2_decoder_context_t s_gl2;
-int                   s_gl2_enabled;
-
-static osUtils::dynLibrary *s_gles2_lib = NULL;
-
-#ifdef _WIN32
-#define DEFAULT_GLES_V2_LIB "libGLES_V2_translator"
-#elif defined(__APPLE__)
-#define DEFAULT_GLES_V2_LIB "libGLES_V2_translator.dylib"
-#else
-#define DEFAULT_GLES_V2_LIB "libGLES_V2_translator.so"
-#endif
-
-//
-// This function is called only once during initialiation before
-// any thread has been created - hence it should NOT be thread safe.
-//
-bool init_gl2_dispatch()
-{
-    const char *libName = getenv("ANDROID_GLESv2_LIB");
-    if (!libName) libName = DEFAULT_GLES_V2_LIB;
-
-    //
-    // Load the GLES library
-    //
-    s_gles2_lib = osUtils::dynLibrary::open(libName);
-    if (!s_gles2_lib) return false;
-
-    //
-    // init the GLES dispatch table
-    //
-    s_gl2.initDispatchByName( gl2_dispatch_get_proc_func, NULL );
-    s_gl2_enabled = true;
-    return true;
-}
-
-//
-// This function is called only during initialiation before
-// any thread has been created - hence it should NOT be thread safe.
-//
-void *gl2_dispatch_get_proc_func(const char *name, void *userData)
-{
-    if (!s_gles2_lib) {
-        return NULL;
-    }
-    return (void *)s_gles2_lib->findSymbol(name);
-}
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/GL2Dispatch.h b/tools/emulator/opengl/host/libs/libOpenglRender/GL2Dispatch.h
deleted file mode 100644
index 89f3651..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/GL2Dispatch.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _GLES2_DISPATCH_H
-#define _GLES2_DISPATCH_H
-
-#ifdef WITH_GLES2
-
-#include "gl2_dec.h"
-
-bool init_gl2_dispatch();
-void *gl2_dispatch_get_proc_func(const char *name, void *userData);
-
-extern gl2_decoder_context_t s_gl2;
-extern int                   s_gl2_enabled;
-
-#endif
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/GLDispatch.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/GLDispatch.cpp
deleted file mode 100644
index c8e53cd..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/GLDispatch.cpp
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "GLDispatch.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "osDynLibrary.h"
-
-GLDispatch s_gl;
-
-static osUtils::dynLibrary *s_gles_lib = NULL;
-
-//
-// This function is called only once during initialiation before
-// any thread has been created - hence it should NOT be thread safe.
-//
-
-#ifdef _WIN32
-#define DEFAULT_GLES_CM_LIB "libGLES_CM_translator"
-#elif defined(__APPLE__)
-#define DEFAULT_GLES_CM_LIB "libGLES_CM_translator.dylib"
-#else
-#define DEFAULT_GLES_CM_LIB "libGLES_CM_translator.so"
-#endif
-
-bool init_gl_dispatch()
-{
-    const char *libName = getenv("ANDROID_GLESv1_LIB");
-    if (!libName) libName = DEFAULT_GLES_CM_LIB;
-
-    s_gles_lib = osUtils::dynLibrary::open(libName);
-    if (!s_gles_lib) return false;
-
-    s_gl.glAlphaFunc = (glAlphaFunc_t) s_gles_lib->findSymbol("glAlphaFunc");
-    s_gl.glClearColor = (glClearColor_t) s_gles_lib->findSymbol("glClearColor");
-    s_gl.glClearDepthf = (glClearDepthf_t) s_gles_lib->findSymbol("glClearDepthf");
-    s_gl.glClipPlanef = (glClipPlanef_t) s_gles_lib->findSymbol("glClipPlanef");
-    s_gl.glColor4f = (glColor4f_t) s_gles_lib->findSymbol("glColor4f");
-    s_gl.glDepthRangef = (glDepthRangef_t) s_gles_lib->findSymbol("glDepthRangef");
-    s_gl.glFogf = (glFogf_t) s_gles_lib->findSymbol("glFogf");
-    s_gl.glFogfv = (glFogfv_t) s_gles_lib->findSymbol("glFogfv");
-    s_gl.glFrustumf = (glFrustumf_t) s_gles_lib->findSymbol("glFrustumf");
-    s_gl.glGetClipPlanef = (glGetClipPlanef_t) s_gles_lib->findSymbol("glGetClipPlanef");
-    s_gl.glGetFloatv = (glGetFloatv_t) s_gles_lib->findSymbol("glGetFloatv");
-    s_gl.glGetLightfv = (glGetLightfv_t) s_gles_lib->findSymbol("glGetLightfv");
-    s_gl.glGetMaterialfv = (glGetMaterialfv_t) s_gles_lib->findSymbol("glGetMaterialfv");
-    s_gl.glGetTexEnvfv = (glGetTexEnvfv_t) s_gles_lib->findSymbol("glGetTexEnvfv");
-    s_gl.glGetTexParameterfv = (glGetTexParameterfv_t) s_gles_lib->findSymbol("glGetTexParameterfv");
-    s_gl.glLightModelf = (glLightModelf_t) s_gles_lib->findSymbol("glLightModelf");
-    s_gl.glLightModelfv = (glLightModelfv_t) s_gles_lib->findSymbol("glLightModelfv");
-    s_gl.glLightf = (glLightf_t) s_gles_lib->findSymbol("glLightf");
-    s_gl.glLightfv = (glLightfv_t) s_gles_lib->findSymbol("glLightfv");
-    s_gl.glLineWidth = (glLineWidth_t) s_gles_lib->findSymbol("glLineWidth");
-    s_gl.glLoadMatrixf = (glLoadMatrixf_t) s_gles_lib->findSymbol("glLoadMatrixf");
-    s_gl.glMaterialf = (glMaterialf_t) s_gles_lib->findSymbol("glMaterialf");
-    s_gl.glMaterialfv = (glMaterialfv_t) s_gles_lib->findSymbol("glMaterialfv");
-    s_gl.glMultMatrixf = (glMultMatrixf_t) s_gles_lib->findSymbol("glMultMatrixf");
-    s_gl.glMultiTexCoord4f = (glMultiTexCoord4f_t) s_gles_lib->findSymbol("glMultiTexCoord4f");
-    s_gl.glNormal3f = (glNormal3f_t) s_gles_lib->findSymbol("glNormal3f");
-    s_gl.glOrthof = (glOrthof_t) s_gles_lib->findSymbol("glOrthof");
-    s_gl.glPointParameterf = (glPointParameterf_t) s_gles_lib->findSymbol("glPointParameterf");
-    s_gl.glPointParameterfv = (glPointParameterfv_t) s_gles_lib->findSymbol("glPointParameterfv");
-    s_gl.glPointSize = (glPointSize_t) s_gles_lib->findSymbol("glPointSize");
-    s_gl.glPolygonOffset = (glPolygonOffset_t) s_gles_lib->findSymbol("glPolygonOffset");
-    s_gl.glRotatef = (glRotatef_t) s_gles_lib->findSymbol("glRotatef");
-    s_gl.glScalef = (glScalef_t) s_gles_lib->findSymbol("glScalef");
-    s_gl.glTexEnvf = (glTexEnvf_t) s_gles_lib->findSymbol("glTexEnvf");
-    s_gl.glTexEnvfv = (glTexEnvfv_t) s_gles_lib->findSymbol("glTexEnvfv");
-    s_gl.glTexParameterf = (glTexParameterf_t) s_gles_lib->findSymbol("glTexParameterf");
-    s_gl.glTexParameterfv = (glTexParameterfv_t) s_gles_lib->findSymbol("glTexParameterfv");
-    s_gl.glTranslatef = (glTranslatef_t) s_gles_lib->findSymbol("glTranslatef");
-    s_gl.glActiveTexture = (glActiveTexture_t) s_gles_lib->findSymbol("glActiveTexture");
-    s_gl.glAlphaFuncx = (glAlphaFuncx_t) s_gles_lib->findSymbol("glAlphaFuncx");
-    s_gl.glBindBuffer = (glBindBuffer_t) s_gles_lib->findSymbol("glBindBuffer");
-    s_gl.glBindTexture = (glBindTexture_t) s_gles_lib->findSymbol("glBindTexture");
-    s_gl.glBlendFunc = (glBlendFunc_t) s_gles_lib->findSymbol("glBlendFunc");
-    s_gl.glBufferData = (glBufferData_t) s_gles_lib->findSymbol("glBufferData");
-    s_gl.glBufferSubData = (glBufferSubData_t) s_gles_lib->findSymbol("glBufferSubData");
-    s_gl.glClear = (glClear_t) s_gles_lib->findSymbol("glClear");
-    s_gl.glClearColorx = (glClearColorx_t) s_gles_lib->findSymbol("glClearColorx");
-    s_gl.glClearDepthx = (glClearDepthx_t) s_gles_lib->findSymbol("glClearDepthx");
-    s_gl.glClearStencil = (glClearStencil_t) s_gles_lib->findSymbol("glClearStencil");
-    s_gl.glClientActiveTexture = (glClientActiveTexture_t) s_gles_lib->findSymbol("glClientActiveTexture");
-    s_gl.glClipPlanex = (glClipPlanex_t) s_gles_lib->findSymbol("glClipPlanex");
-    s_gl.glColor4ub = (glColor4ub_t) s_gles_lib->findSymbol("glColor4ub");
-    s_gl.glColor4x = (glColor4x_t) s_gles_lib->findSymbol("glColor4x");
-    s_gl.glColorMask = (glColorMask_t) s_gles_lib->findSymbol("glColorMask");
-    s_gl.glColorPointer = (glColorPointer_t) s_gles_lib->findSymbol("glColorPointer");
-    s_gl.glCompressedTexImage2D = (glCompressedTexImage2D_t) s_gles_lib->findSymbol("glCompressedTexImage2D");
-    s_gl.glCompressedTexSubImage2D = (glCompressedTexSubImage2D_t) s_gles_lib->findSymbol("glCompressedTexSubImage2D");
-    s_gl.glCopyTexImage2D = (glCopyTexImage2D_t) s_gles_lib->findSymbol("glCopyTexImage2D");
-    s_gl.glCopyTexSubImage2D = (glCopyTexSubImage2D_t) s_gles_lib->findSymbol("glCopyTexSubImage2D");
-    s_gl.glCullFace = (glCullFace_t) s_gles_lib->findSymbol("glCullFace");
-    s_gl.glDeleteBuffers = (glDeleteBuffers_t) s_gles_lib->findSymbol("glDeleteBuffers");
-    s_gl.glDeleteTextures = (glDeleteTextures_t) s_gles_lib->findSymbol("glDeleteTextures");
-    s_gl.glDepthFunc = (glDepthFunc_t) s_gles_lib->findSymbol("glDepthFunc");
-    s_gl.glDepthMask = (glDepthMask_t) s_gles_lib->findSymbol("glDepthMask");
-    s_gl.glDepthRangex = (glDepthRangex_t) s_gles_lib->findSymbol("glDepthRangex");
-    s_gl.glDisable = (glDisable_t) s_gles_lib->findSymbol("glDisable");
-    s_gl.glDisableClientState = (glDisableClientState_t) s_gles_lib->findSymbol("glDisableClientState");
-    s_gl.glDrawArrays = (glDrawArrays_t) s_gles_lib->findSymbol("glDrawArrays");
-    s_gl.glDrawElements = (glDrawElements_t) s_gles_lib->findSymbol("glDrawElements");
-    s_gl.glEnable = (glEnable_t) s_gles_lib->findSymbol("glEnable");
-    s_gl.glEnableClientState = (glEnableClientState_t) s_gles_lib->findSymbol("glEnableClientState");
-    s_gl.glFinish = (glFinish_t) s_gles_lib->findSymbol("glFinish");
-    s_gl.glFlush = (glFlush_t) s_gles_lib->findSymbol("glFlush");
-    s_gl.glFogx = (glFogx_t) s_gles_lib->findSymbol("glFogx");
-    s_gl.glFogxv = (glFogxv_t) s_gles_lib->findSymbol("glFogxv");
-    s_gl.glFrontFace = (glFrontFace_t) s_gles_lib->findSymbol("glFrontFace");
-    s_gl.glFrustumx = (glFrustumx_t) s_gles_lib->findSymbol("glFrustumx");
-    s_gl.glGetBooleanv = (glGetBooleanv_t) s_gles_lib->findSymbol("glGetBooleanv");
-    s_gl.glGetBufferParameteriv = (glGetBufferParameteriv_t) s_gles_lib->findSymbol("glGetBufferParameteriv");
-    s_gl.glGetClipPlanex = (glGetClipPlanex_t) s_gles_lib->findSymbol("glGetClipPlanex");
-    s_gl.glGenBuffers = (glGenBuffers_t) s_gles_lib->findSymbol("glGenBuffers");
-    s_gl.glGenTextures = (glGenTextures_t) s_gles_lib->findSymbol("glGenTextures");
-    s_gl.glGetError = (glGetError_t) s_gles_lib->findSymbol("glGetError");
-    s_gl.glGetFixedv = (glGetFixedv_t) s_gles_lib->findSymbol("glGetFixedv");
-    s_gl.glGetIntegerv = (glGetIntegerv_t) s_gles_lib->findSymbol("glGetIntegerv");
-    s_gl.glGetLightxv = (glGetLightxv_t) s_gles_lib->findSymbol("glGetLightxv");
-    s_gl.glGetMaterialxv = (glGetMaterialxv_t) s_gles_lib->findSymbol("glGetMaterialxv");
-    s_gl.glGetPointerv = (glGetPointerv_t) s_gles_lib->findSymbol("glGetPointerv");
-    s_gl.glGetString = (glGetString_t) s_gles_lib->findSymbol("glGetString");
-    s_gl.glGetTexEnviv = (glGetTexEnviv_t) s_gles_lib->findSymbol("glGetTexEnviv");
-    s_gl.glGetTexEnvxv = (glGetTexEnvxv_t) s_gles_lib->findSymbol("glGetTexEnvxv");
-    s_gl.glGetTexParameteriv = (glGetTexParameteriv_t) s_gles_lib->findSymbol("glGetTexParameteriv");
-    s_gl.glGetTexParameterxv = (glGetTexParameterxv_t) s_gles_lib->findSymbol("glGetTexParameterxv");
-    s_gl.glHint = (glHint_t) s_gles_lib->findSymbol("glHint");
-    s_gl.glIsBuffer = (glIsBuffer_t) s_gles_lib->findSymbol("glIsBuffer");
-    s_gl.glIsEnabled = (glIsEnabled_t) s_gles_lib->findSymbol("glIsEnabled");
-    s_gl.glIsTexture = (glIsTexture_t) s_gles_lib->findSymbol("glIsTexture");
-    s_gl.glLightModelx = (glLightModelx_t) s_gles_lib->findSymbol("glLightModelx");
-    s_gl.glLightModelxv = (glLightModelxv_t) s_gles_lib->findSymbol("glLightModelxv");
-    s_gl.glLightx = (glLightx_t) s_gles_lib->findSymbol("glLightx");
-    s_gl.glLightxv = (glLightxv_t) s_gles_lib->findSymbol("glLightxv");
-    s_gl.glLineWidthx = (glLineWidthx_t) s_gles_lib->findSymbol("glLineWidthx");
-    s_gl.glLoadIdentity = (glLoadIdentity_t) s_gles_lib->findSymbol("glLoadIdentity");
-    s_gl.glLoadMatrixx = (glLoadMatrixx_t) s_gles_lib->findSymbol("glLoadMatrixx");
-    s_gl.glLogicOp = (glLogicOp_t) s_gles_lib->findSymbol("glLogicOp");
-    s_gl.glMaterialx = (glMaterialx_t) s_gles_lib->findSymbol("glMaterialx");
-    s_gl.glMaterialxv = (glMaterialxv_t) s_gles_lib->findSymbol("glMaterialxv");
-    s_gl.glMatrixMode = (glMatrixMode_t) s_gles_lib->findSymbol("glMatrixMode");
-    s_gl.glMultMatrixx = (glMultMatrixx_t) s_gles_lib->findSymbol("glMultMatrixx");
-    s_gl.glMultiTexCoord4x = (glMultiTexCoord4x_t) s_gles_lib->findSymbol("glMultiTexCoord4x");
-    s_gl.glNormal3x = (glNormal3x_t) s_gles_lib->findSymbol("glNormal3x");
-    s_gl.glNormalPointer = (glNormalPointer_t) s_gles_lib->findSymbol("glNormalPointer");
-    s_gl.glOrthox = (glOrthox_t) s_gles_lib->findSymbol("glOrthox");
-    s_gl.glPixelStorei = (glPixelStorei_t) s_gles_lib->findSymbol("glPixelStorei");
-    s_gl.glPointParameterx = (glPointParameterx_t) s_gles_lib->findSymbol("glPointParameterx");
-    s_gl.glPointParameterxv = (glPointParameterxv_t) s_gles_lib->findSymbol("glPointParameterxv");
-    s_gl.glPointSizex = (glPointSizex_t) s_gles_lib->findSymbol("glPointSizex");
-    s_gl.glPolygonOffsetx = (glPolygonOffsetx_t) s_gles_lib->findSymbol("glPolygonOffsetx");
-    s_gl.glPopMatrix = (glPopMatrix_t) s_gles_lib->findSymbol("glPopMatrix");
-    s_gl.glPushMatrix = (glPushMatrix_t) s_gles_lib->findSymbol("glPushMatrix");
-    s_gl.glReadPixels = (glReadPixels_t) s_gles_lib->findSymbol("glReadPixels");
-    s_gl.glRotatex = (glRotatex_t) s_gles_lib->findSymbol("glRotatex");
-    s_gl.glSampleCoverage = (glSampleCoverage_t) s_gles_lib->findSymbol("glSampleCoverage");
-    s_gl.glSampleCoveragex = (glSampleCoveragex_t) s_gles_lib->findSymbol("glSampleCoveragex");
-    s_gl.glScalex = (glScalex_t) s_gles_lib->findSymbol("glScalex");
-    s_gl.glScissor = (glScissor_t) s_gles_lib->findSymbol("glScissor");
-    s_gl.glShadeModel = (glShadeModel_t) s_gles_lib->findSymbol("glShadeModel");
-    s_gl.glStencilFunc = (glStencilFunc_t) s_gles_lib->findSymbol("glStencilFunc");
-    s_gl.glStencilMask = (glStencilMask_t) s_gles_lib->findSymbol("glStencilMask");
-    s_gl.glStencilOp = (glStencilOp_t) s_gles_lib->findSymbol("glStencilOp");
-    s_gl.glTexCoordPointer = (glTexCoordPointer_t) s_gles_lib->findSymbol("glTexCoordPointer");
-    s_gl.glTexEnvi = (glTexEnvi_t) s_gles_lib->findSymbol("glTexEnvi");
-    s_gl.glTexEnvx = (glTexEnvx_t) s_gles_lib->findSymbol("glTexEnvx");
-    s_gl.glTexEnviv = (glTexEnviv_t) s_gles_lib->findSymbol("glTexEnviv");
-    s_gl.glTexEnvxv = (glTexEnvxv_t) s_gles_lib->findSymbol("glTexEnvxv");
-    s_gl.glTexImage2D = (glTexImage2D_t) s_gles_lib->findSymbol("glTexImage2D");
-    s_gl.glTexParameteri = (glTexParameteri_t) s_gles_lib->findSymbol("glTexParameteri");
-    s_gl.glTexParameterx = (glTexParameterx_t) s_gles_lib->findSymbol("glTexParameterx");
-    s_gl.glTexParameteriv = (glTexParameteriv_t) s_gles_lib->findSymbol("glTexParameteriv");
-    s_gl.glTexParameterxv = (glTexParameterxv_t) s_gles_lib->findSymbol("glTexParameterxv");
-    s_gl.glTexSubImage2D = (glTexSubImage2D_t) s_gles_lib->findSymbol("glTexSubImage2D");
-    s_gl.glTranslatex = (glTranslatex_t) s_gles_lib->findSymbol("glTranslatex");
-    s_gl.glVertexPointer = (glVertexPointer_t) s_gles_lib->findSymbol("glVertexPointer");
-    s_gl.glViewport = (glViewport_t) s_gles_lib->findSymbol("glViewport");
-    s_gl.glPointSizePointerOES = (glPointSizePointerOES_t) s_gles_lib->findSymbol("glPointSizePointerOES");
-    s_gl.glBlendEquationSeparateOES = (glBlendEquationSeparateOES_t) s_gles_lib->findSymbol("glBlendEquationSeparateOES");
-    s_gl.glBlendFuncSeparateOES = (glBlendFuncSeparateOES_t) s_gles_lib->findSymbol("glBlendFuncSeparateOES");
-    s_gl.glBlendEquationOES = (glBlendEquationOES_t) s_gles_lib->findSymbol("glBlendEquationOES");
-    s_gl.glDrawTexsOES = (glDrawTexsOES_t) s_gles_lib->findSymbol("glDrawTexsOES");
-    s_gl.glDrawTexiOES = (glDrawTexiOES_t) s_gles_lib->findSymbol("glDrawTexiOES");
-    s_gl.glDrawTexxOES = (glDrawTexxOES_t) s_gles_lib->findSymbol("glDrawTexxOES");
-    s_gl.glDrawTexsvOES = (glDrawTexsvOES_t) s_gles_lib->findSymbol("glDrawTexsvOES");
-    s_gl.glDrawTexivOES = (glDrawTexivOES_t) s_gles_lib->findSymbol("glDrawTexivOES");
-    s_gl.glDrawTexxvOES = (glDrawTexxvOES_t) s_gles_lib->findSymbol("glDrawTexxvOES");
-    s_gl.glDrawTexfOES = (glDrawTexfOES_t) s_gles_lib->findSymbol("glDrawTexfOES");
-    s_gl.glDrawTexfvOES = (glDrawTexfvOES_t) s_gles_lib->findSymbol("glDrawTexfvOES");
-    s_gl.glEGLImageTargetTexture2DOES = (glEGLImageTargetTexture2DOES_t) s_gles_lib->findSymbol("glEGLImageTargetTexture2DOES");
-    s_gl.glEGLImageTargetRenderbufferStorageOES = (glEGLImageTargetRenderbufferStorageOES_t) s_gles_lib->findSymbol("glEGLImageTargetRenderbufferStorageOES");
-    s_gl.glAlphaFuncxOES = (glAlphaFuncxOES_t) s_gles_lib->findSymbol("glAlphaFuncxOES");
-    s_gl.glClearColorxOES = (glClearColorxOES_t) s_gles_lib->findSymbol("glClearColorxOES");
-    s_gl.glClearDepthxOES = (glClearDepthxOES_t) s_gles_lib->findSymbol("glClearDepthxOES");
-    s_gl.glClipPlanexOES = (glClipPlanexOES_t) s_gles_lib->findSymbol("glClipPlanexOES");
-    s_gl.glColor4xOES = (glColor4xOES_t) s_gles_lib->findSymbol("glColor4xOES");
-    s_gl.glDepthRangexOES = (glDepthRangexOES_t) s_gles_lib->findSymbol("glDepthRangexOES");
-    s_gl.glFogxOES = (glFogxOES_t) s_gles_lib->findSymbol("glFogxOES");
-    s_gl.glFogxvOES = (glFogxvOES_t) s_gles_lib->findSymbol("glFogxvOES");
-    s_gl.glFrustumxOES = (glFrustumxOES_t) s_gles_lib->findSymbol("glFrustumxOES");
-    s_gl.glGetClipPlanexOES = (glGetClipPlanexOES_t) s_gles_lib->findSymbol("glGetClipPlanexOES");
-    s_gl.glGetFixedvOES = (glGetFixedvOES_t) s_gles_lib->findSymbol("glGetFixedvOES");
-    s_gl.glGetLightxvOES = (glGetLightxvOES_t) s_gles_lib->findSymbol("glGetLightxvOES");
-    s_gl.glGetMaterialxvOES = (glGetMaterialxvOES_t) s_gles_lib->findSymbol("glGetMaterialxvOES");
-    s_gl.glGetTexEnvxvOES = (glGetTexEnvxvOES_t) s_gles_lib->findSymbol("glGetTexEnvxvOES");
-    s_gl.glGetTexParameterxvOES = (glGetTexParameterxvOES_t) s_gles_lib->findSymbol("glGetTexParameterxvOES");
-    s_gl.glLightModelxOES = (glLightModelxOES_t) s_gles_lib->findSymbol("glLightModelxOES");
-    s_gl.glLightModelxvOES = (glLightModelxvOES_t) s_gles_lib->findSymbol("glLightModelxvOES");
-    s_gl.glLightxOES = (glLightxOES_t) s_gles_lib->findSymbol("glLightxOES");
-    s_gl.glLightxvOES = (glLightxvOES_t) s_gles_lib->findSymbol("glLightxvOES");
-    s_gl.glLineWidthxOES = (glLineWidthxOES_t) s_gles_lib->findSymbol("glLineWidthxOES");
-    s_gl.glLoadMatrixxOES = (glLoadMatrixxOES_t) s_gles_lib->findSymbol("glLoadMatrixxOES");
-    s_gl.glMaterialxOES = (glMaterialxOES_t) s_gles_lib->findSymbol("glMaterialxOES");
-    s_gl.glMaterialxvOES = (glMaterialxvOES_t) s_gles_lib->findSymbol("glMaterialxvOES");
-    s_gl.glMultMatrixxOES = (glMultMatrixxOES_t) s_gles_lib->findSymbol("glMultMatrixxOES");
-    s_gl.glMultiTexCoord4xOES = (glMultiTexCoord4xOES_t) s_gles_lib->findSymbol("glMultiTexCoord4xOES");
-    s_gl.glNormal3xOES = (glNormal3xOES_t) s_gles_lib->findSymbol("glNormal3xOES");
-    s_gl.glOrthoxOES = (glOrthoxOES_t) s_gles_lib->findSymbol("glOrthoxOES");
-    s_gl.glPointParameterxOES = (glPointParameterxOES_t) s_gles_lib->findSymbol("glPointParameterxOES");
-    s_gl.glPointParameterxvOES = (glPointParameterxvOES_t) s_gles_lib->findSymbol("glPointParameterxvOES");
-    s_gl.glPointSizexOES = (glPointSizexOES_t) s_gles_lib->findSymbol("glPointSizexOES");
-    s_gl.glPolygonOffsetxOES = (glPolygonOffsetxOES_t) s_gles_lib->findSymbol("glPolygonOffsetxOES");
-    s_gl.glRotatexOES = (glRotatexOES_t) s_gles_lib->findSymbol("glRotatexOES");
-    s_gl.glSampleCoveragexOES = (glSampleCoveragexOES_t) s_gles_lib->findSymbol("glSampleCoveragexOES");
-    s_gl.glScalexOES = (glScalexOES_t) s_gles_lib->findSymbol("glScalexOES");
-    s_gl.glTexEnvxOES = (glTexEnvxOES_t) s_gles_lib->findSymbol("glTexEnvxOES");
-    s_gl.glTexEnvxvOES = (glTexEnvxvOES_t) s_gles_lib->findSymbol("glTexEnvxvOES");
-    s_gl.glTexParameterxOES = (glTexParameterxOES_t) s_gles_lib->findSymbol("glTexParameterxOES");
-    s_gl.glTexParameterxvOES = (glTexParameterxvOES_t) s_gles_lib->findSymbol("glTexParameterxvOES");
-    s_gl.glTranslatexOES = (glTranslatexOES_t) s_gles_lib->findSymbol("glTranslatexOES");
-    s_gl.glIsRenderbufferOES = (glIsRenderbufferOES_t) s_gles_lib->findSymbol("glIsRenderbufferOES");
-    s_gl.glBindRenderbufferOES = (glBindRenderbufferOES_t) s_gles_lib->findSymbol("glBindRenderbufferOES");
-    s_gl.glDeleteRenderbuffersOES = (glDeleteRenderbuffersOES_t) s_gles_lib->findSymbol("glDeleteRenderbuffersOES");
-    s_gl.glGenRenderbuffersOES = (glGenRenderbuffersOES_t) s_gles_lib->findSymbol("glGenRenderbuffersOES");
-    s_gl.glRenderbufferStorageOES = (glRenderbufferStorageOES_t) s_gles_lib->findSymbol("glRenderbufferStorageOES");
-    s_gl.glGetRenderbufferParameterivOES = (glGetRenderbufferParameterivOES_t) s_gles_lib->findSymbol("glGetRenderbufferParameterivOES");
-    s_gl.glIsFramebufferOES = (glIsFramebufferOES_t) s_gles_lib->findSymbol("glIsFramebufferOES");
-    s_gl.glBindFramebufferOES = (glBindFramebufferOES_t) s_gles_lib->findSymbol("glBindFramebufferOES");
-    s_gl.glDeleteFramebuffersOES = (glDeleteFramebuffersOES_t) s_gles_lib->findSymbol("glDeleteFramebuffersOES");
-    s_gl.glGenFramebuffersOES = (glGenFramebuffersOES_t) s_gles_lib->findSymbol("glGenFramebuffersOES");
-    s_gl.glCheckFramebufferStatusOES = (glCheckFramebufferStatusOES_t) s_gles_lib->findSymbol("glCheckFramebufferStatusOES");
-    s_gl.glFramebufferRenderbufferOES = (glFramebufferRenderbufferOES_t) s_gles_lib->findSymbol("glFramebufferRenderbufferOES");
-    s_gl.glFramebufferTexture2DOES = (glFramebufferTexture2DOES_t) s_gles_lib->findSymbol("glFramebufferTexture2DOES");
-    s_gl.glGetFramebufferAttachmentParameterivOES = (glGetFramebufferAttachmentParameterivOES_t) s_gles_lib->findSymbol("glGetFramebufferAttachmentParameterivOES");
-    s_gl.glGenerateMipmapOES = (glGenerateMipmapOES_t) s_gles_lib->findSymbol("glGenerateMipmapOES");
-    s_gl.glMapBufferOES = (glMapBufferOES_t) s_gles_lib->findSymbol("glMapBufferOES");
-    s_gl.glUnmapBufferOES = (glUnmapBufferOES_t) s_gles_lib->findSymbol("glUnmapBufferOES");
-    s_gl.glGetBufferPointervOES = (glGetBufferPointervOES_t) s_gles_lib->findSymbol("glGetBufferPointervOES");
-    s_gl.glCurrentPaletteMatrixOES = (glCurrentPaletteMatrixOES_t) s_gles_lib->findSymbol("glCurrentPaletteMatrixOES");
-    s_gl.glLoadPaletteFromModelViewMatrixOES = (glLoadPaletteFromModelViewMatrixOES_t) s_gles_lib->findSymbol("glLoadPaletteFromModelViewMatrixOES");
-    s_gl.glMatrixIndexPointerOES = (glMatrixIndexPointerOES_t) s_gles_lib->findSymbol("glMatrixIndexPointerOES");
-    s_gl.glWeightPointerOES = (glWeightPointerOES_t) s_gles_lib->findSymbol("glWeightPointerOES");
-    s_gl.glQueryMatrixxOES = (glQueryMatrixxOES_t) s_gles_lib->findSymbol("glQueryMatrixxOES");
-    s_gl.glDepthRangefOES = (glDepthRangefOES_t) s_gles_lib->findSymbol("glDepthRangefOES");
-    s_gl.glFrustumfOES = (glFrustumfOES_t) s_gles_lib->findSymbol("glFrustumfOES");
-    s_gl.glOrthofOES = (glOrthofOES_t) s_gles_lib->findSymbol("glOrthofOES");
-    s_gl.glClipPlanefOES = (glClipPlanefOES_t) s_gles_lib->findSymbol("glClipPlanefOES");
-    s_gl.glGetClipPlanefOES = (glGetClipPlanefOES_t) s_gles_lib->findSymbol("glGetClipPlanefOES");
-    s_gl.glClearDepthfOES = (glClearDepthfOES_t) s_gles_lib->findSymbol("glClearDepthfOES");
-    s_gl.glTexGenfOES = (glTexGenfOES_t) s_gles_lib->findSymbol("glTexGenfOES");
-    s_gl.glTexGenfvOES = (glTexGenfvOES_t) s_gles_lib->findSymbol("glTexGenfvOES");
-    s_gl.glTexGeniOES = (glTexGeniOES_t) s_gles_lib->findSymbol("glTexGeniOES");
-    s_gl.glTexGenivOES = (glTexGenivOES_t) s_gles_lib->findSymbol("glTexGenivOES");
-    s_gl.glTexGenxOES = (glTexGenxOES_t) s_gles_lib->findSymbol("glTexGenxOES");
-    s_gl.glTexGenxvOES = (glTexGenxvOES_t) s_gles_lib->findSymbol("glTexGenxvOES");
-    s_gl.glGetTexGenfvOES = (glGetTexGenfvOES_t) s_gles_lib->findSymbol("glGetTexGenfvOES");
-    s_gl.glGetTexGenivOES = (glGetTexGenivOES_t) s_gles_lib->findSymbol("glGetTexGenivOES");
-    s_gl.glGetTexGenxvOES = (glGetTexGenxvOES_t) s_gles_lib->findSymbol("glGetTexGenxvOES");
-    s_gl.glBindVertexArrayOES = (glBindVertexArrayOES_t) s_gles_lib->findSymbol("glBindVertexArrayOES");
-    s_gl.glDeleteVertexArraysOES = (glDeleteVertexArraysOES_t) s_gles_lib->findSymbol("glDeleteVertexArraysOES");
-    s_gl.glGenVertexArraysOES = (glGenVertexArraysOES_t) s_gles_lib->findSymbol("glGenVertexArraysOES");
-    s_gl.glIsVertexArrayOES = (glIsVertexArrayOES_t) s_gles_lib->findSymbol("glIsVertexArrayOES");
-    s_gl.glDiscardFramebufferEXT = (glDiscardFramebufferEXT_t) s_gles_lib->findSymbol("glDiscardFramebufferEXT");
-    s_gl.glMultiDrawArraysEXT = (glMultiDrawArraysEXT_t) s_gles_lib->findSymbol("glMultiDrawArraysEXT");
-    s_gl.glMultiDrawElementsEXT = (glMultiDrawElementsEXT_t) s_gles_lib->findSymbol("glMultiDrawElementsEXT");
-    s_gl.glClipPlanefIMG = (glClipPlanefIMG_t) s_gles_lib->findSymbol("glClipPlanefIMG");
-    s_gl.glClipPlanexIMG = (glClipPlanexIMG_t) s_gles_lib->findSymbol("glClipPlanexIMG");
-    s_gl.glRenderbufferStorageMultisampleIMG = (glRenderbufferStorageMultisampleIMG_t) s_gles_lib->findSymbol("glRenderbufferStorageMultisampleIMG");
-    s_gl.glFramebufferTexture2DMultisampleIMG = (glFramebufferTexture2DMultisampleIMG_t) s_gles_lib->findSymbol("glFramebufferTexture2DMultisampleIMG");
-    s_gl.glDeleteFencesNV = (glDeleteFencesNV_t) s_gles_lib->findSymbol("glDeleteFencesNV");
-    s_gl.glGenFencesNV = (glGenFencesNV_t) s_gles_lib->findSymbol("glGenFencesNV");
-    s_gl.glIsFenceNV = (glIsFenceNV_t) s_gles_lib->findSymbol("glIsFenceNV");
-    s_gl.glTestFenceNV = (glTestFenceNV_t) s_gles_lib->findSymbol("glTestFenceNV");
-    s_gl.glGetFenceivNV = (glGetFenceivNV_t) s_gles_lib->findSymbol("glGetFenceivNV");
-    s_gl.glFinishFenceNV = (glFinishFenceNV_t) s_gles_lib->findSymbol("glFinishFenceNV");
-    s_gl.glSetFenceNV = (glSetFenceNV_t) s_gles_lib->findSymbol("glSetFenceNV");
-    s_gl.glGetDriverControlsQCOM = (glGetDriverControlsQCOM_t) s_gles_lib->findSymbol("glGetDriverControlsQCOM");
-    s_gl.glGetDriverControlStringQCOM = (glGetDriverControlStringQCOM_t) s_gles_lib->findSymbol("glGetDriverControlStringQCOM");
-    s_gl.glEnableDriverControlQCOM = (glEnableDriverControlQCOM_t) s_gles_lib->findSymbol("glEnableDriverControlQCOM");
-    s_gl.glDisableDriverControlQCOM = (glDisableDriverControlQCOM_t) s_gles_lib->findSymbol("glDisableDriverControlQCOM");
-    s_gl.glExtGetTexturesQCOM = (glExtGetTexturesQCOM_t) s_gles_lib->findSymbol("glExtGetTexturesQCOM");
-    s_gl.glExtGetBuffersQCOM = (glExtGetBuffersQCOM_t) s_gles_lib->findSymbol("glExtGetBuffersQCOM");
-    s_gl.glExtGetRenderbuffersQCOM = (glExtGetRenderbuffersQCOM_t) s_gles_lib->findSymbol("glExtGetRenderbuffersQCOM");
-    s_gl.glExtGetFramebuffersQCOM = (glExtGetFramebuffersQCOM_t) s_gles_lib->findSymbol("glExtGetFramebuffersQCOM");
-    s_gl.glExtGetTexLevelParameterivQCOM = (glExtGetTexLevelParameterivQCOM_t) s_gles_lib->findSymbol("glExtGetTexLevelParameterivQCOM");
-    s_gl.glExtTexObjectStateOverrideiQCOM = (glExtTexObjectStateOverrideiQCOM_t) s_gles_lib->findSymbol("glExtTexObjectStateOverrideiQCOM");
-    s_gl.glExtGetTexSubImageQCOM = (glExtGetTexSubImageQCOM_t) s_gles_lib->findSymbol("glExtGetTexSubImageQCOM");
-    s_gl.glExtGetBufferPointervQCOM = (glExtGetBufferPointervQCOM_t) s_gles_lib->findSymbol("glExtGetBufferPointervQCOM");
-    s_gl.glExtGetShadersQCOM = (glExtGetShadersQCOM_t) s_gles_lib->findSymbol("glExtGetShadersQCOM");
-    s_gl.glExtGetProgramsQCOM = (glExtGetProgramsQCOM_t) s_gles_lib->findSymbol("glExtGetProgramsQCOM");
-    s_gl.glExtIsProgramBinaryQCOM = (glExtIsProgramBinaryQCOM_t) s_gles_lib->findSymbol("glExtIsProgramBinaryQCOM");
-    s_gl.glExtGetProgramBinarySourceQCOM = (glExtGetProgramBinarySourceQCOM_t) s_gles_lib->findSymbol("glExtGetProgramBinarySourceQCOM");
-    s_gl.glStartTilingQCOM = (glStartTilingQCOM_t) s_gles_lib->findSymbol("glStartTilingQCOM");
-    s_gl.glEndTilingQCOM = (glEndTilingQCOM_t) s_gles_lib->findSymbol("glEndTilingQCOM");
-
-    return true;
-}
-
-//
-// This function is called only during initialiation before
-// any thread has been created - hence it should NOT be thread safe.
-//
-void *gl_dispatch_get_proc_func(const char *name, void *userData)
-{
-    if (!s_gles_lib) {
-        return NULL;
-    }
-    return (void *)s_gles_lib->findSymbol(name);
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/GLDispatch.h b/tools/emulator/opengl/host/libs/libOpenglRender/GLDispatch.h
deleted file mode 100644
index 5fe98f1..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/GLDispatch.h
+++ /dev/null
@@ -1,300 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _GLES_DISPATCH_H
-#define _GLES_DISPATCH_H
-
-#include "gl_proc.h"
-
-
-struct GLDispatch {
-    glAlphaFunc_t glAlphaFunc;
-    glClearColor_t glClearColor;
-    glClearDepthf_t glClearDepthf;
-    glClipPlanef_t glClipPlanef;
-    glColor4f_t glColor4f;
-    glDepthRangef_t glDepthRangef;
-    glFogf_t glFogf;
-    glFogfv_t glFogfv;
-    glFrustumf_t glFrustumf;
-    glGetClipPlanef_t glGetClipPlanef;
-    glGetFloatv_t glGetFloatv;
-    glGetLightfv_t glGetLightfv;
-    glGetMaterialfv_t glGetMaterialfv;
-    glGetTexEnvfv_t glGetTexEnvfv;
-    glGetTexParameterfv_t glGetTexParameterfv;
-    glLightModelf_t glLightModelf;
-    glLightModelfv_t glLightModelfv;
-    glLightf_t glLightf;
-    glLightfv_t glLightfv;
-    glLineWidth_t glLineWidth;
-    glLoadMatrixf_t glLoadMatrixf;
-    glMaterialf_t glMaterialf;
-    glMaterialfv_t glMaterialfv;
-    glMultMatrixf_t glMultMatrixf;
-    glMultiTexCoord4f_t glMultiTexCoord4f;
-    glNormal3f_t glNormal3f;
-    glOrthof_t glOrthof;
-    glPointParameterf_t glPointParameterf;
-    glPointParameterfv_t glPointParameterfv;
-    glPointSize_t glPointSize;
-    glPolygonOffset_t glPolygonOffset;
-    glRotatef_t glRotatef;
-    glScalef_t glScalef;
-    glTexEnvf_t glTexEnvf;
-    glTexEnvfv_t glTexEnvfv;
-    glTexParameterf_t glTexParameterf;
-    glTexParameterfv_t glTexParameterfv;
-    glTranslatef_t glTranslatef;
-    glActiveTexture_t glActiveTexture;
-    glAlphaFuncx_t glAlphaFuncx;
-    glBindBuffer_t glBindBuffer;
-    glBindTexture_t glBindTexture;
-    glBlendFunc_t glBlendFunc;
-    glBufferData_t glBufferData;
-    glBufferSubData_t glBufferSubData;
-    glClear_t glClear;
-    glClearColorx_t glClearColorx;
-    glClearDepthx_t glClearDepthx;
-    glClearStencil_t glClearStencil;
-    glClientActiveTexture_t glClientActiveTexture;
-    glClipPlanex_t glClipPlanex;
-    glColor4ub_t glColor4ub;
-    glColor4x_t glColor4x;
-    glColorMask_t glColorMask;
-    glColorPointer_t glColorPointer;
-    glCompressedTexImage2D_t glCompressedTexImage2D;
-    glCompressedTexSubImage2D_t glCompressedTexSubImage2D;
-    glCopyTexImage2D_t glCopyTexImage2D;
-    glCopyTexSubImage2D_t glCopyTexSubImage2D;
-    glCullFace_t glCullFace;
-    glDeleteBuffers_t glDeleteBuffers;
-    glDeleteTextures_t glDeleteTextures;
-    glDepthFunc_t glDepthFunc;
-    glDepthMask_t glDepthMask;
-    glDepthRangex_t glDepthRangex;
-    glDisable_t glDisable;
-    glDisableClientState_t glDisableClientState;
-    glDrawArrays_t glDrawArrays;
-    glDrawElements_t glDrawElements;
-    glEnable_t glEnable;
-    glEnableClientState_t glEnableClientState;
-    glFinish_t glFinish;
-    glFlush_t glFlush;
-    glFogx_t glFogx;
-    glFogxv_t glFogxv;
-    glFrontFace_t glFrontFace;
-    glFrustumx_t glFrustumx;
-    glGetBooleanv_t glGetBooleanv;
-    glGetBufferParameteriv_t glGetBufferParameteriv;
-    glGetClipPlanex_t glGetClipPlanex;
-    glGenBuffers_t glGenBuffers;
-    glGenTextures_t glGenTextures;
-    glGetError_t glGetError;
-    glGetFixedv_t glGetFixedv;
-    glGetIntegerv_t glGetIntegerv;
-    glGetLightxv_t glGetLightxv;
-    glGetMaterialxv_t glGetMaterialxv;
-    glGetPointerv_t glGetPointerv;
-    glGetString_t glGetString;
-    glGetTexEnviv_t glGetTexEnviv;
-    glGetTexEnvxv_t glGetTexEnvxv;
-    glGetTexParameteriv_t glGetTexParameteriv;
-    glGetTexParameterxv_t glGetTexParameterxv;
-    glHint_t glHint;
-    glIsBuffer_t glIsBuffer;
-    glIsEnabled_t glIsEnabled;
-    glIsTexture_t glIsTexture;
-    glLightModelx_t glLightModelx;
-    glLightModelxv_t glLightModelxv;
-    glLightx_t glLightx;
-    glLightxv_t glLightxv;
-    glLineWidthx_t glLineWidthx;
-    glLoadIdentity_t glLoadIdentity;
-    glLoadMatrixx_t glLoadMatrixx;
-    glLogicOp_t glLogicOp;
-    glMaterialx_t glMaterialx;
-    glMaterialxv_t glMaterialxv;
-    glMatrixMode_t glMatrixMode;
-    glMultMatrixx_t glMultMatrixx;
-    glMultiTexCoord4x_t glMultiTexCoord4x;
-    glNormal3x_t glNormal3x;
-    glNormalPointer_t glNormalPointer;
-    glOrthox_t glOrthox;
-    glPixelStorei_t glPixelStorei;
-    glPointParameterx_t glPointParameterx;
-    glPointParameterxv_t glPointParameterxv;
-    glPointSizex_t glPointSizex;
-    glPolygonOffsetx_t glPolygonOffsetx;
-    glPopMatrix_t glPopMatrix;
-    glPushMatrix_t glPushMatrix;
-    glReadPixels_t glReadPixels;
-    glRotatex_t glRotatex;
-    glSampleCoverage_t glSampleCoverage;
-    glSampleCoveragex_t glSampleCoveragex;
-    glScalex_t glScalex;
-    glScissor_t glScissor;
-    glShadeModel_t glShadeModel;
-    glStencilFunc_t glStencilFunc;
-    glStencilMask_t glStencilMask;
-    glStencilOp_t glStencilOp;
-    glTexCoordPointer_t glTexCoordPointer;
-    glTexEnvi_t glTexEnvi;
-    glTexEnvx_t glTexEnvx;
-    glTexEnviv_t glTexEnviv;
-    glTexEnvxv_t glTexEnvxv;
-    glTexImage2D_t glTexImage2D;
-    glTexParameteri_t glTexParameteri;
-    glTexParameterx_t glTexParameterx;
-    glTexParameteriv_t glTexParameteriv;
-    glTexParameterxv_t glTexParameterxv;
-    glTexSubImage2D_t glTexSubImage2D;
-    glTranslatex_t glTranslatex;
-    glVertexPointer_t glVertexPointer;
-    glViewport_t glViewport;
-    glPointSizePointerOES_t glPointSizePointerOES;
-    glBlendEquationSeparateOES_t glBlendEquationSeparateOES;
-    glBlendFuncSeparateOES_t glBlendFuncSeparateOES;
-    glBlendEquationOES_t glBlendEquationOES;
-    glDrawTexsOES_t glDrawTexsOES;
-    glDrawTexiOES_t glDrawTexiOES;
-    glDrawTexxOES_t glDrawTexxOES;
-    glDrawTexsvOES_t glDrawTexsvOES;
-    glDrawTexivOES_t glDrawTexivOES;
-    glDrawTexxvOES_t glDrawTexxvOES;
-    glDrawTexfOES_t glDrawTexfOES;
-    glDrawTexfvOES_t glDrawTexfvOES;
-    glEGLImageTargetTexture2DOES_t glEGLImageTargetTexture2DOES;
-    glEGLImageTargetRenderbufferStorageOES_t glEGLImageTargetRenderbufferStorageOES;
-    glAlphaFuncxOES_t glAlphaFuncxOES;
-    glClearColorxOES_t glClearColorxOES;
-    glClearDepthxOES_t glClearDepthxOES;
-    glClipPlanexOES_t glClipPlanexOES;
-    glColor4xOES_t glColor4xOES;
-    glDepthRangexOES_t glDepthRangexOES;
-    glFogxOES_t glFogxOES;
-    glFogxvOES_t glFogxvOES;
-    glFrustumxOES_t glFrustumxOES;
-    glGetClipPlanexOES_t glGetClipPlanexOES;
-    glGetFixedvOES_t glGetFixedvOES;
-    glGetLightxvOES_t glGetLightxvOES;
-    glGetMaterialxvOES_t glGetMaterialxvOES;
-    glGetTexEnvxvOES_t glGetTexEnvxvOES;
-    glGetTexParameterxvOES_t glGetTexParameterxvOES;
-    glLightModelxOES_t glLightModelxOES;
-    glLightModelxvOES_t glLightModelxvOES;
-    glLightxOES_t glLightxOES;
-    glLightxvOES_t glLightxvOES;
-    glLineWidthxOES_t glLineWidthxOES;
-    glLoadMatrixxOES_t glLoadMatrixxOES;
-    glMaterialxOES_t glMaterialxOES;
-    glMaterialxvOES_t glMaterialxvOES;
-    glMultMatrixxOES_t glMultMatrixxOES;
-    glMultiTexCoord4xOES_t glMultiTexCoord4xOES;
-    glNormal3xOES_t glNormal3xOES;
-    glOrthoxOES_t glOrthoxOES;
-    glPointParameterxOES_t glPointParameterxOES;
-    glPointParameterxvOES_t glPointParameterxvOES;
-    glPointSizexOES_t glPointSizexOES;
-    glPolygonOffsetxOES_t glPolygonOffsetxOES;
-    glRotatexOES_t glRotatexOES;
-    glSampleCoveragexOES_t glSampleCoveragexOES;
-    glScalexOES_t glScalexOES;
-    glTexEnvxOES_t glTexEnvxOES;
-    glTexEnvxvOES_t glTexEnvxvOES;
-    glTexParameterxOES_t glTexParameterxOES;
-    glTexParameterxvOES_t glTexParameterxvOES;
-    glTranslatexOES_t glTranslatexOES;
-    glIsRenderbufferOES_t glIsRenderbufferOES;
-    glBindRenderbufferOES_t glBindRenderbufferOES;
-    glDeleteRenderbuffersOES_t glDeleteRenderbuffersOES;
-    glGenRenderbuffersOES_t glGenRenderbuffersOES;
-    glRenderbufferStorageOES_t glRenderbufferStorageOES;
-    glGetRenderbufferParameterivOES_t glGetRenderbufferParameterivOES;
-    glIsFramebufferOES_t glIsFramebufferOES;
-    glBindFramebufferOES_t glBindFramebufferOES;
-    glDeleteFramebuffersOES_t glDeleteFramebuffersOES;
-    glGenFramebuffersOES_t glGenFramebuffersOES;
-    glCheckFramebufferStatusOES_t glCheckFramebufferStatusOES;
-    glFramebufferRenderbufferOES_t glFramebufferRenderbufferOES;
-    glFramebufferTexture2DOES_t glFramebufferTexture2DOES;
-    glGetFramebufferAttachmentParameterivOES_t glGetFramebufferAttachmentParameterivOES;
-    glGenerateMipmapOES_t glGenerateMipmapOES;
-    glMapBufferOES_t glMapBufferOES;
-    glUnmapBufferOES_t glUnmapBufferOES;
-    glGetBufferPointervOES_t glGetBufferPointervOES;
-    glCurrentPaletteMatrixOES_t glCurrentPaletteMatrixOES;
-    glLoadPaletteFromModelViewMatrixOES_t glLoadPaletteFromModelViewMatrixOES;
-    glMatrixIndexPointerOES_t glMatrixIndexPointerOES;
-    glWeightPointerOES_t glWeightPointerOES;
-    glQueryMatrixxOES_t glQueryMatrixxOES;
-    glDepthRangefOES_t glDepthRangefOES;
-    glFrustumfOES_t glFrustumfOES;
-    glOrthofOES_t glOrthofOES;
-    glClipPlanefOES_t glClipPlanefOES;
-    glGetClipPlanefOES_t glGetClipPlanefOES;
-    glClearDepthfOES_t glClearDepthfOES;
-    glTexGenfOES_t glTexGenfOES;
-    glTexGenfvOES_t glTexGenfvOES;
-    glTexGeniOES_t glTexGeniOES;
-    glTexGenivOES_t glTexGenivOES;
-    glTexGenxOES_t glTexGenxOES;
-    glTexGenxvOES_t glTexGenxvOES;
-    glGetTexGenfvOES_t glGetTexGenfvOES;
-    glGetTexGenivOES_t glGetTexGenivOES;
-    glGetTexGenxvOES_t glGetTexGenxvOES;
-    glBindVertexArrayOES_t glBindVertexArrayOES;
-    glDeleteVertexArraysOES_t glDeleteVertexArraysOES;
-    glGenVertexArraysOES_t glGenVertexArraysOES;
-    glIsVertexArrayOES_t glIsVertexArrayOES;
-    glDiscardFramebufferEXT_t glDiscardFramebufferEXT;
-    glMultiDrawArraysEXT_t glMultiDrawArraysEXT;
-    glMultiDrawElementsEXT_t glMultiDrawElementsEXT;
-    glClipPlanefIMG_t glClipPlanefIMG;
-    glClipPlanexIMG_t glClipPlanexIMG;
-    glRenderbufferStorageMultisampleIMG_t glRenderbufferStorageMultisampleIMG;
-    glFramebufferTexture2DMultisampleIMG_t glFramebufferTexture2DMultisampleIMG;
-    glDeleteFencesNV_t glDeleteFencesNV;
-    glGenFencesNV_t glGenFencesNV;
-    glIsFenceNV_t glIsFenceNV;
-    glTestFenceNV_t glTestFenceNV;
-    glGetFenceivNV_t glGetFenceivNV;
-    glFinishFenceNV_t glFinishFenceNV;
-    glSetFenceNV_t glSetFenceNV;
-    glGetDriverControlsQCOM_t glGetDriverControlsQCOM;
-    glGetDriverControlStringQCOM_t glGetDriverControlStringQCOM;
-    glEnableDriverControlQCOM_t glEnableDriverControlQCOM;
-    glDisableDriverControlQCOM_t glDisableDriverControlQCOM;
-    glExtGetTexturesQCOM_t glExtGetTexturesQCOM;
-    glExtGetBuffersQCOM_t glExtGetBuffersQCOM;
-    glExtGetRenderbuffersQCOM_t glExtGetRenderbuffersQCOM;
-    glExtGetFramebuffersQCOM_t glExtGetFramebuffersQCOM;
-    glExtGetTexLevelParameterivQCOM_t glExtGetTexLevelParameterivQCOM;
-    glExtTexObjectStateOverrideiQCOM_t glExtTexObjectStateOverrideiQCOM;
-    glExtGetTexSubImageQCOM_t glExtGetTexSubImageQCOM;
-    glExtGetBufferPointervQCOM_t glExtGetBufferPointervQCOM;
-    glExtGetShadersQCOM_t glExtGetShadersQCOM;
-    glExtGetProgramsQCOM_t glExtGetProgramsQCOM;
-    glExtIsProgramBinaryQCOM_t glExtIsProgramBinaryQCOM;
-    glExtGetProgramBinarySourceQCOM_t glExtGetProgramBinarySourceQCOM;
-    glStartTilingQCOM_t glStartTilingQCOM;
-    glEndTilingQCOM_t glEndTilingQCOM;
-};
-
-bool init_gl_dispatch();
-void *gl_dispatch_get_proc_func(const char *name, void *userData);
-
-extern GLDispatch s_gl;
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/NativeLinuxSubWindow.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/NativeLinuxSubWindow.cpp
deleted file mode 100644
index ff335df..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/NativeLinuxSubWindow.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "NativeSubWindow.h"
-
-static Bool WaitForMapNotify(Display *d, XEvent *e, char *arg)
-{
-    if (e->type == MapNotify && e->xmap.window == (Window)arg) {
-	    return 1;
-    }
-    return 0;
-}
-
-static Display *s_display = NULL;
-
-EGLNativeWindowType createSubWindow(FBNativeWindowType p_window,
-                                    EGLNativeDisplayType* display_out,
-                                    int x, int y,int width, int height){
-
-   // The call to this function is protected by a lock
-   // in FrameBuffer so it is safe to check and initialize s_display here
-   if (!s_display) s_display = XOpenDisplay(NULL);
-   *display_out = s_display;
-
-    XSetWindowAttributes wa;
-    wa.event_mask = StructureNotifyMask;
-    Window win = XCreateWindow(*display_out,p_window,x,y, width,height,0,CopyFromParent,CopyFromParent,CopyFromParent,CWEventMask,&wa);
-    XMapWindow(*display_out,win);
-    XEvent e;
-    XIfEvent(*display_out, &e, WaitForMapNotify, (char *)win);
-    return win;
-}
-
-void destroySubWindow(EGLNativeDisplayType dis,EGLNativeWindowType win){
-    XDestroyWindow(dis, win);
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/NativeMacSubWindow.m b/tools/emulator/opengl/host/libs/libOpenglRender/NativeMacSubWindow.m
deleted file mode 100644
index 2ac39e8..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/NativeMacSubWindow.m
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "NativeSubWindow.h"
-#include <Cocoa/Cocoa.h>
-
-/*
- * EmuGLView inherit from NSView and override the isOpaque
- * method to return YES. That prevents drawing of underlying window/view
- * when the view needs to be redrawn.
- */
-@interface EmuGLView : NSView {
-} @end
-
-@implementation EmuGLView
-
-  - (BOOL)isOpaque {
-      return YES;
-  }
-
-@end
-
-
-EGLNativeWindowType createSubWindow(FBNativeWindowType p_window,
-                                    EGLNativeDisplayType* display_out,
-                                    int x, int y,int width, int height){
-    NSRect contentRect = NSMakeRect(x, y, width, height);
-    NSView *glView = [[EmuGLView alloc] initWithFrame:contentRect];
-    if (glView) {
-        NSWindow *win = (NSWindow *)p_window;
-        [[win contentView] addSubview:glView];
-        [win makeKeyAndOrderFront:nil];
-    }
-
-    return (EGLNativeWindowType)glView;
-}
-
-void destroySubWindow(EGLNativeDisplayType dis,EGLNativeWindowType win){
-    if(win){
-        NSView *glView = (NSView *)win;
-        [glView removeFromSuperview];
-        [glView release];
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/NativeSubWindow.h b/tools/emulator/opengl/host/libs/libOpenglRender/NativeSubWindow.h
deleted file mode 100644
index 1965978..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/NativeSubWindow.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef NATIVE_SUB_WINDOW_H
-#define NATIVE_SUB_WINDOW_H
-
-#include <EGL/egl.h>
-#include "libOpenglRender/render_api_platform_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EGLNativeWindowType createSubWindow(FBNativeWindowType p_window,
-                                    EGLNativeDisplayType* display_out,
-                                    int x, int y,int width, int height);
-
-
-void destroySubWindow(EGLNativeDisplayType dis,EGLNativeWindowType win);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/NativeWindowsSubWindow.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/NativeWindowsSubWindow.cpp
deleted file mode 100644
index e519b68..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/NativeWindowsSubWindow.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "NativeSubWindow.h"
-#include <stdio.h>
-
-LRESULT CALLBACK myWndProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
-{
-    return DefWindowProc(hwnd, uMsg, wParam, lParam);
-}
-
-EGLNativeWindowType createSubWindow(FBNativeWindowType p_window,
-                                    EGLNativeDisplayType* display_out,
-                                    int x, int y,int width, int height){
-    WNDCLASS wc;
-    wc.style =  CS_OWNDC |CS_HREDRAW |CS_VREDRAW;  // redraw if size changes
-    wc.lpfnWndProc = myWndProc;                 // points to window procedure
-    wc.cbClsExtra = 0;                             // no extra class memory
-    wc.cbWndExtra = sizeof(void*);                 // save extra window memory, to store VasWindow instance
-    wc.hInstance = NULL;                           // handle to instance
-    wc.hIcon = NULL;                               // predefined app. icon
-    wc.hCursor = NULL;
-    wc.hbrBackground = NULL;                       // no background brush
-    wc.lpszMenuName =  NULL;                       // name of menu resource
-    wc.lpszClassName = "subWin";                 // name of window class
-
-    RegisterClass(&wc);
-    printf("creating window %d %d %d %d\n",x,y,width,height);
-    EGLNativeWindowType ret = CreateWindowEx(
-                        WS_EX_NOPARENTNOTIFY,  // do not bother our parent window
-                        "subWin",
-                        "sub",
-                        WS_CHILD|WS_DISABLED,
-                        x,y,width,height,
-                        p_window,
-                        NULL,
-                        NULL,
-                        NULL);
-    ShowWindow(ret,SW_SHOW);
-    return ret;
-}
-
-void destroySubWindow(EGLNativeDisplayType dis,EGLNativeWindowType win){
-    PostMessage(win, WM_CLOSE, 0, 0);
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/ReadBuffer.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/ReadBuffer.cpp
deleted file mode 100644
index 0949c46..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/ReadBuffer.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "ReadBuffer.h"
-#include <string.h>
-#include <assert.h>
-#include <limits.h>
-#include "ErrorLog.h"
-
-ReadBuffer::ReadBuffer(IOStream *stream, size_t bufsize)
-{
-    m_size = bufsize;
-    m_stream = stream;
-    m_buf = (unsigned char*)malloc(m_size*sizeof(unsigned char));
-    m_validData = 0;
-    m_readPtr = m_buf;
-}
-
-ReadBuffer::~ReadBuffer()
-{
-    free(m_buf);
-}
-
-int ReadBuffer::getData()
-{
-    if ((m_validData > 0) && (m_readPtr > m_buf)) {
-        memmove(m_buf, m_readPtr, m_validData);
-    }
-    // get fresh data into the buffer;
-    size_t len = m_size - m_validData;
-    if (len==0) {
-        //we need to inc our buffer
-        size_t new_size = m_size*2;
-        unsigned char* new_buf;
-        if (new_size < m_size) { // overflow check
-            new_size = INT_MAX;
-        }
-
-        new_buf = (unsigned char*)realloc(m_buf, new_size);
-        if (!new_buf) {
-            ERR("Failed to alloc %d bytes for ReadBuffer\n", new_size);
-            return -1;
-        }
-        m_size = new_size;
-        m_buf  = new_buf;
-        len    = m_size - m_validData;
-    }
-    m_readPtr = m_buf;
-    if (NULL != m_stream->read(m_buf + m_validData, &len)) {
-        m_validData += len;
-        return len;
-    }
-    return -1;
-}
-
-void ReadBuffer::consume(size_t amount)
-{
-    assert(amount <= m_validData);
-    m_validData -= amount;
-    m_readPtr += amount;
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/ReadBuffer.h b/tools/emulator/opengl/host/libs/libOpenglRender/ReadBuffer.h
deleted file mode 100644
index f2dfbce..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/ReadBuffer.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _READ_BUFFER_H
-#define _READ_BUFFER_H
-
-#include "IOStream.h"
-
-class ReadBuffer {
-public:
-    ReadBuffer(IOStream *stream, size_t bufSize);
-    ~ReadBuffer();
-    int getData(); // get fresh data from the stream
-    unsigned char *buf() { return m_readPtr; } // return the next read location
-    size_t validData() { return m_validData; } // return the amount of valid data in readptr
-    void consume(size_t amount); // notify that 'amount' data has been consumed;
-private:
-    unsigned char *m_buf;
-    unsigned char *m_readPtr;
-    size_t m_size;
-    size_t m_validData;
-    IOStream *m_stream;
-};
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderContext.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/RenderContext.cpp
deleted file mode 100644
index f5cbd67..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderContext.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RenderContext.h"
-#include "FBConfig.h"
-#include "FrameBuffer.h"
-#include "EGLDispatch.h"
-#include "GLDispatch.h"
-
-RenderContext *RenderContext::create(int p_config,
-                                     RenderContextPtr p_shareContext,
-                                     bool p_isGL2)
-{
-    const FBConfig *fbconf = FBConfig::get(p_config);
-    if (!fbconf) {
-        return NULL;
-    }
-
-    RenderContext *c = new RenderContext();
-    if (!c) {
-        return NULL;
-    }
-
-    EGLContext share = EGL_NO_CONTEXT;
-    if (p_shareContext.Ptr() != NULL) {
-        share = p_shareContext->getEGLContext();
-    }
-
-    GLint glContextAttribs[] = {
-        EGL_CONTEXT_CLIENT_VERSION, 1,
-        EGL_NONE
-    };
-
-    if (p_isGL2) {
-        glContextAttribs[1] = 2;
-        c->m_isGL2 = true;
-    }
-
-    c->m_ctx = s_egl.eglCreateContext(FrameBuffer::getFB()->getDisplay(),
-                                      fbconf->getEGLConfig(), share,
-                                      glContextAttribs);
-
-    if (c->m_ctx == EGL_NO_CONTEXT) {
-        delete c;
-        return NULL;
-    }
-
-    c->m_config = p_config;
-    return c;
-}
-
-RenderContext::RenderContext() :
-    m_ctx(EGL_NO_CONTEXT),
-    m_config(0),
-    m_isGL2(false)
-{
-}
-
-RenderContext::~RenderContext()
-{
-    if (m_ctx != EGL_NO_CONTEXT) {
-        s_egl.eglDestroyContext(FrameBuffer::getFB()->getDisplay(), m_ctx);
-    }
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderContext.h b/tools/emulator/opengl/host/libs/libOpenglRender/RenderContext.h
deleted file mode 100644
index 9cbb5fc..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderContext.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIBRENDER_RENDERCONTEXT_H
-#define _LIBRENDER_RENDERCONTEXT_H
-
-#include "SmartPtr.h"
-#include <EGL/egl.h>
-#include "GLDecoderContextData.h"
-
-class RenderContext;
-typedef SmartPtr<RenderContext> RenderContextPtr;
-
-class RenderContext
-{
-public:
-    static RenderContext *create(int p_config, RenderContextPtr p_shareContext,
-                                 bool p_isGL2 = false);
-    ~RenderContext();
-    int getConfig() const { return m_config; }
-
-    EGLContext getEGLContext() const { return m_ctx; }
-    bool isGL2() const { return m_isGL2; }
-
-    GLDecoderContextData & decoderContextData() { return m_contextData; }
-
-private:
-    RenderContext();
-
-private:
-    EGLContext m_ctx;
-    int        m_config;
-    bool       m_isGL2;
-    GLDecoderContextData    m_contextData;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderControl.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/RenderControl.cpp
deleted file mode 100644
index 14c3423..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderControl.cpp
+++ /dev/null
@@ -1,350 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "renderControl_dec.h"
-#include "FrameBuffer.h"
-#include "FBConfig.h"
-#include "EGLDispatch.h"
-#include "GLDispatch.h"
-#include "GL2Dispatch.h"
-#include "ThreadInfo.h"
-
-static const GLint rendererVersion = 1;
-
-static GLint rcGetRendererVersion()
-{
-    return rendererVersion;
-}
-
-static EGLint rcGetEGLVersion(EGLint* major, EGLint* minor)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return EGL_FALSE;
-    }
-    *major = (EGLint)fb->getCaps().eglMajor;
-    *minor = (EGLint)fb->getCaps().eglMinor;
-
-    return EGL_TRUE;
-}
-
-static EGLint rcQueryEGLString(EGLenum name, void* buffer, EGLint bufferSize)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return 0;
-    }
-
-    const char *str = s_egl.eglQueryString(fb->getDisplay(), name);
-    if (!str) {
-        return 0;
-    }
-
-    int len = strlen(str) + 1;
-    if (!buffer || len > bufferSize) {
-        return -len;
-    }
-
-    strcpy((char *)buffer, str);
-    return len;
-}
-
-static EGLint rcGetGLString(EGLenum name, void* buffer, EGLint bufferSize)
-{
-    RenderThreadInfo *tInfo = getRenderThreadInfo();
-    if (!tInfo || !tInfo->currContext.Ptr()) {
-        return 0;
-    }
-
-    const char *str = NULL;
-#ifdef WITH_GLES2
-    if (tInfo->currContext->isGL2()) {
-        str = (const char *)s_gl2.glGetString(name);
-    }
-    else {
-#endif
-        str = (const char *)s_gl.glGetString(name);
-#ifdef WITH_GLES2
-    }
-#endif
-
-    if (!str) {
-        return 0;
-    }
-
-    int len = strlen(str) + 1;
-    if (!buffer || len > bufferSize) {
-        return -len;
-    }
-
-    strcpy((char *)buffer, str);
-    return len;
-}
-
-static EGLint rcGetNumConfigs(uint32_t* numAttribs)
-{
-    if (numAttribs) {
-        *numAttribs = FBConfig::getNumAttribs();
-    }
-    return FBConfig::getNumConfigs();
-}
-
-static EGLint rcGetConfigs(uint32_t bufSize, GLuint* buffer)
-{
-    int configSize = FBConfig::getNumAttribs();
-    int nConfigs = FBConfig::getNumConfigs();
-    uint32_t neededSize = (nConfigs + 1) * configSize * sizeof(GLuint);
-    if (!buffer || bufSize < neededSize) {
-        return -neededSize;
-    }
-    FBConfig::packConfigsInfo(buffer);
-    return nConfigs;
-}
-
-static EGLint rcChooseConfig(EGLint *attribs, uint32_t attribs_size, uint32_t *configs, uint32_t configs_size)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return 0;
-    }
-
-    return FBConfig::chooseConfig(fb, attribs, configs, configs_size);
-}
-
-static EGLint rcGetFBParam(EGLint param)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return 0;
-    }
-
-    EGLint ret = 0;
-
-    switch(param) {
-        case FB_WIDTH:
-            ret = fb->getWidth();
-            break;
-        case FB_HEIGHT:
-            ret = fb->getHeight();
-            break;
-        case FB_XDPI:
-            ret = 72; // XXX: should be implemented
-            break;
-        case FB_YDPI:
-            ret = 72; // XXX: should be implemented
-            break;
-        case FB_FPS:
-            ret = 60;
-            break;
-        case FB_MIN_SWAP_INTERVAL:
-            ret = 1; // XXX: should be implemented
-            break;
-        case FB_MAX_SWAP_INTERVAL:
-            ret = 1; // XXX: should be implemented
-            break;
-        default:
-            break;
-    }
-
-    return ret;
-}
-
-static uint32_t rcCreateContext(uint32_t config,
-                                uint32_t share, uint32_t glVersion)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return 0;
-    }
-
-    HandleType ret = fb->createRenderContext(config, share, glVersion == 2);
-    return ret;
-}
-
-static void rcDestroyContext(uint32_t context)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-
-    fb->DestroyRenderContext(context);
-}
-
-static uint32_t rcCreateWindowSurface(uint32_t config,
-                                      uint32_t width, uint32_t height)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return 0;
-    }
-
-    return fb->createWindowSurface(config, width, height);
-}
-
-static void rcDestroyWindowSurface(uint32_t windowSurface)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-
-    fb->DestroyWindowSurface( windowSurface );
-}
-
-static uint32_t rcCreateColorBuffer(uint32_t width,
-                                    uint32_t height, GLenum internalFormat)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return 0;
-    }
-
-    return fb->createColorBuffer(width, height, internalFormat);
-}
-
-static void rcDestroyColorBuffer(uint32_t colorbuffer)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-    fb->DestroyColorBuffer( colorbuffer );
-}
-
-static int rcFlushWindowColorBuffer(uint32_t windowSurface)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return -1;
-    }
-    fb->flushWindowSurfaceColorBuffer(windowSurface);
-    return 0;
-}
-
-static void rcSetWindowColorBuffer(uint32_t windowSurface,
-                                   uint32_t colorBuffer)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-    fb->setWindowSurfaceColorBuffer(windowSurface, colorBuffer);
-}
-
-static EGLint rcMakeCurrent(uint32_t context,
-                            uint32_t drawSurf, uint32_t readSurf)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return EGL_FALSE;
-    }
-
-    bool ret = fb->bindContext(context, drawSurf, readSurf);
-
-    return (ret ? EGL_TRUE : EGL_FALSE);
-}
-
-static void rcFBPost(uint32_t colorBuffer)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-
-    fb->post(colorBuffer);
-}
-
-static void rcFBSetSwapInterval(EGLint interval)
-{
-   // XXX: TBD - should be implemented
-}
-
-static void rcBindTexture(uint32_t colorBuffer)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-
-    fb->bindColorBufferToTexture(colorBuffer);
-}
-
-static void rcBindRenderbuffer(uint32_t colorBuffer)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return;
-    }
-
-    fb->bindColorBufferToRenderbuffer(colorBuffer);
-}
-
-static EGLint rcColorBufferCacheFlush(uint32_t colorBuffer,
-                                      EGLint postCount, int forRead)
-{
-   // XXX: TBD - should be implemented
-   return 0;
-}
-
-static void rcReadColorBuffer(uint32_t colorBuffer,
-                              GLint x, GLint y,
-                              GLint width, GLint height,
-                              GLenum format, GLenum type, void* pixels)
-{
-   // XXX: TBD - should be implemented
-}
-
-static int rcUpdateColorBuffer(uint32_t colorBuffer,
-                                GLint x, GLint y,
-                                GLint width, GLint height,
-                                GLenum format, GLenum type, void* pixels)
-{
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!fb) {
-        return -1;
-    }
-
-    fb->updateColorBuffer(colorBuffer, x, y, width, height, format, type, pixels);
-    return 0;
-}
-
-void initRenderControlContext(renderControl_decoder_context_t *dec)
-{
-    dec->set_rcGetRendererVersion(rcGetRendererVersion);
-    dec->set_rcGetEGLVersion(rcGetEGLVersion);
-    dec->set_rcQueryEGLString(rcQueryEGLString);
-    dec->set_rcGetGLString(rcGetGLString);
-    dec->set_rcGetNumConfigs(rcGetNumConfigs);
-    dec->set_rcGetConfigs(rcGetConfigs);
-    dec->set_rcChooseConfig(rcChooseConfig);
-    dec->set_rcGetFBParam(rcGetFBParam);
-    dec->set_rcCreateContext(rcCreateContext);
-    dec->set_rcDestroyContext(rcDestroyContext);
-    dec->set_rcCreateWindowSurface(rcCreateWindowSurface);
-    dec->set_rcDestroyWindowSurface(rcDestroyWindowSurface);
-    dec->set_rcCreateColorBuffer(rcCreateColorBuffer);
-    dec->set_rcDestroyColorBuffer(rcDestroyColorBuffer);
-    dec->set_rcSetWindowColorBuffer(rcSetWindowColorBuffer);
-    dec->set_rcFlushWindowColorBuffer(rcFlushWindowColorBuffer);
-    dec->set_rcMakeCurrent(rcMakeCurrent);
-    dec->set_rcFBPost(rcFBPost);
-    dec->set_rcFBSetSwapInterval(rcFBSetSwapInterval);
-    dec->set_rcBindTexture(rcBindTexture);
-    dec->set_rcBindRenderbuffer(rcBindRenderbuffer);
-    dec->set_rcColorBufferCacheFlush(rcColorBufferCacheFlush);
-    dec->set_rcReadColorBuffer(rcReadColorBuffer);
-    dec->set_rcUpdateColorBuffer(rcUpdateColorBuffer);
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderControl.h b/tools/emulator/opengl/host/libs/libOpenglRender/RenderControl.h
deleted file mode 100644
index 233e809..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderControl.h
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _RENDER_CONTROL_H
-#define _RENDER_CONTROL_H
-
-void initRenderControlContext(renderControl_decoder_context_t *dec);
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderServer.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/RenderServer.cpp
deleted file mode 100644
index 78f305c..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderServer.cpp
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RenderServer.h"
-#include "TcpStream.h"
-#ifdef _WIN32
-#include "Win32PipeStream.h"
-#else
-#include "UnixStream.h"
-#endif
-#include "RenderThread.h"
-#include "FrameBuffer.h"
-#include <set>
-
-typedef std::set<RenderThread *> RenderThreadsSet;
-
-RenderServer::RenderServer() :
-    m_listenSock(NULL),
-    m_exiting(false)
-{
-}
-
-extern "C" int gRendererStreamMode;
-
-RenderServer *RenderServer::create(int port)
-{
-    RenderServer *server = new RenderServer();
-    if (!server) {
-        return NULL;
-    }
-
-    if (gRendererStreamMode == STREAM_MODE_TCP) {
-        server->m_listenSock = new TcpStream();
-    } else {
-#ifdef _WIN32
-        server->m_listenSock = new Win32PipeStream();
-#else
-        server->m_listenSock = new UnixStream();
-#endif
-    }
-
-    if (server->m_listenSock->listen(port) < 0) {
-        ERR("RenderServer::create failed to listen on port %d\n", port);
-        delete server;
-        return NULL;
-    }
-
-    return server;
-}
-
-int RenderServer::Main()
-{
-    RenderThreadsSet threads;
-
-    while(1) {
-        SocketStream *stream = m_listenSock->accept();
-        if (!stream) {
-            fprintf(stderr,"Error accepting connection, aborting\n");
-            break;
-        }
-
-        unsigned int clientFlags;
-        if (!stream->readFully(&clientFlags, sizeof(unsigned int))) {
-            fprintf(stderr,"Error reading clientFlags\n");
-            delete stream;
-            continue;
-        }
-
-        DBG("\n\n\n\n Got new stream!!!! \n\n\n\n\n");
-        // check if we have been requested to exit while waiting on accept
-        if ((clientFlags & IOSTREAM_CLIENT_EXIT_SERVER) != 0) {
-            m_exiting = true;
-            break;
-        }
-
-        RenderThread *rt = RenderThread::create(stream);
-        if (!rt) {
-            fprintf(stderr,"Failed to create RenderThread\n");
-            delete stream;
-        }
-
-        if (!rt->start()) {
-            fprintf(stderr,"Failed to start RenderThread\n");
-            delete stream;
-            delete rt;
-        }
-
-        //
-        // remove from the threads list threads which are
-        // no longer running
-        //
-        for (RenderThreadsSet::iterator n,t = threads.begin();
-             t != threads.end();
-             t = n) {
-            // first find next iterator
-            n = t;
-            n++;
-
-            // delete and erase the current iterator
-            // if thread is no longer running
-            if ((*t)->isFinished()) {
-                delete (*t);
-                threads.erase(t);
-            }
-        }
-
-        // insert the added thread to the list
-        threads.insert(rt);
-
-        DBG("Started new RenderThread\n");
-    }
-
-    //
-    // Wait for all threads to finish
-    //
-    for (RenderThreadsSet::iterator t = threads.begin();
-         t != threads.end();
-         t++) {
-        int exitStatus;
-        (*t)->wait(&exitStatus);
-        delete (*t);
-    }
-    threads.clear();
-
-    //
-    // de-initialize the FrameBuffer object
-    //
-    FrameBuffer::finalize();
-    return 0;
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderServer.h b/tools/emulator/opengl/host/libs/libOpenglRender/RenderServer.h
deleted file mode 100644
index 98e9890..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderServer.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIB_OPENGL_RENDER_RENDER_SERVER_H
-#define _LIB_OPENGL_RENDER_RENDER_SERVER_H
-
-#include "SocketStream.h"
-#include "osThread.h"
-
-class RenderServer : public osUtils::Thread
-{
-public:
-    static RenderServer *create(int port);
-    virtual int Main();
-
-    bool isExiting() const { return m_exiting; }
-
-private:
-    RenderServer();
-
-private:
-    SocketStream *m_listenSock;
-    bool m_exiting;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderThread.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/RenderThread.cpp
deleted file mode 100644
index 2e68c33..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderThread.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RenderThread.h"
-#include "RenderControl.h"
-#include "ThreadInfo.h"
-#include "ReadBuffer.h"
-#include "TimeUtils.h"
-#include "GLDispatch.h"
-#include "GL2Dispatch.h"
-#include "EGLDispatch.h"
-
-#define STREAM_BUFFER_SIZE 4*1024*1024
-
-RenderThread::RenderThread() :
-    osUtils::Thread(),
-    m_stream(NULL),
-    m_finished(false)
-{
-}
-
-RenderThread *RenderThread::create(IOStream *p_stream)
-{
-    RenderThread *rt = new RenderThread();
-    if (!rt) {
-        return NULL;
-    }
-
-    rt->m_stream = p_stream;
-
-    return rt;
-}
-
-int RenderThread::Main()
-{
-    RenderThreadInfo * tInfo = getRenderThreadInfo();
-    //
-    // initialize decoders
-    //
-    tInfo->m_glDec.initGL( gl_dispatch_get_proc_func, NULL );
-    tInfo->m_gl2Dec.initGL( gl2_dispatch_get_proc_func, NULL );
-    initRenderControlContext( &m_rcDec );
-
-    ReadBuffer readBuf(m_stream, STREAM_BUFFER_SIZE);
-
-    int stats_totalBytes = 0;
-    long long stats_t0 = GetCurrentTimeMS();
-
-    //
-    // open dump file if RENDER_DUMP_DIR is defined
-    //
-    const char *dump_dir = getenv("RENDERER_DUMP_DIR");
-    FILE *dumpFP = NULL;
-    if (dump_dir) {
-        size_t bsize = strlen(dump_dir) + 32;
-        char *fname = new char[bsize];
-        snprintf(fname,bsize,"%s/stream_%p", dump_dir, this);
-        dumpFP = fopen(fname, "wb");
-        if (!dumpFP) {
-            fprintf(stderr,"Warning: stream dump failed to open file %s\n",fname);
-        }
-        delete [] fname;
-    }
-
-    while (1) {
-
-        int stat = readBuf.getData();
-        if (stat <= 0) {
-            fprintf(stderr, "client shutdown\n");
-            break;
-        }
-
-        //
-        // log received bandwidth statistics
-        //
-        stats_totalBytes += readBuf.validData();
-        long long dt = GetCurrentTimeMS() - stats_t0;
-        if (dt > 1000) {
-            float dts = (float)dt / 1000.0f;
-            //printf("Used Bandwidth %5.3f MB/s\n", ((float)stats_totalBytes / dts) / (1024.0f*1024.0f));
-            stats_totalBytes = 0;
-            stats_t0 = GetCurrentTimeMS();
-        }
-
-        //
-        // dump stream to file if needed
-        //
-        if (dumpFP) {
-            int skip = readBuf.validData() - stat;
-            fwrite(readBuf.buf()+skip, 1, readBuf.validData()-skip, dumpFP);
-            fflush(dumpFP);
-        }
-
-        bool progress;
-        do {
-            progress = false;
-
-            //
-            // try to process some of the command buffer using the GLESv1 decoder
-            //
-            size_t last = tInfo->m_glDec.decode(readBuf.buf(), readBuf.validData(), m_stream);
-            if (last > 0) {
-                progress = true;
-                readBuf.consume(last);
-            }
-
-            //
-            // try to process some of the command buffer using the GLESv2 decoder
-            //
-            last = tInfo->m_gl2Dec.decode(readBuf.buf(), readBuf.validData(), m_stream);
-            if (last > 0) {
-                progress = true;
-                readBuf.consume(last);
-            }
-
-            //
-            // try to process some of the command buffer using the
-            // renderControl decoder
-            //
-            last = m_rcDec.decode(readBuf.buf(), readBuf.validData(), m_stream);
-            if (last > 0) {
-                readBuf.consume(last);
-                progress = true;
-            }
-
-        } while( progress );
-
-    }
-
-    if (dumpFP) {
-        fclose(dumpFP);
-    }
-
-    //
-    // release the thread from any EGL context
-    // if bound to context.
-    //
-    EGLDisplay eglDpy = s_egl.eglGetCurrentDisplay();
-    if (eglDpy != EGL_NO_DISPLAY) {
-        s_egl.eglMakeCurrent(eglDpy, 
-                             EGL_NO_SURFACE,
-                             EGL_NO_SURFACE,
-                             EGL_NO_CONTEXT);
-    }
-
-    //
-    // flag that this thread has finished execution
-    m_finished = true;
-
-    return 0;
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/RenderThread.h b/tools/emulator/opengl/host/libs/libOpenglRender/RenderThread.h
deleted file mode 100644
index 67d423f..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/RenderThread.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIB_OPENGL_RENDER_RENDER_THREAD_H
-#define _LIB_OPENGL_RENDER_RENDER_THREAD_H
-
-#include "IOStream.h"
-#include "GLDecoder.h"
-#include "renderControl_dec.h"
-#include "osThread.h"
-
-class RenderThread : public osUtils::Thread
-{
-public:
-    static RenderThread *create(IOStream *p_stream);
-
-    bool isFinished() const { return m_finished; }
-
-private:
-    RenderThread();
-    virtual int Main();
-
-private:
-    IOStream *m_stream;
-    renderControl_decoder_context_t m_rcDec;
-    bool m_finished;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/ThreadInfo.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/ThreadInfo.cpp
deleted file mode 100644
index 2f2a962..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/ThreadInfo.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "ThreadInfo.h"
-
-#ifdef __linux__
-
-static __thread RenderThreadInfo *tinfo = NULL;
-
-RenderThreadInfo *getRenderThreadInfo()
-{
-    if (!tinfo) {
-        tinfo = new RenderThreadInfo();
-    }
-    return tinfo;
-}
-
-#else
-
-#include <cutils/threads.h>
-static thread_store_t s_tls = THREAD_STORE_INITIALIZER;
-
-static void tlsDestruct(void *ptr)
-{
-    if (ptr) {
-        RenderThreadInfo *ti = (RenderThreadInfo *)ptr;
-        delete ti;
-    }
-}
-
-RenderThreadInfo *getRenderThreadInfo()
-{
-    RenderThreadInfo *ti = (RenderThreadInfo *)thread_store_get(&s_tls);
-    if (!ti) {
-        ti = new RenderThreadInfo();
-        thread_store_set(&s_tls, ti, tlsDestruct);
-    }
-    return ti;
-}
-#endif
-
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/ThreadInfo.h b/tools/emulator/opengl/host/libs/libOpenglRender/ThreadInfo.h
deleted file mode 100644
index b147290..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/ThreadInfo.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIB_OPENGL_RENDER_THREAD_INFO_H
-#define _LIB_OPENGL_RENDER_THREAD_INFO_H
-
-#include "RenderContext.h"
-#include "WindowSurface.h"
-#include "GLDecoder.h"
-#include "GL2Decoder.h"
-
-struct RenderThreadInfo
-{
-    RenderContextPtr currContext;
-    WindowSurfacePtr currDrawSurf;
-    WindowSurfacePtr currReadSurf;
-    GLDecoder        m_glDec;
-    GL2Decoder       m_gl2Dec;
-};
-
-RenderThreadInfo *getRenderThreadInfo();
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/WindowSurface.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/WindowSurface.cpp
deleted file mode 100644
index b8d1bd2..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/WindowSurface.cpp
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "WindowSurface.h"
-#include "FBConfig.h"
-#include "FrameBuffer.h"
-#include <GLES/glext.h>
-#include "EGLDispatch.h"
-#include "GLDispatch.h"
-#include "GL2Dispatch.h"
-#include <stdio.h>
-#include <string.h>
-#include "GLErrorLog.h"
-
-WindowSurface::WindowSurface() :
-    m_fbObj(0),
-    m_depthRB(0),
-    m_stencilRB(0),
-    m_eglSurface(NULL),
-    m_attachedColorBuffer(NULL),
-    m_readContext(NULL),
-    m_drawContext(NULL),
-    m_width(0),
-    m_height(0),
-    m_pbufWidth(0),
-    m_pbufHeight(0)
-{
-}
-
-WindowSurface::~WindowSurface()
-{
-    s_egl.eglDestroySurface(FrameBuffer::getFB()->getDisplay(), m_eglSurface);
-}
-
-WindowSurface *WindowSurface::create(int p_config, int p_width, int p_height)
-{
-    const FBConfig *fbconf = FBConfig::get(p_config);
-    if (!fbconf) {
-        return NULL;
-    }
-
-    // allocate space for the WindowSurface object
-    WindowSurface *win = new WindowSurface();
-    if (!win) {
-        return NULL;
-    }
-    win->m_fbconf = fbconf;
-
-    FrameBuffer *fb = FrameBuffer::getFB();
-    const FrameBufferCaps &caps = fb->getCaps();
-
-    //
-    // Create a pbuffer to be used as the egl surface
-    // for that window.
-    //
-    if (!win->resizePbuffer(p_width, p_height)) {
-        delete win;
-        return NULL;
-    }
-
-    win->m_width = p_width;
-    win->m_height = p_height;
-
-    return win;
-}
-
-//
-// flushColorBuffer - The function makes sure that the
-//    previous attached color buffer is updated, if copy or blit should be done
-//    in order to update it - it is being done here.
-//
-void WindowSurface::flushColorBuffer()
-{
-    if (m_attachedColorBuffer.Ptr() != NULL) {
-
-        //copyToColorBuffer();
-        blitToColorBuffer();
-    }
-}
-
-//
-// setColorBuffer - this function is called when a new color buffer needs to
-//    be attached to the surface. The function doesn't make sure that the
-//    previous attached color buffer is updated, this is done by flushColorBuffer
-//
-void WindowSurface::setColorBuffer(ColorBufferPtr p_colorBuffer)
-{
-    m_attachedColorBuffer = p_colorBuffer;
-
-    //
-    // resize the window if the attached color buffer is of different
-    // size
-    //
-    unsigned int cbWidth = m_attachedColorBuffer->getWidth();
-    unsigned int cbHeight = m_attachedColorBuffer->getHeight();
-
-    if (cbWidth != m_width || cbHeight != m_height) {
-
-        if (m_pbufWidth && m_pbufHeight) {
-            // if we use pbuffer, need to resize it
-            resizePbuffer(cbWidth, cbHeight);
-        }
-
-        m_width = cbWidth;
-        m_height = cbHeight;
-    }
-}
-
-//
-// This function is called after the context and eglSurface is already
-// bound in the current thread (eglMakeCurrent has been called).
-// This function should take actions required on the other surface objects
-// when being bind/unbound
-//
-void WindowSurface::bind(RenderContextPtr p_ctx, SurfaceBindType p_bindType)
-{
-    if (p_bindType == SURFACE_BIND_READ) {
-        m_readContext = p_ctx;
-    }
-    else if (p_bindType == SURFACE_BIND_DRAW) {
-        m_drawContext = p_ctx;
-    }
-    else if (p_bindType == SURFACE_BIND_READDRAW) {
-        m_readContext = p_ctx;
-        m_drawContext = p_ctx;
-    }
-    else {
-        return;  // bad param
-    }
-
-}
-
-void WindowSurface::copyToColorBuffer()
-{
-    if (!m_width && !m_height) return;
-
-    if (m_attachedColorBuffer->getWidth() != m_width ||
-        m_attachedColorBuffer->getHeight() != m_height) {
-        // XXX: should never happen - how this needs to be handled?
-        return;
-    }
-
-    void *data = m_xferBuffer.alloc(m_width * m_height * 4);
-    if (!data) {
-        fprintf(stderr,"WARNING: Failed to copy buffer data - OutOfMemory\n");
-        return;
-    }
-
-    //
-    // Make the surface current
-    //
-    EGLContext prevContext = s_egl.eglGetCurrentContext();
-    EGLSurface prevReadSurf = s_egl.eglGetCurrentSurface(EGL_READ);
-    EGLSurface prevDrawSurf = s_egl.eglGetCurrentSurface(EGL_DRAW);
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!s_egl.eglMakeCurrent(fb->getDisplay(), m_eglSurface,
-                              m_eglSurface, m_drawContext->getEGLContext())) {
-        return;
-    }
-
-    if (m_drawContext->isGL2()) {
-#ifdef WITH_GLES2
-        s_gl2.glPixelStorei(GL_PACK_ALIGNMENT, 1);
-        s_gl2.glReadPixels(0, 0, m_width, m_height,
-                          GL_RGBA, GL_UNSIGNED_BYTE, data);
-#else
-        return; // should never happen, context cannot be GL2 in this case.
-#endif
-    }
-    else {
-        s_gl.glPixelStorei(GL_PACK_ALIGNMENT, 1);
-        s_gl.glReadPixels(0, 0, m_width, m_height,
-                          GL_RGBA, GL_UNSIGNED_BYTE, data);
-    }
-
-//
-// XXX: for some reason flipping the image is not required on
-//      Mac. Need to find the reason, currently unkbown.
-//
-#ifndef __APPLE__
-#define FLIP_BUFFER 1
-#endif
-
-#if FLIP_BUFFER
-    //We need to flip the pixels
-    int bpp = 4;
-    void *tmpBuf = m_xUpdateBuf.alloc(m_width * m_height * bpp);
-
-    int dst_line_len = m_width * bpp;
-    int src_line_len = m_width * bpp;
-    char *src = (char *)data;
-    char *dst = (char*)tmpBuf + (m_height-1)*dst_line_len;
-    for (uint32_t  y=0; y<m_height; y++) {
-        memcpy(dst, src, dst_line_len);
-        src += src_line_len;
-        dst -= dst_line_len;
-    }
-    // update the attached color buffer with the fliped readback pixels
-    m_attachedColorBuffer->update(GL_RGBA, GL_UNSIGNED_BYTE, tmpBuf);
-#else
-    // update the attached color buffer with the readback pixels
-    m_attachedColorBuffer->update(GL_RGBA, GL_UNSIGNED_BYTE, data);
-#endif
-
-    // restore current context/surface
-    s_egl.eglMakeCurrent(fb->getDisplay(), prevDrawSurf,
-                         prevReadSurf, prevContext);
-
-}
-
-void WindowSurface::blitToColorBuffer()
-{
-    if (!m_width && !m_height) return;
-
-    if (m_attachedColorBuffer->getWidth() != m_width ||
-        m_attachedColorBuffer->getHeight() != m_height) {
-        // XXX: should never happen - how this needs to be handled?
-        return;
-    }
-
-    //
-    // Make the surface current
-    //
-    EGLContext prevContext = s_egl.eglGetCurrentContext();
-    EGLSurface prevReadSurf = s_egl.eglGetCurrentSurface(EGL_READ);
-    EGLSurface prevDrawSurf = s_egl.eglGetCurrentSurface(EGL_DRAW);
-    FrameBuffer *fb = FrameBuffer::getFB();
-    if (!s_egl.eglMakeCurrent(fb->getDisplay(), m_eglSurface,
-                              m_eglSurface, m_drawContext->getEGLContext())) {
-        return;
-    }
-
-    m_attachedColorBuffer->blitFromCurrentReadBuffer();
-
-    // restore current context/surface
-    s_egl.eglMakeCurrent(fb->getDisplay(), prevDrawSurf,
-                         prevReadSurf, prevContext);
-
-}
-
-bool WindowSurface::resizePbuffer(unsigned int p_width, unsigned int p_height)
-{
-    if (m_eglSurface && 
-        m_pbufWidth == p_width &&
-        m_pbufHeight == p_height) {
-        // no need to resize
-        return true;
-    }
-
-    FrameBuffer *fb = FrameBuffer::getFB();
-
-    EGLContext prevContext = s_egl.eglGetCurrentContext();
-    EGLSurface prevReadSurf = s_egl.eglGetCurrentSurface(EGL_READ);
-    EGLSurface prevDrawSurf = s_egl.eglGetCurrentSurface(EGL_DRAW);
-    EGLSurface prevPbuf = m_eglSurface;
-    bool needRebindContext = m_eglSurface &&
-                             (prevReadSurf == m_eglSurface ||
-                              prevDrawSurf == m_eglSurface);
-
-    if (needRebindContext) {
-        s_egl.eglMakeCurrent(fb->getDisplay(), EGL_NO_SURFACE,
-                              EGL_NO_SURFACE, EGL_NO_CONTEXT);
-    }
-
-    //
-    // Destroy previous surface
-    //
-    if (m_eglSurface) {
-        s_egl.eglDestroySurface(fb->getDisplay(), m_eglSurface);
-        m_eglSurface = NULL;
-    }
-
-    const FrameBufferCaps &caps = fb->getCaps();
-
-    //
-    // Create pbuffer surface.
-    //
-    EGLint pbufAttribs[5];
-    pbufAttribs[0] = EGL_WIDTH;
-    pbufAttribs[1] = p_width;
-    pbufAttribs[2] = EGL_HEIGHT;
-    pbufAttribs[3] = p_height;
-    pbufAttribs[4] = EGL_NONE;
-
-    m_eglSurface = s_egl.eglCreatePbufferSurface(fb->getDisplay(),
-                                                 m_fbconf->getEGLConfig(),
-                                                 pbufAttribs);
-    if (m_eglSurface == EGL_NO_SURFACE) {
-        fprintf(stderr, "Renderer error: failed to create/resize pbuffer!!\n");
-        return false;
-    }
-
-    m_pbufWidth = p_width;
-    m_pbufHeight = p_height;
-
-    if (needRebindContext) {
-        s_egl.eglMakeCurrent(fb->getDisplay(), 
-                     (prevDrawSurf==prevPbuf) ? m_eglSurface : prevDrawSurf,
-                     (prevReadSurf==prevPbuf) ? m_eglSurface : prevReadSurf,
-                     prevContext);
-    }
-
-    return true;
-}
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/WindowSurface.h b/tools/emulator/opengl/host/libs/libOpenglRender/WindowSurface.h
deleted file mode 100644
index 6c08954..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/WindowSurface.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _LIBRENDER_WINDOWSURFACE_H
-#define _LIBRENDER_WINDOWSURFACE_H
-
-#include "ColorBuffer.h"
-#include "RenderContext.h"
-#include "FBConfig.h"
-#include "SmartPtr.h"
-#include "FixedBuffer.h"
-#include <EGL/egl.h>
-#include <GLES/gl.h>
-
-enum SurfaceBindType {
-    SURFACE_BIND_READ,
-    SURFACE_BIND_DRAW,
-    SURFACE_BIND_READDRAW
-};
-
-class WindowSurface
-{
-public:
-    static WindowSurface *create(int p_config, int p_width, int p_height);
-    ~WindowSurface();
-    EGLSurface getEGLSurface() const { return m_eglSurface; }
-
-    void setColorBuffer(ColorBufferPtr p_colorBuffer);
-    void flushColorBuffer();
-    void bind(RenderContextPtr p_ctx, SurfaceBindType p_bindType);
-
-private:
-    WindowSurface();
-
-    void copyToColorBuffer();  // copy pbuffer content with readback+download
-    void blitToColorBuffer();  // copy pbuffer content with texload and blit
-    bool resizePbuffer(unsigned int p_width, unsigned int p_height);
-
-private:
-    GLuint m_fbObj;   // GLES Framebuffer object (when EGLimage is used)
-    GLuint m_depthRB;
-    GLuint m_stencilRB;
-    EGLSurface m_eglSurface;
-    ColorBufferPtr m_attachedColorBuffer;
-    RenderContextPtr m_readContext;
-    RenderContextPtr m_drawContext;
-    GLuint m_width;
-    GLuint m_height;
-    GLuint m_pbufWidth;
-    GLuint m_pbufHeight;
-    bool m_useEGLImage;
-    bool m_useBindToTexture;
-    FixedBuffer m_xferBuffer;
-    FixedBuffer m_xUpdateBuf;
-    const FBConfig *m_fbconf;
-};
-
-typedef SmartPtr<WindowSurface> WindowSurfacePtr;
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/egl_proc.h b/tools/emulator/opengl/host/libs/libOpenglRender/egl_proc.h
deleted file mode 100644
index 01dc4ae..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/egl_proc.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _EGL_PROC_H
-#define _EGL_PROC_H
-
-#include <EGL/egl.h>
-#define EGL_EGLEXT_PROTOTYPES
-#include <EGL/eglext.h>
-
-typedef EGLint (EGLAPIENTRY *eglGetError_t) ();
-typedef EGLDisplay (EGLAPIENTRY *eglGetDisplay_t) (EGLNativeDisplayType);
-typedef EGLBoolean (EGLAPIENTRY *eglInitialize_t) (EGLDisplay, EGLint*, EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglTerminate_t) (EGLDisplay);
-typedef char* (EGLAPIENTRY *eglQueryString_t) (EGLDisplay, EGLint);
-typedef EGLBoolean (EGLAPIENTRY *eglGetConfigs_t) (EGLDisplay, EGLConfig*, EGLint, EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglChooseConfig_t) (EGLDisplay, const EGLint*, EGLConfig*, EGLint, EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglGetConfigAttrib_t) (EGLDisplay, EGLConfig, EGLint, EGLint*);
-typedef EGLSurface (EGLAPIENTRY *eglCreateWindowSurface_t) (EGLDisplay, EGLConfig, EGLNativeWindowType, const EGLint*);
-typedef EGLSurface (EGLAPIENTRY *eglCreatePbufferSurface_t) (EGLDisplay, EGLConfig, const EGLint*);
-typedef EGLSurface (EGLAPIENTRY *eglCreatePixmapSurface_t) (EGLDisplay, EGLConfig, EGLNativePixmapType, const EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglDestroySurface_t) (EGLDisplay, EGLSurface);
-typedef EGLBoolean (EGLAPIENTRY *eglQuerySurface_t) (EGLDisplay, EGLSurface, EGLint, EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglBindAPI_t) (EGLenum);
-typedef EGLenum (* eglQueryAPI_t) ();
-typedef EGLBoolean (EGLAPIENTRY *eglWaitClient_t) ();
-typedef EGLBoolean (EGLAPIENTRY *eglReleaseThread_t) ();
-typedef EGLSurface (EGLAPIENTRY *eglCreatePbufferFromClientBuffer_t) (EGLDisplay, EGLenum, EGLClientBuffer, EGLConfig, const EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglSurfaceAttrib_t) (EGLDisplay, EGLSurface, EGLint, EGLint);
-typedef EGLBoolean (EGLAPIENTRY *eglBindTexImage_t) (EGLDisplay, EGLSurface, EGLint);
-typedef EGLBoolean (EGLAPIENTRY *eglReleaseTexImage_t) (EGLDisplay, EGLSurface, EGLint);
-typedef EGLBoolean (EGLAPIENTRY *eglSwapInterval_t) (EGLDisplay, EGLint);
-typedef EGLContext (EGLAPIENTRY *eglCreateContext_t) (EGLDisplay, EGLConfig, EGLContext, const EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglDestroyContext_t) (EGLDisplay, EGLContext);
-typedef EGLBoolean (EGLAPIENTRY *eglMakeCurrent_t) (EGLDisplay, EGLSurface, EGLSurface, EGLContext);
-typedef EGLContext (EGLAPIENTRY *eglGetCurrentContext_t) ();
-typedef EGLSurface (EGLAPIENTRY *eglGetCurrentSurface_t) (EGLint);
-typedef EGLDisplay (EGLAPIENTRY *eglGetCurrentDisplay_t) ();
-typedef EGLBoolean (EGLAPIENTRY *eglQueryContext_t) (EGLDisplay, EGLContext, EGLint, EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglWaitGL_t) ();
-typedef EGLBoolean (EGLAPIENTRY *eglWaitNative_t) (EGLint);
-typedef EGLBoolean (EGLAPIENTRY *eglSwapBuffers_t) (EGLDisplay, EGLSurface);
-typedef EGLBoolean (EGLAPIENTRY *eglCopyBuffers_t) (EGLDisplay, EGLSurface, EGLNativePixmapType);
-typedef __eglMustCastToProperFunctionPointerType (EGLAPIENTRY *eglGetProcAddress_t) (const char*);
-typedef EGLBoolean (EGLAPIENTRY *eglLockSurfaceKHR_t) (EGLDisplay, EGLSurface, const EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglUnlockSurfaceKHR_t) (EGLDisplay, EGLSurface);
-typedef EGLImageKHR (EGLAPIENTRY *eglCreateImageKHR_t) (EGLDisplay, EGLContext, EGLenum, EGLClientBuffer, const EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglDestroyImageKHR_t) (EGLDisplay, EGLImageKHR image);
-typedef EGLSyncKHR (EGLAPIENTRY *eglCreateSyncKHR_t) (EGLDisplay, EGLenum, const EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglDestroySyncKHR_t) (EGLDisplay, EGLSyncKHR sync);
-typedef EGLint (EGLAPIENTRY *eglClientWaitSyncKHR_t) (EGLDisplay, EGLSyncKHR, EGLint, EGLTimeKHR timeout);
-typedef EGLBoolean (EGLAPIENTRY *eglSignalSyncKHR_t) (EGLDisplay, EGLSyncKHR, EGLenum);
-typedef EGLBoolean (EGLAPIENTRY *eglGetSyncAttribKHR_t) (EGLDisplay, EGLSyncKHR, EGLint, EGLint*);
-typedef EGLBoolean (EGLAPIENTRY *eglSetSwapRectangleANDROID_t) (EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint);
-
-#endif // of  _EGL_PROC_H
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/gl_proc.h b/tools/emulator/opengl/host/libs/libOpenglRender/gl_proc.h
deleted file mode 100644
index 465a10d..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/gl_proc.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _GLES_PROC_H
-#define _GLES_PROC_H
-
-#include <GLES/gl.h>
-#define GL_GLEXT_PROTOTYPES
-#include <GLES/glext.h>
-
-typedef void (GL_APIENTRY *glAlphaFunc_t) (GLenum, GLclampf);
-typedef void (GL_APIENTRY *glClearColor_t) (GLclampf, GLclampf, GLclampf, GLclampf);
-typedef void (GL_APIENTRY *glClearDepthf_t) (GLclampf);
-typedef void (GL_APIENTRY *glClipPlanef_t) (GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glColor4f_t) (GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glDepthRangef_t) (GLclampf, GLclampf);
-typedef void (GL_APIENTRY *glFogf_t) (GLenum, GLfloat);
-typedef void (GL_APIENTRY *glFogfv_t) (GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glFrustumf_t) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glGetClipPlanef_t) (GLenum, GLfloat);
-typedef void (GL_APIENTRY *glGetFloatv_t) (GLenum, GLfloat*);
-typedef void (GL_APIENTRY *glGetLightfv_t) (GLenum, GLenum, GLfloat*);
-typedef void (GL_APIENTRY *glGetMaterialfv_t) (GLenum, GLenum, GLfloat*);
-typedef void (GL_APIENTRY *glGetTexEnvfv_t) (GLenum, GLenum, GLfloat*);
-typedef void (GL_APIENTRY *glGetTexParameterfv_t) (GLenum, GLenum, GLfloat*);
-typedef void (GL_APIENTRY *glLightModelf_t) (GLenum, GLfloat);
-typedef void (GL_APIENTRY *glLightModelfv_t) (GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glLightf_t) (GLenum, GLenum, GLfloat);
-typedef void (GL_APIENTRY *glLightfv_t) (GLenum, GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glLineWidth_t) (GLfloat);
-typedef void (GL_APIENTRY *glLoadMatrixf_t) (const GLfloat*);
-typedef void (GL_APIENTRY *glMaterialf_t) (GLenum, GLenum, GLfloat);
-typedef void (GL_APIENTRY *glMaterialfv_t) (GLenum, GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glMultMatrixf_t) (const GLfloat*);
-typedef void (GL_APIENTRY *glMultiTexCoord4f_t) (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glNormal3f_t) (GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glOrthof_t) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glPointParameterf_t) (GLenum, GLfloat);
-typedef void (GL_APIENTRY *glPointParameterfv_t) (GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glPointSize_t) (GLfloat);
-typedef void (GL_APIENTRY *glPolygonOffset_t) (GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glRotatef_t) (GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glScalef_t) (GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glTexEnvf_t) (GLenum, GLenum, GLfloat);
-typedef void (GL_APIENTRY *glTexEnvfv_t) (GLenum, GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glTexParameterf_t) (GLenum, GLenum, GLfloat);
-typedef void (GL_APIENTRY *glTexParameterfv_t) (GLenum, GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glTranslatef_t) (GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glActiveTexture_t) (GLenum);
-typedef void (GL_APIENTRY *glAlphaFuncx_t) (GLenum, GLclampx);
-typedef void (GL_APIENTRY *glBindBuffer_t) (GLenum, GLuint);
-typedef void (GL_APIENTRY *glBindTexture_t) (GLenum, GLuint);
-typedef void (GL_APIENTRY *glBlendFunc_t) (GLenum, GLenum);
-typedef void (GL_APIENTRY *glBufferData_t) (GLenum, GLsizeiptr, const GLvoid*, GLenum);
-typedef void (GL_APIENTRY *glBufferSubData_t) (GLenum, GLintptr, GLsizeiptr, const GLvoid*);
-typedef void (GL_APIENTRY *glClear_t) (GLbitfield);
-typedef void (GL_APIENTRY *glClearColorx_t) (GLclampx, GLclampx, GLclampx, GLclampx);
-typedef void (GL_APIENTRY *glClearDepthx_t) (GLclampx);
-typedef void (GL_APIENTRY *glClearStencil_t) (GLint);
-typedef void (GL_APIENTRY *glClientActiveTexture_t) (GLenum);
-typedef void (GL_APIENTRY *glClipPlanex_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glColor4ub_t) (GLubyte, GLubyte, GLubyte, GLubyte);
-typedef void (GL_APIENTRY *glColor4x_t) (GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glColorMask_t) (GLboolean, GLboolean, GLboolean, GLboolean);
-typedef void (GL_APIENTRY *glColorPointer_t) (GLint, GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glCompressedTexImage2D_t) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glCompressedTexSubImage2D_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glCopyTexImage2D_t) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
-typedef void (GL_APIENTRY *glCopyTexSubImage2D_t) (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
-typedef void (GL_APIENTRY *glCullFace_t) (GLenum);
-typedef void (GL_APIENTRY *glDeleteBuffers_t) (GLsizei, const GLuint*);
-typedef void (GL_APIENTRY *glDeleteTextures_t) (GLsizei, const GLuint*);
-typedef void (GL_APIENTRY *glDepthFunc_t) (GLenum);
-typedef void (GL_APIENTRY *glDepthMask_t) (GLboolean);
-typedef void (GL_APIENTRY *glDepthRangex_t) (GLclampx, GLclampx);
-typedef void (GL_APIENTRY *glDisable_t) (GLenum);
-typedef void (GL_APIENTRY *glDisableClientState_t) (GLenum);
-typedef void (GL_APIENTRY *glDrawArrays_t) (GLenum, GLint, GLsizei);
-typedef void (GL_APIENTRY *glDrawElements_t) (GLenum, GLsizei, GLenum, const GLvoid*);
-typedef void (GL_APIENTRY *glEnable_t) (GLenum);
-typedef void (GL_APIENTRY *glEnableClientState_t) (GLenum);
-typedef void (GL_APIENTRY *glFinish_t) ();
-typedef void (GL_APIENTRY *glFlush_t) ();
-typedef void (GL_APIENTRY *glFogx_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glFogxv_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glFrontFace_t) (GLenum);
-typedef void (GL_APIENTRY *glFrustumx_t) (GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glGetBooleanv_t) (GLenum, GLboolean*);
-typedef void (GL_APIENTRY *glGetBufferParameteriv_t) (GLenum, GLenum, GLint*);
-typedef void (GL_APIENTRY *glGetClipPlanex_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glGenBuffers_t) (GLsizei, GLuint*);
-typedef void (GL_APIENTRY *glGenTextures_t) (GLsizei, GLuint*);
-typedef GLenum (GL_APIENTRY *glGetError_t) ();
-typedef void (GL_APIENTRY *glGetFixedv_t) (GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetIntegerv_t) (GLenum, GLint*);
-typedef void (GL_APIENTRY *glGetLightxv_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetMaterialxv_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetPointerv_t) (GLenum, GLvoid*);
-typedef const GLubyte* (GL_APIENTRY *glGetString_t) (GLenum);
-typedef void (GL_APIENTRY *glGetTexEnviv_t) (GLenum, GLenum, GLint*);
-typedef void (GL_APIENTRY *glGetTexEnvxv_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetTexParameteriv_t) (GLenum, GLenum, GLint*);
-typedef void (GL_APIENTRY *glGetTexParameterxv_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glHint_t) (GLenum, GLenum);
-typedef GLboolean (GL_APIENTRY *glIsBuffer_t) (GLuint);
-typedef GLboolean (GL_APIENTRY *glIsEnabled_t) (GLenum);
-typedef GLboolean (GL_APIENTRY *glIsTexture_t) (GLuint);
-typedef void (GL_APIENTRY *glLightModelx_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glLightModelxv_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glLightx_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glLightxv_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glLineWidthx_t) (GLfixed);
-typedef void (GL_APIENTRY *glLoadIdentity_t) ();
-typedef void (GL_APIENTRY *glLoadMatrixx_t) (const GLfixed*);
-typedef void (GL_APIENTRY *glLogicOp_t) (GLenum);
-typedef void (GL_APIENTRY *glMaterialx_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glMaterialxv_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glMatrixMode_t) (GLenum);
-typedef void (GL_APIENTRY *glMultMatrixx_t) (const GLfixed*);
-typedef void (GL_APIENTRY *glMultiTexCoord4x_t) (GLenum, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glNormal3x_t) (GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glNormalPointer_t) (GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glOrthox_t) (GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glPixelStorei_t) (GLenum, GLint);
-typedef void (GL_APIENTRY *glPointParameterx_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glPointParameterxv_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glPointSizex_t) (GLfixed);
-typedef void (GL_APIENTRY *glPolygonOffsetx_t) (GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glPopMatrix_t) ();
-typedef void (GL_APIENTRY *glPushMatrix_t) ();
-typedef void (GL_APIENTRY *glReadPixels_t) (GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
-typedef void (GL_APIENTRY *glRotatex_t) (GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glSampleCoverage_t) (GLclampf, GLboolean);
-typedef void (GL_APIENTRY *glSampleCoveragex_t) (GLclampx, GLboolean);
-typedef void (GL_APIENTRY *glScalex_t) (GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glScissor_t) (GLint, GLint, GLsizei, GLsizei);
-typedef void (GL_APIENTRY *glShadeModel_t) (GLenum);
-typedef void (GL_APIENTRY *glStencilFunc_t) (GLenum, GLint, GLuint);
-typedef void (GL_APIENTRY *glStencilMask_t) (GLuint);
-typedef void (GL_APIENTRY *glStencilOp_t) (GLenum, GLenum, GLenum);
-typedef void (GL_APIENTRY *glTexCoordPointer_t) (GLint, GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glTexEnvi_t) (GLenum, GLenum, GLint);
-typedef void (GL_APIENTRY *glTexEnvx_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glTexEnviv_t) (GLenum, GLenum, const GLint*);
-typedef void (GL_APIENTRY *glTexEnvxv_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glTexImage2D_t) (GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
-typedef void (GL_APIENTRY *glTexParameteri_t) (GLenum, GLenum, GLint);
-typedef void (GL_APIENTRY *glTexParameterx_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glTexParameteriv_t) (GLenum, GLenum, const GLint*);
-typedef void (GL_APIENTRY *glTexParameterxv_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glTexSubImage2D_t) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
-typedef void (GL_APIENTRY *glTranslatex_t) (GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glVertexPointer_t) (GLint, GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glViewport_t) (GLint, GLint, GLsizei, GLsizei);
-typedef void (GL_APIENTRY *glPointSizePointerOES_t) (GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glBlendEquationSeparateOES_t) (GLenum, GLenum);
-typedef void (GL_APIENTRY *glBlendFuncSeparateOES_t) (GLenum, GLenum, GLenum, GLenum);
-typedef void (GL_APIENTRY *glBlendEquationOES_t) (GLenum);
-typedef void (GL_APIENTRY *glDrawTexsOES_t) (GLshort, GLshort, GLshort, GLshort, GLshort);
-typedef void (GL_APIENTRY *glDrawTexiOES_t) (GLint, GLint, GLint, GLint, GLint);
-typedef void (GL_APIENTRY *glDrawTexxOES_t) (GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glDrawTexsvOES_t) (const GLshort*);
-typedef void (GL_APIENTRY *glDrawTexivOES_t) (const GLint*);
-typedef void (GL_APIENTRY *glDrawTexxvOES_t) (const GLfixed*);
-typedef void (GL_APIENTRY *glDrawTexfOES_t) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glDrawTexfvOES_t) (const GLfloat*);
-typedef void (GL_APIENTRY *glEGLImageTargetTexture2DOES_t) (GLenum, GLeglImageOES);
-typedef void (GL_APIENTRY *glEGLImageTargetRenderbufferStorageOES_t) (GLenum, GLeglImageOES);
-typedef void (GL_APIENTRY *glAlphaFuncxOES_t) (GLenum, GLclampx);
-typedef void (GL_APIENTRY *glClearColorxOES_t) (GLclampx, GLclampx, GLclampx, GLclampx);
-typedef void (GL_APIENTRY *glClearDepthxOES_t) (GLclampx);
-typedef void (GL_APIENTRY *glClipPlanexOES_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glColor4xOES_t) (GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glDepthRangexOES_t) (GLclampx, GLclampx);
-typedef void (GL_APIENTRY *glFogxOES_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glFogxvOES_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glFrustumxOES_t) (GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glGetClipPlanexOES_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glGetFixedvOES_t) (GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetLightxvOES_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetMaterialxvOES_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetTexEnvxvOES_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glGetTexParameterxvOES_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glLightModelxOES_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glLightModelxvOES_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glLightxOES_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glLightxvOES_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glLineWidthxOES_t) (GLfixed);
-typedef void (GL_APIENTRY *glLoadMatrixxOES_t) (const GLfixed*);
-typedef void (GL_APIENTRY *glMaterialxOES_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glMaterialxvOES_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glMultMatrixxOES_t) (const GLfixed*);
-typedef void (GL_APIENTRY *glMultiTexCoord4xOES_t) (GLenum, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glNormal3xOES_t) (GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glOrthoxOES_t) (GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glPointParameterxOES_t) (GLenum, GLfixed);
-typedef void (GL_APIENTRY *glPointParameterxvOES_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glPointSizexOES_t) (GLfixed);
-typedef void (GL_APIENTRY *glPolygonOffsetxOES_t) (GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glRotatexOES_t) (GLfixed, GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glSampleCoveragexOES_t) (GLclampx, GLboolean);
-typedef void (GL_APIENTRY *glScalexOES_t) (GLfixed, GLfixed, GLfixed);
-typedef void (GL_APIENTRY *glTexEnvxOES_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glTexEnvxvOES_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glTexParameterxOES_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glTexParameterxvOES_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glTranslatexOES_t) (GLfixed, GLfixed, GLfixed);
-typedef GLboolean (GL_APIENTRY *glIsRenderbufferOES_t) (GLuint);
-typedef void (GL_APIENTRY *glBindRenderbufferOES_t) (GLenum, GLuint);
-typedef void (GL_APIENTRY *glDeleteRenderbuffersOES_t) (GLsizei, const GLuint*);
-typedef void (GL_APIENTRY *glGenRenderbuffersOES_t) (GLsizei, GLuint*);
-typedef void (GL_APIENTRY *glRenderbufferStorageOES_t) (GLenum, GLenum, GLsizei, GLsizei);
-typedef void (GL_APIENTRY *glGetRenderbufferParameterivOES_t) (GLenum, GLenum, GLint*);
-typedef GLboolean (GL_APIENTRY *glIsFramebufferOES_t) (GLuint);
-typedef void (GL_APIENTRY *glBindFramebufferOES_t) (GLenum, GLuint);
-typedef void (GL_APIENTRY *glDeleteFramebuffersOES_t) (GLsizei, const GLuint*);
-typedef void (GL_APIENTRY *glGenFramebuffersOES_t) (GLsizei, GLuint*);
-typedef GLenum (GL_APIENTRY *glCheckFramebufferStatusOES_t) (GLenum);
-typedef void (GL_APIENTRY *glFramebufferRenderbufferOES_t) (GLenum, GLenum, GLenum, GLuint);
-typedef void (GL_APIENTRY *glFramebufferTexture2DOES_t) (GLenum, GLenum, GLenum, GLuint, GLint);
-typedef void (GL_APIENTRY *glGetFramebufferAttachmentParameterivOES_t) (GLenum, GLenum, GLenum, GLint*);
-typedef void (GL_APIENTRY *glGenerateMipmapOES_t) (GLenum);
-typedef void* (GL_APIENTRY *glMapBufferOES_t) (GLenum, GLenum);
-typedef GLboolean (GL_APIENTRY *glUnmapBufferOES_t) (GLenum);
-typedef void (GL_APIENTRY *glGetBufferPointervOES_t) (GLenum, GLenum, GLvoid*);
-typedef void (GL_APIENTRY *glCurrentPaletteMatrixOES_t) (GLuint);
-typedef void (GL_APIENTRY *glLoadPaletteFromModelViewMatrixOES_t) ();
-typedef void (GL_APIENTRY *glMatrixIndexPointerOES_t) (GLint, GLenum, GLsizei, const GLvoid*);
-typedef void (GL_APIENTRY *glWeightPointerOES_t) (GLint, GLenum, GLsizei, const GLvoid*);
-typedef GLbitfield (GL_APIENTRY *glQueryMatrixxOES_t) (GLfixed, GLint);
-typedef void (GL_APIENTRY *glDepthRangefOES_t) (GLclampf, GLclampf);
-typedef void (GL_APIENTRY *glFrustumfOES_t) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glOrthofOES_t) (GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
-typedef void (GL_APIENTRY *glClipPlanefOES_t) (GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glGetClipPlanefOES_t) (GLenum, GLfloat);
-typedef void (GL_APIENTRY *glClearDepthfOES_t) (GLclampf);
-typedef void (GL_APIENTRY *glTexGenfOES_t) (GLenum, GLenum, GLfloat);
-typedef void (GL_APIENTRY *glTexGenfvOES_t) (GLenum, GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glTexGeniOES_t) (GLenum, GLenum, GLint);
-typedef void (GL_APIENTRY *glTexGenivOES_t) (GLenum, GLenum, const GLint*);
-typedef void (GL_APIENTRY *glTexGenxOES_t) (GLenum, GLenum, GLfixed);
-typedef void (GL_APIENTRY *glTexGenxvOES_t) (GLenum, GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glGetTexGenfvOES_t) (GLenum, GLenum, GLfloat*);
-typedef void (GL_APIENTRY *glGetTexGenivOES_t) (GLenum, GLenum, GLint*);
-typedef void (GL_APIENTRY *glGetTexGenxvOES_t) (GLenum, GLenum, GLfixed*);
-typedef void (GL_APIENTRY *glBindVertexArrayOES_t) (GLuint);
-typedef void (GL_APIENTRY *glDeleteVertexArraysOES_t) (GLsizei, const GLuint*);
-typedef void (GL_APIENTRY *glGenVertexArraysOES_t) (GLsizei, GLuint*);
-typedef GLboolean (GL_APIENTRY *glIsVertexArrayOES_t) (GLuint);
-typedef void (GL_APIENTRY *glDiscardFramebufferEXT_t) (GLenum, GLsizei, const GLenum*);
-typedef void (GL_APIENTRY *glMultiDrawArraysEXT_t) (GLenum, GLint*, GLsizei*, GLsizei);
-typedef void (GL_APIENTRY *glMultiDrawElementsEXT_t) (GLenum, const GLsizei*, GLenum, const GLvoid**, GLsizei);
-typedef void (GL_APIENTRY *glClipPlanefIMG_t) (GLenum, const GLfloat*);
-typedef void (GL_APIENTRY *glClipPlanexIMG_t) (GLenum, const GLfixed*);
-typedef void (GL_APIENTRY *glRenderbufferStorageMultisampleIMG_t) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
-typedef void (GL_APIENTRY *glFramebufferTexture2DMultisampleIMG_t) (GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
-typedef void (GL_APIENTRY *glDeleteFencesNV_t) (GLsizei, const GLuint*);
-typedef void (GL_APIENTRY *glGenFencesNV_t) (GLsizei, GLuint*);
-typedef GLboolean (GL_APIENTRY *glIsFenceNV_t) (GLuint);
-typedef GLboolean (GL_APIENTRY *glTestFenceNV_t) (GLuint);
-typedef void (GL_APIENTRY *glGetFenceivNV_t) (GLuint, GLenum, GLint*);
-typedef void (GL_APIENTRY *glFinishFenceNV_t) (GLuint);
-typedef void (GL_APIENTRY *glSetFenceNV_t) (GLuint, GLenum);
-typedef void (GL_APIENTRY *glGetDriverControlsQCOM_t) (GLint*, GLsizei, GLuint*);
-typedef void (GL_APIENTRY *glGetDriverControlStringQCOM_t) (GLuint, GLsizei, GLsizei*, GLchar*);
-typedef void (GL_APIENTRY *glEnableDriverControlQCOM_t) (GLuint);
-typedef void (GL_APIENTRY *glDisableDriverControlQCOM_t) (GLuint);
-typedef void (GL_APIENTRY *glExtGetTexturesQCOM_t) (GLuint*, GLint, GLint*);
-typedef void (GL_APIENTRY *glExtGetBuffersQCOM_t) (GLuint*, GLint, GLint*);
-typedef void (GL_APIENTRY *glExtGetRenderbuffersQCOM_t) (GLuint*, GLint, GLint*);
-typedef void (GL_APIENTRY *glExtGetFramebuffersQCOM_t) (GLuint*, GLint, GLint*);
-typedef void (GL_APIENTRY *glExtGetTexLevelParameterivQCOM_t) (GLuint, GLenum, GLint, GLenum, GLint*);
-typedef void (GL_APIENTRY *glExtTexObjectStateOverrideiQCOM_t) (GLenum, GLenum, GLint);
-typedef void (GL_APIENTRY *glExtGetTexSubImageQCOM_t) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
-typedef void (GL_APIENTRY *glExtGetBufferPointervQCOM_t) (GLenum, GLvoid*);
-typedef void (GL_APIENTRY *glExtGetShadersQCOM_t) (GLuint*, GLint, GLint*);
-typedef void (GL_APIENTRY *glExtGetProgramsQCOM_t) (GLuint*, GLint, GLint*);
-typedef GLboolean (GL_APIENTRY *glExtIsProgramBinaryQCOM_t) (GLuint);
-typedef void (GL_APIENTRY *glExtGetProgramBinarySourceQCOM_t) (GLuint, GLenum, GLchar*, GLint*);
-typedef void (GL_APIENTRY *glStartTilingQCOM_t) (GLuint, GLuint, GLuint, GLuint, GLbitfield);
-typedef void (GL_APIENTRY *glEndTilingQCOM_t) (GLbitfield);
-
-
-#endif
diff --git a/tools/emulator/opengl/host/libs/libOpenglRender/render_api.cpp b/tools/emulator/opengl/host/libs/libOpenglRender/render_api.cpp
deleted file mode 100644
index 8a5f464..0000000
--- a/tools/emulator/opengl/host/libs/libOpenglRender/render_api.cpp
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "libOpenglRender/render_api.h"
-#include "IOStream.h"
-#include "FrameBuffer.h"
-#include "RenderServer.h"
-#include "osProcess.h"
-#include "TimeUtils.h"
-
-#include "TcpStream.h"
-#ifdef _WIN32
-#include "Win32PipeStream.h"
-#else
-#include "UnixStream.h"
-#endif
-
-#include "EGLDispatch.h"
-#include "GLDispatch.h"
-#include "GL2Dispatch.h"
-
-static osUtils::childProcess *s_renderProc = NULL;
-static RenderServer *s_renderThread = NULL;
-static int s_renderPort = 0;
-
-static IOStream *createRenderThread(int p_stream_buffer_size,
-                                    unsigned int clientFlags);
-
-//
-// For now run the renderer as a thread inside the calling
-// process instead as running it in a separate process for all
-// platforms.
-// at the future we want it to run as a seperate process except for
-// Mac OS X since it is imposibble on this platform to make one process
-// render to a window created by another process.
-//
-//#ifdef __APPLE__
-#define  RENDER_API_USE_THREAD
-//#endif
-
-bool initLibrary(void)
-{
-    //
-    // Load EGL Plugin
-    //
-    if (!init_egl_dispatch()) {
-        // Failed to load EGL
-        printf("Failed to init_egl_dispatch\n");
-        return false;
-    }
-
-    //
-    // Load GLES Plugin
-    //
-    if (!init_gl_dispatch()) {
-        // Failed to load GLES
-        ERR("Failed to init_gl_dispatch\n");
-        return false;
-    }
-
-    /* failure to init the GLES2 dispatch table is not fatal */
-    init_gl2_dispatch();
-
-    return true;
-}
-
-bool initOpenGLRenderer(int width, int height, int portNum)
-{
-
-    //
-    // Fail if renderer is already initialized
-    //
-    if (s_renderProc || s_renderThread) {
-        return false;
-    }
-
-    s_renderPort = portNum;
-
-#ifdef RENDER_API_USE_THREAD  // should be defined for mac
-    //
-    // initialize the renderer and listen to connections
-    // on a thread in the current process.
-    //
-    bool inited = FrameBuffer::initialize(width, height);
-    if (!inited) {
-        return false;
-    }
-
-    s_renderThread = RenderServer::create(portNum);
-    if (!s_renderThread) {
-        return false;
-    }
-
-    s_renderThread->start();
-
-#else
-    //
-    // Launch emulator_renderer
-    //
-    char cmdLine[128];
-    snprintf(cmdLine, 128, "emulator_renderer -windowid %d -port %d -x %d -y %d -width %d -height %d",
-             (int)window, portNum, x, y, width, height);
-
-    s_renderProc = osUtils::childProcess::create(cmdLine, NULL);
-    if (!s_renderProc) {
-        return false;
-    }
-
-    //
-    // try to connect to the renderer in order to check it
-    // was successfully initialized.
-    //
-    int nTrys = 0;
-    IOStream *dummy = NULL;
-    do {
-        ++nTrys;
-
-        //
-        // Wait a bit to make the renderer process a chance to be
-        // initialized.
-        // On Windows we need during this time to handle windows
-        // events since the renderer generates a subwindow of this
-        // process's window, we need to be responsive for windows
-        // during this time to let the renderer generates this subwindow.
-        //
-#ifndef _WIN32
-        TimeSleepMS(300);
-#else
-        long long t0 = GetCurrentTimeMS();
-        while( (GetCurrentTimeMS() - t0) < 300 ) {
-            MSG msg;
-            int n = 0;
-            while( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
-            {
-                n++;
-                TranslateMessage( &msg );
-                DispatchMessage( &msg );
-            }
-            if (n == 0) TimeSleepMS(10);
-        }
-#endif
-
-        dummy = createRenderThread(8, 0);
-
-        if (!dummy) {
-            // stop if the process is no longer running
-            if (!osUtils::isProcessRunning(s_renderProc->getPID())) {
-                break;
-            }
-        }
-    } while(!dummy && nTrys < 10); // give up after 3 seconds, XXX: ???
-
-    if (!dummy) {
-        //
-        // Failed - make sure the process is killed
-        //
-        osUtils::KillProcess(s_renderProc->getPID(), true);
-        delete s_renderProc;
-        s_renderProc = NULL;
-        return false;
-    }
-
-    // destroy the dummy connection
-    delete dummy;
-#endif
-
-    return true;
-}
-
-bool stopOpenGLRenderer()
-{
-    bool ret = false;
-
-    // open a dummy connection to the renderer to make it
-    // realize the exit request.
-    // (send the exit request in clientFlags)
-    IOStream *dummy = createRenderThread(8, IOSTREAM_CLIENT_EXIT_SERVER);
-    if (!dummy) return false;
-
-    if (s_renderProc) {
-        //
-        // wait for the process to exit
-        //
-        int exitStatus;
-        ret = s_renderProc->wait(&exitStatus);
-
-        delete s_renderProc;
-        s_renderProc = NULL;
-    }
-    else if (s_renderThread) {
-
-        // wait for the thread to exit
-        int status;
-        ret = s_renderThread->wait(&status);
-
-        delete s_renderThread;
-        s_renderThread = NULL;
-    }
-
-    return ret;
-}
-
-bool createOpenGLSubwindow(FBNativeWindowType window,
-                           int x, int y, int width, int height, float zRot)
-{
-    if (s_renderThread) {
-        return FrameBuffer::setupSubWindow(window,x,y,width,height, zRot);
-    }
-    else {
-        //
-        // XXX: should be implemented by sending the renderer process
-        //      a request
-        ERR("%s not implemented for separate renderer process !!!\n",
-            __FUNCTION__);
-    }
-    return false;
-}
-
-bool destroyOpenGLSubwindow()
-{
-    if (s_renderThread) {
-        return FrameBuffer::removeSubWindow();
-    }
-    else {
-        //
-        // XXX: should be implemented by sending the renderer process
-        //      a request
-        ERR("%s not implemented for separate renderer process !!!\n",
-                __FUNCTION__);
-        return false;
-    }
-}
-
-void setOpenGLDisplayRotation(float zRot)
-{
-    if (s_renderThread) {
-        FrameBuffer *fb = FrameBuffer::getFB();
-        if (fb) {
-            fb->setDisplayRotation(zRot);
-        }
-    }
-    else {
-        //
-        // XXX: should be implemented by sending the renderer process
-        //      a request
-        ERR("%s not implemented for separate renderer process !!!\n",
-                __FUNCTION__);
-    }
-}
-
-void repaintOpenGLDisplay()
-{
-    if (s_renderThread) {
-        FrameBuffer *fb = FrameBuffer::getFB();
-        if (fb) {
-            fb->repost();
-        }
-    }
-    else {
-        //
-        // XXX: should be implemented by sending the renderer process
-        //      a request
-        ERR("%s not implemented for separate renderer process !!!\n",
-                __FUNCTION__);
-    }
-}
-
-
-/* NOTE: For now, always use TCP mode by default, until the emulator
- *        has been updated to support Unix and Win32 pipes
- */
-#define  DEFAULT_STREAM_MODE  STREAM_MODE_TCP
-
-int gRendererStreamMode = DEFAULT_STREAM_MODE;
-
-IOStream *createRenderThread(int p_stream_buffer_size, unsigned int clientFlags)
-{
-    SocketStream*  stream = NULL;
-
-    if (gRendererStreamMode == STREAM_MODE_TCP) {
-        stream = new TcpStream(p_stream_buffer_size);
-    } else {
-#ifdef _WIN32
-        stream = new Win32PipeStream(p_stream_buffer_size);
-#else /* !_WIN32 */
-        stream = new UnixStream(p_stream_buffer_size);
-#endif
-    }
-
-    if (!stream) {
-        ERR("createRenderThread failed to create stream\n");
-        return NULL;
-    }
-    if (stream->connect(s_renderPort) < 0) {
-        ERR("createRenderThread failed to connect\n");
-        delete stream;
-        return NULL;
-    }
-
-    //
-    // send clientFlags to the renderer
-    //
-    unsigned int *pClientFlags =
-                (unsigned int *)stream->allocBuffer(sizeof(unsigned int));
-    *pClientFlags = clientFlags;
-    stream->commitBuffer(sizeof(unsigned int));
-
-    return stream;
-}
-
-int
-setStreamMode(int mode)
-{
-    switch (mode) {
-        case STREAM_MODE_DEFAULT:
-            mode = DEFAULT_STREAM_MODE;
-            break;
-
-        case STREAM_MODE_TCP:
-            break;
-
-#ifndef _WIN32
-        case STREAM_MODE_UNIX:
-            break;
-#else /* _WIN32 */
-        case STREAM_MODE_PIPE:
-            break;
-#endif /* _WIN32 */
-        default:
-            // Invalid stream mode
-            return -1;
-    }
-    gRendererStreamMode = mode;
-    return 0;
-}
diff --git a/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk b/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk
deleted file mode 100644
index 4d07938..0000000
--- a/tools/emulator/opengl/host/libs/renderControl_dec/Android.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,lib_renderControl_dec)
-$(call emugl-import,libOpenglCodecCommon)
-$(call emugl-gen-decoder,$(EMUGL_PATH)/system/renderControl_enc,renderControl)
-# For renderControl_types.h
-$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/system/renderControl_enc)
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/host/renderer/Android.mk b/tools/emulator/opengl/host/renderer/Android.mk
deleted file mode 100644
index 55fcb80..0000000
--- a/tools/emulator/opengl/host/renderer/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-# host renderer process ###########################
-$(call emugl-begin-host-executable,emulator_renderer)
-$(call emugl-import,libOpenglRender)
-LOCAL_SRC_FILES := main.cpp
-LOCAL_CFLAGS    += -O0 -g
-
-#ifeq ($(HOST_OS),windows)
-#LOCAL_LDLIBS += -lws2_32
-#endif
-
-$(call emugl-end-module)
-
diff --git a/tools/emulator/opengl/host/renderer/main.cpp b/tools/emulator/opengl/host/renderer/main.cpp
deleted file mode 100644
index 4549c56..0000000
--- a/tools/emulator/opengl/host/renderer/main.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RenderServer.h"
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "FrameBuffer.h"
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <codec_defs.h>
-#ifdef _WIN32
-#include <winsock2.h>
-#endif
-
-#ifdef __linux__
-#include <X11/Xlib.h>
-#endif
-
-static void printUsage(const char *progName)
-{
-    fprintf(stderr, "Usage: %s -windowid <windowid> [options]\n", progName);
-    fprintf(stderr, "    -windowid <windowid>   - window id to render into\n");
-    fprintf(stderr, "    -port <portNum>        - listening TCP port number\n");
-    fprintf(stderr, "    -x <num>               - render subwindow x position\n");
-    fprintf(stderr, "    -y <num>               - render subwindow y position\n");
-    fprintf(stderr, "    -width <num>           - render subwindow width\n");
-    fprintf(stderr, "    -height <num>          - render subwindow height\n");
-    exit(-1);
-}
-
-int main(int argc, char *argv[])
-{
-    int portNum = CODEC_SERVER_PORT;
-    int winX = 0;
-    int winY = 0;
-    int winWidth = 320;
-    int winHeight = 480;
-    FBNativeWindowType windowId = NULL;
-    int iWindowId  = 0;
-
-    //
-    // Parse command line arguments
-    //
-    for (int i=1; i<argc; i++) {
-        if (!strcmp(argv[i], "-windowid")) {
-            if (++i >= argc || sscanf(argv[i],"%d", &iWindowId) != 1) {
-                printUsage(argv[0]);
-            }
-        }
-        else if (!strncmp(argv[i], "-port", 5)) {
-            if (++i >= argc || sscanf(argv[i],"%d", &portNum) != 1) {
-                printUsage(argv[0]);
-            }
-        }
-        else if (!strncmp(argv[i], "-x", 2)) {
-            if (++i >= argc || sscanf(argv[i],"%d", &winX) != 1) {
-                printUsage(argv[0]);
-            }
-        }
-        else if (!strncmp(argv[i], "-y", 2)) {
-            if (++i >= argc || sscanf(argv[i],"%d", &winY) != 1) {
-                printUsage(argv[0]);
-            }
-        }
-        else if (!strncmp(argv[i], "-width", 6)) {
-            if (++i >= argc || sscanf(argv[i],"%d", &winWidth) != 1) {
-                printUsage(argv[0]);
-            }
-        }
-        else if (!strncmp(argv[i], "-height", 7)) {
-            if (++i >= argc || sscanf(argv[i],"%d", &winHeight) != 1) {
-                printUsage(argv[0]);
-            }
-        }
-    }
-
-    windowId = (FBNativeWindowType)iWindowId;
-    if (!windowId) {
-        // window id must be provided
-        printUsage(argv[0]);
-    }
-
-#if 0 //Enable to attach gdb to renderer on startup
-    fprintf(stderr, "renderer pid %d , press any key to continue...\n", getpid());
-    getchar();
-#else
-    fprintf(stderr, "renderer pid %d \n", getpid());
-#endif
-
-#ifdef _WIN32
-    WSADATA  wsaData;
-    int      rc = WSAStartup( MAKEWORD(2,2), &wsaData);
-    if (rc != 0) {
-            printf( "could not initialize Winsock\n" );
-    }
-#endif
-
-#ifdef __linux__
-    // some OpenGL implementations may call X functions
-    // it is safer to synchronize all X calls made by all the
-    // rendering threads. (although the calls we do are locked
-    // in the FrameBuffer singleton object).
-    XInitThreads();
-#endif
-
-    //
-    // initialize Framebuffer
-    //
-    bool inited = FrameBuffer::initialize(winWidth, winHeight);
-    if (!inited) {
-        fprintf(stderr,"Failed to initialize Framebuffer\n");
-        return -1;
-    }
-
-    inited = FrameBuffer::setupSubWindow(windowId,
-                                         winX, winY, winWidth, winHeight, 0.0);
-    if (!inited) {
-        fprintf(stderr,"Failed to create subwindow Framebuffer\n");
-        return -1;
-    }
-
-    //
-    // Create and run a render server listening to the given port number
-    //
-    RenderServer *server = RenderServer::create(portNum);
-    if (!server) {
-        fprintf(stderr,"Cannot initialize render server\n");
-        return -1;
-    }
-
-#ifndef _WIN32
-    //
-    // run the server listener loop
-    //
-    server->Main();
-#else
-    //
-    // on windows we need to handle messages for the
-    // created subwindow. So we run the server on a seperate
-    // thread and running the windows message pump loop
-    // in this main thread.
-    //
-    server->start();
-
-    //
-    // Dispatch events for the subwindow
-    // During termination of the render server, the FrameBuffer
-    // will be finalized, the Framebuffer subwindow will
-    // get destroyed and the following loop will exit.
-    //
-    MSG msg;
-    HWND hWnd = FrameBuffer::getFB()->getSubWindow();
-    while( GetMessage(&msg, hWnd, 0, 0) > 0 ) {
-        TranslateMessage(&msg);
-        DispatchMessage(&msg);
-    }
-#endif
-
-    return 0;
-}
diff --git a/tools/emulator/opengl/host/tools/emugen/Android.mk b/tools/emulator/opengl/host/tools/emugen/Android.mk
deleted file mode 100644
index ad9ab06..0000000
--- a/tools/emulator/opengl/host/tools/emugen/Android.mk
+++ /dev/null
@@ -1,26 +0,0 @@
-ifneq ($(HOST_OS),windows)
-
-LOCAL_PATH:=$(call my-dir)
-
-$(call emugl-begin-host-executable,emugen)
-
-    LOCAL_SRC_FILES := \
-        ApiGen.cpp \
-        EntryPoint.cpp \
-        main.cpp \
-        strUtils.cpp \
-        TypeFactory.cpp
-
-$(call emugl-end-module)
-
-# The location of the emugen host tool that is used to generate wire
-# protocol encoders/ decoders. This variable is used by other emugl modules.
-EMUGL_EMUGEN := $(LOCAL_BUILT_MODULE)
-
-else # windows build
-
-# on windows use the build host emugen executable
-# (that will be the linux exeutable when using mingw build)
-EMUGL_EMUGEN := $(BUILD_OUT_EXECUTABLES)/emugen
-
-endif
diff --git a/tools/emulator/opengl/host/tools/emugen/ApiGen.cpp b/tools/emulator/opengl/host/tools/emugen/ApiGen.cpp
deleted file mode 100644
index 4265301..0000000
--- a/tools/emulator/opengl/host/tools/emugen/ApiGen.cpp
+++ /dev/null
@@ -1,1079 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "ApiGen.h"
-#include "EntryPoint.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include "strUtils.h"
-#include <errno.h>
-#include <sys/types.h>
-
-/* Define this to 1 to enable support for the 'isLarge' variable flag
- * that instructs the encoder to send large data buffers by a direct
- * write through the pipe (i.e. without copying it into a temporary
- * buffer. This has definite performance benefits when using a QEMU Pipe.
- *
- * Set to 0 otherwise.
- */
-#define WITH_LARGE_SUPPORT  1
-
-EntryPoint * ApiGen::findEntryByName(const std::string & name)
-{
-    EntryPoint * entry = NULL;
-
-    size_t n = this->size();
-    for (size_t i = 0; i < n; i++) {
-        if (at(i).name() == name) {
-            entry = &(at(i));
-            break;
-        }
-    }
-    return entry;
-}
-
-void ApiGen::printHeader(FILE *fp) const
-{
-    fprintf(fp, "// Generated Code - DO NOT EDIT !!\n");
-    fprintf(fp, "// generated by 'emugen'\n");
-}
-
-int ApiGen::genProcTypes(const std::string &filename, SideType side)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-    printHeader(fp);
-
-    const char* basename = m_basename.c_str();
-
-    fprintf(fp, "#ifndef __%s_%s_proc_t_h\n", basename, sideString(side));
-    fprintf(fp, "#define __%s_%s_proc_t_h\n", basename, sideString(side));
-    fprintf(fp, "\n\n");
-    fprintf(fp, "\n#include \"%s_types.h\"\n",basename);
-    fprintf(fp, "#ifndef %s_APIENTRY\n",basename);
-    fprintf(fp, "#define %s_APIENTRY \n",basename);
-    fprintf(fp, "#endif\n");
-
-
-    for (size_t i = 0; i < size(); i++) {
-        EntryPoint *e = &at(i);
-
-        fprintf(fp, "typedef ");
-        e->retval().printType(fp);
-        fprintf(fp, " (%s_APIENTRY *%s_%s_proc_t) (", basename, e->name().c_str(), sideString(side));
-        if (side == CLIENT_SIDE) { fprintf(fp, "void * ctx"); }
-        if (e->customDecoder() && side == SERVER_SIDE) { fprintf(fp, "void *ctx"); }
-
-        VarsArray & evars = e->vars();
-        size_t n = evars.size();
-
-        for (size_t j = 0; j < n; j++) {
-            if (!evars[j].isVoid()) {
-                if (j != 0 || side == CLIENT_SIDE || (side == SERVER_SIDE && e->customDecoder())) fprintf(fp, ", ");
-                evars[j].printType(fp);
-            }
-        }
-        fprintf(fp, ");\n");
-    }
-    fprintf(fp, "\n\n#endif\n");
-    return 0;
-}
-
-int ApiGen::genFuncTable(const std::string &filename, SideType side)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-    printHeader(fp);
-
-    fprintf(fp, "#ifndef __%s_%s_ftable_t_h\n", m_basename.c_str(), sideString(side));
-    fprintf(fp, "#define __%s_%s_ftable_t_h\n", m_basename.c_str(), sideString(side));
-    fprintf(fp, "\n\n");
-    fprintf(fp, "static struct _%s_funcs_by_name {\n", m_basename.c_str());
-    fprintf(fp,
-            "\tconst char *name;\n" \
-            "\tvoid *proc;\n" \
-            "} %s_funcs_by_name[] = {\n", m_basename.c_str());
-
-
-    for (size_t i = 0; i < size(); i++) {
-        EntryPoint *e = &at(i);
-        if (e->notApi()) continue;
-        fprintf(fp, "\t{\"%s\", (void*)%s},\n", e->name().c_str(), e->name().c_str());
-    }
-    fprintf(fp, "};\n");
-    fprintf(fp, "static int %s_num_funcs = sizeof(%s_funcs_by_name) / sizeof(struct _%s_funcs_by_name);\n",
-            m_basename.c_str(), m_basename.c_str(), m_basename.c_str());
-    fprintf(fp, "\n\n#endif\n");
-    return 0;
-}
-
-
-int ApiGen::genContext(const std::string & filename, SideType side)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-    printHeader(fp);
-
-    fprintf(fp, "#ifndef __%s_%s_context_t_h\n", m_basename.c_str(), sideString(side));
-    fprintf(fp, "#define __%s_%s_context_t_h\n", m_basename.c_str(), sideString(side));
-
-    //  fprintf(fp, "\n#include \"%s_types.h\"\n", m_basename.c_str());
-    fprintf(fp, "\n#include \"%s_%s_proc.h\"\n", m_basename.c_str(), sideString(side));
-
-    StringVec & contextHeaders = side == CLIENT_SIDE ? m_clientContextHeaders : m_serverContextHeaders;
-    for (size_t i = 0; i < contextHeaders.size(); i++) {
-        fprintf(fp, "#include %s\n", contextHeaders[i].c_str());
-    }
-    fprintf(fp, "\n");
-
-    fprintf(fp, "\nstruct %s_%s_context_t {\n\n", m_basename.c_str(), sideString(side));
-    for (size_t i = 0; i < size(); i++) {
-        EntryPoint *e = &at(i);
-        fprintf(fp, "\t%s_%s_proc_t %s;\n", e->name().c_str(), sideString(side), e->name().c_str());
-    }
-    // accessors
-    fprintf(fp, "\t//Accessors \n");
-
-    for (size_t i = 0; i < size(); i++) {
-        EntryPoint *e = &at(i);
-        const char *n = e->name().c_str();
-        const char *s = sideString(side);
-        fprintf(fp, "\tvirtual %s_%s_proc_t set_%s(%s_%s_proc_t f) { %s_%s_proc_t retval = %s; %s = f; return retval;}\n", n, s, n, n, s, n, s,  n, n);
-    }
-
-    // virtual destructor
-    fprintf(fp, "\t virtual ~%s_%s_context_t() {}\n", m_basename.c_str(), sideString(side));
-    // accessor
-    if (side == CLIENT_SIDE || side == WRAPPER_SIDE) {
-        fprintf(fp, "\n\ttypedef %s_%s_context_t *CONTEXT_ACCESSOR_TYPE(void);\n",
-                m_basename.c_str(), sideString(side));
-        fprintf(fp, "\tstatic void setContextAccessor(CONTEXT_ACCESSOR_TYPE *f);\n");
-    }
-
-    // init function
-    fprintf(fp, "\tint initDispatchByName( void *(*getProc)(const char *name, void *userData), void *userData);\n");
-
-    //client site set error virtual func
-    if (side == CLIENT_SIDE) {
-        fprintf(fp, "\tvirtual void setError(unsigned int  error){};\n");
-        fprintf(fp, "\tvirtual unsigned int getError(){ return 0; };\n");
-    }
-
-    fprintf(fp, "};\n");
-
-    fprintf(fp, "\n#endif\n");
-    fclose(fp);
-    return 0;
-}
-
-int ApiGen::genEntryPoints(const std::string & filename, SideType side)
-{
-
-    if (side != CLIENT_SIDE && side != WRAPPER_SIDE) {
-        fprintf(stderr, "Entry points are only defined for Client and Wrapper components\n");
-        return -999;
-    }
-
-
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return errno;
-    }
-
-    printHeader(fp);
-    fprintf(fp, "#include <stdio.h>\n");
-    fprintf(fp, "#include <stdlib.h>\n");
-    fprintf(fp, "#include \"%s_%s_context.h\"\n", m_basename.c_str(), sideString(side));
-    fprintf(fp, "\n");
-
-    fprintf(fp, "#ifndef GL_TRUE\n");
-    fprintf(fp, "extern \"C\" {\n");
-
-    for (size_t i = 0; i < size(); i++) {
-        fprintf(fp, "\t"); at(i).print(fp, false); fprintf(fp, ";\n");
-    }
-    fprintf(fp, "};\n\n");
-    fprintf(fp, "#endif\n");
-
-    fprintf(fp, "#ifndef GET_CONTEXT\n");
-    fprintf(fp, "static %s_%s_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL;\n",
-            m_basename.c_str(), sideString(side));
-
-    fprintf(fp,
-            "void %s_%s_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; }\n",
-            m_basename.c_str(), sideString(side));
-    fprintf(fp, "#define GET_CONTEXT %s_%s_context_t * ctx = getCurrentContext() \n",
-                m_basename.c_str(), sideString(side));
-    fprintf(fp, "#endif\n\n");
-
-
-    for (size_t i = 0; i < size(); i++) {
-        EntryPoint *e = &at(i);
-        e->print(fp);
-        fprintf(fp, "{\n");
-        fprintf(fp, "\tGET_CONTEXT; \n");
-
-        bool shouldReturn = !e->retval().isVoid();
-        bool shouldCallWithContext = (side == CLIENT_SIDE);
-        //param check
-        if (shouldCallWithContext) {
-            for (size_t j=0; j<e->vars().size(); j++) {
-                if (e->vars()[j].paramCheckExpression() != "") 
-                    fprintf(fp, "\t%s\n", e->vars()[j].paramCheckExpression().c_str());
-            }
-        }
-        fprintf(fp, "\t %sctx->%s(%s",
-                shouldReturn ? "return " : "",
-                e->name().c_str(),
-                shouldCallWithContext ? "ctx" : "");
-        size_t nvars = e->vars().size();
-
-        for (size_t j = 0; j < nvars; j++) {
-            if (!e->vars()[j].isVoid()) {
-                fprintf(fp, "%s %s",
-                        j != 0 || shouldCallWithContext ? "," : "",
-                        e->vars()[j].name().c_str());
-            }
-        }
-        fprintf(fp, ");\n");
-        fprintf(fp, "}\n\n");
-    }
-    fclose(fp);
-    return 0;
-}
-
-
-int ApiGen::genOpcodes(const std::string &filename)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return errno;
-    }
-
-    printHeader(fp);
-    fprintf(fp, "#ifndef __GUARD_%s_opcodes_h_\n", m_basename.c_str());
-    fprintf(fp, "#define __GUARD_%s_opcodes_h_\n\n", m_basename.c_str());
-    for (size_t i = 0; i < size(); i++) {
-        fprintf(fp, "#define OP_%s \t\t\t\t\t%u\n", at(i).name().c_str(), (unsigned int)i + m_baseOpcode);
-    }
-    fprintf(fp, "#define OP_last \t\t\t\t\t%u\n", (unsigned int)size() + m_baseOpcode);
-    fprintf(fp,"\n\n#endif\n");
-    fclose(fp);
-    return 0;
-
-}
-int ApiGen::genAttributesTemplate(const std::string &filename )
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-
-    for (size_t i = 0; i < size(); i++) {
-        if (at(i).hasPointers()) {
-            fprintf(fp, "#");
-            at(i).print(fp);
-            fprintf(fp, "%s\n\n", at(i).name().c_str());
-        }
-    }
-    fclose(fp);
-    return 0;
-}
-
-int ApiGen::genEncoderHeader(const std::string &filename)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-
-    printHeader(fp);
-    std::string classname = m_basename + "_encoder_context_t";
-
-    fprintf(fp, "\n#ifndef GUARD_%s\n", classname.c_str());
-    fprintf(fp, "#define GUARD_%s\n\n", classname.c_str());
-
-    fprintf(fp, "#include \"IOStream.h\"\n");
-    fprintf(fp, "#include \"%s_%s_context.h\"\n\n\n", m_basename.c_str(), sideString(CLIENT_SIDE));
-
-    for (size_t i = 0; i < m_encoderHeaders.size(); i++) {
-        fprintf(fp, "#include %s\n", m_encoderHeaders[i].c_str());
-    }
-    fprintf(fp, "\n");
-
-    fprintf(fp, "struct %s : public %s_%s_context_t {\n\n",
-            classname.c_str(), m_basename.c_str(), sideString(CLIENT_SIDE));
-    fprintf(fp, "\tIOStream *m_stream;\n\n");
-
-    fprintf(fp, "\t%s(IOStream *stream);\n\n", classname.c_str());
-    fprintf(fp, "\n};\n\n");
-
-    fprintf(fp,"extern \"C\" {\n");
-
-    for (size_t i = 0; i < size(); i++) {
-        fprintf(fp, "\t");
-        at(i).print(fp, false, "_enc", /* classname + "::" */"", "void *self");
-        fprintf(fp, ";\n");
-    }
-    fprintf(fp, "};\n");
-    fprintf(fp, "#endif");
-
-    fclose(fp);
-    return 0;
-}
-
-// Format the byte length expression for a given variable into a user-provided buffer
-// If the variable type is not a pointer, this is simply its size as a decimal constant
-// If the variable is a pointer, this will be an expression provided by the .attrib file
-// through the 'len' attribute.
-//
-// Returns 1 if the variable is a pointer, 0 otherwise
-//
-static int getVarEncodingSizeExpression(Var&  var, EntryPoint* e, char* buff, size_t bufflen)
-{
-    int ret = 0;
-    if (!var.isPointer()) {
-        snprintf(buff, bufflen, "%u", (unsigned int) var.type()->bytes());
-    } else {
-        ret = 1;
-        const char* lenExpr = var.lenExpression().c_str();
-        const char* varname = var.name().c_str();
-        if (e != NULL && lenExpr[0] == '\0') {
-            fprintf(stderr, "%s: data len is undefined for '%s'\n",
-                    e->name().c_str(), varname);
-        }
-        if (var.nullAllowed()) {
-            snprintf(buff, bufflen, "((%s != NULL) ? %s : 0)", varname, lenExpr);
-        } else {
-            snprintf(buff, bufflen, "%s", lenExpr);
-        }
-    }
-    return ret;
-}
-
-static int writeVarEncodingSize(Var& var, FILE* fp)
-{
-    int ret = 0;
-    if (!var.isPointer()) {
-        fprintf(fp, "%u", (unsigned int) var.type()->bytes());
-    } else {
-        ret = 1;
-        fprintf(fp, "__size_%s", var.name().c_str());
-    }
-    return ret;
-}
-
-
-
-static void writeVarEncodingExpression(Var& var, FILE* fp)
-{
-    const char* varname = var.name().c_str();
-
-    if (var.isPointer()) {
-        // encode a pointer header
-        fprintf(fp, "\t*(unsigned int *)(ptr) = __size_%s; ptr += 4;\n", varname);
-
-        Var::PointerDir dir = var.pointerDir();
-        if (dir == Var::POINTER_INOUT || dir == Var::POINTER_IN) {
-            if (var.nullAllowed()) {
-                fprintf(fp, "\tif (%s != NULL) ", varname);
-            } else {
-                fprintf(fp, "\t");
-            }
-
-            if (var.packExpression().size() != 0) {
-                fprintf(fp, "%s;", var.packExpression().c_str());
-            } else {
-                fprintf(fp, "memcpy(ptr, %s, __size_%s);",
-                        varname, varname);
-            }
-
-            fprintf(fp, "ptr += __size_%s;\n", varname);
-        }
-    } else {
-        // encode a non pointer variable
-        if (!var.isVoid()) {
-            fprintf(fp, "\t*(%s *) (ptr) = %s; ptr += %u;\n",
-                    var.type()->name().c_str(), varname,
-                    (uint) var.type()->bytes());
-        }
-    }
-}
-
-#if WITH_LARGE_SUPPORT
-static void writeVarLargeEncodingExpression(Var& var, FILE* fp)
-{
-    const char* varname = var.name().c_str();
-
-    fprintf(fp, "\tstream->writeFully(&__size_%s,4);\n", varname);
-    if (var.nullAllowed()) {
-        fprintf(fp, "\tif (%s != NULL) ", varname);
-    } else {
-        fprintf(fp, "\t");
-    }
-    if (var.writeExpression() != "") {
-        fprintf(fp, "%s", var.writeExpression().c_str());
-    } else {
-        fprintf(fp, "stream->writeFully(%s, __size_%s)", varname, varname);
-    }
-    fprintf(fp, ";\n");
-}
-#endif /* WITH_LARGE_SUPPORT */
-
-int ApiGen::genEncoderImpl(const std::string &filename)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-
-    printHeader(fp);
-    fprintf(fp, "\n\n#include <string.h>\n");
-    fprintf(fp, "#include \"%s_opcodes.h\"\n\n", m_basename.c_str());
-    fprintf(fp, "#include \"%s_enc.h\"\n\n\n", m_basename.c_str());
-    fprintf(fp, "#include <stdio.h>\n");
-    std::string classname = m_basename + "_encoder_context_t";
-    size_t n = size();
-
-    // unsupport printout
-    fprintf(fp, "static void enc_unsupported()\n{\n\tLOGE(\"Function is unsupported\\n\");\n}\n\n");
-
-    // entry points;
-    for (size_t i = 0; i < n; i++) {
-        EntryPoint *e = &at(i);
-
-        if (e->unsupported()) continue;
-
-
-        e->print(fp, true, "_enc", /* classname + "::" */"", "void *self");
-        fprintf(fp, "{\n");
-
-//      fprintf(fp, "\n\tDBG(\">>>> %s\\n\");\n", e->name().c_str());
-        fprintf(fp, "\n\t%s *ctx = (%s *)self;\n",
-                classname.c_str(),
-                classname.c_str());
-        fprintf(fp, "\tIOStream *stream = ctx->m_stream;\n\n");
-        VarsArray & evars = e->vars();
-        size_t  maxvars = evars.size();
-        size_t  j;
-
-        char    buff[256];
-
-        // Define the __size_XXX variables that contain the size of data
-        // associated with pointers.
-        for (j = 0; j < maxvars; j++) {
-            Var& var = evars[j];
-
-            if (!var.isPointer())
-                continue;
-
-            const char* varname = var.name().c_str();
-            fprintf(fp, "\tconst unsigned int __size_%s = ", varname);
-
-            getVarEncodingSizeExpression(var, e, buff, sizeof(buff));
-            fprintf(fp, "%s;\n", buff);
-        }
-
-#if WITH_LARGE_SUPPORT
-        // We need to take care of 'isLarge' variable in a special way
-        // Anything before an isLarge variable can be packed into a single
-        // buffer, which is then commited. Each isLarge variable is a pointer
-        // to data that can be written to directly through the pipe, which
-        // will be instant when using a QEMU pipe
-
-        size_t  nvars   = 0;
-        size_t  npointers = 0;
-
-        // First, compute the total size, 8 bytes for the opcode + payload size
-        fprintf(fp, "\t unsigned char *ptr;\n");
-        fprintf(fp, "\t const size_t packetSize = 8");
-
-        for (j = 0; j < maxvars; j++) {
-            fprintf(fp, " + ");
-            npointers += writeVarEncodingSize(evars[j], fp);
-        }
-        if (npointers > 0) {
-            fprintf(fp, " + %u*4", npointers);
-        }
-        fprintf(fp, ";\n");
-
-        // We need to divide the packet into fragments. Each fragment contains
-        // either copied arguments to a temporary buffer, or direct writes for
-        // large variables.
-        //
-        // The first fragment must also contain the opcode+payload_size
-        //
-        nvars = 0;
-        while (nvars < maxvars || maxvars == 0) {
-
-            // Skip over non-large fields
-            for (j = nvars; j < maxvars; j++) {
-                if (evars[j].isLarge())
-                    break;
-            }
-
-            // Write a fragment if needed.
-            if (nvars == 0 || j > nvars) {
-                const char* plus = "";
-
-                if (nvars == 0 && j == maxvars) {
-                    // Simple shortcut for the common case where we don't have large variables;
-                    fprintf(fp, "\tptr = stream->alloc(packetSize);\n");
-
-                } else {
-                    // allocate buffer from the stream until the first large variable
-                    fprintf(fp, "\tptr = stream->alloc(");
-                    plus = "";
-
-                    if (nvars == 0) {
-                        fprintf(fp,"8"); plus = " + ";
-                    }
-                    if (j > nvars) {
-                        npointers = 0;
-                        for (j = nvars; j < maxvars && !evars[j].isLarge(); j++) {
-                            fprintf(fp, "%s", plus); plus = " + ";
-                            npointers += writeVarEncodingSize(evars[j], fp);
-                        }
-                        if (npointers > 0) {
-                            fprintf(fp, "%s%u*4", plus, npointers); plus = " + ";
-                        }
-                    }
-                    fprintf(fp,");\n");
-                }
-
-                // encode packet header if needed.
-                if (nvars == 0) {
-                    fprintf(fp, "\t*(unsigned int *)(ptr) = OP_%s; ptr += 4;\n", e->name().c_str());
-                    fprintf(fp, "\t*(unsigned int *)(ptr) = (unsigned int) packetSize; ptr += 4;\n");
-                }
-
-                if (maxvars == 0)
-                    break;
-
-                // encode non-large fields in this fragment
-                for (j = nvars; j < maxvars && !evars[j].isLarge(); j++) {
-                    writeVarEncodingExpression(evars[j],fp);
-                }
-
-                // Ensure the fragment is commited if it is followed by a large variable
-                if (j < maxvars) {
-                    fprintf(fp, "\tstream->flush();\n");
-                }
-            }
-
-            // If we have one or more large variables, write them directly.
-            // As size + data
-            for ( ; j < maxvars && evars[j].isLarge(); j++) {
-                writeVarLargeEncodingExpression(evars[j], fp);
-            }
-
-            nvars = j;
-        }
-
-#else /* !WITH_LARGE_SUPPORT */
-        size_t nvars = evars.size();
-        size_t npointers = 0;
-        fprintf(fp, "\t const size_t packetSize = 8");
-        for (size_t j = 0; j < nvars; j++) {
-            npointers += getVarEncodingSizeExpression(evars[j],e,buff,sizeof(buff));
-            fprintf(fp, " + %s", buff);
-        }
-        fprintf(fp, " + %u * 4;\n", (unsigned int) npointers);
-
-        // allocate buffer from the stream;
-        fprintf(fp, "\t unsigned char *ptr = stream->alloc(packetSize);\n\n");
-
-        // encode into the stream;
-        fprintf(fp, "\t*(unsigned int *)(ptr) = OP_%s; ptr += 4;\n",  e->name().c_str());
-        fprintf(fp, "\t*(unsigned int *)(ptr) = (unsigned int) packetSize;  ptr += 4;\n\n");
-
-        // out variables
-        for (size_t j = 0; j < nvars; j++) {
-            writeVarEncodingExpression(evars[j], fp);
-        }
-#endif /* !WITH_LARGE_SUPPORT */
-
-        // in variables;
-        for (size_t j = 0; j < nvars; j++) {
-            if (evars[j].isPointer()) {
-                Var::PointerDir dir = evars[j].pointerDir();
-                if (dir == Var::POINTER_INOUT || dir == Var::POINTER_OUT) {
-                    const char* varname = evars[j].name().c_str();
-                    if (evars[j].nullAllowed()) {
-                        fprintf(fp, "\tif (%s != NULL) ",varname);
-                    } else {
-                        fprintf(fp, "\t");
-                    }
-                    fprintf(fp, "stream->readback(%s, __size_%s);\n",
-                            varname, varname);
-                }
-            }
-        }
-//XXX       fprintf(fp, "\n\tDBG(\"<<<< %s\\n\");\n", e->name().c_str());
-        // todo - return value for pointers
-        if (e->retval().isPointer()) {
-            fprintf(stderr, "WARNING: %s : return value of pointer is unsupported\n",
-                    e->name().c_str());
-            fprintf(fp, "\t return NULL;\n");
-        } else if (e->retval().type()->name() != "void") {
-            fprintf(fp, "\n\t%s retval;\n", e->retval().type()->name().c_str());
-            fprintf(fp, "\tstream->readback(&retval, %u);\n",(uint) e->retval().type()->bytes());
-            fprintf(fp, "\treturn retval;\n");
-        }
-        fprintf(fp, "}\n\n");
-    }
-
-    // constructor
-    fprintf(fp, "%s::%s(IOStream *stream)\n{\n", classname.c_str(), classname.c_str());
-    fprintf(fp, "\tm_stream = stream;\n\n");
-
-    for (size_t i = 0; i < n; i++) {
-        EntryPoint *e = &at(i);
-        if (e->unsupported()) {
-            fprintf(fp, "\tset_%s((%s_%s_proc_t)(enc_unsupported));\n", e->name().c_str(), e->name().c_str(), sideString(CLIENT_SIDE));
-        } else {
-            fprintf(fp, "\tset_%s(%s_enc);\n", e->name().c_str(), e->name().c_str());
-        }
-        /**
-           if (e->unsupsported()) {
-           fprintf(fp, "\tmemcpy((void *)(&%s), (const void *)(&enc_unsupported), sizeof(%s));\n",
-           e->name().c_str(),
-           e->name().c_str());
-           } else {
-           fprintf(fp, "\t%s = %s_enc;\n", e->name().c_str(), e->name().c_str());
-           }
-        **/
-    }
-    fprintf(fp, "}\n\n");
-
-    fclose(fp);
-    return 0;
-}
-
-
-int ApiGen::genDecoderHeader(const std::string &filename)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-
-    printHeader(fp);
-    std::string classname = m_basename + "_decoder_context_t";
-
-    fprintf(fp, "\n#ifndef GUARD_%s\n", classname.c_str());
-    fprintf(fp, "#define GUARD_%s\n\n", classname.c_str());
-
-    fprintf(fp, "#include \"IOStream.h\" \n");
-    fprintf(fp, "#include \"%s_%s_context.h\"\n\n\n", m_basename.c_str(), sideString(SERVER_SIDE));
-
-    for (size_t i = 0; i < m_decoderHeaders.size(); i++) {
-        fprintf(fp, "#include %s\n", m_decoderHeaders[i].c_str());
-    }
-    fprintf(fp, "\n");
-
-    fprintf(fp, "struct %s : public %s_%s_context_t {\n\n",
-            classname.c_str(), m_basename.c_str(), sideString(SERVER_SIDE));
-    fprintf(fp, "\tsize_t decode(void *buf, size_t bufsize, IOStream *stream);\n");
-    fprintf(fp, "\n};\n\n");
-    fprintf(fp, "#endif\n");
-
-    fclose(fp);
-    return 0;
-}
-
-int ApiGen::genContextImpl(const std::string &filename, SideType side)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-    printHeader(fp);
-
-    std::string classname = m_basename + "_" + sideString(side) + "_context_t";
-    size_t n = size();
-    fprintf(fp, "\n\n#include <string.h>\n");
-    fprintf(fp, "#include \"%s_%s_context.h\"\n\n\n", m_basename.c_str(), sideString(side));
-    fprintf(fp, "#include <stdio.h>\n\n");
-
-    // init function;
-    fprintf(fp, "int %s::initDispatchByName(void *(*getProc)(const char *, void *userData), void *userData)\n{\n", classname.c_str());
-    fprintf(fp, "\tvoid *ptr;\n\n");
-    for (size_t i = 0; i < n; i++) {
-        EntryPoint *e = &at(i);
-        fprintf(fp, "\tptr = getProc(\"%s\", userData); set_%s((%s_%s_proc_t)ptr);\n",
-                e->name().c_str(),
-                e->name().c_str(),
-                e->name().c_str(),
-                sideString(side));
-
-    }
-    fprintf(fp, "\treturn 0;\n");
-    fprintf(fp, "}\n\n");
-    fclose(fp);
-    return 0;
-}
-
-int ApiGen::genDecoderImpl(const std::string &filename)
-{
-    FILE *fp = fopen(filename.c_str(), "wt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-
-    printHeader(fp);
-
-    std::string classname = m_basename + "_decoder_context_t";
-
-    size_t n = size();
-
-    fprintf(fp, "\n\n#include <string.h>\n");
-    fprintf(fp, "#include \"%s_opcodes.h\"\n\n", m_basename.c_str());
-    fprintf(fp, "#include \"%s_dec.h\"\n\n\n", m_basename.c_str());
-    fprintf(fp, "#include <stdio.h>\n\n");
-
-    // decoder switch;
-    fprintf(fp, "size_t %s::decode(void *buf, size_t len, IOStream *stream)\n{\n", classname.c_str());
-    fprintf(fp,
-            "                           \n\
-\tsize_t pos = 0;\n\
-\tif (len < 8) return pos; \n\
-\tunsigned char *ptr = (unsigned char *)buf;\n\
-\tbool unknownOpcode = false;  \n\
-#ifdef CHECK_GL_ERROR \n\
-\tchar lastCall[256] = {0}; \n\
-#endif \n\
-\twhile ((len - pos >= 8) && !unknownOpcode) {   \n\
-\t\tvoid *params[%u]; \n\
-\t\tint opcode = *(int *)ptr;   \n\
-\t\tunsigned int packetLen = *(int *)(ptr + 4);\n\
-\t\tif (len - pos < packetLen)  return pos; \n\
-\t\tswitch(opcode) {\n",
-            (uint) m_maxEntryPointsParams);
-
-    for (size_t f = 0; f < n; f++) {
-        enum Pass_t { PASS_TmpBuffAlloc = 0, PASS_MemAlloc, PASS_DebugPrint, PASS_FunctionCall, PASS_Epilog, PASS_LAST };
-        EntryPoint *e = &at(f);
-
-        // construct a printout string;
-        std::string printString = "";
-        for (size_t i = 0; i < e->vars().size(); i++) {
-            Var *v = &e->vars()[i];
-            if (!v->isVoid())  printString += (v->isPointer() ? "%p(%u)" : v->type()->printFormat()) + " ";
-        }
-        printString += "";
-        // TODO - add for return value;
-
-        fprintf(fp, "\t\t\tcase OP_%s:\n", e->name().c_str());
-        fprintf(fp, "\t\t\t{\n");
-
-        bool totalTmpBuffExist = false;
-        std::string totalTmpBuffOffset = "0";
-        std::string *tmpBufOffset = new std::string[e->vars().size()];
-
-        // construct retval type string
-        std::string retvalType;
-        if (!e->retval().isVoid()) {
-            retvalType = e->retval().type()->name();
-        }
-
-        for (int pass = PASS_TmpBuffAlloc; pass < PASS_LAST; pass++) {
-            if (pass == PASS_FunctionCall && !e->retval().isVoid() && !e->retval().isPointer()) {
-                fprintf(fp, "\t\t\t*(%s *)(&tmpBuf[%s]) = ", retvalType.c_str(),
-                        totalTmpBuffOffset.c_str());
-            }
-
-
-            if (pass == PASS_FunctionCall) {
-                fprintf(fp, "\t\t\tthis->%s(", e->name().c_str());
-                if (e->customDecoder()) {
-                    fprintf(fp, "this"); // add a context to the call
-                }
-            } else if (pass == PASS_DebugPrint) {
-                fprintf(fp, "#ifdef DEBUG_PRINTOUT\n");
-                fprintf(fp, "\t\t\tfprintf(stderr,\"%s: %s(%s)\\n\"", m_basename.c_str(), e->name().c_str(), printString.c_str());
-                if (e->vars().size() > 0 && !e->vars()[0].isVoid()) fprintf(fp, ",");
-            }
-
-            std::string varoffset = "8"; // skip the header
-            VarsArray & evars = e->vars();
-            // allocate memory for out pointers;
-            for (size_t j = 0; j < evars.size(); j++) {
-                Var *v = & evars[j];
-                if (!v->isVoid()) {
-                    if ((pass == PASS_FunctionCall) && (j != 0 || e->customDecoder())) fprintf(fp, ", ");
-                    if (pass == PASS_DebugPrint && j != 0) fprintf(fp, ", ");
-
-                    if (!v->isPointer()) {
-                        if (pass == PASS_FunctionCall || pass == PASS_DebugPrint) {
-                            fprintf(fp, "*(%s *)(ptr + %s)", v->type()->name().c_str(), varoffset.c_str());
-                        }
-                        varoffset += " + " + toString(v->type()->bytes());
-                    } else {
-                        if (v->pointerDir() == Var::POINTER_IN || v->pointerDir() == Var::POINTER_INOUT) {
-                            if (pass == PASS_MemAlloc && v->pointerDir() == Var::POINTER_INOUT) {
-                                fprintf(fp, "\t\t\tsize_t tmpPtr%uSize = (size_t)*(unsigned int *)(ptr + %s);\n",
-                                        (uint) j, varoffset.c_str());
-                                fprintf(fp, "unsigned char *tmpPtr%u = (ptr + %s + 4);\n",
-                                        (uint) j, varoffset.c_str());
-                            }
-                            if (pass == PASS_FunctionCall) {
-                                if (v->nullAllowed()) {
-                                    fprintf(fp, "*((unsigned int *)(ptr + %s)) == 0 ? NULL : (%s)(ptr + %s + 4)",
-                                            varoffset.c_str(), v->type()->name().c_str(), varoffset.c_str());
-                                } else {
-                                    fprintf(fp, "(%s)(ptr + %s + 4)",
-                                            v->type()->name().c_str(), varoffset.c_str());
-                                }
-                            } else if (pass == PASS_DebugPrint) {
-                                fprintf(fp, "(%s)(ptr + %s + 4), *(unsigned int *)(ptr + %s)",
-                                        v->type()->name().c_str(), varoffset.c_str(),
-                                        varoffset.c_str());
-                            }
-                            varoffset += " + 4 + *(size_t *)(ptr +" + varoffset + ")";
-                        } else { // out pointer;
-                            if (pass == PASS_TmpBuffAlloc) {
-                                fprintf(fp, "\t\t\tsize_t tmpPtr%uSize = (size_t)*(unsigned int *)(ptr + %s);\n",
-                                        (uint) j, varoffset.c_str());
-                                if (!totalTmpBuffExist) {
-                                    fprintf(fp, "\t\t\tsize_t totalTmpSize = tmpPtr%uSize;\n", (uint)j);
-                                } else {
-                                    fprintf(fp, "\t\t\ttotalTmpSize += tmpPtr%uSize;\n", (uint)j);
-                                }
-                                tmpBufOffset[j] = totalTmpBuffOffset;
-                                char tmpPtrName[16];
-                                sprintf(tmpPtrName," + tmpPtr%uSize", (uint)j);
-                                totalTmpBuffOffset += std::string(tmpPtrName);
-                                totalTmpBuffExist = true;
-                            } else if (pass == PASS_MemAlloc) {
-                                fprintf(fp, "\t\t\tunsigned char *tmpPtr%u = &tmpBuf[%s];\n",
-                                        (uint)j, tmpBufOffset[j].c_str());
-                            } else if (pass == PASS_FunctionCall) {
-                                if (v->nullAllowed()) {
-                                    fprintf(fp, "tmpPtr%uSize == 0 ? NULL : (%s)(tmpPtr%u)",
-                                            (uint) j, v->type()->name().c_str(), (uint) j);
-                                } else {
-                                    fprintf(fp, "(%s)(tmpPtr%u)", v->type()->name().c_str(), (uint) j);
-                                }
-                            } else if (pass == PASS_DebugPrint) {
-                                fprintf(fp, "(%s)(tmpPtr%u), *(unsigned int *)(ptr + %s)",
-                                        v->type()->name().c_str(), (uint) j,
-                                        varoffset.c_str());
-                            }
-                            varoffset += " + 4";
-                        }
-                    }
-                }
-            }
-
-            if (pass == PASS_FunctionCall || pass == PASS_DebugPrint) fprintf(fp, ");\n");
-            if (pass == PASS_DebugPrint) fprintf(fp, "#endif\n");
-
-            if (pass == PASS_TmpBuffAlloc) {
-                if (!e->retval().isVoid() && !e->retval().isPointer()) {
-                    if (!totalTmpBuffExist)
-                        fprintf(fp, "\t\t\tsize_t totalTmpSize = sizeof(%s);\n", retvalType.c_str());
-                    else
-                        fprintf(fp, "\t\t\ttotalTmpSize += sizeof(%s);\n", retvalType.c_str());
-
-                    totalTmpBuffExist = true;
-                }
-                if (totalTmpBuffExist) {
-                    fprintf(fp, "\t\t\tunsigned char *tmpBuf = stream->alloc(totalTmpSize);\n");
-                }
-            }
-
-            if (pass == PASS_Epilog) {
-                // send back out pointers data as well as retval
-                if (totalTmpBuffExist) {
-                    fprintf(fp, "\t\t\tstream->flush();\n");
-                }
-
-                fprintf(fp, "\t\t\tpos += *(int *)(ptr + 4);\n");
-                fprintf(fp, "\t\t\tptr += *(int *)(ptr + 4);\n");
-            }
-
-        } // pass;
-        fprintf(fp, "\t\t\t}\n");
-        fprintf(fp, "#ifdef CHECK_GL_ERROR\n");
-        fprintf(fp, "\t\t\tsprintf(lastCall, \"%s\");\n", e->name().c_str());
-        fprintf(fp, "#endif\n");
-        fprintf(fp, "\t\t\tbreak;\n");
-
-        delete [] tmpBufOffset;
-    }
-    fprintf(fp, "\t\t\tdefault:\n");
-    fprintf(fp, "\t\t\t\tunknownOpcode = true;\n");
-    fprintf(fp, "\t\t} //switch\n");
-    if (strstr(m_basename.c_str(), "gl")) {
-        fprintf(fp, "#ifdef CHECK_GL_ERROR\n");
-        fprintf(fp, "\tint err = this->glGetError();\n");
-        fprintf(fp, "\tif (err) fprintf(stderr, \"%s Error: 0x%%X in %%s\\n\", err, lastCall);\n", m_basename.c_str());
-        fprintf(fp, "#endif\n");
-    }
-    fprintf(fp, "\t} // while\n");
-    fprintf(fp, "\treturn pos;\n");
-    fprintf(fp, "}\n");
-
-    fclose(fp);
-    return 0;
-}
-
-int ApiGen::readSpec(const std::string & filename)
-{
-    FILE *specfp = fopen(filename.c_str(), "rt");
-    if (specfp == NULL) {
-        return -1;
-    }
-
-    char line[1000];
-    unsigned int lc = 0;
-    while (fgets(line, sizeof(line), specfp) != NULL) {
-        lc++;
-        EntryPoint ref;
-        if (ref.parse(lc, std::string(line))) {
-            push_back(ref);
-            updateMaxEntryPointsParams(ref.vars().size());
-        }
-    }
-    fclose(specfp);
-    return 0;
-}
-
-int ApiGen::readAttributes(const std::string & attribFilename)
-{
-    enum { ST_NAME, ST_ATT } state;
-
-    FILE *fp = fopen(attribFilename.c_str(), "rt");
-    if (fp == NULL) {
-        perror(attribFilename.c_str());
-        return -1;
-    }
-    char buf[1000];
-
-    state = ST_NAME;
-    EntryPoint *currentEntry = NULL;
-    size_t lc = 0;
-    bool globalAttributes = false;
-    while (fgets(buf, sizeof(buf), fp) != NULL) {
-        lc++;
-        std::string line(buf);
-        if (line.size() == 0) continue; // could that happen?
-
-        if (line.at(0) == '#') continue; // comment
-
-        size_t first = line.find_first_not_of(" \t\n");
-        if (state == ST_ATT && (first == std::string::npos || first == 0)) state = ST_NAME;
-
-        line = trim(line);
-        if (line.size() == 0 || line.at(0) == '#') continue;
-
-        switch(state) {
-        case ST_NAME:
-            if (line == "GLOBAL") {
-                globalAttributes = true;
-            } else {
-                globalAttributes = false;
-                currentEntry = findEntryByName(line);
-                if (currentEntry == NULL) {
-                    fprintf(stderr, "WARNING: %u: attribute of non existant entry point %s\n", (unsigned int)lc, line.c_str());
-                }
-            }
-            state = ST_ATT;
-            break;
-        case ST_ATT:
-            if (globalAttributes) {
-                setGlobalAttribute(line, lc);
-            } else  if (currentEntry != NULL) {
-                currentEntry->setAttribute(line, lc);
-            }
-            break;
-        }
-    }
-    return 0;
-}
-
-
-int ApiGen::setGlobalAttribute(const std::string & line, size_t lc)
-{
-    size_t pos = 0;
-    size_t last;
-    std::string token = getNextToken(line, pos, &last, WHITESPACE);
-    pos = last;
-
-    if (token == "base_opcode") {
-        std::string str = getNextToken(line, pos, &last, WHITESPACE);
-        if (str.size() == 0) {
-            fprintf(stderr, "line %u: missing value for base_opcode\n", (uint) lc);
-        } else {
-            setBaseOpcode(atoi(str.c_str()));
-        }
-    } else  if (token == "encoder_headers") {
-        std::string str = getNextToken(line, pos, &last, WHITESPACE);
-        pos = last;
-        while (str.size() != 0) {
-            encoderHeaders().push_back(str);
-            str = getNextToken(line, pos, &last, WHITESPACE);
-            pos = last;
-        }
-    } else if (token == "client_context_headers") {
-        std::string str = getNextToken(line, pos, &last, WHITESPACE);
-        pos = last;
-        while (str.size() != 0) {
-            clientContextHeaders().push_back(str);
-            str = getNextToken(line, pos, &last, WHITESPACE);
-            pos = last;
-        }
-    } else if (token == "server_context_headers") {
-        std::string str = getNextToken(line, pos, &last, WHITESPACE);
-        pos = last;
-        while (str.size() != 0) {
-            serverContextHeaders().push_back(str);
-            str = getNextToken(line, pos, &last, WHITESPACE);
-            pos = last;
-        }
-    } else if (token == "decoder_headers") {
-        std::string str = getNextToken(line, pos, &last, WHITESPACE);
-        pos = last;
-        while (str.size() != 0) {
-            decoderHeaders().push_back(str);
-            str = getNextToken(line, pos, &last, WHITESPACE);
-            pos = last;
-        }
-    }
-    else {
-        fprintf(stderr, "WARNING: %u : unknown global attribute %s\n", (unsigned int)lc, line.c_str());
-    }
-
-    return 0;
-}
-
diff --git a/tools/emulator/opengl/host/tools/emugen/ApiGen.h b/tools/emulator/opengl/host/tools/emugen/ApiGen.h
deleted file mode 100644
index 1627ef6..0000000
--- a/tools/emulator/opengl/host/tools/emugen/ApiGen.h
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __API_GEN_H_
-#define __API_GEN_H_
-
-#include <vector>
-#include <string.h>
-#include "EntryPoint.h"
-
-
-class ApiGen : public std::vector<EntryPoint> {
-
-public:
-    typedef std::vector<std::string> StringVec;
-    typedef enum { CLIENT_SIDE, SERVER_SIDE, WRAPPER_SIDE } SideType;
-
-    ApiGen(const std::string & basename) :
-        m_basename(basename),
-        m_maxEntryPointsParams(0),
-        m_baseOpcode(0)
-    { }
-    virtual ~ApiGen() {}
-    int readSpec(const std::string & filename);
-    int readAttributes(const std::string & attribFilename);
-    size_t maxEntryPointsParams() {  return m_maxEntryPointsParams; }
-    void updateMaxEntryPointsParams(size_t val) {
-        if (m_maxEntryPointsParams == 0 || val > m_maxEntryPointsParams) m_maxEntryPointsParams = val;
-    }
-    int baseOpcode() { return m_baseOpcode; }
-    void setBaseOpcode(int base) { m_baseOpcode = base; }
-
-    const char *sideString(SideType side) {
-        const char *retval;
-        switch(side) {
-        case CLIENT_SIDE:
-            retval = "client";
-            break;
-        case SERVER_SIDE:
-            retval = "server";
-            break;
-        case WRAPPER_SIDE:
-            retval = "wrapper";
-            break;
-        }
-        return retval;
-    }
-
-    StringVec & clientContextHeaders() { return m_clientContextHeaders; }
-    StringVec & encoderHeaders() { return m_encoderHeaders; }
-    StringVec & serverContextHeaders() { return m_serverContextHeaders; }
-    StringVec & decoderHeaders() { return m_decoderHeaders; }
-
-    EntryPoint * findEntryByName(const std::string & name);
-    int genOpcodes(const std::string &filename);
-    int genAttributesTemplate(const std::string &filename);
-    int genProcTypes(const std::string &filename, SideType side);
-    int genFuncTable(const std::string &filename, SideType side);
-
-    int genContext(const std::string &filename, SideType side);
-    int genContextImpl(const std::string &filename, SideType side);
-
-    int genEntryPoints(const std::string &filename, SideType side);
-
-    int genEncoderHeader(const std::string &filename);
-    int genEncoderImpl(const std::string &filename);
-
-    int genDecoderHeader(const std::string &filename);
-    int genDecoderImpl(const std::string &filename);
-
-protected:
-    virtual void printHeader(FILE *fp) const;
-    std::string m_basename;
-    StringVec m_clientContextHeaders;
-    StringVec m_encoderHeaders;
-    StringVec m_serverContextHeaders;
-    StringVec m_decoderHeaders;
-    size_t m_maxEntryPointsParams; // record the maximum number of parameters in the entry points;
-    int m_baseOpcode;
-    int setGlobalAttribute(const std::string & line, size_t lc);
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/tools/emugen/EntryPoint.cpp b/tools/emulator/opengl/host/tools/emugen/EntryPoint.cpp
deleted file mode 100644
index 43b904b..0000000
--- a/tools/emulator/opengl/host/tools/emugen/EntryPoint.cpp
+++ /dev/null
@@ -1,376 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <stdio.h>
-#include "EntryPoint.h"
-#include <string>
-#include "TypeFactory.h"
-#include "strUtils.h"
-#include <sstream>
-
-
-EntryPoint::EntryPoint()
-{
-    reset();
-}
-
-EntryPoint::~EntryPoint()
-{
-}
-
-void EntryPoint::reset()
-{
-    m_unsupported = false;
-    m_customDecoder = false;
-    m_notApi = false;
-    m_vars.empty();
-}
-
-bool parseTypeField(const std::string & f, std::string *vartype, std::string *varname)
-{
-    size_t pos = 0, last;
-    bool done = false;
-
-
-    *vartype = "";
-    if (varname != NULL) *varname = "";
-
-    enum { ST_TYPE, ST_NAME, ST_END } state = ST_TYPE;
-
-    while(!done) {
-
-        std::string str = getNextToken(f, pos, &last, WHITESPACE);
-        if (str.size() == 0) break;
-
-        switch(state) {
-        case ST_TYPE:
-            if (str == "const") {
-                pos = last;
-                *vartype = "const ";
-            } else {
-                // must be a type name;
-                *vartype += str;
-                state = ST_NAME;
-                pos = last;
-            }
-            break;
-        case ST_NAME:
-            if (str.size() == 0) {
-                done = true;
-            } else if (str == "*") {
-                (*vartype) += "*";
-                pos = last;
-            } else if (varname == NULL) {
-                done = true;
-            } else {
-                while (str[0] == '*') {
-                    (*vartype) += "*";
-                    str[0] = ' ';
-                    str = trim(str);
-                }
-                *varname = str;
-                done = true;
-            }
-            break;
-        case ST_END:
-            break;
-        }
-    }
-    return true;
-}
-
-// return true for valid line (need to get into the entry points list)
-bool EntryPoint::parse(unsigned int lc, const std::string & str)
-{
-    size_t pos, last;
-    std::string field;
-
-    reset();
-    std::string linestr = trim(str);
-
-    if (linestr.size() == 0) return false;
-    if (linestr.at(0) == '#') return false;
-
-    // skip PREFIX
-    field = getNextToken(linestr, 0, &last, "(");
-    pos = last + 1;
-    // return type
-    field = getNextToken(linestr, pos, &last, ",)");
-    std::string retTypeName;
-    if (!parseTypeField(field, &retTypeName, NULL)) {
-        fprintf(stderr, "line: %d: Parsing error in field <%s>\n", lc, field.c_str());
-        return false;
-    }
-    pos = last + 1;
-    const VarType *theType = TypeFactory::instance()->getVarTypeByName(retTypeName);
-    if (theType->name() == "UNKNOWN") {
-        fprintf(stderr, "UNKNOWN retval: %s\n", linestr.c_str());
-    }
-
-    m_retval.init(std::string(""), theType, std::string(""), Var::POINTER_OUT, std::string(""), std::string(""));
-
-    // function name
-    m_name = getNextToken(linestr, pos, &last, ",)");
-    pos = last + 1;
-
-    // parameters;
-    int nvars = 0;
-    while (pos < linestr.size() - 1) {
-        field = getNextToken(linestr, pos, &last, ",)");
-        std::string vartype, varname;
-        if (!parseTypeField(field, &vartype, &varname)) {
-            fprintf(stderr, "line: %d: Parsing error in field <%s>\n", lc, field.c_str());
-            return false;
-        }
-        nvars++;
-        const VarType *v = TypeFactory::instance()->getVarTypeByName(vartype);
-        if (v->id() == 0) {
-            fprintf(stderr, "%d: Unknown type: %s\n", lc, vartype.c_str());
-        } else {
-            if (varname == "" &&
-                !(v->name() == "void" && !v->isPointer())) {
-                std::ostringstream oss;
-                oss << "var" << nvars;
-                varname = oss.str();
-            }
-
-            m_vars.push_back(Var(varname, v, std::string(""), Var::POINTER_IN, "", ""));
-        }
-        pos = last + 1;
-    }
-    return true;
-}
-
-void EntryPoint::print(FILE *fp, bool newline,
-                       const std::string & name_suffix,
-                       const std::string & name_prefix,
-                       const std::string & ctx_param ) const
-{
-    fprintf(fp, "%s %s%s%s(",
-            m_retval.type()->name().c_str(),
-            name_prefix.c_str(),
-            m_name.c_str(),
-            name_suffix.c_str());
-
-    if (ctx_param != "") fprintf(fp, "%s ", ctx_param.c_str());
-
-    for (size_t i = 0; i < m_vars.size(); i++) {
-        if (m_vars[i].isVoid()) continue;
-        if (i != 0 || ctx_param != "") fprintf(fp, ", ");
-        fprintf(fp, "%s %s", m_vars[i].type()->name().c_str(),
-                m_vars[i].name().c_str());
-    }
-    fprintf(fp, ")%s", newline? "\n" : "");
-}
-
-Var * EntryPoint::var(const std::string & name)
-{
-    Var *v = NULL;
-    for (size_t i = 0; i < m_vars.size(); i++) {
-        if (m_vars[i].name() == name) {
-            v = &m_vars[i];
-            break;
-        }
-    }
-    return v;
-}
-
-bool EntryPoint::hasPointers()
-{
-    bool pointers = false;
-    if (m_retval.isPointer()) pointers = true;
-    if (!pointers) {
-        for (size_t i = 0; i < m_vars.size(); i++) {
-            if (m_vars[i].isPointer()) {
-                pointers = true;
-                break;
-            }
-        }
-    }
-    return pointers;
-}
-
-int EntryPoint::setAttribute(const std::string &line, size_t lc)
-{
-    size_t pos = 0;
-    size_t last;
-    std::string token = getNextToken(line, 0, &last, WHITESPACE);
-
-    if (token == "len") {
-        pos = last;
-        std::string varname = getNextToken(line, pos, &last, WHITESPACE);
-
-        if (varname.size() == 0) {
-            fprintf(stderr, "ERROR: %u: Missing variable name in 'len' attribute\n", (unsigned int)lc);
-            return -1;
-        }
-        Var * v = var(varname);
-        if (v == NULL) {
-            fprintf(stderr, "ERROR: %u: variable %s is not a parameter of %s\n",
-                    (unsigned int)lc, varname.c_str(), name().c_str());
-            return -2;
-        }
-        // set the size expression into var
-        pos = last;
-        v->setLenExpression(line.substr(pos));
-    } else if (token == "param_check") {
-        pos = last;
-        std::string varname = getNextToken(line, pos, &last, WHITESPACE);
-
-        if (varname.size() == 0) {
-            fprintf(stderr, "ERROR: %u: Missing variable name in 'param_check' attribute\n", (unsigned int)lc);
-            return -1;
-        }
-        Var * v = var(varname);
-        if (v == NULL) {
-            fprintf(stderr, "ERROR: %u: variable %s is not a parameter of %s\n",
-                    (unsigned int)lc, varname.c_str(), name().c_str());
-            return -2;
-        }
-        // set the size expression into var
-        pos = last;
-        v->setParamCheckExpression(line.substr(pos));
-
-    } else if (token == "dir") {
-        pos = last;
-        std::string varname = getNextToken(line, pos, &last, WHITESPACE);
-        if (varname.size() == 0) {
-            fprintf(stderr, "ERROR: %u: Missing variable name in 'dir' attribute\n", (unsigned int)lc);
-            return -1;
-        }
-        Var * v = var(varname);
-        if (v == NULL) {
-            fprintf(stderr, "ERROR: %u: variable %s is not a parameter of %s\n",
-                    (unsigned int)lc, varname.c_str(), name().c_str());
-            return -2;
-        }
-
-        pos = last;
-        std::string pointerDirStr = getNextToken(line, pos, &last, WHITESPACE);
-        if (pointerDirStr.size() == 0) {
-            fprintf(stderr, "ERROR: %u: missing pointer directions\n", (unsigned int)lc);
-            return -3;
-        }
-
-        if (pointerDirStr == "out") {
-            v->setPointerDir(Var::POINTER_OUT);
-        } else if (pointerDirStr == "inout") {
-            v->setPointerDir(Var::POINTER_INOUT);
-        } else if (pointerDirStr == "in") {
-            v->setPointerDir(Var::POINTER_IN);
-        } else {
-            fprintf(stderr, "ERROR: %u: unknow pointer direction %s\n", (unsigned int)lc, pointerDirStr.c_str());
-        }
-    } else if (token == "var_flag") {
-        pos = last;
-        std::string varname = getNextToken(line, pos, &last, WHITESPACE);
-        if (varname.size() == 0) {
-            fprintf(stderr, "ERROR: %u: Missing variable name in 'var_flag' attribute\n", (unsigned int)lc);
-            return -1;
-        }
-        Var * v = var(varname);
-        if (v == NULL) {
-            fprintf(stderr, "ERROR: %u: variable %s is not a parameter of %s\n",
-                    (unsigned int)lc, varname.c_str(), name().c_str());
-            return -2;
-        }
-        int count = 0;
-        for (;;) {
-            pos = last;
-            std::string flag = getNextToken(line, pos, &last, WHITESPACE);
-            if (flag.size() == 0) {
-                if (count == 0) {
-                    fprintf(stderr, "ERROR: %u: missing flag\n", (unsigned int) lc);
-                    return -3;
-                }
-                break;
-            }
-            count++;
-
-            if (flag == "nullAllowed") {
-                if (v->isPointer()) {
-                    v->setNullAllowed(true);
-                } else {
-                    fprintf(stderr, "WARNING: %u: setting nullAllowed for non-pointer variable %s\n",
-                            (unsigned int) lc, v->name().c_str());
-                }
-            } else if (flag == "isLarge") {
-                if (v->isPointer()) {
-                    v->setIsLarge(true);
-                } else {
-                    fprintf(stderr, "WARNING: %u: setting isLarge flag for a non-pointer variable %s\n",
-                            (unsigned int) lc, v->name().c_str());
-                }
-            } else {
-                fprintf(stderr, "WARNING: %u: unknow flag %s\n", (unsigned int)lc, flag.c_str());
-            }
-        }
-    } else if (token == "custom_pack") {
-        pos = last;
-        std::string varname = getNextToken(line, pos, &last, WHITESPACE);
-
-        if (varname.size() == 0) {
-            fprintf(stderr, "ERROR: %u: Missing variable name in 'custom_pack' attribute\n", (unsigned int)lc);
-            return -1;
-        }
-        Var * v = var(varname);
-        if (v == NULL) {
-            fprintf(stderr, "ERROR: %u: variable %s is not a parameter of %s\n",
-                    (unsigned int)lc, varname.c_str(), name().c_str());
-            return -2;
-        }
-        // set the size expression into var
-        pos = last;
-        v->setPackExpression(line.substr(pos));
-    } else if (token == "custom_write") {
-        pos = last;
-        std::string varname = getNextToken(line, pos, &last, WHITESPACE);
-
-        if (varname.size() == 0) {
-            fprintf(stderr, "ERROR: %u: Missing variable name in 'custom_write' attribute\n", (unsigned int)lc);
-            return -1;
-        }
-        Var * v = var(varname);
-        if (v == NULL) {
-            fprintf(stderr, "ERROR: %u: variable %s is not a parameter of %s\n",
-                    (unsigned int)lc, varname.c_str(), name().c_str());
-            return -2;
-        }
-        // set the size expression into var
-        pos = last;
-        v->setWriteExpression(line.substr(pos));
-    } else if (token == "flag") {
-        pos = last;
-        std::string flag = getNextToken(line, pos, &last, WHITESPACE);
-        if (flag.size() == 0) {
-            fprintf(stderr, "ERROR: %u: missing flag\n", (unsigned int) lc);
-            return -4;
-        }
-
-        if (flag == "unsupported") {
-            setUnsupported(true);
-        } else if (flag == "custom_decoder") {
-            setCustomDecoder(true);
-        } else if (flag == "not_api") {
-            setNotApi(true);
-        } else {
-            fprintf(stderr, "WARNING: %u: unknown flag %s\n", (unsigned int)lc, flag.c_str());
-        }
-    } else {
-        fprintf(stderr, "WARNING: %u: unknown attribute %s\n", (unsigned int)lc, token.c_str());
-    }
-
-    return 0;
-}
diff --git a/tools/emulator/opengl/host/tools/emugen/EntryPoint.h b/tools/emulator/opengl/host/tools/emugen/EntryPoint.h
deleted file mode 100644
index 77b8a7f..0000000
--- a/tools/emulator/opengl/host/tools/emugen/EntryPoint.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __EntryPoint__H__
-#define __EntryPoint__H__
-
-#include <string>
-#include <vector>
-#include <stdio.h>
-
-#include "Var.h"
-
-//---------------------------------------------------
-
-typedef std::vector<Var> VarsArray;
-
-class EntryPoint {
-public:
-    EntryPoint();
-    virtual ~EntryPoint();
-    bool parse(unsigned int lc, const std::string & str);
-    void reset(); // reset the class to empty;
-    void print(FILE *fp = stdout, bool newline = true,
-               const std::string & name_suffix = std::string(""),
-               const std::string & name_prefix = std::string(""),
-               const std::string & ctx_param = std::string("")) const;
-    const std::string & name() const { return m_name; }
-    VarsArray & vars() { return m_vars; }
-    Var & retval() { return m_retval; }
-    Var * var(const std::string & name);
-    bool hasPointers();
-    bool unsupported() const { return m_unsupported; }
-    void setUnsupported(bool state) { m_unsupported = state; }
-    bool customDecoder() { return m_customDecoder; }
-    void setCustomDecoder(bool state) { m_customDecoder = state; }
-    bool notApi() const { return m_notApi; }
-    void setNotApi(bool state) { m_notApi = state; }
-    int setAttribute(const std::string &line, size_t lc);
-
-private:
-    enum { PR_RETVAL = 0, PR_NAME, PR_VARS, PR_DONE } prState;
-    std::string m_name;
-    Var m_retval;
-    VarsArray m_vars;
-    bool m_unsupported;
-    bool m_customDecoder;
-    bool m_notApi;
-
-    void err(unsigned int lc, const char *msg) {
-        fprintf(stderr, "line %d: %s\n", lc, msg);
-    }
-};
-
-
-#endif
diff --git a/tools/emulator/opengl/host/tools/emugen/README b/tools/emulator/opengl/host/tools/emugen/README
deleted file mode 100644
index 5df11a3..0000000
--- a/tools/emulator/opengl/host/tools/emugen/README
+++ /dev/null
@@ -1,332 +0,0 @@
-Introduction:
--------------
-The emugen tool is a tool to generate a wire protocol implementation
-based on provided API.  The tool generates c++ encoder code that takes
-API calls and encodes them into the wire and decoder code that decodes
-the wire stream and calls server matching API.
-The emugen tool includes additional functionality that enables to
-generate an wrapper library. The wrapper library provides entry points
-for the specified API, where each entry routes the call via a dispatch
-table. The dispatch table may be initialized as required by a specific application.
-
-The following paragraphs includes the following:
-    * Wire Protocol Description
-    * Input files description & format
-    * Generated code description.
-
-
-Note: In this document, the caller is referred to as Encoder or Client
-and the callee is referred to as the Decoder or Server. These terms
-are used interchangeably by the context.
-
-
-
-Wire Protocol packet structure:
--------------------------------
-A general Encoder->Decoder packet is structured as following:
-struct Packet {
-	unsigned int opcode;
-	unsigned int packet_len;
-	… parameter 1
-	… parameter 2
-};
-A general Decoder->Encoder reply is expected to be received in the
-context of the ‘call’ that triggered it, thus it includes the reply
-data only, with no context headers. In precise term terms, a reply
-packet will look like:
-
-struct {
-	...// reply data
-};
-
-consider the following function call:
-int foo(int p1, short s1)
-will be encoded into :
-{
-	101, // foo opcode
-	14, // sizeof(opcode) + sizeof(packet_len) + sizeof(int) + sizeof(short)
-	p1, // 4 bytes
-	s1 // 4 bytes
-}
-
-Since ‘foo’ returns value, the caller is expected to read back the return packet from the server->client stream. The return value in this example is in thus the return packet is:
-{
-	int retval;
-}
-
-
-Pointer decoding:
-----------------
-The wire protocol also allows exchanging of pointer data
-(arrays). Pointers are defined with directions:
-
-	in : Data is sent from the caller to the calle
-	out: Data is sent from the callee to the caller
-	in_out: data is sent from the caller and return in place.
-
-‘in’ and ‘in_out’ encoded with their len:
-{
-	unsinged int pointer_data_len;
-	unsigned char data[pointer_data_len];… // pointer data
-}
-
-‘out’ pointers are encoded by data length only:
-{
-unsigned int pointer_data_len;
-}
-
-‘out’ and ‘in_out’ pointer’s data is returned in the return
-packet. For example, consider the following call:
-
-int foo(int n, int *ptr); // assume that ‘data’ is in_out pointer which contains ‘n’ ints
-
-The caller packet will have the following form:
-{
-	101, // foo opcode
-	xx, sizeof(opcode) + sizeof(datalen) + sizeof(int) + sizeof(unsigned int) + n * sizeof(int);
-	n, // the n parameter
-	n * sizeof(int), // size of the data in ptr
-	… // n* sizeof(int) bytes
-}
-
-The return packet is;
-{
-	…. // n * sizeof(int) bytes of data return in ptr
-	retval // sizeof(int) - the return value of the function;
-}
-
-Endianess
----------
-The Wire protocol is designed to impose minimum overhead on the client
-side. Thus, the data endianness that is sent across the wire is
-determined by the ‘client’ side. It is up to the server side to
-determine the client endianess and marshal the packets as required.
-
-
-
-Emugen input files - protocol specification
--------------------------------------------
-The protocol generated by emugen consists of two input files:
-
-1. basename.in - A sepcification of the protocol RPC procedures. This
-part of the specification is expected to be generated automatically
-from c/c++ header files or similar.
-
-‘basename’ is the basename for the protocol and will be used to prefix
-the files that are generated for this protocol.  A line in the .in
-file has the following format:
-
-[prefix](retvalType, FuncName, <param type> [param name],...)
-where 
-	retvalType - The function return value type
-	FuncName - function name
-	<param type> mandatory parameter type
-	[param name] - optional parameter name
-Examples:
-GL_ENTRY(void, glVertex1f, float v) 
-XXX(int *, foo, int n, float, short)
-XXX(void, glFlush, void)
-
-Note: Empty lines in the file are ignored. A line starts with # is a comment
-
-2. basename.attrib - Attributes information of the API. 
-This file includes additional flags, pointers datalen information and
-global attributes of the protocol. For uptodate format of the file,
-please refer to the specification file in the project source
-tree. The format of the .attrib file is described below.
-
-3. basename.types - Types information
-
-This files describes the types that are described by the API. A type
-is defined as follows:
-<type name> <size in bits> <print format string> <is a pointer? true|false>
-where:
-<type name> is the name of the type as described in the API
-<size in bits> 0, 8, 16, 32 sizes are accepted
-<print format string> a string to format the value of the type, as
-acceted by printf(3)
-<is pointer?> true or false string species whether the type should be
-treated as a pointer.
-
-example:
-GLint 32 %d false
-GLint* 32 %p true
-GLptr  32 %p true
-
-Encoder generated code files 
-----------------------------
-In order to generate the encoder files, one should run the ‘emugen’
-tool as follows:
-
-emugen -i <input directory> -E <encoder files output directory> <basename>
-where:
-	<input directory> containes the api specification files  (basename.in + basename.attrib)
-	<encoder directory> - a directory name to generate the encoder output files
-	basename - The basename for the api.
-
-Assuming the basename is ‘api’, The following files are generated:
-
-api_opcodes.h - defines the protocol opcodes. The first opcode value
-is 0, unless defined otherwise in the .attrib file
-
-api_entry.cpp - defines entry points for the functions that are
-defined by the protocol. this File also includes a function call
-‘setContextAccessor(void *(*f)()). This function should be used to
-provide a callback function that is used by the functions to access
-the encoder context. For example, such callback could fetch the
-context from a Thread Local Storage (TLS) location.
-
-api_client_proc.h - type defintions for the protocol procedures. 
-
-api_client_context.h - defines the client side dispatch table data
-structure that stores the encoding functions. This data structure also
-includes ‘accessors’ methods such that library user can override
-default entries for special case handling.
-
-api_client_context.cpp - defines an initialization function for
-dispatch table
-
-api_enc.h - This header file defines the encoder data strcuture. The
-encoder data structure inherits its functionality from the
-‘client_context’ class above and adds encoding and streaming
-functionality.
-
-api_enc.cpp - Encoder implementation. 
-
-Decoder generated files
------------------------
-In order to generate the decoder files, one should run the ‘emugen’
-tool as follows:
-emugen -i <input directory> -D <decoder files output directory> basename
-where:
-	<input directory> containes the api specification files  (basename.in + basename.attrib)
-	<decoder directory> - a directory name to generate the decoder output files
-	basename - The basename for the api.
-
-With resepct to the example above, Emugen will generate the following
-files:
-
-api_opcodes.h - Protocol opcodes
-
-api_server_proc.h - type definitions for the server side procedures
-
-api_server_context.h - dispatch table the decoder functions
-
-api_server_context.cpp - dispatch table initialization function
-api_dec.h - Decoder header file
-
-api_dec.cpp - Decoder implementation. In addtion, this file includes
-an intiailization function that uses a user provided callback to
-initialize the API server implementation. An example for such
-initialization is loading a set of functions from a shared library
-module.
-
-Wrapper generated files
------------------------
-In order to generate a wrapper library files, one should run the
-'emugen' tool as follows:
-
-emugen -i <input directory> -W <wrapper files output directory> basename
-where:
-	<input directory> containes the api specification files  (basename.in + basename.attrib)
-	<wrapper directory> - a directory name to generate the wrapper output files
-	basename - The basename for the api.
-
-With resepct to the example above, Emugen will generate the following
-files:
-
-api_wrapper_proc.h - type definitions for the wrapper procedures
-
-api_wrapper_context.h - dispatch table the wrapper functions
-
-api_wrapper_context.cpp - dispatch table initialization function
-api_wrapper_entry.cpp - entry points for the API
-
-
-.attrib file format description:
--------------------------------
-The .attrib file is an input file to emugen and is used to provide
- additional information that is required for the code generation.
-The file format is as follows:
-
-a line that starts with # is ignored (comment)
-a empty line just whitespace of (" " "\t" "\n") is ignored.
-
-The file is divided into 'sections', each describes a specific API
-function call. A section starts with the name of the function in
-column 0.
-
-A section that starts with the reserved word 'GLOBAL' provides global
-attributes.
-
-below are few sections examples:
-
-GLOBAL
-  encoder_headers string.h kuku.h
-
-glVertex3fv
-	len data (size)
-glTexImage2D
-       len pixels (pixels == NULL? 0 : (format_pixel_size(internalformat) * width * height * type_size(type)))
-
-
-Global section flags description:
-
-base_opcode
-    set the base opcode value for this api
-    format: base_opcode 100
-
-encoder_headers
-    a list of headers that will be included in the encoder header file
-    format: encoder_headers <stdio.h> "kuku.h"
-
-client_context_headers
-    a list of headers that will be included in the client context header file
-    format: client_context_headers <stdio.h> "kuku.h"
-
-decoder_headers
-    a list of headers that will be included in the decoder header file
-    format: decoder_headers <stdio.h> "kuku.h"
-
-server_context_headers
-    a list of headers that will be included in the server context header file
-    format: server_context_headers <stdio.h> "kuku.h"
-
-
-Entry point flags description:
-
- len
-	desciption : provide an expression to calcualte an expression data len
-	format: len <var name> <c expression that calcluates the data len>
-
-custom_pack
-	description: provide an expression to pack data into the stream.
-	format: custom_pack <var name> <c++ expression that pack data from var into the stream>
-	The stream is represented by a (unsigned char *)ptr. The expression may also refer
-	to other function parameters. In addition, the expression may refer to 'void *self' which
-	is the encoding context as provided by the caller.
-
- dir
-	description : set a pointer direction (in - for data that goes
-	to the codec, out from data that returns from the codec.
-     	format: dir <varname> <[in | out | inout]>
-
- var_flag 
- 	 description : set variable flags
- 	 format: var_flag <varname> < nullAllowed | isLarge | ... >
-
-        nullAllowed -> for pointer variables, indicates that NULL is a valid value
-        isLarge     -> for pointer variables, indicates that the data should be sent without an intermediate copy
-
- flag
-	description: set entry point flag; 
-	format: flag < unsupported | ... >
-	supported flags are:
-	unsupported - The encoder side implementation is pointed to "unsuppored reporting function". 
-	custom_decoder - The decoder is expected to be provided with
-		       	 custom implementation. The call to the
-		       	 deocder function includes a pointer to the
-		       	 context
-    not_api - the function is not native gl api
-
-
diff --git a/tools/emulator/opengl/host/tools/emugen/TypeFactory.cpp b/tools/emulator/opengl/host/tools/emugen/TypeFactory.cpp
deleted file mode 100644
index 8884225..0000000
--- a/tools/emulator/opengl/host/tools/emugen/TypeFactory.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "TypeFactory.h"
-#include "VarType.h"
-#include <string>
-#include <map>
-#include <stdio.h>
-#include <stdlib.h>
-#include "strUtils.h"
-
-
-TypeFactory * TypeFactory::m_instance = NULL;
-
-static Var0 g_var0;
-static Var8 g_var8;
-static Var16 g_var16;
-static Var32 g_var32;
-
-typedef std::map<std::string, VarType> TypeMap;
-static  TypeMap g_varMap;
-static bool g_initialized = false;
-static int g_typeId = 0;
-
-
-static VarConverter * getVarConverter(int size)
-{
-    VarConverter *v = NULL;
-
-    switch(size) {
-    case 0: v =  &g_var0; break;
-    case 8: v =  &g_var8; break;
-    case 16:    v =  &g_var16; break;
-    case 32:    v =  &g_var32; break;
-    }
-    return v;
-}
-
-#define ADD_TYPE(name, size, printformat,ispointer)                                           \
-    g_varMap.insert(std::pair<std::string, VarType>(name, VarType(g_typeId++, name, &g_var##size , printformat , ispointer)));
-
-void TypeFactory::initBaseTypes()
-{
-    g_initialized = true;
-    ADD_TYPE("UNKNOWN", 0, "0x%x", false);
-    ADD_TYPE("void", 0, "0x%x", false);
-    ADD_TYPE("char", 8, "%c", false);
-    ADD_TYPE("int", 32, "%d", false);
-    ADD_TYPE("float", 32, "%d", false);
-    ADD_TYPE("short", 16, "%d", false);
-}
-
-int TypeFactory::initFromFile(const std::string &filename)
-{
-    if (!g_initialized) {
-        initBaseTypes();
-    }
-
-    FILE *fp = fopen(filename.c_str(), "rt");
-    if (fp == NULL) {
-        perror(filename.c_str());
-        return -1;
-    }
-    char line[1000];
-    int lc = 0;
-    while(fgets(line, sizeof(line), fp) != NULL) {
-        lc++;
-        std::string str = trim(line);
-        if (str.size() == 0 || str.at(0) == '#') {
-            continue;
-        }
-        size_t pos = 0, last;
-        std::string name;
-        name = getNextToken(str, pos, &last, WHITESPACE);
-        if (name.size() == 0) {
-            fprintf(stderr, "Error: %d : missing type name\n", lc);
-            return -2;
-        }
-        pos = last + 1;
-        std::string size;
-        size = getNextToken(str, pos, &last, WHITESPACE);
-        if (size.size() == 0) {
-            fprintf(stderr, "Error: %d : missing type width\n", lc);
-            return -2;
-        }
-        pos = last + 1;
-        std::string printString;
-        printString = getNextToken(str, pos, &last, WHITESPACE);
-        if (printString.size() == 0) {
-            fprintf(stderr, "Error: %d : missing print-string\n", lc);
-            return -2;
-        }
-
-        pos = last + 1;
-        std::string pointerDef;
-        pointerDef = getNextToken(str, pos, &last, WHITESPACE);
-        if (pointerDef.size() == 0) {
-            fprintf(stderr, "Error: %d : missing ispointer definition\n", lc);
-            return -2;
-        }
-
-        bool isPointer=false;
-        if (std::string("true")==pointerDef)
-          isPointer = true;
-        else if (std::string("false")==pointerDef)
-          isPointer = false;
-        else
-        {
-          fprintf(stderr, "Error: %d : invalid isPointer definition, must be either \"true\" or \"false\"\n", lc);
-          return -2;
-        }
-
-        VarConverter *v = getVarConverter(atoi(size.c_str()));
-        if (v == NULL) {
-            fprintf(stderr, "Error: %d : unknown var width: %d\n", lc, atoi(size.c_str()));
-            return -1;
-        }
-
-        if (getVarTypeByName(name)->id() != 0) {
-            fprintf(stderr,
-                    "Warining: %d : type %s is already known, definition in line %d is taken\n",
-                    lc, name.c_str(), lc);
-        }
-        g_varMap.insert(std::pair<std::string, VarType>(name, VarType(g_typeId++, name, v ,printString,isPointer)));
-        std::string constName = "const " + name;
-        g_varMap.insert(std::pair<std::string, VarType>(constName, VarType(g_typeId++, constName, v ,printString,isPointer))); //add a const type
-    }
-    g_initialized = true;
-    return 0;
-}
-
-
-const VarType * TypeFactory::getVarTypeByName(const std::string & type)
-{
-    if (!g_initialized) {
-        initBaseTypes();
-    }
-    TypeMap::iterator i = g_varMap.find(type);
-    if (i == g_varMap.end()) {
-        i = g_varMap.find("UNKNOWN");
-    }
-    return &(i->second);
-}
-
diff --git a/tools/emulator/opengl/host/tools/emugen/TypeFactory.h b/tools/emulator/opengl/host/tools/emugen/TypeFactory.h
deleted file mode 100644
index deee2ca..0000000
--- a/tools/emulator/opengl/host/tools/emugen/TypeFactory.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __TYPE__FACTORY__H__
-#define __TYPE__FACTORY__H__
-
-#include <string>
-#include "VarType.h"
-
-class TypeFactory {
-public:
-    static TypeFactory *instance() {
-        if (m_instance == NULL) {
-            m_instance = new TypeFactory;
-        }
-        return m_instance;
-    }
-    const VarType * getVarTypeByName(const std::string &type);
-    int  initFromFile(const std::string &filename);
-private:
-    static TypeFactory *m_instance;
-    void initBaseTypes();
-    TypeFactory() {}
-};
-#endif
diff --git a/tools/emulator/opengl/host/tools/emugen/Var.h b/tools/emulator/opengl/host/tools/emugen/Var.h
deleted file mode 100644
index 322c66a..0000000
--- a/tools/emulator/opengl/host/tools/emugen/Var.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __VAR__H__
-#define __VAR__H__
-
-#include "VarType.h"
-#include <string>
-#include <stdio.h>
-
-class Var {
-public:
-    // pointer data direction - from the client point of view.
-    typedef enum { POINTER_OUT = 0x1, POINTER_IN = 0x2, POINTER_INOUT = 0x3 } PointerDir;
-    Var() :
-        m_name(""),
-        m_type(NULL),
-        m_lenExpression(""),
-        m_pointerDir(POINTER_IN),
-        m_nullAllowed(false),
-        m_isLarge(false),
-        m_packExpression(""),
-        m_writeExpression(""),
-        m_paramCheckExpression("")
-
-    {
-    }
-
-    Var(const std::string & name,
-        const VarType * vartype,
-        const std::string & lenExpression,
-        PointerDir dir,
-        const std::string &packExpression,
-        const std::string &writeExpression) :
-        m_name(name),
-        m_type(const_cast<VarType *>(vartype)),
-        m_lenExpression(lenExpression),
-        m_pointerDir(dir),
-        m_nullAllowed(false),
-        m_isLarge(false),
-        m_packExpression(packExpression),
-        m_writeExpression(writeExpression),
-	m_paramCheckExpression("")
-    {
-    }
-
-    void init(const std::string name, const VarType * vartype,
-              std::string lenExpression,
-              PointerDir dir,
-              std::string packExpression,
-              std::string writeExpression) {
-        m_name = name;
-        m_type = vartype;
-        m_lenExpression = lenExpression;
-        m_packExpression = packExpression;
-        m_writeExpression = writeExpression;
-        m_pointerDir = dir;
-        m_nullAllowed = false;
-        m_isLarge = false;
-
-    }
-
-    const std::string & name() const { return m_name; }
-    const VarType * type() const { return m_type; }
-    bool isPointer() const { return m_type->isPointer(); }
-    bool isVoid() const { return ((m_type->bytes() == 0) && (!m_type->isPointer())); }
-    const std::string & lenExpression() const { return m_lenExpression; }
-    const std::string & packExpression() const { return(m_packExpression); }
-    const std::string & writeExpression() const { return(m_writeExpression); }
-    const std::string & paramCheckExpression() const { return m_paramCheckExpression; }
-    void setLenExpression(const std::string & lenExpression) { m_lenExpression = lenExpression; }
-    void setPackExpression(const std::string & packExpression) { m_packExpression = packExpression; }
-    void setWriteExpression(const std::string & writeExpression) { m_writeExpression = writeExpression; }
-    void setParamCheckExpression(const std::string & paramCheckExpression) { m_paramCheckExpression = paramCheckExpression; }
-    void setPointerDir(PointerDir dir) { m_pointerDir = dir; }
-    PointerDir pointerDir() { return m_pointerDir; }
-    void setNullAllowed(bool state) { m_nullAllowed = state; }
-    void setIsLarge(bool state) { m_isLarge = state; }
-    bool nullAllowed() const { return m_nullAllowed; }
-    bool isLarge() const { return m_isLarge; }
-    void printType(FILE *fp) { fprintf(fp, "%s", m_type->name().c_str()); }
-    void printTypeName(FILE *fp) { printType(fp); fprintf(fp, " %s", m_name.c_str()); }
-
-private:
-    std::string m_name;
-    const VarType * m_type;
-    bool m_pointer; // is this variable a pointer;
-    std::string m_lenExpression; // an expression to calcualte a pointer data size
-    PointerDir m_pointerDir;
-    bool m_nullAllowed;
-    bool m_isLarge;
-    std::string m_packExpression; // an expression to pack data into the stream
-    std::string m_writeExpression; // an expression to write data into the stream
-    std::string m_paramCheckExpression; //an expression to check parameter value
-
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/tools/emugen/VarType.h b/tools/emulator/opengl/host/tools/emugen/VarType.h
deleted file mode 100644
index 41bb645..0000000
--- a/tools/emulator/opengl/host/tools/emugen/VarType.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef __VARTYPE__H__
-#define __VARTYPE__H__
-
-#include <string>
-
-class VarConverter {
-public:
-    VarConverter(size_t bytes) : m_bytes(bytes) {}
-    size_t bytes() const { return m_bytes; }
-private:
-    size_t m_bytes;
-};
-
-class Var8 : public VarConverter {
-public:
-    Var8() : VarConverter(1) {}
-};
-
-class Var16 : public VarConverter {
-public:
-    Var16() : VarConverter(2) {}
-};
-
-class Var32 : public VarConverter {
-public:
-    Var32() : VarConverter(4) {}
-};
-
-class Var0 : public VarConverter {
-public:
-    Var0() : VarConverter(0) {}
-};
-
-
-class VarType {
-public:
-    VarType() :
-        m_id(0), m_name("default_constructed"), m_converter(NULL), m_printFomrat("0x%x"), m_isPointer(false)
-    {
-    }
-
-    VarType(size_t id, const std::string & name, const VarConverter * converter, const std::string & printFormat , const bool isPointer) :
-        m_id(id), m_name(name), m_converter(const_cast<VarConverter *>(converter)), m_printFomrat(printFormat), m_isPointer(isPointer)
-    {
-    }
-
-    ~VarType()
-    {
-    }
-    const std::string & name() const { return m_name; }
-    const std::string & printFormat() const { return m_printFomrat; }
-    size_t bytes() const { return m_converter->bytes(); }
-    bool isPointer() const { return m_isPointer; }
-    size_t id() const { return m_id; }
-private:
-    size_t m_id;
-    std::string m_name;
-    VarConverter * m_converter;
-    std::string m_printFomrat;
-    bool m_isPointer;
-};
-
-#endif
diff --git a/tools/emulator/opengl/host/tools/emugen/errors.h b/tools/emulator/opengl/host/tools/emugen/errors.h
deleted file mode 100644
index d09c292..0000000
--- a/tools/emulator/opengl/host/tools/emugen/errors.h
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _ERRORS_H_
-#define _ERRORS_H_
-
-#define BAD_USAGE -1
-#define BAD_SPEC_FILE -2
-#define BAD_TYPES_FILE -3
-#define BAD_ATTRIBUTES_FILE -4
-
-#endif
diff --git a/tools/emulator/opengl/host/tools/emugen/main.cpp b/tools/emulator/opengl/host/tools/emugen/main.cpp
deleted file mode 100644
index 96377f2..0000000
--- a/tools/emulator/opengl/host/tools/emugen/main.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include "errors.h"
-#include "EntryPoint.h"
-#include "strUtils.h"
-#include "ApiGen.h"
-#include "TypeFactory.h"
-
-const std::string SPEC_EXTENSION = std::string(".in");
-const std::string ATTRIB_EXTENSION = std::string(".attrib");
-const std::string TYPES_EXTENTION = std::string(".types");
-
-
-void usage(const char *filename)
-{
-    fprintf(stderr, "Usage: %s [options] <base name>\n", filename);
-    fprintf(stderr, "\t-h: This message\n");
-    fprintf(stderr, "\t-E <dir>: generate encoder into dir\n");
-    fprintf(stderr, "\t-D <dir>: generate decoder into dir\n");
-    fprintf(stderr, "\t-i: input dir, local directory by default\n");
-    fprintf(stderr, "\t-T : generate attribute template into the input directory\n\t\tno other files are generated\n");
-    fprintf(stderr, "\t-W : generate wrapper into dir\n");
-}
-
-int main(int argc, char *argv[])
-{
-    std::string encoderDir = "";
-    std::string decoderDir = "";
-    std::string wrapperDir = "";
-    std::string inDir = ".";
-    bool generateAttributesTemplate = false;
-
-    int c;
-    while((c = getopt(argc, argv, "TE:D:i:hW:")) != -1) {
-        switch(c) {
-        case 'W':
-            wrapperDir = std::string(optarg);
-            break;
-        case 'T':
-            generateAttributesTemplate = true;
-            break;
-        case 'h':
-            usage(argv[0]);
-            exit(0);
-            break;
-        case 'E':
-            encoderDir = std::string(optarg);
-            break;
-        case 'D':
-            decoderDir = std::string(optarg);
-            break;
-        case 'i':
-            inDir = std::string(optarg);
-            break;
-        case ':':
-            fprintf(stderr, "Missing argument !!\n");
-            // fall through
-        default:
-            usage(argv[0]);
-            exit(0);
-        }
-    }
-
-    if (optind >= argc) {
-        fprintf(stderr, "Usage: %s [options] <base name> \n", argv[0]);
-        return BAD_USAGE;
-    }
-
-    if (encoderDir.size() == 0 &&
-        decoderDir.size() == 0 &&
-        generateAttributesTemplate == false &&
-        wrapperDir.size() == 0) {
-        fprintf(stderr, "No output specified - aborting\n");
-        return BAD_USAGE;
-    }
-
-    std::string baseName = std::string(argv[optind]);
-    ApiGen apiEntries(baseName);
-
-    // init types;
-    std::string typesFilename = inDir + "/" + baseName + TYPES_EXTENTION;
-
-    if (TypeFactory::instance()->initFromFile(typesFilename) < 0) {
-        fprintf(stderr, "missing or error reading types file: %s...ignored\n", typesFilename.c_str());
-    }
-
-    std::string filename = inDir + "/" + baseName + SPEC_EXTENSION;
-    if (apiEntries.readSpec(filename) < 0) {
-        perror(filename.c_str());
-        return BAD_SPEC_FILE;
-    }
-
-
-    if (generateAttributesTemplate) {
-        apiEntries.genAttributesTemplate(inDir + "/" + baseName + ATTRIB_EXTENSION);
-        exit(0);
-    }
-
-    std::string attribFileName = inDir + "/" + baseName + ATTRIB_EXTENSION;
-    if (apiEntries.readAttributes(attribFileName) < 0) {
-        perror(attribFileName.c_str());
-        fprintf(stderr, "failed to parse attributes\n");
-        exit(1);
-    }
-
-    if (encoderDir.size() != 0) {
-
-        apiEntries.genOpcodes(encoderDir + "/" + baseName + "_opcodes.h");
-        apiEntries.genContext(encoderDir + "/" + baseName + "_client_context.h", ApiGen::CLIENT_SIDE);
-        apiEntries.genContextImpl(encoderDir + "/" + baseName + "_client_context.cpp", ApiGen::CLIENT_SIDE);
-
-        apiEntries.genProcTypes(encoderDir + "/" + baseName + "_client_proc.h", ApiGen::CLIENT_SIDE);
-        apiEntries.genFuncTable(encoderDir + "/" + baseName + "_ftable.h", ApiGen::CLIENT_SIDE);
-
-        apiEntries.genEntryPoints(encoderDir + "/" + baseName + "_entry.cpp", ApiGen::CLIENT_SIDE);
-        apiEntries.genEncoderHeader(encoderDir + "/" + baseName + "_enc.h");
-        apiEntries.genEncoderImpl(encoderDir + "/" + baseName + "_enc.cpp");
-    }
-
-    if (decoderDir.size() != 0) {
-        apiEntries.genOpcodes(decoderDir + "/" + baseName + "_opcodes.h");
-        apiEntries.genProcTypes(decoderDir + "/" + baseName + "_server_proc.h", ApiGen::SERVER_SIDE);
-        apiEntries.genContext(decoderDir + "/" + baseName + "_server_context.h", ApiGen::SERVER_SIDE);
-        apiEntries.genContextImpl(decoderDir + "/" + baseName + "_server_context.cpp", ApiGen::SERVER_SIDE);
-        apiEntries.genDecoderHeader(decoderDir + "/" + baseName + "_dec.h");
-        apiEntries.genDecoderImpl(decoderDir + "/" + baseName + "_dec.cpp");
-    }
-
-    if (wrapperDir.size() != 0) {
-        apiEntries.genProcTypes(wrapperDir + "/" + baseName + "_wrapper_proc.h", ApiGen::WRAPPER_SIDE);
-        apiEntries.genContext(wrapperDir + "/" + baseName + "_wrapper_context.h", ApiGen::WRAPPER_SIDE);
-        apiEntries.genContextImpl(wrapperDir + "/" + baseName + "_wrapper_context.cpp", ApiGen::WRAPPER_SIDE);
-        apiEntries.genEntryPoints(wrapperDir + "/" + baseName + "_wrapper_entry.cpp", ApiGen::WRAPPER_SIDE);
-    }
-
-#ifdef DEBUG_DUMP
-    int withPointers = 0;
-    printf("%d functions found\n", int(apiEntries.size()));
-    for (int i = 0; i < apiEntries.size(); i++) {
-        if (apiEntries[i].hasPointers()) {
-            withPointers++;
-            apiEntries[i].print();
-        }
-    }
-    fprintf(stdout, "%d entries has poitners\n", withPointers);
-#endif
-
-}
-
diff --git a/tools/emulator/opengl/host/tools/emugen/strUtils.cpp b/tools/emulator/opengl/host/tools/emugen/strUtils.cpp
deleted file mode 100644
index 357054b..0000000
--- a/tools/emulator/opengl/host/tools/emugen/strUtils.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "strUtils.h"
-
-using namespace std;
-
-
-std::string getNextToken(const std::string & str, size_t pos, size_t * last, const std::string & delim)
-{
-    if (str.size() == 0 || pos >= str.size()) return "";
-
-    pos = str.find_first_not_of(WHITESPACE, pos);
-    if (pos == std::string::npos) return "";
-
-    *last = str.find_first_of(delim, pos);
-    if (*last == std::string::npos) *last = str.size();
-    std::string retval = str.substr(pos, *last - pos);
-    retval = trim(retval);
-    return retval;
-}
-
-
-std::string trim(const string & str)
-{
-  string result;
-  string::size_type start = str.find_first_not_of(WHITESPACE, 0);
-  string::size_type end = str.find_last_not_of(WHITESPACE);
-  if (start == string::npos || end == string::npos) {
-    result = string("");
-  } else {
-    result = str.substr(start, end - start + 1);
-  }
-  return result;
-}
-
-
diff --git a/tools/emulator/opengl/host/tools/emugen/strUtils.h b/tools/emulator/opengl/host/tools/emugen/strUtils.h
deleted file mode 100644
index 3fa0908..0000000
--- a/tools/emulator/opengl/host/tools/emugen/strUtils.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef STR_UTILS_H_
-#define STR_UTILS_H_
-
-#include <string>
-#include <sstream>
-
-#define WHITESPACE " \t\n"
-
-std::string trim(const std::string & str);
-std::string getNextToken(const std::string & str, size_t pos, size_t * last, const std::string & delim);
-template <class T> std::string inline toString(const T& t) {
-    std::stringstream ss;
-    ss << t;
-    return ss.str();
-
-}
-
-#endif
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk b/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk
index 2f7da79..df9b39a 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/Android.mk
@@ -21,19 +21,3 @@
 $(call emugl-export,SHARED_LIBRARIES,libcutils libutils)
 $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
 $(call emugl-end-module)
-
-### OpenglCodecCommon  host ##############################################
-$(call emugl-begin-host-static-library,libOpenglCodecCommon)
-
-LOCAL_SRC_FILES := $(commonSources)
-
-ifeq ($(HOST_OS),windows)
-    LOCAL_SRC_FILES += Win32PipeStream.cpp
-else
-    LOCAL_SRC_FILES += UnixStream.cpp
-endif
-
-$(call emugl-export,STATIC_LIBRARIES,libcutils)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-$(call emugl-end-module)
-
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/ErrorLog.h b/tools/emulator/opengl/shared/OpenglCodecCommon/ErrorLog.h
index 5e9c7b3..6f41fd7 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/ErrorLog.h
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/ErrorLog.h
@@ -18,9 +18,9 @@
 
 #if (HAVE_ANDROID_OS == 1)
 #    include <cutils/log.h>
-#    define ERR(...)    LOGE(__VA_ARGS__)
+#    define ERR(...)    ALOGE(__VA_ARGS__)
 #    ifdef EMUGL_DEBUG
-#        define DBG(...)    LOGD(__VA_ARGS__)
+#        define DBG(...)    ALOGD(__VA_ARGS__)
 #    else
 #        define DBG(...)    ((void)0)
 #    endif
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.cpp b/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.cpp
index c689f83..9795490 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.cpp
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.cpp
@@ -250,6 +250,11 @@
     return GL_NO_ERROR;
 }
 
+GLenum GLClientState::getActiveTextureUnit() const
+{
+    return GL_TEXTURE0 + (m_tex.activeUnit - &m_tex.unit[0]);
+}
+
 void GLClientState::enableTextureTarget(GLenum target)
 {
     switch (target) {
@@ -394,7 +399,7 @@
         if (texrec) {
             const TextureRec* end = m_tex.textures + m_tex.numTextures;
             memmove(texrec, texrec + 1,
-                    (end - texrec + 1) * sizeof(TextureRec));
+                    (end - texrec - 1) * sizeof(TextureRec));
             m_tex.numTextures--;
 
             for (TextureUnit* unit = m_tex.unit;
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.h b/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.h
index be66d68..c86329b 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.h
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/GLClientState.h
@@ -142,6 +142,7 @@
     // glActiveTexture(GL_TEXTURE0 + i)
     // Sets the active texture unit. Up to MAX_TEXTURE_UNITS are supported.
     GLenum setActiveTextureUnit(GLenum texture);
+    GLenum getActiveTextureUnit() const;
 
     // glEnable(GL_TEXTURE_(2D|EXTERNAL_OES))
     void enableTextureTarget(GLenum target);
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/GLErrorLog.h b/tools/emulator/opengl/shared/OpenglCodecCommon/GLErrorLog.h
index 3f30b22..5654aea 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/GLErrorLog.h
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/GLErrorLog.h
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #ifndef __GL_ERROR_LOG_H__
 #define __GL_ERROR_LOG_H__
 
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp b/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
index ff48c9d..8504f7f 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.cpp
@@ -1,3 +1,19 @@
+/*
+* Copyright (C) 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include "GLSharedGroup.h"
 
 /**** BufferData ****/
@@ -53,6 +69,15 @@
         m_Indexes[index].appBase = 0;
     }
     m_Indexes[index].hostLocsPerElement = 1;
+    m_Indexes[index].flags = 0;
+    m_Indexes[index].samplerValue = 0;
+}
+
+void ProgramData::setIndexFlags(GLuint index, GLuint flags)
+{
+    if (index >= m_numIndexes)
+        return;
+    m_Indexes[index].flags |= flags;
 }
 
 GLuint ProgramData::getIndexForLocation(GLint location)
@@ -123,13 +148,77 @@
     return -1;
 }
 
+GLint ProgramData::getNextSamplerUniform(GLint index, GLint* val, GLenum* target)
+{
+    for (GLint i = index + 1; i >= 0 && i < (GLint)m_numIndexes; i++) {
+        if (m_Indexes[i].type == GL_SAMPLER_2D) {
+            if (val) *val = m_Indexes[i].samplerValue;
+            if (target) {
+                if (m_Indexes[i].flags & INDEX_FLAG_SAMPLER_EXTERNAL) {
+                    *target = GL_TEXTURE_EXTERNAL_OES;
+                } else {
+                    *target = GL_TEXTURE_2D;
+                }
+            }
+            return i;
+        }
+    }
+    return -1;
+}
+
+bool ProgramData::setSamplerUniform(GLint appLoc, GLint val, GLenum* target)
+{
+    for (GLuint i = 0; i < m_numIndexes; i++) {
+        GLint elemIndex = appLoc - m_Indexes[i].appBase;
+        if (elemIndex >= 0 && elemIndex < m_Indexes[i].size) {
+            if (m_Indexes[i].type == GL_TEXTURE_2D) {
+                m_Indexes[i].samplerValue = val;
+                if (target) {
+                    if (m_Indexes[i].flags & INDEX_FLAG_SAMPLER_EXTERNAL) {
+                        *target = GL_TEXTURE_EXTERNAL_OES;
+                    } else {
+                        *target = GL_TEXTURE_2D;
+                    }
+                }
+                return true;
+            }
+        }
+    }
+    return false;
+}
+
+bool ProgramData::attachShader(GLuint shader)
+{
+    size_t n = m_shaders.size();
+    for (size_t i = 0; i < n; i++) {
+        if (m_shaders[i] == shader) {
+            return false;
+        }
+    }
+    // AKA m_shaders.push_back(), but that has an ambiguous call to insertAt()
+    // due to the default parameters. This is the desired insertAt() overload.
+    m_shaders.insertAt(shader, m_shaders.size(), 1);
+    return true;
+}
+
+bool ProgramData::detachShader(GLuint shader)
+{
+    size_t n = m_shaders.size();
+    for (size_t i = 0; i < n; i++) {
+        if (m_shaders[i] == shader) {
+            m_shaders.removeAt(i);
+            return true;
+        }
+    }
+    return false;
+}
 
 /***** GLSharedGroup ****/
 
 GLSharedGroup::GLSharedGroup() :
     m_buffers(android::DefaultKeyedVector<GLuint, BufferData*>(NULL)),
     m_programs(android::DefaultKeyedVector<GLuint, ProgramData*>(NULL)),
-    m_shaders(android::List<GLuint>())
+    m_shaders(android::DefaultKeyedVector<GLuint, ShaderData*>(NULL))
 {
 }
 
@@ -217,13 +306,55 @@
     m_programs.removeItem(program); 
 }
 
-void GLSharedGroup::setProgramIndexInfo(GLuint program, GLuint index, GLint base, GLint size, GLenum type)
+void GLSharedGroup::attachShader(GLuint program, GLuint shader)
+{
+    android::AutoMutex _lock(m_lock);
+    ProgramData* programData = m_programs.valueFor(program);
+    ssize_t idx = m_shaders.indexOfKey(shader);
+    if (programData && idx >= 0) {
+        if (programData->attachShader(shader)) {
+            refShaderDataLocked(idx);
+        }
+    }
+}
+
+void GLSharedGroup::detachShader(GLuint program, GLuint shader)
+{
+    android::AutoMutex _lock(m_lock);
+    ProgramData* programData = m_programs.valueFor(program);
+    ssize_t idx = m_shaders.indexOfKey(shader);
+    if (programData && idx >= 0) {
+        if (programData->detachShader(shader)) {
+            unrefShaderDataLocked(idx);
+        }
+    }
+}
+
+void GLSharedGroup::setProgramIndexInfo(GLuint program, GLuint index, GLint base, GLint size, GLenum type, const char* name)
 {
     android::AutoMutex _lock(m_lock);
     ProgramData* pData = m_programs.valueFor(program);
     if (pData)
     {
         pData->setIndexInfo(index,base,size,type);
+
+        if (type == GL_SAMPLER_2D) {
+            size_t n = pData->getNumShaders();
+            for (size_t i = 0; i < n; i++) {
+                GLuint shaderId = pData->getShader(i);
+                ShaderData* shader = m_shaders.valueFor(shaderId);
+                if (!shader) continue;
+                ShaderData::StringList::iterator nameIter = shader->samplerExternalNames.begin();
+                ShaderData::StringList::iterator nameEnd  = shader->samplerExternalNames.end();
+                while (nameIter != nameEnd) {
+                    if (*nameIter == name) {
+                        pData->setIndexFlags(index, ProgramData::INDEX_FLAG_SAMPLER_EXTERNAL);
+                        break;
+                    }
+                    ++nameIter;
+                }
+            }
+        }
     }
 }
 
@@ -277,38 +408,62 @@
     return false;
 }
 
+GLint GLSharedGroup::getNextSamplerUniform(GLuint program, GLint index, GLint* val, GLenum* target) const
+{
+    android::AutoMutex _lock(m_lock);
+    ProgramData* pData = m_programs.valueFor(program);
+    return pData ? pData->getNextSamplerUniform(index, val, target) : -1;
+}
 
-void  GLSharedGroup::addShaderData(GLuint shader)
+bool GLSharedGroup::setSamplerUniform(GLuint program, GLint appLoc, GLint val, GLenum* target)
 {
     android::AutoMutex _lock(m_lock);
-    m_shaders.push_front(shader);
-    
+    ProgramData* pData = m_programs.valueFor(program);
+    return pData ? pData->setSamplerUniform(appLoc, val, target) : false;
 }
-bool  GLSharedGroup::isShader(GLuint shader)
+
+bool GLSharedGroup::addShaderData(GLuint shader)
 {
     android::AutoMutex _lock(m_lock);
-    android::List<GLuint>::iterator iter;
-    iter = m_shaders.begin();
-    while (iter!=m_shaders.end())
-    {
-        if (*iter==shader)
-            return true;
-        iter++;
-    }
-    return false;
-}
-void  GLSharedGroup::deleteShaderData(GLuint shader)
-{
-    android::AutoMutex _lock(m_lock);
-    android::List<GLuint>::iterator iter;
-    iter = m_shaders.begin();
-    while (iter!=m_shaders.end())
-    {
-        if (*iter==shader)
-        {
-            m_shaders.erase(iter);
-            return;
+    ShaderData* data = new ShaderData;
+    if (data) {
+        if (m_shaders.add(shader, data) < 0) {
+            delete data;
+            data = NULL;
         }
-        iter++;
+        data->refcount = 1;
+    }
+    return data != NULL;
+}
+
+ShaderData* GLSharedGroup::getShaderData(GLuint shader)
+{
+    android::AutoMutex _lock(m_lock);
+    return m_shaders.valueFor(shader);
+}
+
+void GLSharedGroup::unrefShaderData(GLuint shader)
+{
+    android::AutoMutex _lock(m_lock);
+    ssize_t idx = m_shaders.indexOfKey(shader);
+    if (idx >= 0) {
+        unrefShaderDataLocked(idx);
+    }
+}
+
+void GLSharedGroup::refShaderDataLocked(ssize_t shaderIdx)
+{
+    assert(shaderIdx >= 0 && shaderIdx <= m_shaders.size());
+    ShaderData* data = m_shaders.valueAt(shaderIdx);
+    data->refcount++;
+}
+
+void GLSharedGroup::unrefShaderDataLocked(ssize_t shaderIdx)
+{
+    assert(shaderIdx >= 0 && shaderIdx <= m_shaders.size());
+    ShaderData* data = m_shaders.valueAt(shaderIdx);
+    if (--data->refcount == 0) {
+        delete data;
+        m_shaders.removeItemsAt(shaderIdx);
     }
 }
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.h b/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.h
index 7104550..61b8f00 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.h
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/GLSharedGroup.h
@@ -31,8 +31,9 @@
 #include <stdlib.h>
 #include "ErrorLog.h"
 #include <utils/KeyedVector.h>
-#include <utils/threads.h>
 #include <utils/List.h>
+#include <utils/String8.h>
+#include <utils/threads.h>
 #include "FixedBuffer.h"
 #include "SmartPtr.h"
 
@@ -51,18 +52,28 @@
         GLenum type;
         GLint appBase;
         GLint hostLocsPerElement;
+        GLuint flags;
+        GLint samplerValue; // only set for sampler uniforms
     } IndexInfo;
 
     GLuint m_numIndexes;
     IndexInfo* m_Indexes;
     bool m_initialized;
     bool m_locShiftWAR;
+
+    android::Vector<GLuint> m_shaders;
+
 public:
+    enum {
+        INDEX_FLAG_SAMPLER_EXTERNAL = 0x00000001,
+    };
+
     ProgramData();
     void initProgramData(GLuint numIndexes);
     bool isInitialized();
     virtual ~ProgramData();
     void setIndexInfo(GLuint index, GLint base, GLint size, GLenum type);
+    void setIndexFlags(GLuint index, GLuint flags);
     GLuint getIndexForLocation(GLint location);
     GLenum getTypeForLocation(GLint location);
 
@@ -70,15 +81,32 @@
     void setupLocationShiftWAR();
     GLint locationWARHostToApp(GLint hostLoc, GLint arrIndex);
     GLint locationWARAppToHost(GLint appLoc);
-    
+
+    GLint getNextSamplerUniform(GLint index, GLint* val, GLenum* target);
+    bool setSamplerUniform(GLint appLoc, GLint val, GLenum* target);
+
+    bool attachShader(GLuint shader);
+    bool detachShader(GLuint shader);
+    size_t getNumShaders() const { return m_shaders.size(); }
+    GLuint getShader(size_t i) const { return m_shaders[i]; }
+};
+
+struct ShaderData {
+    typedef android::List<android::String8> StringList;
+    StringList samplerExternalNames;
+    int refcount;
 };
 
 class GLSharedGroup {
 private:
-    android::DefaultKeyedVector<GLuint, BufferData*>    m_buffers;
-    android::DefaultKeyedVector<GLuint, ProgramData*>    m_programs;
-    android::List<GLuint> m_shaders;
-    mutable android::Mutex       m_lock;
+    android::DefaultKeyedVector<GLuint, BufferData*> m_buffers;
+    android::DefaultKeyedVector<GLuint, ProgramData*> m_programs;
+    android::DefaultKeyedVector<GLuint, ShaderData*> m_shaders;
+    mutable android::Mutex m_lock;
+
+    void refShaderDataLocked(ssize_t shaderIdx);
+    void unrefShaderDataLocked(ssize_t shaderIdx);
+
 public:
     GLSharedGroup();
     ~GLSharedGroup();
@@ -92,18 +120,22 @@
     bool    isProgramInitialized(GLuint program);
     void    addProgramData(GLuint program); 
     void    initProgramData(GLuint program, GLuint numIndexes);
+    void    attachShader(GLuint program, GLuint shader);
+    void    detachShader(GLuint program, GLuint shader);
     void    deleteProgramData(GLuint program);
-    void    setProgramIndexInfo(GLuint program, GLuint index, GLint base, GLint size, GLenum type);
+    void    setProgramIndexInfo(GLuint program, GLuint index, GLint base, GLint size, GLenum type, const char* name);
     GLenum  getProgramUniformType(GLuint program, GLint location);
     void    setupLocationShiftWAR(GLuint program);
     GLint   locationWARHostToApp(GLuint program, GLint hostLoc, GLint arrIndex);
     GLint   locationWARAppToHost(GLuint program, GLint appLoc);
     bool    needUniformLocationWAR(GLuint program);
+    GLint   getNextSamplerUniform(GLuint program, GLint index, GLint* val, GLenum* target) const;
+    bool    setSamplerUniform(GLuint program, GLint appLoc, GLint val, GLenum* target);
 
-    void    addShaderData(GLuint shader);
-    bool    isShader(GLuint shader);
-    void    deleteShaderData(GLuint shader);
-
+    bool    addShaderData(GLuint shader);
+    // caller must hold a reference to the shader as long as it holds the pointer
+    ShaderData* getShaderData(GLuint shader);
+    void    unrefShaderData(GLuint shader);
 };
 
 typedef SmartPtr<GLSharedGroup> GLSharedGroupPtr; 
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/SocketStream.cpp b/tools/emulator/opengl/shared/OpenglCodecCommon/SocketStream.cpp
index ddc56d0..f7a2314 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/SocketStream.cpp
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/SocketStream.cpp
@@ -73,7 +73,7 @@
             m_buf = p;
             m_bufsize = allocSize;
         } else {
-            ERR("%s: realloc (%d) failed\n", __FUNCTION__, allocSize);
+            ERR("%s: realloc (%zu) failed\n", __FUNCTION__, allocSize);
             free(m_buf);
             m_buf = NULL;
             m_bufsize = 0;
diff --git a/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp b/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp
index ae70598..4b7fc89 100644
--- a/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp
+++ b/tools/emulator/opengl/shared/OpenglCodecCommon/glUtils.cpp
@@ -81,6 +81,7 @@
 
     switch(param)
     {
+    case GL_DEPTH_TEST:
     case GL_DEPTH_FUNC:
     case GL_DEPTH_BITS:
     case GL_MAX_CLIP_PLANES:
diff --git a/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk b/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk
index 35da4cf..e7fd9e9 100644
--- a/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk
+++ b/tools/emulator/opengl/shared/OpenglOsUtils/Android.mk
@@ -18,31 +18,3 @@
         osDynLibrary.cpp
 
 $(call emugl-end-module)
-
-
-### Host library ##############################################
-$(call emugl-begin-host-static-library,libOpenglOsUtils)
-
-    $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-    LOCAL_SRC_FILES := osDynLibrary.cpp
-
-    ifeq ($(HOST_OS),windows)
-        LOCAL_SRC_FILES += \
-            osProcessWin.cpp \
-            osThreadWin.cpp
-
-        $(call emugl-export,LDLIBS,-lws2_32 -lpsapi)
-    else
-        LOCAL_SRC_FILES += \
-            osProcessUnix.cpp \
-            osThreadUnix.cpp
-
-        $(call emugl-export,LDLIBS,-ldl)
-    endif
-
-    ifeq ($(HOST_OS),linux)
-        $(call emugl-export,LDLIBS,-lpthread -lrt)
-    endif
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/shared/OpenglOsUtils/osDynLibrary.h b/tools/emulator/opengl/shared/OpenglOsUtils/osDynLibrary.h
index 5861b60..c83fbf3 100644
--- a/tools/emulator/opengl/shared/OpenglOsUtils/osDynLibrary.h
+++ b/tools/emulator/opengl/shared/OpenglOsUtils/osDynLibrary.h
@@ -45,4 +45,27 @@
 
 } // of namespace osUtils
 
+
+
+// Macro to compose emugl shared library name under various OS and bitness
+// eg.
+//     on x86_64, EMUGL_LIBNAME("foo") --> "lib64foo.so"
+
+#ifdef _WIN32
+#  define DLL_EXTENSION  "" // _WIN32 LoadLibrary only accept name w/o .dll extension
+#elif defined(__APPLE__)
+#  define DLL_EXTENSION  ".dylib"
+#else
+#  define DLL_EXTENSION  ".so"
+#endif
+
+#if defined(__x86_64__)
+#  define EMUGL_LIBNAME(name) "lib64" name DLL_EXTENSION
+#elif defined(__i386__)
+#  define EMUGL_LIBNAME(name) "lib" name DLL_EXTENSION
+#else
+/* This header is included by target w/o using EMUGL_LIBNAME().  Don't #error, leave it undefined */
+#endif
+
+
 #endif
diff --git a/tools/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp b/tools/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp
index 66611ee..d8879eb 100644
--- a/tools/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp
+++ b/tools/emulator/opengl/shared/OpenglOsUtils/osThreadUnix.cpp
@@ -80,14 +80,14 @@
 Thread::thread_main(void *p_arg)
 {
     Thread *self = (Thread *)p_arg;
-    void *ret = (void *)self->Main();
+    int ret = self->Main();
 
     pthread_mutex_lock(&self->m_lock);
     self->m_isRunning = false;
-    self->m_exitStatus = (int)ret;
+    self->m_exitStatus = ret;
     pthread_mutex_unlock(&self->m_lock);
 
-    return ret;
+    return (void*)ret;
 }
 
 } // of namespace osUtils
diff --git a/tools/emulator/opengl/system/GLESv1/gl.cpp b/tools/emulator/opengl/system/GLESv1/gl.cpp
index 07afade..8ecb504 100644
--- a/tools/emulator/opengl/system/GLESv1/gl.cpp
+++ b/tools/emulator/opengl/system/GLESv1/gl.cpp
@@ -1,10 +1,25 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include "EGLClientIface.h"
 #include "HostConnection.h"
 #include "GLEncoder.h"
 #include "GLES/gl.h"
 #include "GLES/glext.h"
 #include "ErrorLog.h"
-#include <private/ui/android_natives_priv.h>
 #include "gralloc_cb.h"
 #include "ThreadInfo.h"
 
@@ -23,12 +38,12 @@
 #define DEFINE_AND_VALIDATE_HOST_CONNECTION(ret) \
     HostConnection *hostCon = HostConnection::get(); \
     if (!hostCon) { \
-        LOGE("egl: Failed to get host connection\n"); \
+        ALOGE("egl: Failed to get host connection\n"); \
         return ret; \
     } \
     renderControl_encoder_context_t *rcEnc = hostCon->rcEncoder(); \
     if (!rcEnc) { \
-        LOGE("egl: Failed to get renderControl encoder context\n"); \
+        ALOGE("egl: Failed to get renderControl encoder context\n"); \
         return ret; \
     }
 
@@ -73,13 +88,9 @@
         return;
     }
 
-    GET_CONTEXT;
     DEFINE_AND_VALIDATE_HOST_CONNECTION();
-
-    ctx->override2DTextureTarget(target);
     rcEnc->rcBindRenderbuffer(rcEnc,
             ((cb_handle_t *)(native_buffer->handle))->hostHandle);
-    ctx->restore2DTextureTarget();
 
     return;
 }
diff --git a/tools/emulator/opengl/system/GLESv1_enc/Android.mk b/tools/emulator/opengl/system/GLESv1_enc/Android.mk
index 25c8c49..fd12395 100644
--- a/tools/emulator/opengl/system/GLESv1_enc/Android.mk
+++ b/tools/emulator/opengl/system/GLESv1_enc/Android.mk
@@ -7,9 +7,10 @@
 
 LOCAL_SRC_FILES := \
         GLEncoder.cpp \
-        GLEncoderUtils.cpp
-
-$(call emugl-gen-encoder,$(LOCAL_PATH),gl)
+        GLEncoderUtils.cpp \
+        gl_client_context.cpp \
+        gl_enc.cpp \
+        gl_entry.cpp
 
 $(call emugl-import,libOpenglCodecCommon)
 $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
diff --git a/tools/emulator/opengl/system/GLESv1_enc/GLEncoder.cpp b/tools/emulator/opengl/system/GLESv1_enc/GLEncoder.cpp
index dc7c527..4414f24 100644
--- a/tools/emulator/opengl/system/GLESv1_enc/GLEncoder.cpp
+++ b/tools/emulator/opengl/system/GLESv1_enc/GLEncoder.cpp
@@ -16,7 +16,6 @@
 #include "GLEncoder.h"
 #include "glUtils.h"
 #include "FixedBuffer.h"
-#include <private/ui/android_natives_priv.h>
 #include <cutils/log.h>
 #include <assert.h>
 
@@ -30,14 +29,14 @@
 static GLubyte *gExtensionsString= (GLubyte *) ""; // no extensions at this point;
 
 #define SET_ERROR_IF(condition,err) if((condition)) {                            \
-        LOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
+        ALOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
         ctx->setError(err);                                    \
         return;                                                  \
     }
 
 
 #define RET_AND_SET_ERROR_IF(condition,err,ret) if((condition)) {                \
-        LOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
+        ALOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
         ctx->setError(err);                                    \
         return ret;                                              \
     }
@@ -258,7 +257,7 @@
 {
     GLEncoder *ctx = (GLEncoder *)self;
     ctx->m_glPixelStorei_enc(ctx, param, value);
-    LOG_ASSERT(ctx->m_state, "GLEncoder::s_glPixelStorei");
+    ALOG_ASSERT(ctx->m_state, "GLEncoder::s_glPixelStorei");
     ctx->m_state->setPixelStore(param, value);
 }
 
@@ -537,7 +536,7 @@
     }
 
     if (!has_immediate_arrays && !has_indirect_arrays) {
-        LOGE("glDrawElements: no data bound to the command - ignoring\n");
+        ALOGE("glDrawElements: no data bound to the command - ignoring\n");
         return;
     }
 
@@ -580,7 +579,7 @@
             }
             break;
         default:
-            LOGE("unsupported index buffer type %d\n", type);
+            ALOGE("unsupported index buffer type %d\n", type);
         }
         if (has_indirect_arrays || 1) {
             ctx->sendVertexData(minIndex, maxIndex - minIndex + 1);
@@ -588,12 +587,12 @@
                                       count * glSizeof(type));
             // XXX - OPTIMIZATION (see the other else branch) should be implemented
             if(!has_indirect_arrays) {
-                //LOGD("unoptimized drawelements !!!\n");
+                //ALOGD("unoptimized drawelements !!!\n");
             }
         } else {
             // we are all direct arrays and immidate mode index array -
             // rebuild the arrays and the index array;
-            LOGE("glDrawElements: direct index & direct buffer data - will be implemented in later versions;\n");
+            ALOGE("glDrawElements: direct index & direct buffer data - will be implemented in later versions;\n");
         }
     }
 }
@@ -605,7 +604,7 @@
     GLenum err;
 
     if ((err = state->setActiveTextureUnit(texture)) != GL_NO_ERROR) {
-        LOGE("%s:%s:%d GL error %#x\n", __FILE__, __FUNCTION__, __LINE__, err);
+        ALOGE("%s:%s:%d GL error %#x\n", __FILE__, __FUNCTION__, __LINE__, err);
         ctx->setError(err);
         return;
     }
@@ -621,7 +620,7 @@
 
     GLboolean firstUse;
     if ((err = state->bindTexture(target, texture, &firstUse)) != GL_NO_ERROR) {
-        LOGE("%s:%s:%d GL error %#x\n", __FILE__, __FUNCTION__, __LINE__, err);
+        ALOGE("%s:%s:%d GL error %#x\n", __FILE__, __FUNCTION__, __LINE__, err);
         ctx->setError(err);
         return;
     }
@@ -634,6 +633,7 @@
     GLenum priorityTarget = state->getPriorityEnabledTarget(GL_TEXTURE_2D);
 
     if (target == GL_TEXTURE_EXTERNAL_OES && firstUse) {
+        // set TEXTURE_EXTERNAL_OES default states which differ from TEXTURE_2D
         ctx->m_glBindTexture_enc(ctx, GL_TEXTURE_2D, texture);
         ctx->m_glTexParameteri_enc(ctx, GL_TEXTURE_2D,
                 GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -735,12 +735,20 @@
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
-    if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
-        ctx->override2DTextureTarget(target);
-        ctx->m_glGetTexParameteriv_enc(ctx, GL_TEXTURE_2D, pname, params);
-        ctx->restore2DTextureTarget();
-    } else {
-        ctx->m_glGetTexParameteriv_enc(ctx, target, pname, params);
+    switch (pname) {
+    case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
+        *params = 1;
+        break;
+
+    default:
+        if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+            ctx->override2DTextureTarget(target);
+            ctx->m_glGetTexParameteriv_enc(ctx, GL_TEXTURE_2D, pname, params);
+            ctx->restore2DTextureTarget();
+        } else {
+            ctx->m_glGetTexParameteriv_enc(ctx, target, pname, params);
+        }
+        break;
     }
 }
 
@@ -759,12 +767,35 @@
     }
 }
 
+static bool isValidTextureExternalParam(GLenum pname, GLenum param)
+{
+    switch (pname) {
+    case GL_TEXTURE_MIN_FILTER:
+    case GL_TEXTURE_MAG_FILTER:
+        return param == GL_NEAREST || param == GL_LINEAR;
+
+    case GL_TEXTURE_WRAP_S:
+    case GL_TEXTURE_WRAP_T:
+        return param == GL_CLAMP_TO_EDGE;
+
+    case GL_GENERATE_MIPMAP:
+        return param == GL_FALSE;
+
+    default:
+        return true;
+    }
+}
+
 void GLEncoder::s_glTexParameterf(void* self,
         GLenum target, GLenum pname, GLfloat param)
 {
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)param)),
+            GL_INVALID_ENUM);
+
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glTexParameterf_enc(ctx, GL_TEXTURE_2D, pname, param);
@@ -780,6 +811,10 @@
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)params[0])),
+            GL_INVALID_ENUM);
+
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glTexParameterfv_enc(ctx, GL_TEXTURE_2D, pname, params);
@@ -795,6 +830,10 @@
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)param)),
+            GL_INVALID_ENUM);
+
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glTexParameteri_enc(ctx, GL_TEXTURE_2D, pname, param);
@@ -810,6 +849,10 @@
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)param)),
+            GL_INVALID_ENUM);
+
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glTexParameterx_enc(ctx, GL_TEXTURE_2D, pname, param);
@@ -825,6 +868,10 @@
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)params[0])),
+            GL_INVALID_ENUM);
+
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glTexParameteriv_enc(ctx, GL_TEXTURE_2D, pname, params);
@@ -840,6 +887,10 @@
     GLEncoder* ctx = (GLEncoder*)self;
     const GLClientState* state = ctx->m_state;
 
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)params[0])),
+            GL_INVALID_ENUM);
+
     if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
         ctx->override2DTextureTarget(target);
         ctx->m_glTexParameterxv_enc(ctx, GL_TEXTURE_2D, pname, params);
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl.addon b/tools/emulator/opengl/system/GLESv1_enc/gl.addon
deleted file mode 100644
index 2331f87..0000000
--- a/tools/emulator/opengl/system/GLESv1_enc/gl.addon
+++ /dev/null
@@ -1,15 +0,0 @@
-GL_ENTRY(void, glVertexPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glColorPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glNormalPointerOffset, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glPointSizePointerOffset, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glTexCoordPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-
-GL_ENTRY(void, glVertexPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glColorPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glNormalPointerData, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glTexCoordPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glPointSizePointerData, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-
-GL_ENTRY(void, glDrawElementsOffset, GLenum mode, GLsizei count, GLenum type, GLuint offset);
-GL_ENTRY(void, glDrawElementsData, GLenum mode, GLsizei count, GLenum type, void *data, GLuint datalen);
-
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl.attrib b/tools/emulator/opengl/system/GLESv1_enc/gl.attrib
deleted file mode 100644
index 9b84f89..0000000
--- a/tools/emulator/opengl/system/GLESv1_enc/gl.attrib
+++ /dev/null
@@ -1,691 +0,0 @@
-GLOBAL
-	base_opcode 1024
-	encoder_headers "glUtils.h" "GLEncoderUtils.h"
-	
-#void glClipPlanef(GLenum plane, GLfloat *equation)
-glClipPlanef
-  dir equation in
-	len equation (4 * sizeof(float))
-
-#void glFogfv(GLenum pname, GLfloat *params)
-glFogfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetFloatv(GLenum pname, GLfloat *params)
-glGetFloatv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetLightfv(GLenum light, GLenum pname, GLfloat *params)
-glGetLightfv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
-glGetMaterialfv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params)
-glGetTexEnvfv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-glGetTexParameterfv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glLightModelfv(GLenum pname, GLfloat *params)
-glLightModelfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glLightfv(GLenum light, GLenum pname, GLfloat *params)
-glLightfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glLoadMatrixf(GLfloat *m)
-glLoadMatrixf
-	len m (16 * sizeof(GLfloat))
-
-#void glMaterialfv(GLenum face, GLenum pname, GLfloat *params)
-glMaterialfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glMultMatrixf(GLfloat *m)
-glMultMatrixf
-	len m (16 * sizeof(GLfloat))
-
-#void glPointParameterfv(GLenum pname, GLfloat *params)
-glPointParameterfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glTexEnvfv(GLenum target, GLenum pname, GLfloat *params)
-glTexEnvfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-glTexParameterfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glBufferData(GLenum target, GLsizeiptr size, GLvoid *data, GLenum usage)
-glBufferData
-	len data size
-
-#void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
-glBufferSubData
-	dir data in
-	len data size
-
-#void glClipPlanex(GLenum plane, GLfixed *eqn)
-glClipPlanex
-	dir eqn in
-	len eqn (4 * sizeof(GLfixed))
-
-#void glColorPointer(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-#we treat the pointer as offset to a VBO
-glColorPointer
-	len pointer (sizeof(unsigned int))
-	flag unsupported
-
-#void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid *data)
-glCompressedTexImage2D
-	len data imageSize
-    var_flag data nullAllowed
-
-#void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid *data)
-glCompressedTexSubImage2D
-	len data imageSize
-
-#void glDeleteBuffers(GLsizei n, GLuint *buffers)
-glDeleteBuffers
-	len buffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glDeleteTextures(GLsizei n, GLuint *textures)
-glDeleteTextures
-	len textures (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#this function is marked as unsupported - it shouldn't be called directly
-#instead it translated into - glDrawDirectElements and glDrawIndirectElements
-#void glDrawElements(GLenum mode, GLsizei count, GLenum type, GLvoid *indices)
-glDrawElements
-	flag unsupported
-
-
-#void glFogxv(GLenum pname, GLfixed *params)
-glFogxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetBooleanv(GLenum pname, GLboolean *params)
-glGetBooleanv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLboolean))
-
-#void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
-glGetBufferParameteriv
-	len params (sizeof(GLint))
-	dir params out
-
-#void glGenBuffers(GLsizei n, GLuint *buffers)
-glGenBuffers
-	len buffers (n * sizeof(GLuint))
-	dir buffers out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenTextures(GLsizei n, GLuint *textures)
-glGenTextures
-	len textures (n * sizeof(GLuint))
-	dir textures out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGetFixedv(GLenum pname, GLfixed *params)
-glGetFixedv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetIntegerv(GLenum pname, GLint *params)
-glGetIntegerv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glGetLightxv(GLenum light, GLenum pname, GLfixed *params)
-glGetLightxv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
-glGetMaterialxv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetPointerv(GLenum pname, void **params)
-glGetPointerv
-	flag unsupported
-
-#GLubyte* glGetString(GLenum name)
-glGetString
-  flag unsupported
-
-#void glGetTexEnviv(GLenum env, GLenum pname, GLint *params)
-glGetTexEnviv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params)
-glGetTexEnvxv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
-glGetTexParameteriv
-	dir params out
-	len params (sizeof(GLint))
-
-#void glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
-glGetTexParameterxv
-	dir params out
-	len params (sizeof(GLfixed))
-
-#void glLightModelxv(GLenum pname, GLfixed *params)
-glLightModelxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glLightxv(GLenum light, GLenum pname, GLfixed *params)
-glLightxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glLoadMatrixx(GLfixed *m)
-glLoadMatrixx
-	len m (16 * sizeof(GLfixed))
-
-#void glMaterialxv(GLenum face, GLenum pname, GLfixed *params)
-glMaterialxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glMultMatrixx(GLfixed *m)
-glMultMatrixx
-	len m (16 * sizeof(GLfixed))
-
-#void glNormalPointer(GLenum type, GLsizei stride, GLvoid *pointer)
-#we treat the pointer as an offset to a VBO
-glNormalPointer
-	len pointer (sizeof(unsigned int))
-	flag unsupported
-
-#void glPointParameterxv(GLenum pname, GLfixed *params)
-glPointParameterxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-glReadPixels
-	dir pixels out
-	len pixels pixelDataSize(self, width, height, format, type, 1)
-
-#void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-glTexCoordPointer
-	len pointer (sizeof(unsigned int))
-	flag unsupported
-
-#void glTexEnviv(GLenum target, GLenum pname, GLint *params)
-glTexEnviv
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glTexEnvxv(GLenum target, GLenum pname, GLfixed *params)
-glTexEnvxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels)
-glTexImage2D
-	dir pixels in
-	len pixels pixelDataSize(self, width, height, format, type, 0)
-	var_flag pixels nullAllowed isLarge
-
-#void glTexParameteriv(GLenum target, GLenum pname, GLint *params)
-glTexParameteriv
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
-glTexParameterxv
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-glTexSubImage2D
-	len pixels pixelDataSize(self, width, height, format, type, 0)
-        var_flag pixels isLarge
-
-#void glVertexPointer(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-# we treat the pointer as an offset to a VBO
-glVertexPointer
-	flag unsupported
-
-#void glPointSizePointerOES(GLenum type, GLsizei stride, GLvoid *pointer)
-glPointSizePointerOES
-	len pointer (sizeof(unsigned int))
-	flag unsupported
-
-#void glGetClipPlanef(GLenum pname, GLfloat * eqn)
-glGetClipPlanef
-	dir eqn out
-	len eqn (4 * sizeof(GLfloat))
-
-#void glVertexPointerData(GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen)
-glVertexPointerData
-	len data datalen
-	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen)
-	flag custom_decoder
-	flag not_api
-
-#void glColorPointerData(GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen)
-glColorPointerData
-	len data datalen
-	flag custom_decoder
-	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen)
-	flag not_api
-
-#void glNormalPointerData(GLenum type, GLsizei stride, void *data, GLuint datalen)
-glNormalPointerData
-	len data datalen
-	flag custom_decoder
-	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 3, type, stride, datalen)
-	flag not_api
-
-#void glPointSizePointerData(GLenum type, GLsizei stride, void *data, GLuint datalen)
-glPointSizePointerData
-	len data datalen
-	flag custom_decoder
-	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 1, type, stride, datalen)
-	flag not_api
-
-#void glTexCoordPointerData(GLint size, GLenum type, GLsizei stride, void *data, GLuint datalen)
-glTexCoordPointerData
-	len data datalen
-	flag custom_decoder
-	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen)
-	flag not_api
-
-#void glWeightPointerData(GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-glWeightPointerData
-  	len data datalen
-  	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen)
-  	flag custom_decoder
-	flag not_api
-
-#void glMatrixIndexPointerData(GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-glMatrixIndexPointerData
-	len data datalen
-  	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen)
-  	flag custom_decoder
-	flag not_api
-
-glVertexPointerOffset
-	flag custom_decoder
-	flag not_api
-glNormalPointerOffset
-	flag custom_decoder
-	flag not_api
-glTexCoordPointerOffset
-	flag custom_decoder
-	flag not_api
-glPointSizePointerOffset
-	flag custom_decoder
-	flag not_api
-glColorPointerOffset
-	flag custom_decoder
-	flag not_api
-glWeightPointerOffset
-    flag custom_decoder
-	flag not_api
-glMatrixIndexPointerOffset
-    flag custom_decoder
-	flag not_api
-
-glDrawElementsData
-	len data datalen
-	flag custom_decoder
-	flag not_api
-
-glDrawElementsOffset
-	flag custom_decoder
-	flag not_api
-
-glGetCompressedTextureFormats
-	dir formats out
-	len formats (count * sizeof(GLint))
-	flag custom_decoder
-	flag not_api
-
-glFinishRoundTrip
-	flag custom_decoder
-	flag not_api
-
-#gles1 extensions
-
-#void glDrawTexsvOES(GLshort *coords)
-glDrawTexsvOES
-	len coords (5 * sizeof(GLshort))
-
-#void glDrawTexivOES(GLint *coords)
-glDrawTexivOES
-	len coords (5 * sizeof(GLint))
-
-#void glDrawTexxvOES(GLfixed *coords)
-glDrawTexxvOES
-	len coords (5 * sizeof(GLfixed))
-
-#void glDrawTexfvOES(GLfloat *coords)
-glDrawTexfvOES
-	len coords (5 * sizeof(GLfloat))
-
-#glClipPlanexOES(GLenum plane, const GLfixed * equation)
-glClipPlanexOES
-	dir equation in
-	len equation (4 * sizeof(GLfixed))
-
-#glClipPlanexIMG(GLenum plane, const GLfixed * equation)
-glClipPlanexIMG
-	dir equation in
-	len equation (4 * sizeof(GLfixed))
-
-#void glFogxvOES(GLenum pname, GLfixed *params)
-glFogxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetClipPlanexOES(GLenum pname,  GLfixed * eqn)
-glGetClipPlanexOES
-	dir eqn out
-	len eqn (4 * sizeof(GLfixed))
-
-#void glGetClipPlanex(GLenum pname,  GLfixed * eqn)
-glGetClipPlanex
-	dir eqn out
-	len eqn (4 * sizeof(GLfixed))
-
-#void glGetFixedvOES(GLenum pname, GLfixed *params)
-glGetFixedvOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetLightxvOES(GLenum light, GLenum pname, GLfixed *params)
-glGetLightxvOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed *params)
-glGetMaterialxvOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed *params)
-glGetTexEnvxvOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params)
-glGetTexParameterxvOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glLightModelxvOES(GLenum pname, GLfixed *params)
-glLightModelxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glLightxvOES(GLenum light, GLenum pname, GLfixed *params)
-glLightxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glLoadMatrixxOES(GLfixed *m)
-glLoadMatrixxOES
-	dir m in
-	len m (16 * sizeof(GLfixed))
-
-#void glMaterialxvOES(GLenum face, GLenum pname, GLfixed *params)
-glMaterialxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glMultMatrixxOES(GLfixed *m)
-glMultMatrixxOES
-	dir m in
-	len m (16 * sizeof(GLfixed))
-
-#void glPointParameterxvOES(GLenum pname, GLfixed *params)
-glPointParameterxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glTexEnvxvOES(GLenum target, GLenum pname, GLfixed *params)
-glTexEnvxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params)
-glTexParameterxvOES
-	dir params in
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glDeleteRenderbuffersOES(GLsizei n, GLuint *renderbuffers)
-glDeleteRenderbuffersOES
-	dir renderbuffers in
-	len renderbuffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenRenderbuffersOES(GLsizei n, GLuint *renderbuffers)
-glGenRenderbuffersOES
-	dir renderbuffers out 
-	len renderbuffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params)
-glGetRenderbufferParameterivOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glDeleteFramebuffersOES(GLsizei n, GLuint *framebuffers)
-glDeleteFramebuffersOES
-	dir framebuffers in
-	len framebuffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenFramebuffersOES(GLsizei n, GLuint *framebuffers)
-glGenFramebuffersOES
-	dir framebuffers out
-	len framebuffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params)
-glGetFramebufferAttachmentParameterivOES
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void* glMapBufferOES(GLenum target, GLenum access)
-glMapBufferOES
-	flag unsupported
-
-#void glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid ** params)
-glGetBufferPointervOES
-	flag unsupported
-
-#void glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-glMatrixIndexPointerOES
-	len pointer (sizeof(unsigned int))
-	flag unsupported
-
-#void glWeightPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
-glWeightPointerOES
-	len pointer (sizeof(unsigned int))
-	flag unsupported
-
-#glQueryMatrixxOES(GLfixed * mantissa, GLint * exponent)
-glQueryMatrixxOES
-	dir mantissa out
-	len mantissa (16 * sizeof(GLfixed))
-	dir exponent out
-	len exponent (16 * sizeof(GLfixed))
-
-#void glClipPlanefOES(GLenum plane, GLfloat *equation)
-glClipPlanefOES
-	dir equation in
-	len equation (4 * sizeof(GLfloat))
-
-#void glClipPlanefIMG(GLenum plane, GLfloat *equation)
-glClipPlanefIMG
-	dir equation in
-	len equation (4 * sizeof(GLfloat))
-
-#void glGetClipPlanefOES(GLenum pname, GLfloat * eqn)
-glGetClipPlanefOES
-	dir eqn out
-	len eqn (4 * sizeof(GLfloat))
-
-#void glTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
-glTexGenfvOES
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glTexGenivOES(GLenum coord, GLenum pname, GLint *params)
-glTexGenivOES
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params)
-glTexGenxvOES
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
-glGetTexGenfvOES
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params)
-glGetTexGenivOES
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params)
-glGetTexGenxvOES
-	len params (glUtilsParamSize(pname) * sizeof(GLfixed))
-
-#void glDeleteVertexArraysOES(GLsizei n, const GLuint *arrays)
-glDeleteVertexArraysOES
-	dir arrays in
-	len arrays (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenVertexArraysOES(GLsizei n, GLuint *arrays)
-glGenVertexArraysOES
-	dir arrays out
-	len arrays (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments)
-glDiscardFramebufferEXT
-	dir attachments in
-	len attachments (numAttachments * sizeof(const GLenum))
-
-#void glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
-glMultiDrawArraysEXT
-	flag unsupported
-	
-#void glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount)
-glMultiDrawElementsEXT
-	flag unsupported
-
-#void glMultiDrawArraysSUN(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
-glMultiDrawArraysSUN
-	flag unsupported
-	
-#void glMultiDrawElementsSUN(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount)
-glMultiDrawElementsSUN
-	flag unsupported
-
-#void glDeleteFencesNV(GLsizei n, const GLuint *fences)
-glDeleteFencesNV
-	dir fences in
-	len fences (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenFencesNV(GLsizei n, GLuint *fences)
-glGenFencesNV
-	dir fences in
-	len fences (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGetFenceivNV(GLuint fence, GLenum pname, GLint *params)
-glGetFenceivNV
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls)
-glGetDriverControlsQCOM
-	dir num out
-	len num (1 * sizeof(GLint))
-	dir driverControls out
-	len driverControls (size * sizeof(GLuint))
-
-#void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
-glGetDriverControlStringQCOM
-	dir length out
-	len length (1 * sizeof(GLsizei))
-	dir driverControlString out
-	len driverControlString (1 * sizeof(GLchar))
-
-#void glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures)
-glExtGetTexturesQCOM
-	dir textures out
-	len textures (maxTextures * sizeof(GLuint))
-	dir numTextures out
-	len numTextures (1 * sizeof(GLint))
-
-#void glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
-glExtGetBuffersQCOM
-	dir buffers out
-	len buffers (maxBuffers * sizeof(GLuint))
-	dir numBuffers out
-	len numBuffers (1 * sizeof(GLint))
-
-#void glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
-glExtGetRenderbuffersQCOM
-	dir renderbuffers out
-	len renderbuffers (maxRenderbuffers * sizeof(GLuint))
-	dir numRenderbuffers out
-	len numRenderbuffers (1 * sizeof(GLint))
-
-#void glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
-glExtGetFramebuffersQCOM
-	dir framebuffers out
-	len framebuffers (maxFramebuffers * sizeof(GLuint))
-	dir numFramebuffers out
-	len numFramebuffers (1 * sizeof(GLint))
-
-#void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
-glExtGetTexLevelParameterivQCOM
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
-glExtGetTexSubImageQCOM
-	dir texels out
-	len texels (depth * pixelDataSize(self, width, height, format, type, 0))
-
-#void glExtGetBufferPointervQCOM(GLenum target, GLvoid **params)
-glExtGetBufferPointervQCOM
-	flag unsupported
-
-#void glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders)
-glExtGetShadersQCOM
-	dir shaders out
-	len shaders (maxShaders * sizeof(GLuint))
-	dir numShaders out
-	len numShaders (1 * sizeof(GLint))
-
-#void glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms)
-glExtGetProgramsQCOM
-	dir programs out
-	len programs (maxPrograms * sizeof(GLuint))
-	dir numPrograms out
-	len numPrograms (1 * sizeof(GLint))
-
-#void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length)
-glExtGetProgramBinarySourceQCOM
-	flag unsupported
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl.in b/tools/emulator/opengl/system/GLESv1_enc/gl.in
deleted file mode 100644
index 4340608..0000000
--- a/tools/emulator/opengl/system/GLESv1_enc/gl.in
+++ /dev/null
@@ -1,299 +0,0 @@
-GL_ENTRY(void, glAlphaFunc, GLenum func, GLclampf ref)
-GL_ENTRY(void, glClearColor, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
-GL_ENTRY(void, glClearDepthf, GLclampf depth)
-GL_ENTRY(void, glClipPlanef, GLenum plane, const GLfloat *equation)
-GL_ENTRY(void, glColor4f, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
-GL_ENTRY(void, glDepthRangef, GLclampf zNear, GLclampf zFar)
-GL_ENTRY(void, glFogf, GLenum pname, GLfloat param)
-GL_ENTRY(void, glFogfv, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glFrustumf, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-GL_ENTRY(void, glGetClipPlanef, GLenum pname, GLfloat* eqn)
-GL_ENTRY(void, glGetFloatv, GLenum pname, GLfloat *params)
-GL_ENTRY(void, glGetLightfv, GLenum light, GLenum pname, GLfloat *params)
-GL_ENTRY(void, glGetMaterialfv, GLenum face, GLenum pname, GLfloat *params)
-GL_ENTRY(void, glGetTexEnvfv, GLenum env, GLenum pname, GLfloat *params)
-GL_ENTRY(void, glGetTexParameterfv, GLenum target, GLenum pname, GLfloat *params)
-GL_ENTRY(void, glLightModelf, GLenum pname, GLfloat param)
-GL_ENTRY(void, glLightModelfv, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glLightf, GLenum light, GLenum pname, GLfloat param)
-GL_ENTRY(void, glLightfv, GLenum light, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glLineWidth, GLfloat width)
-GL_ENTRY(void, glLoadMatrixf, const GLfloat *m)
-GL_ENTRY(void, glMaterialf, GLenum face, GLenum pname, GLfloat param)
-GL_ENTRY(void, glMaterialfv, GLenum face, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glMultMatrixf, const GLfloat *m)
-GL_ENTRY(void, glMultiTexCoord4f, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
-GL_ENTRY(void, glNormal3f, GLfloat nx, GLfloat ny, GLfloat nz)
-GL_ENTRY(void, glOrthof, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-GL_ENTRY(void, glPointParameterf, GLenum pname, GLfloat param)
-GL_ENTRY(void, glPointParameterfv, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glPointSize, GLfloat size)
-GL_ENTRY(void, glPolygonOffset, GLfloat factor, GLfloat units)
-GL_ENTRY(void, glRotatef, GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
-GL_ENTRY(void, glScalef, GLfloat x, GLfloat y, GLfloat z)
-GL_ENTRY(void, glTexEnvf, GLenum target, GLenum pname, GLfloat param)
-GL_ENTRY(void, glTexEnvfv, GLenum target, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glTexParameterf, GLenum target, GLenum pname, GLfloat param)
-GL_ENTRY(void, glTexParameterfv, GLenum target, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glTranslatef, GLfloat x, GLfloat y, GLfloat z)
-GL_ENTRY(void, glActiveTexture, GLenum texture)
-GL_ENTRY(void, glAlphaFuncx, GLenum func, GLclampx ref)
-GL_ENTRY(void, glBindBuffer, GLenum target, GLuint buffer)
-GL_ENTRY(void, glBindTexture, GLenum target, GLuint texture)
-GL_ENTRY(void, glBlendFunc, GLenum sfactor, GLenum dfactor)
-GL_ENTRY(void, glBufferData, GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
-GL_ENTRY(void, glBufferSubData, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data)
-GL_ENTRY(void, glClear, GLbitfield mask)
-GL_ENTRY(void, glClearColorx, GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
-GL_ENTRY(void, glClearDepthx, GLclampx depth)
-GL_ENTRY(void, glClearStencil, GLint s)
-GL_ENTRY(void, glClientActiveTexture, GLenum texture)
-GL_ENTRY(void, glColor4ub, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
-GL_ENTRY(void, glColor4x, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
-GL_ENTRY(void, glColorMask, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
-GL_ENTRY(void, glColorPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-GL_ENTRY(void, glCompressedTexImage2D, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
-GL_ENTRY(void, glCompressedTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)
-GL_ENTRY(void, glCopyTexImage2D, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
-GL_ENTRY(void, glCopyTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(void, glCullFace, GLenum mode)
-GL_ENTRY(void, glDeleteBuffers, GLsizei n, const GLuint *buffers)
-GL_ENTRY(void, glDeleteTextures, GLsizei n, const GLuint *textures)
-GL_ENTRY(void, glDepthFunc, GLenum func)
-GL_ENTRY(void, glDepthMask, GLboolean flag)
-GL_ENTRY(void, glDepthRangex, GLclampx zNear, GLclampx zFar)
-GL_ENTRY(void, glDisable, GLenum cap)
-GL_ENTRY(void, glDisableClientState, GLenum array)
-GL_ENTRY(void, glDrawArrays, GLenum mode, GLint first, GLsizei count)
-GL_ENTRY(void, glDrawElements, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
-GL_ENTRY(void, glEnable, GLenum cap)
-GL_ENTRY(void, glEnableClientState, GLenum array)
-GL_ENTRY(void, glFinish, void)
-GL_ENTRY(void, glFlush, void)
-GL_ENTRY(void, glFogx, GLenum pname, GLfixed param)
-GL_ENTRY(void, glFogxv, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glFrontFace, GLenum mode)
-GL_ENTRY(void, glFrustumx, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-GL_ENTRY(void, glGetBooleanv, GLenum pname, GLboolean *params)
-GL_ENTRY(void, glGetBufferParameteriv, GLenum target, GLenum pname, GLint *params)
-GL_ENTRY(void, glClipPlanex, GLenum pname, const GLfixed * eqn)
-GL_ENTRY(void, glGenBuffers, GLsizei n, GLuint *buffers)
-GL_ENTRY(void, glGenTextures, GLsizei n, GLuint *textures)
-GL_ENTRY(GLenum, glGetError, void)
-GL_ENTRY(void, glGetFixedv, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetIntegerv, GLenum pname, GLint *params)
-GL_ENTRY(void, glGetLightxv, GLenum light, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetMaterialxv, GLenum face, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetPointerv, GLenum pname, GLvoid **params)
-GL_ENTRY(const GLubyte *, glGetString, GLenum name)
-GL_ENTRY(void, glGetTexEnviv, GLenum env, GLenum pname, GLint *params)
-GL_ENTRY(void, glGetTexEnvxv, GLenum env, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetTexParameteriv, GLenum target, GLenum pname, GLint *params)
-GL_ENTRY(void, glGetTexParameterxv, GLenum target, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glHint, GLenum target, GLenum mode)
-GL_ENTRY(GLboolean, glIsBuffer, GLuint buffer)
-GL_ENTRY(GLboolean, glIsEnabled, GLenum cap)
-GL_ENTRY(GLboolean, glIsTexture, GLuint texture)
-GL_ENTRY(void, glLightModelx, GLenum pname, GLfixed param)
-GL_ENTRY(void, glLightModelxv, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glLightx, GLenum light, GLenum pname, GLfixed param)
-GL_ENTRY(void, glLightxv, GLenum light, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glLineWidthx, GLfixed width)
-GL_ENTRY(void, glLoadIdentity, void)
-GL_ENTRY(void, glLoadMatrixx, const GLfixed *m)
-GL_ENTRY(void, glLogicOp, GLenum opcode)
-GL_ENTRY(void, glMaterialx, GLenum face, GLenum pname, GLfixed param)
-GL_ENTRY(void, glMaterialxv, GLenum face, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glMatrixMode, GLenum mode)
-GL_ENTRY(void, glMultMatrixx, const GLfixed *m)
-GL_ENTRY(void, glMultiTexCoord4x, GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
-GL_ENTRY(void, glNormal3x, GLfixed nx, GLfixed ny, GLfixed nz)
-GL_ENTRY(void, glNormalPointer, GLenum type, GLsizei stride, const GLvoid *pointer)
-GL_ENTRY(void, glOrthox, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-GL_ENTRY(void, glPixelStorei, GLenum pname, GLint param)
-GL_ENTRY(void, glPointParameterx, GLenum pname, GLfixed param)
-GL_ENTRY(void, glPointParameterxv, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glPointSizex, GLfixed size)
-GL_ENTRY(void, glPolygonOffsetx, GLfixed factor, GLfixed units)
-GL_ENTRY(void, glPopMatrix, void)
-GL_ENTRY(void, glPushMatrix, void)
-GL_ENTRY(void, glReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-GL_ENTRY(void, glRotatex, GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
-GL_ENTRY(void, glSampleCoverage, GLclampf value, GLboolean invert)
-GL_ENTRY(void, glSampleCoveragex, GLclampx value, GLboolean invert)
-GL_ENTRY(void, glScalex, GLfixed x, GLfixed y, GLfixed z)
-GL_ENTRY(void, glScissor, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(void, glShadeModel, GLenum mode)
-GL_ENTRY(void, glStencilFunc, GLenum func, GLint ref, GLuint mask)
-GL_ENTRY(void, glStencilMask, GLuint mask)
-GL_ENTRY(void, glStencilOp, GLenum fail, GLenum zfail, GLenum zpass)
-GL_ENTRY(void, glTexCoordPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-GL_ENTRY(void, glTexEnvi, GLenum target, GLenum pname, GLint param)
-GL_ENTRY(void, glTexEnvx, GLenum target, GLenum pname, GLfixed param)
-GL_ENTRY(void, glTexEnviv, GLenum target, GLenum pname, const GLint *params)
-GL_ENTRY(void, glTexEnvxv, GLenum target, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glTexImage2D, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
-GL_ENTRY(void, glTexParameteri, GLenum target, GLenum pname, GLint param)
-GL_ENTRY(void, glTexParameterx, GLenum target, GLenum pname, GLfixed param)
-GL_ENTRY(void, glTexParameteriv, GLenum target, GLenum pname, const GLint *params)
-GL_ENTRY(void, glTexParameterxv, GLenum target, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
-GL_ENTRY(void, glTranslatex, GLfixed x, GLfixed y, GLfixed z)
-GL_ENTRY(void, glVertexPointer, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
-GL_ENTRY(void, glViewport, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(void, glPointSizePointerOES, GLenum type, GLsizei stride, const GLvoid *pointer)
-
-GL_ENTRY(void, glVertexPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glColorPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glNormalPointerOffset, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glPointSizePointerOffset, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glTexCoordPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glWeightPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glMatrixIndexPointerOffset, GLint size, GLenum type, GLsizei stride,  GLuint offset)
-
-GL_ENTRY(void, glVertexPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glColorPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glNormalPointerData, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glTexCoordPointerData, GLint unit, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glPointSizePointerData, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glWeightPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glMatrixIndexPointerData, GLint size, GLenum type, GLsizei stride,  void * data, GLuint datalen)
-
-GL_ENTRY(void, glDrawElementsOffset, GLenum mode, GLsizei count, GLenum type, GLuint offset)
-GL_ENTRY(void, glDrawElementsData, GLenum mode, GLsizei count, GLenum type, void *data, GLuint datalen)
-GL_ENTRY(void, glGetCompressedTextureFormats, int count, GLint *formats);
-
-GL_ENTRY(int, glFinishRoundTrip, void)
-
-#opengl extensions
-
-GL_ENTRY(void, glBlendEquationSeparateOES, GLenum modeRGB, GLenum modeAlpha)
-GL_ENTRY(void, glBlendFuncSeparateOES, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
-GL_ENTRY(void, glBlendEquationOES, GLenum mode)
-GL_ENTRY(void, glDrawTexsOES, GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
-GL_ENTRY(void, glDrawTexiOES, GLint x, GLint y, GLint z, GLint width, GLint height)
-GL_ENTRY(void, glDrawTexxOES, GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
-GL_ENTRY(void, glDrawTexsvOES, const GLshort *coords)
-GL_ENTRY(void, glDrawTexivOES, const GLint *coords)
-GL_ENTRY(void, glDrawTexxvOES, const GLfixed *coords)
-GL_ENTRY(void, glDrawTexfOES, GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
-GL_ENTRY(void, glDrawTexfvOES, const GLfloat *coords)
-GL_ENTRY(void, glEGLImageTargetTexture2DOES, GLenum target, GLeglImageOES image)
-GL_ENTRY(void, glEGLImageTargetRenderbufferStorageOES, GLenum target, GLeglImageOES image)
-GL_ENTRY(void, glAlphaFuncxOES, GLenum func, GLclampx ref)
-GL_ENTRY(void, glClearColorxOES, GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
-GL_ENTRY(void, glClearDepthxOES, GLclampx depth)
-GL_ENTRY(void, glClipPlanexOES, GLenum plane, const GLfixed * equation)
-GL_ENTRY(void, glClipPlanexIMG, GLenum plane, const GLfixed * equation)
-GL_ENTRY(void, glColor4xOES, GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
-GL_ENTRY(void, glDepthRangexOES, GLclampx zNear, GLclampx zFar)
-GL_ENTRY(void, glFogxOES, GLenum pname, GLfixed param)
-GL_ENTRY(void, glFogxvOES, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glFrustumxOES, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-GL_ENTRY(void, glGetClipPlanexOES, GLenum pname, GLfixed* eqn)
-GL_ENTRY(void, glGetClipPlanex, GLenum pname, GLfixed* eqn)
-GL_ENTRY(void, glGetFixedvOES, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetLightxvOES, GLenum light, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetMaterialxvOES, GLenum face, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetTexEnvxvOES, GLenum env, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glGetTexParameterxvOES, GLenum target, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glLightModelxOES, GLenum pname, GLfixed param)
-GL_ENTRY(void, glLightModelxvOES, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glLightxOES, GLenum light, GLenum pname, GLfixed param)
-GL_ENTRY(void, glLightxvOES, GLenum light, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glLineWidthxOES, GLfixed width)
-GL_ENTRY(void, glLoadMatrixxOES, const GLfixed *m)
-GL_ENTRY(void, glMaterialxOES, GLenum face, GLenum pname, GLfixed param)
-GL_ENTRY(void, glMaterialxvOES, GLenum face, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glMultMatrixxOES, const GLfixed *m)
-GL_ENTRY(void, glMultiTexCoord4xOES, GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
-GL_ENTRY(void, glNormal3xOES, GLfixed nx, GLfixed ny, GLfixed nz)
-GL_ENTRY(void, glOrthoxOES, GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
-GL_ENTRY(void, glPointParameterxOES, GLenum pname, GLfixed param)
-GL_ENTRY(void, glPointParameterxvOES, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glPointSizexOES, GLfixed size)
-GL_ENTRY(void, glPolygonOffsetxOES, GLfixed factor, GLfixed units)
-GL_ENTRY(void, glRotatexOES, GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
-GL_ENTRY(void, glSampleCoveragexOES, GLclampx value, GLboolean invert)
-GL_ENTRY(void, glScalexOES, GLfixed x, GLfixed y, GLfixed z)
-GL_ENTRY(void, glTexEnvxOES, GLenum target, GLenum pname, GLfixed param)
-GL_ENTRY(void, glTexEnvxvOES, GLenum target, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glTexParameterxOES, GLenum target, GLenum pname, GLfixed param)
-GL_ENTRY(void, glTexParameterxvOES, GLenum target, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glTranslatexOES, GLfixed x, GLfixed y, GLfixed z)
-GL_ENTRY(GLboolean, glIsRenderbufferOES, GLuint renderbuffer)
-GL_ENTRY(void, glBindRenderbufferOES, GLenum target, GLuint renderbuffer)
-GL_ENTRY(void, glDeleteRenderbuffersOES, GLsizei n, const GLuint* renderbuffers)
-GL_ENTRY(void, glGenRenderbuffersOES, GLsizei n, GLuint* renderbuffers)
-GL_ENTRY(void, glRenderbufferStorageOES, GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
-GL_ENTRY(void, glGetRenderbufferParameterivOES, GLenum target, GLenum pname, GLint* params)
-GL_ENTRY(GLboolean, glIsFramebufferOES, GLuint framebuffer)
-GL_ENTRY(void, glBindFramebufferOES, GLenum target, GLuint framebuffer)
-GL_ENTRY(void, glDeleteFramebuffersOES, GLsizei n, const GLuint* framebuffers)
-GL_ENTRY(void, glGenFramebuffersOES, GLsizei n, GLuint* framebuffers)
-GL_ENTRY(GLenum, glCheckFramebufferStatusOES, GLenum target)
-GL_ENTRY(void, glFramebufferRenderbufferOES, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
-GL_ENTRY(void, glFramebufferTexture2DOES, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
-GL_ENTRY(void, glGetFramebufferAttachmentParameterivOES, GLenum target, GLenum attachment, GLenum pname, GLint* params)
-GL_ENTRY(void, glGenerateMipmapOES, GLenum target)
-GL_ENTRY(void*, glMapBufferOES, GLenum target, GLenum access)
-GL_ENTRY(GLboolean, glUnmapBufferOES, GLenum target)
-GL_ENTRY(void, glGetBufferPointervOES, GLenum target, GLenum pname, GLvoid* *params)
-GL_ENTRY(void, glCurrentPaletteMatrixOES, GLuint matrixpaletteindex)
-GL_ENTRY(void, glLoadPaletteFromModelViewMatrixOES, void)
-GL_ENTRY(void, glMatrixIndexPointerOES, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
-GL_ENTRY(void, glWeightPointerOES, GLint size, GLenum type, GLsizei stride, const GLvoid * pointer)
-GL_ENTRY(GLbitfield, glQueryMatrixxOES, GLfixed * mantissa, GLint * exponent)
-GL_ENTRY(void, glDepthRangefOES, GLclampf zNear, GLclampf zFar)
-GL_ENTRY(void, glFrustumfOES, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-GL_ENTRY(void, glOrthofOES, GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
-GL_ENTRY(void, glClipPlanefOES, GLenum plane, const GLfloat *equation)
-GL_ENTRY(void, glClipPlanefIMG, GLenum plane, const GLfloat *equation)
-GL_ENTRY(void, glGetClipPlanefOES, GLenum pname, GLfloat * eqn)
-GL_ENTRY(void, glClearDepthfOES, GLclampf depth)
-GL_ENTRY(void, glTexGenfOES, GLenum coord, GLenum pname, GLfloat param)
-GL_ENTRY(void, glTexGenfvOES, GLenum coord, GLenum pname, const GLfloat *params)
-GL_ENTRY(void, glTexGeniOES, GLenum coord, GLenum pname, GLint param)
-GL_ENTRY(void, glTexGenivOES, GLenum coord, GLenum pname, const GLint *params)
-GL_ENTRY(void, glTexGenxOES, GLenum coord, GLenum pname, GLfixed param)
-GL_ENTRY(void, glTexGenxvOES, GLenum coord, GLenum pname, const GLfixed *params)
-GL_ENTRY(void, glGetTexGenfvOES, GLenum coord, GLenum pname, GLfloat *params)
-GL_ENTRY(void, glGetTexGenivOES, GLenum coord, GLenum pname, GLint *params)
-GL_ENTRY(void, glGetTexGenxvOES, GLenum coord, GLenum pname, GLfixed *params)
-GL_ENTRY(void, glBindVertexArrayOES, GLuint array)
-GL_ENTRY(void, glDeleteVertexArraysOES, GLsizei n, const GLuint *arrays)
-GL_ENTRY(void, glGenVertexArraysOES, GLsizei n, GLuint *arrays)
-GL_ENTRY(GLboolean, glIsVertexArrayOES, GLuint array)
-GL_ENTRY(void, glDiscardFramebufferEXT, GLenum target, GLsizei numAttachments, const GLenum *attachments)
-GL_ENTRY(void, glMultiDrawArraysEXT, GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
-GL_ENTRY(void, glMultiDrawElementsEXT, GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount)
-GL_ENTRY(void, glMultiDrawArraysSUN, GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
-GL_ENTRY(void, glMultiDrawElementsSUN, GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount)
-GL_ENTRY(void, glRenderbufferStorageMultisampleIMG, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
-GL_ENTRY(void, glFramebufferTexture2DMultisampleIMG, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
-GL_ENTRY(void, glDeleteFencesNV, GLsizei n, const GLuint *fences)
-GL_ENTRY(void, glGenFencesNV, GLsizei n, GLuint *fences)
-GL_ENTRY(GLboolean, glIsFenceNV, GLuint fence)
-GL_ENTRY(GLboolean, glTestFenceNV, GLuint fence)
-GL_ENTRY(void, glGetFenceivNV, GLuint fence, GLenum pname, GLint *params)
-GL_ENTRY(void, glFinishFenceNV, GLuint fence)
-GL_ENTRY(void, glSetFenceNV, GLuint fence, GLenum condition)
-GL_ENTRY(void, glGetDriverControlsQCOM, GLint *num, GLsizei size, GLuint *driverControls)
-GL_ENTRY(void, glGetDriverControlStringQCOM, GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
-GL_ENTRY(void, glEnableDriverControlQCOM, GLuint driverControl)
-GL_ENTRY(void, glDisableDriverControlQCOM, GLuint driverControl)
-GL_ENTRY(void, glExtGetTexturesQCOM, GLuint *textures, GLint maxTextures, GLint *numTextures)
-GL_ENTRY(void, glExtGetBuffersQCOM, GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
-GL_ENTRY(void, glExtGetRenderbuffersQCOM, GLuint * renderbuffers, GLint maxRenderbuffers, GLint * numRenderbuffers)
-GL_ENTRY(void, glExtGetFramebuffersQCOM, GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
-GL_ENTRY(void, glExtGetTexLevelParameterivQCOM, GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
-GL_ENTRY(void, glExtTexObjectStateOverrideiQCOM, GLenum target, GLenum pname, GLint param)
-GL_ENTRY(void, glExtGetTexSubImageQCOM, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
-GL_ENTRY(void, glExtGetBufferPointervQCOM, GLenum target, GLvoid* *params)
-GL_ENTRY(void, glExtGetShadersQCOM, GLuint *shaders, GLint maxShaders, GLint *numShaders)
-GL_ENTRY(void, glExtGetProgramsQCOM, GLuint *programs, GLint maxPrograms, GLint *numPrograms)
-GL_ENTRY(GLboolean, glExtIsProgramBinaryQCOM, GLuint program)
-GL_ENTRY(void, glExtGetProgramBinarySourceQCOM, GLuint program, GLenum shadertype, GLchar *source, GLint *length)
-GL_ENTRY(void, glStartTilingQCOM, GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
-GL_ENTRY(void, glEndTilingQCOM, GLbitfield preserveMask)
-
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl.types b/tools/emulator/opengl/system/GLESv1_enc/gl.types
deleted file mode 100644
index b269c01..0000000
--- a/tools/emulator/opengl/system/GLESv1_enc/gl.types
+++ /dev/null
@@ -1,33 +0,0 @@
-GLbitfield 32 0x%08x false
-GLboolean 8 %d false
-GLclampf 32 %f false
-GLclampx 32 0x%08x false
-GLeglImageOES 32 %p false
-GLenum 32 0x%08x false
-GLfixed 32 0x%08x false
-GLfloat 32 %f false
-GLint 32 %d false
-GLintptr 32 %p false
-GLshort 16 %d false
-GLsizei 32 %d false
-GLsizeiptr 32 %p false
-GLubyte 8 0x%02x false
-GLuint 32 %u false
-GLvoid 0 %x false
-GLchar 8 %d false
-GLenum* 32 0x%08x true
-GLboolean* 32 0x%08x true
-GLclampf* 32 0x%08x true
-GLclampx* 32 0x%08x true
-GLeglImageOES* 32 0x%08x true
-GLfixed* 32 0x%08x true
-GLfloat* 32 0x%08x true
-GLint* 32 0x%08x true
-GLshort* 32 0x%08x true
-GLsizei* 32 0x%08x true
-GLubyte* 32 0x%08x true
-GLuint* 32 0x%08x true
-GLvoid* 32 0x%08x true
-GLchar* 32 0x%08x true
-GLvoid** 32 0x%08x true
-void* 32 0x%08x true
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_client_context.cpp b/tools/emulator/opengl/system/GLESv1_enc/gl_client_context.cpp
new file mode 100644
index 0000000..a5fd04b
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_client_context.cpp
@@ -0,0 +1,308 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+
+#include <string.h>
+#include "gl_client_context.h"
+
+
+#include <stdio.h>
+
+int gl_client_context_t::initDispatchByName(void *(*getProc)(const char *, void *userData), void *userData)
+{
+	void *ptr;
+
+	ptr = getProc("glAlphaFunc", userData); set_glAlphaFunc((glAlphaFunc_client_proc_t)ptr);
+	ptr = getProc("glClearColor", userData); set_glClearColor((glClearColor_client_proc_t)ptr);
+	ptr = getProc("glClearDepthf", userData); set_glClearDepthf((glClearDepthf_client_proc_t)ptr);
+	ptr = getProc("glClipPlanef", userData); set_glClipPlanef((glClipPlanef_client_proc_t)ptr);
+	ptr = getProc("glColor4f", userData); set_glColor4f((glColor4f_client_proc_t)ptr);
+	ptr = getProc("glDepthRangef", userData); set_glDepthRangef((glDepthRangef_client_proc_t)ptr);
+	ptr = getProc("glFogf", userData); set_glFogf((glFogf_client_proc_t)ptr);
+	ptr = getProc("glFogfv", userData); set_glFogfv((glFogfv_client_proc_t)ptr);
+	ptr = getProc("glFrustumf", userData); set_glFrustumf((glFrustumf_client_proc_t)ptr);
+	ptr = getProc("glGetClipPlanef", userData); set_glGetClipPlanef((glGetClipPlanef_client_proc_t)ptr);
+	ptr = getProc("glGetFloatv", userData); set_glGetFloatv((glGetFloatv_client_proc_t)ptr);
+	ptr = getProc("glGetLightfv", userData); set_glGetLightfv((glGetLightfv_client_proc_t)ptr);
+	ptr = getProc("glGetMaterialfv", userData); set_glGetMaterialfv((glGetMaterialfv_client_proc_t)ptr);
+	ptr = getProc("glGetTexEnvfv", userData); set_glGetTexEnvfv((glGetTexEnvfv_client_proc_t)ptr);
+	ptr = getProc("glGetTexParameterfv", userData); set_glGetTexParameterfv((glGetTexParameterfv_client_proc_t)ptr);
+	ptr = getProc("glLightModelf", userData); set_glLightModelf((glLightModelf_client_proc_t)ptr);
+	ptr = getProc("glLightModelfv", userData); set_glLightModelfv((glLightModelfv_client_proc_t)ptr);
+	ptr = getProc("glLightf", userData); set_glLightf((glLightf_client_proc_t)ptr);
+	ptr = getProc("glLightfv", userData); set_glLightfv((glLightfv_client_proc_t)ptr);
+	ptr = getProc("glLineWidth", userData); set_glLineWidth((glLineWidth_client_proc_t)ptr);
+	ptr = getProc("glLoadMatrixf", userData); set_glLoadMatrixf((glLoadMatrixf_client_proc_t)ptr);
+	ptr = getProc("glMaterialf", userData); set_glMaterialf((glMaterialf_client_proc_t)ptr);
+	ptr = getProc("glMaterialfv", userData); set_glMaterialfv((glMaterialfv_client_proc_t)ptr);
+	ptr = getProc("glMultMatrixf", userData); set_glMultMatrixf((glMultMatrixf_client_proc_t)ptr);
+	ptr = getProc("glMultiTexCoord4f", userData); set_glMultiTexCoord4f((glMultiTexCoord4f_client_proc_t)ptr);
+	ptr = getProc("glNormal3f", userData); set_glNormal3f((glNormal3f_client_proc_t)ptr);
+	ptr = getProc("glOrthof", userData); set_glOrthof((glOrthof_client_proc_t)ptr);
+	ptr = getProc("glPointParameterf", userData); set_glPointParameterf((glPointParameterf_client_proc_t)ptr);
+	ptr = getProc("glPointParameterfv", userData); set_glPointParameterfv((glPointParameterfv_client_proc_t)ptr);
+	ptr = getProc("glPointSize", userData); set_glPointSize((glPointSize_client_proc_t)ptr);
+	ptr = getProc("glPolygonOffset", userData); set_glPolygonOffset((glPolygonOffset_client_proc_t)ptr);
+	ptr = getProc("glRotatef", userData); set_glRotatef((glRotatef_client_proc_t)ptr);
+	ptr = getProc("glScalef", userData); set_glScalef((glScalef_client_proc_t)ptr);
+	ptr = getProc("glTexEnvf", userData); set_glTexEnvf((glTexEnvf_client_proc_t)ptr);
+	ptr = getProc("glTexEnvfv", userData); set_glTexEnvfv((glTexEnvfv_client_proc_t)ptr);
+	ptr = getProc("glTexParameterf", userData); set_glTexParameterf((glTexParameterf_client_proc_t)ptr);
+	ptr = getProc("glTexParameterfv", userData); set_glTexParameterfv((glTexParameterfv_client_proc_t)ptr);
+	ptr = getProc("glTranslatef", userData); set_glTranslatef((glTranslatef_client_proc_t)ptr);
+	ptr = getProc("glActiveTexture", userData); set_glActiveTexture((glActiveTexture_client_proc_t)ptr);
+	ptr = getProc("glAlphaFuncx", userData); set_glAlphaFuncx((glAlphaFuncx_client_proc_t)ptr);
+	ptr = getProc("glBindBuffer", userData); set_glBindBuffer((glBindBuffer_client_proc_t)ptr);
+	ptr = getProc("glBindTexture", userData); set_glBindTexture((glBindTexture_client_proc_t)ptr);
+	ptr = getProc("glBlendFunc", userData); set_glBlendFunc((glBlendFunc_client_proc_t)ptr);
+	ptr = getProc("glBufferData", userData); set_glBufferData((glBufferData_client_proc_t)ptr);
+	ptr = getProc("glBufferSubData", userData); set_glBufferSubData((glBufferSubData_client_proc_t)ptr);
+	ptr = getProc("glClear", userData); set_glClear((glClear_client_proc_t)ptr);
+	ptr = getProc("glClearColorx", userData); set_glClearColorx((glClearColorx_client_proc_t)ptr);
+	ptr = getProc("glClearDepthx", userData); set_glClearDepthx((glClearDepthx_client_proc_t)ptr);
+	ptr = getProc("glClearStencil", userData); set_glClearStencil((glClearStencil_client_proc_t)ptr);
+	ptr = getProc("glClientActiveTexture", userData); set_glClientActiveTexture((glClientActiveTexture_client_proc_t)ptr);
+	ptr = getProc("glColor4ub", userData); set_glColor4ub((glColor4ub_client_proc_t)ptr);
+	ptr = getProc("glColor4x", userData); set_glColor4x((glColor4x_client_proc_t)ptr);
+	ptr = getProc("glColorMask", userData); set_glColorMask((glColorMask_client_proc_t)ptr);
+	ptr = getProc("glColorPointer", userData); set_glColorPointer((glColorPointer_client_proc_t)ptr);
+	ptr = getProc("glCompressedTexImage2D", userData); set_glCompressedTexImage2D((glCompressedTexImage2D_client_proc_t)ptr);
+	ptr = getProc("glCompressedTexSubImage2D", userData); set_glCompressedTexSubImage2D((glCompressedTexSubImage2D_client_proc_t)ptr);
+	ptr = getProc("glCopyTexImage2D", userData); set_glCopyTexImage2D((glCopyTexImage2D_client_proc_t)ptr);
+	ptr = getProc("glCopyTexSubImage2D", userData); set_glCopyTexSubImage2D((glCopyTexSubImage2D_client_proc_t)ptr);
+	ptr = getProc("glCullFace", userData); set_glCullFace((glCullFace_client_proc_t)ptr);
+	ptr = getProc("glDeleteBuffers", userData); set_glDeleteBuffers((glDeleteBuffers_client_proc_t)ptr);
+	ptr = getProc("glDeleteTextures", userData); set_glDeleteTextures((glDeleteTextures_client_proc_t)ptr);
+	ptr = getProc("glDepthFunc", userData); set_glDepthFunc((glDepthFunc_client_proc_t)ptr);
+	ptr = getProc("glDepthMask", userData); set_glDepthMask((glDepthMask_client_proc_t)ptr);
+	ptr = getProc("glDepthRangex", userData); set_glDepthRangex((glDepthRangex_client_proc_t)ptr);
+	ptr = getProc("glDisable", userData); set_glDisable((glDisable_client_proc_t)ptr);
+	ptr = getProc("glDisableClientState", userData); set_glDisableClientState((glDisableClientState_client_proc_t)ptr);
+	ptr = getProc("glDrawArrays", userData); set_glDrawArrays((glDrawArrays_client_proc_t)ptr);
+	ptr = getProc("glDrawElements", userData); set_glDrawElements((glDrawElements_client_proc_t)ptr);
+	ptr = getProc("glEnable", userData); set_glEnable((glEnable_client_proc_t)ptr);
+	ptr = getProc("glEnableClientState", userData); set_glEnableClientState((glEnableClientState_client_proc_t)ptr);
+	ptr = getProc("glFinish", userData); set_glFinish((glFinish_client_proc_t)ptr);
+	ptr = getProc("glFlush", userData); set_glFlush((glFlush_client_proc_t)ptr);
+	ptr = getProc("glFogx", userData); set_glFogx((glFogx_client_proc_t)ptr);
+	ptr = getProc("glFogxv", userData); set_glFogxv((glFogxv_client_proc_t)ptr);
+	ptr = getProc("glFrontFace", userData); set_glFrontFace((glFrontFace_client_proc_t)ptr);
+	ptr = getProc("glFrustumx", userData); set_glFrustumx((glFrustumx_client_proc_t)ptr);
+	ptr = getProc("glGetBooleanv", userData); set_glGetBooleanv((glGetBooleanv_client_proc_t)ptr);
+	ptr = getProc("glGetBufferParameteriv", userData); set_glGetBufferParameteriv((glGetBufferParameteriv_client_proc_t)ptr);
+	ptr = getProc("glClipPlanex", userData); set_glClipPlanex((glClipPlanex_client_proc_t)ptr);
+	ptr = getProc("glGenBuffers", userData); set_glGenBuffers((glGenBuffers_client_proc_t)ptr);
+	ptr = getProc("glGenTextures", userData); set_glGenTextures((glGenTextures_client_proc_t)ptr);
+	ptr = getProc("glGetError", userData); set_glGetError((glGetError_client_proc_t)ptr);
+	ptr = getProc("glGetFixedv", userData); set_glGetFixedv((glGetFixedv_client_proc_t)ptr);
+	ptr = getProc("glGetIntegerv", userData); set_glGetIntegerv((glGetIntegerv_client_proc_t)ptr);
+	ptr = getProc("glGetLightxv", userData); set_glGetLightxv((glGetLightxv_client_proc_t)ptr);
+	ptr = getProc("glGetMaterialxv", userData); set_glGetMaterialxv((glGetMaterialxv_client_proc_t)ptr);
+	ptr = getProc("glGetPointerv", userData); set_glGetPointerv((glGetPointerv_client_proc_t)ptr);
+	ptr = getProc("glGetString", userData); set_glGetString((glGetString_client_proc_t)ptr);
+	ptr = getProc("glGetTexEnviv", userData); set_glGetTexEnviv((glGetTexEnviv_client_proc_t)ptr);
+	ptr = getProc("glGetTexEnvxv", userData); set_glGetTexEnvxv((glGetTexEnvxv_client_proc_t)ptr);
+	ptr = getProc("glGetTexParameteriv", userData); set_glGetTexParameteriv((glGetTexParameteriv_client_proc_t)ptr);
+	ptr = getProc("glGetTexParameterxv", userData); set_glGetTexParameterxv((glGetTexParameterxv_client_proc_t)ptr);
+	ptr = getProc("glHint", userData); set_glHint((glHint_client_proc_t)ptr);
+	ptr = getProc("glIsBuffer", userData); set_glIsBuffer((glIsBuffer_client_proc_t)ptr);
+	ptr = getProc("glIsEnabled", userData); set_glIsEnabled((glIsEnabled_client_proc_t)ptr);
+	ptr = getProc("glIsTexture", userData); set_glIsTexture((glIsTexture_client_proc_t)ptr);
+	ptr = getProc("glLightModelx", userData); set_glLightModelx((glLightModelx_client_proc_t)ptr);
+	ptr = getProc("glLightModelxv", userData); set_glLightModelxv((glLightModelxv_client_proc_t)ptr);
+	ptr = getProc("glLightx", userData); set_glLightx((glLightx_client_proc_t)ptr);
+	ptr = getProc("glLightxv", userData); set_glLightxv((glLightxv_client_proc_t)ptr);
+	ptr = getProc("glLineWidthx", userData); set_glLineWidthx((glLineWidthx_client_proc_t)ptr);
+	ptr = getProc("glLoadIdentity", userData); set_glLoadIdentity((glLoadIdentity_client_proc_t)ptr);
+	ptr = getProc("glLoadMatrixx", userData); set_glLoadMatrixx((glLoadMatrixx_client_proc_t)ptr);
+	ptr = getProc("glLogicOp", userData); set_glLogicOp((glLogicOp_client_proc_t)ptr);
+	ptr = getProc("glMaterialx", userData); set_glMaterialx((glMaterialx_client_proc_t)ptr);
+	ptr = getProc("glMaterialxv", userData); set_glMaterialxv((glMaterialxv_client_proc_t)ptr);
+	ptr = getProc("glMatrixMode", userData); set_glMatrixMode((glMatrixMode_client_proc_t)ptr);
+	ptr = getProc("glMultMatrixx", userData); set_glMultMatrixx((glMultMatrixx_client_proc_t)ptr);
+	ptr = getProc("glMultiTexCoord4x", userData); set_glMultiTexCoord4x((glMultiTexCoord4x_client_proc_t)ptr);
+	ptr = getProc("glNormal3x", userData); set_glNormal3x((glNormal3x_client_proc_t)ptr);
+	ptr = getProc("glNormalPointer", userData); set_glNormalPointer((glNormalPointer_client_proc_t)ptr);
+	ptr = getProc("glOrthox", userData); set_glOrthox((glOrthox_client_proc_t)ptr);
+	ptr = getProc("glPixelStorei", userData); set_glPixelStorei((glPixelStorei_client_proc_t)ptr);
+	ptr = getProc("glPointParameterx", userData); set_glPointParameterx((glPointParameterx_client_proc_t)ptr);
+	ptr = getProc("glPointParameterxv", userData); set_glPointParameterxv((glPointParameterxv_client_proc_t)ptr);
+	ptr = getProc("glPointSizex", userData); set_glPointSizex((glPointSizex_client_proc_t)ptr);
+	ptr = getProc("glPolygonOffsetx", userData); set_glPolygonOffsetx((glPolygonOffsetx_client_proc_t)ptr);
+	ptr = getProc("glPopMatrix", userData); set_glPopMatrix((glPopMatrix_client_proc_t)ptr);
+	ptr = getProc("glPushMatrix", userData); set_glPushMatrix((glPushMatrix_client_proc_t)ptr);
+	ptr = getProc("glReadPixels", userData); set_glReadPixels((glReadPixels_client_proc_t)ptr);
+	ptr = getProc("glRotatex", userData); set_glRotatex((glRotatex_client_proc_t)ptr);
+	ptr = getProc("glSampleCoverage", userData); set_glSampleCoverage((glSampleCoverage_client_proc_t)ptr);
+	ptr = getProc("glSampleCoveragex", userData); set_glSampleCoveragex((glSampleCoveragex_client_proc_t)ptr);
+	ptr = getProc("glScalex", userData); set_glScalex((glScalex_client_proc_t)ptr);
+	ptr = getProc("glScissor", userData); set_glScissor((glScissor_client_proc_t)ptr);
+	ptr = getProc("glShadeModel", userData); set_glShadeModel((glShadeModel_client_proc_t)ptr);
+	ptr = getProc("glStencilFunc", userData); set_glStencilFunc((glStencilFunc_client_proc_t)ptr);
+	ptr = getProc("glStencilMask", userData); set_glStencilMask((glStencilMask_client_proc_t)ptr);
+	ptr = getProc("glStencilOp", userData); set_glStencilOp((glStencilOp_client_proc_t)ptr);
+	ptr = getProc("glTexCoordPointer", userData); set_glTexCoordPointer((glTexCoordPointer_client_proc_t)ptr);
+	ptr = getProc("glTexEnvi", userData); set_glTexEnvi((glTexEnvi_client_proc_t)ptr);
+	ptr = getProc("glTexEnvx", userData); set_glTexEnvx((glTexEnvx_client_proc_t)ptr);
+	ptr = getProc("glTexEnviv", userData); set_glTexEnviv((glTexEnviv_client_proc_t)ptr);
+	ptr = getProc("glTexEnvxv", userData); set_glTexEnvxv((glTexEnvxv_client_proc_t)ptr);
+	ptr = getProc("glTexImage2D", userData); set_glTexImage2D((glTexImage2D_client_proc_t)ptr);
+	ptr = getProc("glTexParameteri", userData); set_glTexParameteri((glTexParameteri_client_proc_t)ptr);
+	ptr = getProc("glTexParameterx", userData); set_glTexParameterx((glTexParameterx_client_proc_t)ptr);
+	ptr = getProc("glTexParameteriv", userData); set_glTexParameteriv((glTexParameteriv_client_proc_t)ptr);
+	ptr = getProc("glTexParameterxv", userData); set_glTexParameterxv((glTexParameterxv_client_proc_t)ptr);
+	ptr = getProc("glTexSubImage2D", userData); set_glTexSubImage2D((glTexSubImage2D_client_proc_t)ptr);
+	ptr = getProc("glTranslatex", userData); set_glTranslatex((glTranslatex_client_proc_t)ptr);
+	ptr = getProc("glVertexPointer", userData); set_glVertexPointer((glVertexPointer_client_proc_t)ptr);
+	ptr = getProc("glViewport", userData); set_glViewport((glViewport_client_proc_t)ptr);
+	ptr = getProc("glPointSizePointerOES", userData); set_glPointSizePointerOES((glPointSizePointerOES_client_proc_t)ptr);
+	ptr = getProc("glVertexPointerOffset", userData); set_glVertexPointerOffset((glVertexPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glColorPointerOffset", userData); set_glColorPointerOffset((glColorPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glNormalPointerOffset", userData); set_glNormalPointerOffset((glNormalPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glPointSizePointerOffset", userData); set_glPointSizePointerOffset((glPointSizePointerOffset_client_proc_t)ptr);
+	ptr = getProc("glTexCoordPointerOffset", userData); set_glTexCoordPointerOffset((glTexCoordPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glWeightPointerOffset", userData); set_glWeightPointerOffset((glWeightPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glMatrixIndexPointerOffset", userData); set_glMatrixIndexPointerOffset((glMatrixIndexPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glVertexPointerData", userData); set_glVertexPointerData((glVertexPointerData_client_proc_t)ptr);
+	ptr = getProc("glColorPointerData", userData); set_glColorPointerData((glColorPointerData_client_proc_t)ptr);
+	ptr = getProc("glNormalPointerData", userData); set_glNormalPointerData((glNormalPointerData_client_proc_t)ptr);
+	ptr = getProc("glTexCoordPointerData", userData); set_glTexCoordPointerData((glTexCoordPointerData_client_proc_t)ptr);
+	ptr = getProc("glPointSizePointerData", userData); set_glPointSizePointerData((glPointSizePointerData_client_proc_t)ptr);
+	ptr = getProc("glWeightPointerData", userData); set_glWeightPointerData((glWeightPointerData_client_proc_t)ptr);
+	ptr = getProc("glMatrixIndexPointerData", userData); set_glMatrixIndexPointerData((glMatrixIndexPointerData_client_proc_t)ptr);
+	ptr = getProc("glDrawElementsOffset", userData); set_glDrawElementsOffset((glDrawElementsOffset_client_proc_t)ptr);
+	ptr = getProc("glDrawElementsData", userData); set_glDrawElementsData((glDrawElementsData_client_proc_t)ptr);
+	ptr = getProc("glGetCompressedTextureFormats", userData); set_glGetCompressedTextureFormats((glGetCompressedTextureFormats_client_proc_t)ptr);
+	ptr = getProc("glFinishRoundTrip", userData); set_glFinishRoundTrip((glFinishRoundTrip_client_proc_t)ptr);
+	ptr = getProc("glBlendEquationSeparateOES", userData); set_glBlendEquationSeparateOES((glBlendEquationSeparateOES_client_proc_t)ptr);
+	ptr = getProc("glBlendFuncSeparateOES", userData); set_glBlendFuncSeparateOES((glBlendFuncSeparateOES_client_proc_t)ptr);
+	ptr = getProc("glBlendEquationOES", userData); set_glBlendEquationOES((glBlendEquationOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexsOES", userData); set_glDrawTexsOES((glDrawTexsOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexiOES", userData); set_glDrawTexiOES((glDrawTexiOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexxOES", userData); set_glDrawTexxOES((glDrawTexxOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexsvOES", userData); set_glDrawTexsvOES((glDrawTexsvOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexivOES", userData); set_glDrawTexivOES((glDrawTexivOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexxvOES", userData); set_glDrawTexxvOES((glDrawTexxvOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexfOES", userData); set_glDrawTexfOES((glDrawTexfOES_client_proc_t)ptr);
+	ptr = getProc("glDrawTexfvOES", userData); set_glDrawTexfvOES((glDrawTexfvOES_client_proc_t)ptr);
+	ptr = getProc("glEGLImageTargetTexture2DOES", userData); set_glEGLImageTargetTexture2DOES((glEGLImageTargetTexture2DOES_client_proc_t)ptr);
+	ptr = getProc("glEGLImageTargetRenderbufferStorageOES", userData); set_glEGLImageTargetRenderbufferStorageOES((glEGLImageTargetRenderbufferStorageOES_client_proc_t)ptr);
+	ptr = getProc("glAlphaFuncxOES", userData); set_glAlphaFuncxOES((glAlphaFuncxOES_client_proc_t)ptr);
+	ptr = getProc("glClearColorxOES", userData); set_glClearColorxOES((glClearColorxOES_client_proc_t)ptr);
+	ptr = getProc("glClearDepthxOES", userData); set_glClearDepthxOES((glClearDepthxOES_client_proc_t)ptr);
+	ptr = getProc("glClipPlanexOES", userData); set_glClipPlanexOES((glClipPlanexOES_client_proc_t)ptr);
+	ptr = getProc("glClipPlanexIMG", userData); set_glClipPlanexIMG((glClipPlanexIMG_client_proc_t)ptr);
+	ptr = getProc("glColor4xOES", userData); set_glColor4xOES((glColor4xOES_client_proc_t)ptr);
+	ptr = getProc("glDepthRangexOES", userData); set_glDepthRangexOES((glDepthRangexOES_client_proc_t)ptr);
+	ptr = getProc("glFogxOES", userData); set_glFogxOES((glFogxOES_client_proc_t)ptr);
+	ptr = getProc("glFogxvOES", userData); set_glFogxvOES((glFogxvOES_client_proc_t)ptr);
+	ptr = getProc("glFrustumxOES", userData); set_glFrustumxOES((glFrustumxOES_client_proc_t)ptr);
+	ptr = getProc("glGetClipPlanexOES", userData); set_glGetClipPlanexOES((glGetClipPlanexOES_client_proc_t)ptr);
+	ptr = getProc("glGetClipPlanex", userData); set_glGetClipPlanex((glGetClipPlanex_client_proc_t)ptr);
+	ptr = getProc("glGetFixedvOES", userData); set_glGetFixedvOES((glGetFixedvOES_client_proc_t)ptr);
+	ptr = getProc("glGetLightxvOES", userData); set_glGetLightxvOES((glGetLightxvOES_client_proc_t)ptr);
+	ptr = getProc("glGetMaterialxvOES", userData); set_glGetMaterialxvOES((glGetMaterialxvOES_client_proc_t)ptr);
+	ptr = getProc("glGetTexEnvxvOES", userData); set_glGetTexEnvxvOES((glGetTexEnvxvOES_client_proc_t)ptr);
+	ptr = getProc("glGetTexParameterxvOES", userData); set_glGetTexParameterxvOES((glGetTexParameterxvOES_client_proc_t)ptr);
+	ptr = getProc("glLightModelxOES", userData); set_glLightModelxOES((glLightModelxOES_client_proc_t)ptr);
+	ptr = getProc("glLightModelxvOES", userData); set_glLightModelxvOES((glLightModelxvOES_client_proc_t)ptr);
+	ptr = getProc("glLightxOES", userData); set_glLightxOES((glLightxOES_client_proc_t)ptr);
+	ptr = getProc("glLightxvOES", userData); set_glLightxvOES((glLightxvOES_client_proc_t)ptr);
+	ptr = getProc("glLineWidthxOES", userData); set_glLineWidthxOES((glLineWidthxOES_client_proc_t)ptr);
+	ptr = getProc("glLoadMatrixxOES", userData); set_glLoadMatrixxOES((glLoadMatrixxOES_client_proc_t)ptr);
+	ptr = getProc("glMaterialxOES", userData); set_glMaterialxOES((glMaterialxOES_client_proc_t)ptr);
+	ptr = getProc("glMaterialxvOES", userData); set_glMaterialxvOES((glMaterialxvOES_client_proc_t)ptr);
+	ptr = getProc("glMultMatrixxOES", userData); set_glMultMatrixxOES((glMultMatrixxOES_client_proc_t)ptr);
+	ptr = getProc("glMultiTexCoord4xOES", userData); set_glMultiTexCoord4xOES((glMultiTexCoord4xOES_client_proc_t)ptr);
+	ptr = getProc("glNormal3xOES", userData); set_glNormal3xOES((glNormal3xOES_client_proc_t)ptr);
+	ptr = getProc("glOrthoxOES", userData); set_glOrthoxOES((glOrthoxOES_client_proc_t)ptr);
+	ptr = getProc("glPointParameterxOES", userData); set_glPointParameterxOES((glPointParameterxOES_client_proc_t)ptr);
+	ptr = getProc("glPointParameterxvOES", userData); set_glPointParameterxvOES((glPointParameterxvOES_client_proc_t)ptr);
+	ptr = getProc("glPointSizexOES", userData); set_glPointSizexOES((glPointSizexOES_client_proc_t)ptr);
+	ptr = getProc("glPolygonOffsetxOES", userData); set_glPolygonOffsetxOES((glPolygonOffsetxOES_client_proc_t)ptr);
+	ptr = getProc("glRotatexOES", userData); set_glRotatexOES((glRotatexOES_client_proc_t)ptr);
+	ptr = getProc("glSampleCoveragexOES", userData); set_glSampleCoveragexOES((glSampleCoveragexOES_client_proc_t)ptr);
+	ptr = getProc("glScalexOES", userData); set_glScalexOES((glScalexOES_client_proc_t)ptr);
+	ptr = getProc("glTexEnvxOES", userData); set_glTexEnvxOES((glTexEnvxOES_client_proc_t)ptr);
+	ptr = getProc("glTexEnvxvOES", userData); set_glTexEnvxvOES((glTexEnvxvOES_client_proc_t)ptr);
+	ptr = getProc("glTexParameterxOES", userData); set_glTexParameterxOES((glTexParameterxOES_client_proc_t)ptr);
+	ptr = getProc("glTexParameterxvOES", userData); set_glTexParameterxvOES((glTexParameterxvOES_client_proc_t)ptr);
+	ptr = getProc("glTranslatexOES", userData); set_glTranslatexOES((glTranslatexOES_client_proc_t)ptr);
+	ptr = getProc("glIsRenderbufferOES", userData); set_glIsRenderbufferOES((glIsRenderbufferOES_client_proc_t)ptr);
+	ptr = getProc("glBindRenderbufferOES", userData); set_glBindRenderbufferOES((glBindRenderbufferOES_client_proc_t)ptr);
+	ptr = getProc("glDeleteRenderbuffersOES", userData); set_glDeleteRenderbuffersOES((glDeleteRenderbuffersOES_client_proc_t)ptr);
+	ptr = getProc("glGenRenderbuffersOES", userData); set_glGenRenderbuffersOES((glGenRenderbuffersOES_client_proc_t)ptr);
+	ptr = getProc("glRenderbufferStorageOES", userData); set_glRenderbufferStorageOES((glRenderbufferStorageOES_client_proc_t)ptr);
+	ptr = getProc("glGetRenderbufferParameterivOES", userData); set_glGetRenderbufferParameterivOES((glGetRenderbufferParameterivOES_client_proc_t)ptr);
+	ptr = getProc("glIsFramebufferOES", userData); set_glIsFramebufferOES((glIsFramebufferOES_client_proc_t)ptr);
+	ptr = getProc("glBindFramebufferOES", userData); set_glBindFramebufferOES((glBindFramebufferOES_client_proc_t)ptr);
+	ptr = getProc("glDeleteFramebuffersOES", userData); set_glDeleteFramebuffersOES((glDeleteFramebuffersOES_client_proc_t)ptr);
+	ptr = getProc("glGenFramebuffersOES", userData); set_glGenFramebuffersOES((glGenFramebuffersOES_client_proc_t)ptr);
+	ptr = getProc("glCheckFramebufferStatusOES", userData); set_glCheckFramebufferStatusOES((glCheckFramebufferStatusOES_client_proc_t)ptr);
+	ptr = getProc("glFramebufferRenderbufferOES", userData); set_glFramebufferRenderbufferOES((glFramebufferRenderbufferOES_client_proc_t)ptr);
+	ptr = getProc("glFramebufferTexture2DOES", userData); set_glFramebufferTexture2DOES((glFramebufferTexture2DOES_client_proc_t)ptr);
+	ptr = getProc("glGetFramebufferAttachmentParameterivOES", userData); set_glGetFramebufferAttachmentParameterivOES((glGetFramebufferAttachmentParameterivOES_client_proc_t)ptr);
+	ptr = getProc("glGenerateMipmapOES", userData); set_glGenerateMipmapOES((glGenerateMipmapOES_client_proc_t)ptr);
+	ptr = getProc("glMapBufferOES", userData); set_glMapBufferOES((glMapBufferOES_client_proc_t)ptr);
+	ptr = getProc("glUnmapBufferOES", userData); set_glUnmapBufferOES((glUnmapBufferOES_client_proc_t)ptr);
+	ptr = getProc("glGetBufferPointervOES", userData); set_glGetBufferPointervOES((glGetBufferPointervOES_client_proc_t)ptr);
+	ptr = getProc("glCurrentPaletteMatrixOES", userData); set_glCurrentPaletteMatrixOES((glCurrentPaletteMatrixOES_client_proc_t)ptr);
+	ptr = getProc("glLoadPaletteFromModelViewMatrixOES", userData); set_glLoadPaletteFromModelViewMatrixOES((glLoadPaletteFromModelViewMatrixOES_client_proc_t)ptr);
+	ptr = getProc("glMatrixIndexPointerOES", userData); set_glMatrixIndexPointerOES((glMatrixIndexPointerOES_client_proc_t)ptr);
+	ptr = getProc("glWeightPointerOES", userData); set_glWeightPointerOES((glWeightPointerOES_client_proc_t)ptr);
+	ptr = getProc("glQueryMatrixxOES", userData); set_glQueryMatrixxOES((glQueryMatrixxOES_client_proc_t)ptr);
+	ptr = getProc("glDepthRangefOES", userData); set_glDepthRangefOES((glDepthRangefOES_client_proc_t)ptr);
+	ptr = getProc("glFrustumfOES", userData); set_glFrustumfOES((glFrustumfOES_client_proc_t)ptr);
+	ptr = getProc("glOrthofOES", userData); set_glOrthofOES((glOrthofOES_client_proc_t)ptr);
+	ptr = getProc("glClipPlanefOES", userData); set_glClipPlanefOES((glClipPlanefOES_client_proc_t)ptr);
+	ptr = getProc("glClipPlanefIMG", userData); set_glClipPlanefIMG((glClipPlanefIMG_client_proc_t)ptr);
+	ptr = getProc("glGetClipPlanefOES", userData); set_glGetClipPlanefOES((glGetClipPlanefOES_client_proc_t)ptr);
+	ptr = getProc("glClearDepthfOES", userData); set_glClearDepthfOES((glClearDepthfOES_client_proc_t)ptr);
+	ptr = getProc("glTexGenfOES", userData); set_glTexGenfOES((glTexGenfOES_client_proc_t)ptr);
+	ptr = getProc("glTexGenfvOES", userData); set_glTexGenfvOES((glTexGenfvOES_client_proc_t)ptr);
+	ptr = getProc("glTexGeniOES", userData); set_glTexGeniOES((glTexGeniOES_client_proc_t)ptr);
+	ptr = getProc("glTexGenivOES", userData); set_glTexGenivOES((glTexGenivOES_client_proc_t)ptr);
+	ptr = getProc("glTexGenxOES", userData); set_glTexGenxOES((glTexGenxOES_client_proc_t)ptr);
+	ptr = getProc("glTexGenxvOES", userData); set_glTexGenxvOES((glTexGenxvOES_client_proc_t)ptr);
+	ptr = getProc("glGetTexGenfvOES", userData); set_glGetTexGenfvOES((glGetTexGenfvOES_client_proc_t)ptr);
+	ptr = getProc("glGetTexGenivOES", userData); set_glGetTexGenivOES((glGetTexGenivOES_client_proc_t)ptr);
+	ptr = getProc("glGetTexGenxvOES", userData); set_glGetTexGenxvOES((glGetTexGenxvOES_client_proc_t)ptr);
+	ptr = getProc("glBindVertexArrayOES", userData); set_glBindVertexArrayOES((glBindVertexArrayOES_client_proc_t)ptr);
+	ptr = getProc("glDeleteVertexArraysOES", userData); set_glDeleteVertexArraysOES((glDeleteVertexArraysOES_client_proc_t)ptr);
+	ptr = getProc("glGenVertexArraysOES", userData); set_glGenVertexArraysOES((glGenVertexArraysOES_client_proc_t)ptr);
+	ptr = getProc("glIsVertexArrayOES", userData); set_glIsVertexArrayOES((glIsVertexArrayOES_client_proc_t)ptr);
+	ptr = getProc("glDiscardFramebufferEXT", userData); set_glDiscardFramebufferEXT((glDiscardFramebufferEXT_client_proc_t)ptr);
+	ptr = getProc("glMultiDrawArraysEXT", userData); set_glMultiDrawArraysEXT((glMultiDrawArraysEXT_client_proc_t)ptr);
+	ptr = getProc("glMultiDrawElementsEXT", userData); set_glMultiDrawElementsEXT((glMultiDrawElementsEXT_client_proc_t)ptr);
+	ptr = getProc("glMultiDrawArraysSUN", userData); set_glMultiDrawArraysSUN((glMultiDrawArraysSUN_client_proc_t)ptr);
+	ptr = getProc("glMultiDrawElementsSUN", userData); set_glMultiDrawElementsSUN((glMultiDrawElementsSUN_client_proc_t)ptr);
+	ptr = getProc("glRenderbufferStorageMultisampleIMG", userData); set_glRenderbufferStorageMultisampleIMG((glRenderbufferStorageMultisampleIMG_client_proc_t)ptr);
+	ptr = getProc("glFramebufferTexture2DMultisampleIMG", userData); set_glFramebufferTexture2DMultisampleIMG((glFramebufferTexture2DMultisampleIMG_client_proc_t)ptr);
+	ptr = getProc("glDeleteFencesNV", userData); set_glDeleteFencesNV((glDeleteFencesNV_client_proc_t)ptr);
+	ptr = getProc("glGenFencesNV", userData); set_glGenFencesNV((glGenFencesNV_client_proc_t)ptr);
+	ptr = getProc("glIsFenceNV", userData); set_glIsFenceNV((glIsFenceNV_client_proc_t)ptr);
+	ptr = getProc("glTestFenceNV", userData); set_glTestFenceNV((glTestFenceNV_client_proc_t)ptr);
+	ptr = getProc("glGetFenceivNV", userData); set_glGetFenceivNV((glGetFenceivNV_client_proc_t)ptr);
+	ptr = getProc("glFinishFenceNV", userData); set_glFinishFenceNV((glFinishFenceNV_client_proc_t)ptr);
+	ptr = getProc("glSetFenceNV", userData); set_glSetFenceNV((glSetFenceNV_client_proc_t)ptr);
+	ptr = getProc("glGetDriverControlsQCOM", userData); set_glGetDriverControlsQCOM((glGetDriverControlsQCOM_client_proc_t)ptr);
+	ptr = getProc("glGetDriverControlStringQCOM", userData); set_glGetDriverControlStringQCOM((glGetDriverControlStringQCOM_client_proc_t)ptr);
+	ptr = getProc("glEnableDriverControlQCOM", userData); set_glEnableDriverControlQCOM((glEnableDriverControlQCOM_client_proc_t)ptr);
+	ptr = getProc("glDisableDriverControlQCOM", userData); set_glDisableDriverControlQCOM((glDisableDriverControlQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetTexturesQCOM", userData); set_glExtGetTexturesQCOM((glExtGetTexturesQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetBuffersQCOM", userData); set_glExtGetBuffersQCOM((glExtGetBuffersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetRenderbuffersQCOM", userData); set_glExtGetRenderbuffersQCOM((glExtGetRenderbuffersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetFramebuffersQCOM", userData); set_glExtGetFramebuffersQCOM((glExtGetFramebuffersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetTexLevelParameterivQCOM", userData); set_glExtGetTexLevelParameterivQCOM((glExtGetTexLevelParameterivQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtTexObjectStateOverrideiQCOM", userData); set_glExtTexObjectStateOverrideiQCOM((glExtTexObjectStateOverrideiQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetTexSubImageQCOM", userData); set_glExtGetTexSubImageQCOM((glExtGetTexSubImageQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetBufferPointervQCOM", userData); set_glExtGetBufferPointervQCOM((glExtGetBufferPointervQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetShadersQCOM", userData); set_glExtGetShadersQCOM((glExtGetShadersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetProgramsQCOM", userData); set_glExtGetProgramsQCOM((glExtGetProgramsQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtIsProgramBinaryQCOM", userData); set_glExtIsProgramBinaryQCOM((glExtIsProgramBinaryQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetProgramBinarySourceQCOM", userData); set_glExtGetProgramBinarySourceQCOM((glExtGetProgramBinarySourceQCOM_client_proc_t)ptr);
+	ptr = getProc("glStartTilingQCOM", userData); set_glStartTilingQCOM((glStartTilingQCOM_client_proc_t)ptr);
+	ptr = getProc("glEndTilingQCOM", userData); set_glEndTilingQCOM((glEndTilingQCOM_client_proc_t)ptr);
+	return 0;
+}
+
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_client_context.h b/tools/emulator/opengl/system/GLESv1_enc/gl_client_context.h
new file mode 100644
index 0000000..c0b83ad
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_client_context.h
@@ -0,0 +1,603 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __gl_client_context_t_h
+#define __gl_client_context_t_h
+
+#include "gl_client_proc.h"
+
+
+struct gl_client_context_t {
+
+	glAlphaFunc_client_proc_t glAlphaFunc;
+	glClearColor_client_proc_t glClearColor;
+	glClearDepthf_client_proc_t glClearDepthf;
+	glClipPlanef_client_proc_t glClipPlanef;
+	glColor4f_client_proc_t glColor4f;
+	glDepthRangef_client_proc_t glDepthRangef;
+	glFogf_client_proc_t glFogf;
+	glFogfv_client_proc_t glFogfv;
+	glFrustumf_client_proc_t glFrustumf;
+	glGetClipPlanef_client_proc_t glGetClipPlanef;
+	glGetFloatv_client_proc_t glGetFloatv;
+	glGetLightfv_client_proc_t glGetLightfv;
+	glGetMaterialfv_client_proc_t glGetMaterialfv;
+	glGetTexEnvfv_client_proc_t glGetTexEnvfv;
+	glGetTexParameterfv_client_proc_t glGetTexParameterfv;
+	glLightModelf_client_proc_t glLightModelf;
+	glLightModelfv_client_proc_t glLightModelfv;
+	glLightf_client_proc_t glLightf;
+	glLightfv_client_proc_t glLightfv;
+	glLineWidth_client_proc_t glLineWidth;
+	glLoadMatrixf_client_proc_t glLoadMatrixf;
+	glMaterialf_client_proc_t glMaterialf;
+	glMaterialfv_client_proc_t glMaterialfv;
+	glMultMatrixf_client_proc_t glMultMatrixf;
+	glMultiTexCoord4f_client_proc_t glMultiTexCoord4f;
+	glNormal3f_client_proc_t glNormal3f;
+	glOrthof_client_proc_t glOrthof;
+	glPointParameterf_client_proc_t glPointParameterf;
+	glPointParameterfv_client_proc_t glPointParameterfv;
+	glPointSize_client_proc_t glPointSize;
+	glPolygonOffset_client_proc_t glPolygonOffset;
+	glRotatef_client_proc_t glRotatef;
+	glScalef_client_proc_t glScalef;
+	glTexEnvf_client_proc_t glTexEnvf;
+	glTexEnvfv_client_proc_t glTexEnvfv;
+	glTexParameterf_client_proc_t glTexParameterf;
+	glTexParameterfv_client_proc_t glTexParameterfv;
+	glTranslatef_client_proc_t glTranslatef;
+	glActiveTexture_client_proc_t glActiveTexture;
+	glAlphaFuncx_client_proc_t glAlphaFuncx;
+	glBindBuffer_client_proc_t glBindBuffer;
+	glBindTexture_client_proc_t glBindTexture;
+	glBlendFunc_client_proc_t glBlendFunc;
+	glBufferData_client_proc_t glBufferData;
+	glBufferSubData_client_proc_t glBufferSubData;
+	glClear_client_proc_t glClear;
+	glClearColorx_client_proc_t glClearColorx;
+	glClearDepthx_client_proc_t glClearDepthx;
+	glClearStencil_client_proc_t glClearStencil;
+	glClientActiveTexture_client_proc_t glClientActiveTexture;
+	glColor4ub_client_proc_t glColor4ub;
+	glColor4x_client_proc_t glColor4x;
+	glColorMask_client_proc_t glColorMask;
+	glColorPointer_client_proc_t glColorPointer;
+	glCompressedTexImage2D_client_proc_t glCompressedTexImage2D;
+	glCompressedTexSubImage2D_client_proc_t glCompressedTexSubImage2D;
+	glCopyTexImage2D_client_proc_t glCopyTexImage2D;
+	glCopyTexSubImage2D_client_proc_t glCopyTexSubImage2D;
+	glCullFace_client_proc_t glCullFace;
+	glDeleteBuffers_client_proc_t glDeleteBuffers;
+	glDeleteTextures_client_proc_t glDeleteTextures;
+	glDepthFunc_client_proc_t glDepthFunc;
+	glDepthMask_client_proc_t glDepthMask;
+	glDepthRangex_client_proc_t glDepthRangex;
+	glDisable_client_proc_t glDisable;
+	glDisableClientState_client_proc_t glDisableClientState;
+	glDrawArrays_client_proc_t glDrawArrays;
+	glDrawElements_client_proc_t glDrawElements;
+	glEnable_client_proc_t glEnable;
+	glEnableClientState_client_proc_t glEnableClientState;
+	glFinish_client_proc_t glFinish;
+	glFlush_client_proc_t glFlush;
+	glFogx_client_proc_t glFogx;
+	glFogxv_client_proc_t glFogxv;
+	glFrontFace_client_proc_t glFrontFace;
+	glFrustumx_client_proc_t glFrustumx;
+	glGetBooleanv_client_proc_t glGetBooleanv;
+	glGetBufferParameteriv_client_proc_t glGetBufferParameteriv;
+	glClipPlanex_client_proc_t glClipPlanex;
+	glGenBuffers_client_proc_t glGenBuffers;
+	glGenTextures_client_proc_t glGenTextures;
+	glGetError_client_proc_t glGetError;
+	glGetFixedv_client_proc_t glGetFixedv;
+	glGetIntegerv_client_proc_t glGetIntegerv;
+	glGetLightxv_client_proc_t glGetLightxv;
+	glGetMaterialxv_client_proc_t glGetMaterialxv;
+	glGetPointerv_client_proc_t glGetPointerv;
+	glGetString_client_proc_t glGetString;
+	glGetTexEnviv_client_proc_t glGetTexEnviv;
+	glGetTexEnvxv_client_proc_t glGetTexEnvxv;
+	glGetTexParameteriv_client_proc_t glGetTexParameteriv;
+	glGetTexParameterxv_client_proc_t glGetTexParameterxv;
+	glHint_client_proc_t glHint;
+	glIsBuffer_client_proc_t glIsBuffer;
+	glIsEnabled_client_proc_t glIsEnabled;
+	glIsTexture_client_proc_t glIsTexture;
+	glLightModelx_client_proc_t glLightModelx;
+	glLightModelxv_client_proc_t glLightModelxv;
+	glLightx_client_proc_t glLightx;
+	glLightxv_client_proc_t glLightxv;
+	glLineWidthx_client_proc_t glLineWidthx;
+	glLoadIdentity_client_proc_t glLoadIdentity;
+	glLoadMatrixx_client_proc_t glLoadMatrixx;
+	glLogicOp_client_proc_t glLogicOp;
+	glMaterialx_client_proc_t glMaterialx;
+	glMaterialxv_client_proc_t glMaterialxv;
+	glMatrixMode_client_proc_t glMatrixMode;
+	glMultMatrixx_client_proc_t glMultMatrixx;
+	glMultiTexCoord4x_client_proc_t glMultiTexCoord4x;
+	glNormal3x_client_proc_t glNormal3x;
+	glNormalPointer_client_proc_t glNormalPointer;
+	glOrthox_client_proc_t glOrthox;
+	glPixelStorei_client_proc_t glPixelStorei;
+	glPointParameterx_client_proc_t glPointParameterx;
+	glPointParameterxv_client_proc_t glPointParameterxv;
+	glPointSizex_client_proc_t glPointSizex;
+	glPolygonOffsetx_client_proc_t glPolygonOffsetx;
+	glPopMatrix_client_proc_t glPopMatrix;
+	glPushMatrix_client_proc_t glPushMatrix;
+	glReadPixels_client_proc_t glReadPixels;
+	glRotatex_client_proc_t glRotatex;
+	glSampleCoverage_client_proc_t glSampleCoverage;
+	glSampleCoveragex_client_proc_t glSampleCoveragex;
+	glScalex_client_proc_t glScalex;
+	glScissor_client_proc_t glScissor;
+	glShadeModel_client_proc_t glShadeModel;
+	glStencilFunc_client_proc_t glStencilFunc;
+	glStencilMask_client_proc_t glStencilMask;
+	glStencilOp_client_proc_t glStencilOp;
+	glTexCoordPointer_client_proc_t glTexCoordPointer;
+	glTexEnvi_client_proc_t glTexEnvi;
+	glTexEnvx_client_proc_t glTexEnvx;
+	glTexEnviv_client_proc_t glTexEnviv;
+	glTexEnvxv_client_proc_t glTexEnvxv;
+	glTexImage2D_client_proc_t glTexImage2D;
+	glTexParameteri_client_proc_t glTexParameteri;
+	glTexParameterx_client_proc_t glTexParameterx;
+	glTexParameteriv_client_proc_t glTexParameteriv;
+	glTexParameterxv_client_proc_t glTexParameterxv;
+	glTexSubImage2D_client_proc_t glTexSubImage2D;
+	glTranslatex_client_proc_t glTranslatex;
+	glVertexPointer_client_proc_t glVertexPointer;
+	glViewport_client_proc_t glViewport;
+	glPointSizePointerOES_client_proc_t glPointSizePointerOES;
+	glVertexPointerOffset_client_proc_t glVertexPointerOffset;
+	glColorPointerOffset_client_proc_t glColorPointerOffset;
+	glNormalPointerOffset_client_proc_t glNormalPointerOffset;
+	glPointSizePointerOffset_client_proc_t glPointSizePointerOffset;
+	glTexCoordPointerOffset_client_proc_t glTexCoordPointerOffset;
+	glWeightPointerOffset_client_proc_t glWeightPointerOffset;
+	glMatrixIndexPointerOffset_client_proc_t glMatrixIndexPointerOffset;
+	glVertexPointerData_client_proc_t glVertexPointerData;
+	glColorPointerData_client_proc_t glColorPointerData;
+	glNormalPointerData_client_proc_t glNormalPointerData;
+	glTexCoordPointerData_client_proc_t glTexCoordPointerData;
+	glPointSizePointerData_client_proc_t glPointSizePointerData;
+	glWeightPointerData_client_proc_t glWeightPointerData;
+	glMatrixIndexPointerData_client_proc_t glMatrixIndexPointerData;
+	glDrawElementsOffset_client_proc_t glDrawElementsOffset;
+	glDrawElementsData_client_proc_t glDrawElementsData;
+	glGetCompressedTextureFormats_client_proc_t glGetCompressedTextureFormats;
+	glFinishRoundTrip_client_proc_t glFinishRoundTrip;
+	glBlendEquationSeparateOES_client_proc_t glBlendEquationSeparateOES;
+	glBlendFuncSeparateOES_client_proc_t glBlendFuncSeparateOES;
+	glBlendEquationOES_client_proc_t glBlendEquationOES;
+	glDrawTexsOES_client_proc_t glDrawTexsOES;
+	glDrawTexiOES_client_proc_t glDrawTexiOES;
+	glDrawTexxOES_client_proc_t glDrawTexxOES;
+	glDrawTexsvOES_client_proc_t glDrawTexsvOES;
+	glDrawTexivOES_client_proc_t glDrawTexivOES;
+	glDrawTexxvOES_client_proc_t glDrawTexxvOES;
+	glDrawTexfOES_client_proc_t glDrawTexfOES;
+	glDrawTexfvOES_client_proc_t glDrawTexfvOES;
+	glEGLImageTargetTexture2DOES_client_proc_t glEGLImageTargetTexture2DOES;
+	glEGLImageTargetRenderbufferStorageOES_client_proc_t glEGLImageTargetRenderbufferStorageOES;
+	glAlphaFuncxOES_client_proc_t glAlphaFuncxOES;
+	glClearColorxOES_client_proc_t glClearColorxOES;
+	glClearDepthxOES_client_proc_t glClearDepthxOES;
+	glClipPlanexOES_client_proc_t glClipPlanexOES;
+	glClipPlanexIMG_client_proc_t glClipPlanexIMG;
+	glColor4xOES_client_proc_t glColor4xOES;
+	glDepthRangexOES_client_proc_t glDepthRangexOES;
+	glFogxOES_client_proc_t glFogxOES;
+	glFogxvOES_client_proc_t glFogxvOES;
+	glFrustumxOES_client_proc_t glFrustumxOES;
+	glGetClipPlanexOES_client_proc_t glGetClipPlanexOES;
+	glGetClipPlanex_client_proc_t glGetClipPlanex;
+	glGetFixedvOES_client_proc_t glGetFixedvOES;
+	glGetLightxvOES_client_proc_t glGetLightxvOES;
+	glGetMaterialxvOES_client_proc_t glGetMaterialxvOES;
+	glGetTexEnvxvOES_client_proc_t glGetTexEnvxvOES;
+	glGetTexParameterxvOES_client_proc_t glGetTexParameterxvOES;
+	glLightModelxOES_client_proc_t glLightModelxOES;
+	glLightModelxvOES_client_proc_t glLightModelxvOES;
+	glLightxOES_client_proc_t glLightxOES;
+	glLightxvOES_client_proc_t glLightxvOES;
+	glLineWidthxOES_client_proc_t glLineWidthxOES;
+	glLoadMatrixxOES_client_proc_t glLoadMatrixxOES;
+	glMaterialxOES_client_proc_t glMaterialxOES;
+	glMaterialxvOES_client_proc_t glMaterialxvOES;
+	glMultMatrixxOES_client_proc_t glMultMatrixxOES;
+	glMultiTexCoord4xOES_client_proc_t glMultiTexCoord4xOES;
+	glNormal3xOES_client_proc_t glNormal3xOES;
+	glOrthoxOES_client_proc_t glOrthoxOES;
+	glPointParameterxOES_client_proc_t glPointParameterxOES;
+	glPointParameterxvOES_client_proc_t glPointParameterxvOES;
+	glPointSizexOES_client_proc_t glPointSizexOES;
+	glPolygonOffsetxOES_client_proc_t glPolygonOffsetxOES;
+	glRotatexOES_client_proc_t glRotatexOES;
+	glSampleCoveragexOES_client_proc_t glSampleCoveragexOES;
+	glScalexOES_client_proc_t glScalexOES;
+	glTexEnvxOES_client_proc_t glTexEnvxOES;
+	glTexEnvxvOES_client_proc_t glTexEnvxvOES;
+	glTexParameterxOES_client_proc_t glTexParameterxOES;
+	glTexParameterxvOES_client_proc_t glTexParameterxvOES;
+	glTranslatexOES_client_proc_t glTranslatexOES;
+	glIsRenderbufferOES_client_proc_t glIsRenderbufferOES;
+	glBindRenderbufferOES_client_proc_t glBindRenderbufferOES;
+	glDeleteRenderbuffersOES_client_proc_t glDeleteRenderbuffersOES;
+	glGenRenderbuffersOES_client_proc_t glGenRenderbuffersOES;
+	glRenderbufferStorageOES_client_proc_t glRenderbufferStorageOES;
+	glGetRenderbufferParameterivOES_client_proc_t glGetRenderbufferParameterivOES;
+	glIsFramebufferOES_client_proc_t glIsFramebufferOES;
+	glBindFramebufferOES_client_proc_t glBindFramebufferOES;
+	glDeleteFramebuffersOES_client_proc_t glDeleteFramebuffersOES;
+	glGenFramebuffersOES_client_proc_t glGenFramebuffersOES;
+	glCheckFramebufferStatusOES_client_proc_t glCheckFramebufferStatusOES;
+	glFramebufferRenderbufferOES_client_proc_t glFramebufferRenderbufferOES;
+	glFramebufferTexture2DOES_client_proc_t glFramebufferTexture2DOES;
+	glGetFramebufferAttachmentParameterivOES_client_proc_t glGetFramebufferAttachmentParameterivOES;
+	glGenerateMipmapOES_client_proc_t glGenerateMipmapOES;
+	glMapBufferOES_client_proc_t glMapBufferOES;
+	glUnmapBufferOES_client_proc_t glUnmapBufferOES;
+	glGetBufferPointervOES_client_proc_t glGetBufferPointervOES;
+	glCurrentPaletteMatrixOES_client_proc_t glCurrentPaletteMatrixOES;
+	glLoadPaletteFromModelViewMatrixOES_client_proc_t glLoadPaletteFromModelViewMatrixOES;
+	glMatrixIndexPointerOES_client_proc_t glMatrixIndexPointerOES;
+	glWeightPointerOES_client_proc_t glWeightPointerOES;
+	glQueryMatrixxOES_client_proc_t glQueryMatrixxOES;
+	glDepthRangefOES_client_proc_t glDepthRangefOES;
+	glFrustumfOES_client_proc_t glFrustumfOES;
+	glOrthofOES_client_proc_t glOrthofOES;
+	glClipPlanefOES_client_proc_t glClipPlanefOES;
+	glClipPlanefIMG_client_proc_t glClipPlanefIMG;
+	glGetClipPlanefOES_client_proc_t glGetClipPlanefOES;
+	glClearDepthfOES_client_proc_t glClearDepthfOES;
+	glTexGenfOES_client_proc_t glTexGenfOES;
+	glTexGenfvOES_client_proc_t glTexGenfvOES;
+	glTexGeniOES_client_proc_t glTexGeniOES;
+	glTexGenivOES_client_proc_t glTexGenivOES;
+	glTexGenxOES_client_proc_t glTexGenxOES;
+	glTexGenxvOES_client_proc_t glTexGenxvOES;
+	glGetTexGenfvOES_client_proc_t glGetTexGenfvOES;
+	glGetTexGenivOES_client_proc_t glGetTexGenivOES;
+	glGetTexGenxvOES_client_proc_t glGetTexGenxvOES;
+	glBindVertexArrayOES_client_proc_t glBindVertexArrayOES;
+	glDeleteVertexArraysOES_client_proc_t glDeleteVertexArraysOES;
+	glGenVertexArraysOES_client_proc_t glGenVertexArraysOES;
+	glIsVertexArrayOES_client_proc_t glIsVertexArrayOES;
+	glDiscardFramebufferEXT_client_proc_t glDiscardFramebufferEXT;
+	glMultiDrawArraysEXT_client_proc_t glMultiDrawArraysEXT;
+	glMultiDrawElementsEXT_client_proc_t glMultiDrawElementsEXT;
+	glMultiDrawArraysSUN_client_proc_t glMultiDrawArraysSUN;
+	glMultiDrawElementsSUN_client_proc_t glMultiDrawElementsSUN;
+	glRenderbufferStorageMultisampleIMG_client_proc_t glRenderbufferStorageMultisampleIMG;
+	glFramebufferTexture2DMultisampleIMG_client_proc_t glFramebufferTexture2DMultisampleIMG;
+	glDeleteFencesNV_client_proc_t glDeleteFencesNV;
+	glGenFencesNV_client_proc_t glGenFencesNV;
+	glIsFenceNV_client_proc_t glIsFenceNV;
+	glTestFenceNV_client_proc_t glTestFenceNV;
+	glGetFenceivNV_client_proc_t glGetFenceivNV;
+	glFinishFenceNV_client_proc_t glFinishFenceNV;
+	glSetFenceNV_client_proc_t glSetFenceNV;
+	glGetDriverControlsQCOM_client_proc_t glGetDriverControlsQCOM;
+	glGetDriverControlStringQCOM_client_proc_t glGetDriverControlStringQCOM;
+	glEnableDriverControlQCOM_client_proc_t glEnableDriverControlQCOM;
+	glDisableDriverControlQCOM_client_proc_t glDisableDriverControlQCOM;
+	glExtGetTexturesQCOM_client_proc_t glExtGetTexturesQCOM;
+	glExtGetBuffersQCOM_client_proc_t glExtGetBuffersQCOM;
+	glExtGetRenderbuffersQCOM_client_proc_t glExtGetRenderbuffersQCOM;
+	glExtGetFramebuffersQCOM_client_proc_t glExtGetFramebuffersQCOM;
+	glExtGetTexLevelParameterivQCOM_client_proc_t glExtGetTexLevelParameterivQCOM;
+	glExtTexObjectStateOverrideiQCOM_client_proc_t glExtTexObjectStateOverrideiQCOM;
+	glExtGetTexSubImageQCOM_client_proc_t glExtGetTexSubImageQCOM;
+	glExtGetBufferPointervQCOM_client_proc_t glExtGetBufferPointervQCOM;
+	glExtGetShadersQCOM_client_proc_t glExtGetShadersQCOM;
+	glExtGetProgramsQCOM_client_proc_t glExtGetProgramsQCOM;
+	glExtIsProgramBinaryQCOM_client_proc_t glExtIsProgramBinaryQCOM;
+	glExtGetProgramBinarySourceQCOM_client_proc_t glExtGetProgramBinarySourceQCOM;
+	glStartTilingQCOM_client_proc_t glStartTilingQCOM;
+	glEndTilingQCOM_client_proc_t glEndTilingQCOM;
+	//Accessors 
+	virtual glAlphaFunc_client_proc_t set_glAlphaFunc(glAlphaFunc_client_proc_t f) { glAlphaFunc_client_proc_t retval = glAlphaFunc; glAlphaFunc = f; return retval;}
+	virtual glClearColor_client_proc_t set_glClearColor(glClearColor_client_proc_t f) { glClearColor_client_proc_t retval = glClearColor; glClearColor = f; return retval;}
+	virtual glClearDepthf_client_proc_t set_glClearDepthf(glClearDepthf_client_proc_t f) { glClearDepthf_client_proc_t retval = glClearDepthf; glClearDepthf = f; return retval;}
+	virtual glClipPlanef_client_proc_t set_glClipPlanef(glClipPlanef_client_proc_t f) { glClipPlanef_client_proc_t retval = glClipPlanef; glClipPlanef = f; return retval;}
+	virtual glColor4f_client_proc_t set_glColor4f(glColor4f_client_proc_t f) { glColor4f_client_proc_t retval = glColor4f; glColor4f = f; return retval;}
+	virtual glDepthRangef_client_proc_t set_glDepthRangef(glDepthRangef_client_proc_t f) { glDepthRangef_client_proc_t retval = glDepthRangef; glDepthRangef = f; return retval;}
+	virtual glFogf_client_proc_t set_glFogf(glFogf_client_proc_t f) { glFogf_client_proc_t retval = glFogf; glFogf = f; return retval;}
+	virtual glFogfv_client_proc_t set_glFogfv(glFogfv_client_proc_t f) { glFogfv_client_proc_t retval = glFogfv; glFogfv = f; return retval;}
+	virtual glFrustumf_client_proc_t set_glFrustumf(glFrustumf_client_proc_t f) { glFrustumf_client_proc_t retval = glFrustumf; glFrustumf = f; return retval;}
+	virtual glGetClipPlanef_client_proc_t set_glGetClipPlanef(glGetClipPlanef_client_proc_t f) { glGetClipPlanef_client_proc_t retval = glGetClipPlanef; glGetClipPlanef = f; return retval;}
+	virtual glGetFloatv_client_proc_t set_glGetFloatv(glGetFloatv_client_proc_t f) { glGetFloatv_client_proc_t retval = glGetFloatv; glGetFloatv = f; return retval;}
+	virtual glGetLightfv_client_proc_t set_glGetLightfv(glGetLightfv_client_proc_t f) { glGetLightfv_client_proc_t retval = glGetLightfv; glGetLightfv = f; return retval;}
+	virtual glGetMaterialfv_client_proc_t set_glGetMaterialfv(glGetMaterialfv_client_proc_t f) { glGetMaterialfv_client_proc_t retval = glGetMaterialfv; glGetMaterialfv = f; return retval;}
+	virtual glGetTexEnvfv_client_proc_t set_glGetTexEnvfv(glGetTexEnvfv_client_proc_t f) { glGetTexEnvfv_client_proc_t retval = glGetTexEnvfv; glGetTexEnvfv = f; return retval;}
+	virtual glGetTexParameterfv_client_proc_t set_glGetTexParameterfv(glGetTexParameterfv_client_proc_t f) { glGetTexParameterfv_client_proc_t retval = glGetTexParameterfv; glGetTexParameterfv = f; return retval;}
+	virtual glLightModelf_client_proc_t set_glLightModelf(glLightModelf_client_proc_t f) { glLightModelf_client_proc_t retval = glLightModelf; glLightModelf = f; return retval;}
+	virtual glLightModelfv_client_proc_t set_glLightModelfv(glLightModelfv_client_proc_t f) { glLightModelfv_client_proc_t retval = glLightModelfv; glLightModelfv = f; return retval;}
+	virtual glLightf_client_proc_t set_glLightf(glLightf_client_proc_t f) { glLightf_client_proc_t retval = glLightf; glLightf = f; return retval;}
+	virtual glLightfv_client_proc_t set_glLightfv(glLightfv_client_proc_t f) { glLightfv_client_proc_t retval = glLightfv; glLightfv = f; return retval;}
+	virtual glLineWidth_client_proc_t set_glLineWidth(glLineWidth_client_proc_t f) { glLineWidth_client_proc_t retval = glLineWidth; glLineWidth = f; return retval;}
+	virtual glLoadMatrixf_client_proc_t set_glLoadMatrixf(glLoadMatrixf_client_proc_t f) { glLoadMatrixf_client_proc_t retval = glLoadMatrixf; glLoadMatrixf = f; return retval;}
+	virtual glMaterialf_client_proc_t set_glMaterialf(glMaterialf_client_proc_t f) { glMaterialf_client_proc_t retval = glMaterialf; glMaterialf = f; return retval;}
+	virtual glMaterialfv_client_proc_t set_glMaterialfv(glMaterialfv_client_proc_t f) { glMaterialfv_client_proc_t retval = glMaterialfv; glMaterialfv = f; return retval;}
+	virtual glMultMatrixf_client_proc_t set_glMultMatrixf(glMultMatrixf_client_proc_t f) { glMultMatrixf_client_proc_t retval = glMultMatrixf; glMultMatrixf = f; return retval;}
+	virtual glMultiTexCoord4f_client_proc_t set_glMultiTexCoord4f(glMultiTexCoord4f_client_proc_t f) { glMultiTexCoord4f_client_proc_t retval = glMultiTexCoord4f; glMultiTexCoord4f = f; return retval;}
+	virtual glNormal3f_client_proc_t set_glNormal3f(glNormal3f_client_proc_t f) { glNormal3f_client_proc_t retval = glNormal3f; glNormal3f = f; return retval;}
+	virtual glOrthof_client_proc_t set_glOrthof(glOrthof_client_proc_t f) { glOrthof_client_proc_t retval = glOrthof; glOrthof = f; return retval;}
+	virtual glPointParameterf_client_proc_t set_glPointParameterf(glPointParameterf_client_proc_t f) { glPointParameterf_client_proc_t retval = glPointParameterf; glPointParameterf = f; return retval;}
+	virtual glPointParameterfv_client_proc_t set_glPointParameterfv(glPointParameterfv_client_proc_t f) { glPointParameterfv_client_proc_t retval = glPointParameterfv; glPointParameterfv = f; return retval;}
+	virtual glPointSize_client_proc_t set_glPointSize(glPointSize_client_proc_t f) { glPointSize_client_proc_t retval = glPointSize; glPointSize = f; return retval;}
+	virtual glPolygonOffset_client_proc_t set_glPolygonOffset(glPolygonOffset_client_proc_t f) { glPolygonOffset_client_proc_t retval = glPolygonOffset; glPolygonOffset = f; return retval;}
+	virtual glRotatef_client_proc_t set_glRotatef(glRotatef_client_proc_t f) { glRotatef_client_proc_t retval = glRotatef; glRotatef = f; return retval;}
+	virtual glScalef_client_proc_t set_glScalef(glScalef_client_proc_t f) { glScalef_client_proc_t retval = glScalef; glScalef = f; return retval;}
+	virtual glTexEnvf_client_proc_t set_glTexEnvf(glTexEnvf_client_proc_t f) { glTexEnvf_client_proc_t retval = glTexEnvf; glTexEnvf = f; return retval;}
+	virtual glTexEnvfv_client_proc_t set_glTexEnvfv(glTexEnvfv_client_proc_t f) { glTexEnvfv_client_proc_t retval = glTexEnvfv; glTexEnvfv = f; return retval;}
+	virtual glTexParameterf_client_proc_t set_glTexParameterf(glTexParameterf_client_proc_t f) { glTexParameterf_client_proc_t retval = glTexParameterf; glTexParameterf = f; return retval;}
+	virtual glTexParameterfv_client_proc_t set_glTexParameterfv(glTexParameterfv_client_proc_t f) { glTexParameterfv_client_proc_t retval = glTexParameterfv; glTexParameterfv = f; return retval;}
+	virtual glTranslatef_client_proc_t set_glTranslatef(glTranslatef_client_proc_t f) { glTranslatef_client_proc_t retval = glTranslatef; glTranslatef = f; return retval;}
+	virtual glActiveTexture_client_proc_t set_glActiveTexture(glActiveTexture_client_proc_t f) { glActiveTexture_client_proc_t retval = glActiveTexture; glActiveTexture = f; return retval;}
+	virtual glAlphaFuncx_client_proc_t set_glAlphaFuncx(glAlphaFuncx_client_proc_t f) { glAlphaFuncx_client_proc_t retval = glAlphaFuncx; glAlphaFuncx = f; return retval;}
+	virtual glBindBuffer_client_proc_t set_glBindBuffer(glBindBuffer_client_proc_t f) { glBindBuffer_client_proc_t retval = glBindBuffer; glBindBuffer = f; return retval;}
+	virtual glBindTexture_client_proc_t set_glBindTexture(glBindTexture_client_proc_t f) { glBindTexture_client_proc_t retval = glBindTexture; glBindTexture = f; return retval;}
+	virtual glBlendFunc_client_proc_t set_glBlendFunc(glBlendFunc_client_proc_t f) { glBlendFunc_client_proc_t retval = glBlendFunc; glBlendFunc = f; return retval;}
+	virtual glBufferData_client_proc_t set_glBufferData(glBufferData_client_proc_t f) { glBufferData_client_proc_t retval = glBufferData; glBufferData = f; return retval;}
+	virtual glBufferSubData_client_proc_t set_glBufferSubData(glBufferSubData_client_proc_t f) { glBufferSubData_client_proc_t retval = glBufferSubData; glBufferSubData = f; return retval;}
+	virtual glClear_client_proc_t set_glClear(glClear_client_proc_t f) { glClear_client_proc_t retval = glClear; glClear = f; return retval;}
+	virtual glClearColorx_client_proc_t set_glClearColorx(glClearColorx_client_proc_t f) { glClearColorx_client_proc_t retval = glClearColorx; glClearColorx = f; return retval;}
+	virtual glClearDepthx_client_proc_t set_glClearDepthx(glClearDepthx_client_proc_t f) { glClearDepthx_client_proc_t retval = glClearDepthx; glClearDepthx = f; return retval;}
+	virtual glClearStencil_client_proc_t set_glClearStencil(glClearStencil_client_proc_t f) { glClearStencil_client_proc_t retval = glClearStencil; glClearStencil = f; return retval;}
+	virtual glClientActiveTexture_client_proc_t set_glClientActiveTexture(glClientActiveTexture_client_proc_t f) { glClientActiveTexture_client_proc_t retval = glClientActiveTexture; glClientActiveTexture = f; return retval;}
+	virtual glColor4ub_client_proc_t set_glColor4ub(glColor4ub_client_proc_t f) { glColor4ub_client_proc_t retval = glColor4ub; glColor4ub = f; return retval;}
+	virtual glColor4x_client_proc_t set_glColor4x(glColor4x_client_proc_t f) { glColor4x_client_proc_t retval = glColor4x; glColor4x = f; return retval;}
+	virtual glColorMask_client_proc_t set_glColorMask(glColorMask_client_proc_t f) { glColorMask_client_proc_t retval = glColorMask; glColorMask = f; return retval;}
+	virtual glColorPointer_client_proc_t set_glColorPointer(glColorPointer_client_proc_t f) { glColorPointer_client_proc_t retval = glColorPointer; glColorPointer = f; return retval;}
+	virtual glCompressedTexImage2D_client_proc_t set_glCompressedTexImage2D(glCompressedTexImage2D_client_proc_t f) { glCompressedTexImage2D_client_proc_t retval = glCompressedTexImage2D; glCompressedTexImage2D = f; return retval;}
+	virtual glCompressedTexSubImage2D_client_proc_t set_glCompressedTexSubImage2D(glCompressedTexSubImage2D_client_proc_t f) { glCompressedTexSubImage2D_client_proc_t retval = glCompressedTexSubImage2D; glCompressedTexSubImage2D = f; return retval;}
+	virtual glCopyTexImage2D_client_proc_t set_glCopyTexImage2D(glCopyTexImage2D_client_proc_t f) { glCopyTexImage2D_client_proc_t retval = glCopyTexImage2D; glCopyTexImage2D = f; return retval;}
+	virtual glCopyTexSubImage2D_client_proc_t set_glCopyTexSubImage2D(glCopyTexSubImage2D_client_proc_t f) { glCopyTexSubImage2D_client_proc_t retval = glCopyTexSubImage2D; glCopyTexSubImage2D = f; return retval;}
+	virtual glCullFace_client_proc_t set_glCullFace(glCullFace_client_proc_t f) { glCullFace_client_proc_t retval = glCullFace; glCullFace = f; return retval;}
+	virtual glDeleteBuffers_client_proc_t set_glDeleteBuffers(glDeleteBuffers_client_proc_t f) { glDeleteBuffers_client_proc_t retval = glDeleteBuffers; glDeleteBuffers = f; return retval;}
+	virtual glDeleteTextures_client_proc_t set_glDeleteTextures(glDeleteTextures_client_proc_t f) { glDeleteTextures_client_proc_t retval = glDeleteTextures; glDeleteTextures = f; return retval;}
+	virtual glDepthFunc_client_proc_t set_glDepthFunc(glDepthFunc_client_proc_t f) { glDepthFunc_client_proc_t retval = glDepthFunc; glDepthFunc = f; return retval;}
+	virtual glDepthMask_client_proc_t set_glDepthMask(glDepthMask_client_proc_t f) { glDepthMask_client_proc_t retval = glDepthMask; glDepthMask = f; return retval;}
+	virtual glDepthRangex_client_proc_t set_glDepthRangex(glDepthRangex_client_proc_t f) { glDepthRangex_client_proc_t retval = glDepthRangex; glDepthRangex = f; return retval;}
+	virtual glDisable_client_proc_t set_glDisable(glDisable_client_proc_t f) { glDisable_client_proc_t retval = glDisable; glDisable = f; return retval;}
+	virtual glDisableClientState_client_proc_t set_glDisableClientState(glDisableClientState_client_proc_t f) { glDisableClientState_client_proc_t retval = glDisableClientState; glDisableClientState = f; return retval;}
+	virtual glDrawArrays_client_proc_t set_glDrawArrays(glDrawArrays_client_proc_t f) { glDrawArrays_client_proc_t retval = glDrawArrays; glDrawArrays = f; return retval;}
+	virtual glDrawElements_client_proc_t set_glDrawElements(glDrawElements_client_proc_t f) { glDrawElements_client_proc_t retval = glDrawElements; glDrawElements = f; return retval;}
+	virtual glEnable_client_proc_t set_glEnable(glEnable_client_proc_t f) { glEnable_client_proc_t retval = glEnable; glEnable = f; return retval;}
+	virtual glEnableClientState_client_proc_t set_glEnableClientState(glEnableClientState_client_proc_t f) { glEnableClientState_client_proc_t retval = glEnableClientState; glEnableClientState = f; return retval;}
+	virtual glFinish_client_proc_t set_glFinish(glFinish_client_proc_t f) { glFinish_client_proc_t retval = glFinish; glFinish = f; return retval;}
+	virtual glFlush_client_proc_t set_glFlush(glFlush_client_proc_t f) { glFlush_client_proc_t retval = glFlush; glFlush = f; return retval;}
+	virtual glFogx_client_proc_t set_glFogx(glFogx_client_proc_t f) { glFogx_client_proc_t retval = glFogx; glFogx = f; return retval;}
+	virtual glFogxv_client_proc_t set_glFogxv(glFogxv_client_proc_t f) { glFogxv_client_proc_t retval = glFogxv; glFogxv = f; return retval;}
+	virtual glFrontFace_client_proc_t set_glFrontFace(glFrontFace_client_proc_t f) { glFrontFace_client_proc_t retval = glFrontFace; glFrontFace = f; return retval;}
+	virtual glFrustumx_client_proc_t set_glFrustumx(glFrustumx_client_proc_t f) { glFrustumx_client_proc_t retval = glFrustumx; glFrustumx = f; return retval;}
+	virtual glGetBooleanv_client_proc_t set_glGetBooleanv(glGetBooleanv_client_proc_t f) { glGetBooleanv_client_proc_t retval = glGetBooleanv; glGetBooleanv = f; return retval;}
+	virtual glGetBufferParameteriv_client_proc_t set_glGetBufferParameteriv(glGetBufferParameteriv_client_proc_t f) { glGetBufferParameteriv_client_proc_t retval = glGetBufferParameteriv; glGetBufferParameteriv = f; return retval;}
+	virtual glClipPlanex_client_proc_t set_glClipPlanex(glClipPlanex_client_proc_t f) { glClipPlanex_client_proc_t retval = glClipPlanex; glClipPlanex = f; return retval;}
+	virtual glGenBuffers_client_proc_t set_glGenBuffers(glGenBuffers_client_proc_t f) { glGenBuffers_client_proc_t retval = glGenBuffers; glGenBuffers = f; return retval;}
+	virtual glGenTextures_client_proc_t set_glGenTextures(glGenTextures_client_proc_t f) { glGenTextures_client_proc_t retval = glGenTextures; glGenTextures = f; return retval;}
+	virtual glGetError_client_proc_t set_glGetError(glGetError_client_proc_t f) { glGetError_client_proc_t retval = glGetError; glGetError = f; return retval;}
+	virtual glGetFixedv_client_proc_t set_glGetFixedv(glGetFixedv_client_proc_t f) { glGetFixedv_client_proc_t retval = glGetFixedv; glGetFixedv = f; return retval;}
+	virtual glGetIntegerv_client_proc_t set_glGetIntegerv(glGetIntegerv_client_proc_t f) { glGetIntegerv_client_proc_t retval = glGetIntegerv; glGetIntegerv = f; return retval;}
+	virtual glGetLightxv_client_proc_t set_glGetLightxv(glGetLightxv_client_proc_t f) { glGetLightxv_client_proc_t retval = glGetLightxv; glGetLightxv = f; return retval;}
+	virtual glGetMaterialxv_client_proc_t set_glGetMaterialxv(glGetMaterialxv_client_proc_t f) { glGetMaterialxv_client_proc_t retval = glGetMaterialxv; glGetMaterialxv = f; return retval;}
+	virtual glGetPointerv_client_proc_t set_glGetPointerv(glGetPointerv_client_proc_t f) { glGetPointerv_client_proc_t retval = glGetPointerv; glGetPointerv = f; return retval;}
+	virtual glGetString_client_proc_t set_glGetString(glGetString_client_proc_t f) { glGetString_client_proc_t retval = glGetString; glGetString = f; return retval;}
+	virtual glGetTexEnviv_client_proc_t set_glGetTexEnviv(glGetTexEnviv_client_proc_t f) { glGetTexEnviv_client_proc_t retval = glGetTexEnviv; glGetTexEnviv = f; return retval;}
+	virtual glGetTexEnvxv_client_proc_t set_glGetTexEnvxv(glGetTexEnvxv_client_proc_t f) { glGetTexEnvxv_client_proc_t retval = glGetTexEnvxv; glGetTexEnvxv = f; return retval;}
+	virtual glGetTexParameteriv_client_proc_t set_glGetTexParameteriv(glGetTexParameteriv_client_proc_t f) { glGetTexParameteriv_client_proc_t retval = glGetTexParameteriv; glGetTexParameteriv = f; return retval;}
+	virtual glGetTexParameterxv_client_proc_t set_glGetTexParameterxv(glGetTexParameterxv_client_proc_t f) { glGetTexParameterxv_client_proc_t retval = glGetTexParameterxv; glGetTexParameterxv = f; return retval;}
+	virtual glHint_client_proc_t set_glHint(glHint_client_proc_t f) { glHint_client_proc_t retval = glHint; glHint = f; return retval;}
+	virtual glIsBuffer_client_proc_t set_glIsBuffer(glIsBuffer_client_proc_t f) { glIsBuffer_client_proc_t retval = glIsBuffer; glIsBuffer = f; return retval;}
+	virtual glIsEnabled_client_proc_t set_glIsEnabled(glIsEnabled_client_proc_t f) { glIsEnabled_client_proc_t retval = glIsEnabled; glIsEnabled = f; return retval;}
+	virtual glIsTexture_client_proc_t set_glIsTexture(glIsTexture_client_proc_t f) { glIsTexture_client_proc_t retval = glIsTexture; glIsTexture = f; return retval;}
+	virtual glLightModelx_client_proc_t set_glLightModelx(glLightModelx_client_proc_t f) { glLightModelx_client_proc_t retval = glLightModelx; glLightModelx = f; return retval;}
+	virtual glLightModelxv_client_proc_t set_glLightModelxv(glLightModelxv_client_proc_t f) { glLightModelxv_client_proc_t retval = glLightModelxv; glLightModelxv = f; return retval;}
+	virtual glLightx_client_proc_t set_glLightx(glLightx_client_proc_t f) { glLightx_client_proc_t retval = glLightx; glLightx = f; return retval;}
+	virtual glLightxv_client_proc_t set_glLightxv(glLightxv_client_proc_t f) { glLightxv_client_proc_t retval = glLightxv; glLightxv = f; return retval;}
+	virtual glLineWidthx_client_proc_t set_glLineWidthx(glLineWidthx_client_proc_t f) { glLineWidthx_client_proc_t retval = glLineWidthx; glLineWidthx = f; return retval;}
+	virtual glLoadIdentity_client_proc_t set_glLoadIdentity(glLoadIdentity_client_proc_t f) { glLoadIdentity_client_proc_t retval = glLoadIdentity; glLoadIdentity = f; return retval;}
+	virtual glLoadMatrixx_client_proc_t set_glLoadMatrixx(glLoadMatrixx_client_proc_t f) { glLoadMatrixx_client_proc_t retval = glLoadMatrixx; glLoadMatrixx = f; return retval;}
+	virtual glLogicOp_client_proc_t set_glLogicOp(glLogicOp_client_proc_t f) { glLogicOp_client_proc_t retval = glLogicOp; glLogicOp = f; return retval;}
+	virtual glMaterialx_client_proc_t set_glMaterialx(glMaterialx_client_proc_t f) { glMaterialx_client_proc_t retval = glMaterialx; glMaterialx = f; return retval;}
+	virtual glMaterialxv_client_proc_t set_glMaterialxv(glMaterialxv_client_proc_t f) { glMaterialxv_client_proc_t retval = glMaterialxv; glMaterialxv = f; return retval;}
+	virtual glMatrixMode_client_proc_t set_glMatrixMode(glMatrixMode_client_proc_t f) { glMatrixMode_client_proc_t retval = glMatrixMode; glMatrixMode = f; return retval;}
+	virtual glMultMatrixx_client_proc_t set_glMultMatrixx(glMultMatrixx_client_proc_t f) { glMultMatrixx_client_proc_t retval = glMultMatrixx; glMultMatrixx = f; return retval;}
+	virtual glMultiTexCoord4x_client_proc_t set_glMultiTexCoord4x(glMultiTexCoord4x_client_proc_t f) { glMultiTexCoord4x_client_proc_t retval = glMultiTexCoord4x; glMultiTexCoord4x = f; return retval;}
+	virtual glNormal3x_client_proc_t set_glNormal3x(glNormal3x_client_proc_t f) { glNormal3x_client_proc_t retval = glNormal3x; glNormal3x = f; return retval;}
+	virtual glNormalPointer_client_proc_t set_glNormalPointer(glNormalPointer_client_proc_t f) { glNormalPointer_client_proc_t retval = glNormalPointer; glNormalPointer = f; return retval;}
+	virtual glOrthox_client_proc_t set_glOrthox(glOrthox_client_proc_t f) { glOrthox_client_proc_t retval = glOrthox; glOrthox = f; return retval;}
+	virtual glPixelStorei_client_proc_t set_glPixelStorei(glPixelStorei_client_proc_t f) { glPixelStorei_client_proc_t retval = glPixelStorei; glPixelStorei = f; return retval;}
+	virtual glPointParameterx_client_proc_t set_glPointParameterx(glPointParameterx_client_proc_t f) { glPointParameterx_client_proc_t retval = glPointParameterx; glPointParameterx = f; return retval;}
+	virtual glPointParameterxv_client_proc_t set_glPointParameterxv(glPointParameterxv_client_proc_t f) { glPointParameterxv_client_proc_t retval = glPointParameterxv; glPointParameterxv = f; return retval;}
+	virtual glPointSizex_client_proc_t set_glPointSizex(glPointSizex_client_proc_t f) { glPointSizex_client_proc_t retval = glPointSizex; glPointSizex = f; return retval;}
+	virtual glPolygonOffsetx_client_proc_t set_glPolygonOffsetx(glPolygonOffsetx_client_proc_t f) { glPolygonOffsetx_client_proc_t retval = glPolygonOffsetx; glPolygonOffsetx = f; return retval;}
+	virtual glPopMatrix_client_proc_t set_glPopMatrix(glPopMatrix_client_proc_t f) { glPopMatrix_client_proc_t retval = glPopMatrix; glPopMatrix = f; return retval;}
+	virtual glPushMatrix_client_proc_t set_glPushMatrix(glPushMatrix_client_proc_t f) { glPushMatrix_client_proc_t retval = glPushMatrix; glPushMatrix = f; return retval;}
+	virtual glReadPixels_client_proc_t set_glReadPixels(glReadPixels_client_proc_t f) { glReadPixels_client_proc_t retval = glReadPixels; glReadPixels = f; return retval;}
+	virtual glRotatex_client_proc_t set_glRotatex(glRotatex_client_proc_t f) { glRotatex_client_proc_t retval = glRotatex; glRotatex = f; return retval;}
+	virtual glSampleCoverage_client_proc_t set_glSampleCoverage(glSampleCoverage_client_proc_t f) { glSampleCoverage_client_proc_t retval = glSampleCoverage; glSampleCoverage = f; return retval;}
+	virtual glSampleCoveragex_client_proc_t set_glSampleCoveragex(glSampleCoveragex_client_proc_t f) { glSampleCoveragex_client_proc_t retval = glSampleCoveragex; glSampleCoveragex = f; return retval;}
+	virtual glScalex_client_proc_t set_glScalex(glScalex_client_proc_t f) { glScalex_client_proc_t retval = glScalex; glScalex = f; return retval;}
+	virtual glScissor_client_proc_t set_glScissor(glScissor_client_proc_t f) { glScissor_client_proc_t retval = glScissor; glScissor = f; return retval;}
+	virtual glShadeModel_client_proc_t set_glShadeModel(glShadeModel_client_proc_t f) { glShadeModel_client_proc_t retval = glShadeModel; glShadeModel = f; return retval;}
+	virtual glStencilFunc_client_proc_t set_glStencilFunc(glStencilFunc_client_proc_t f) { glStencilFunc_client_proc_t retval = glStencilFunc; glStencilFunc = f; return retval;}
+	virtual glStencilMask_client_proc_t set_glStencilMask(glStencilMask_client_proc_t f) { glStencilMask_client_proc_t retval = glStencilMask; glStencilMask = f; return retval;}
+	virtual glStencilOp_client_proc_t set_glStencilOp(glStencilOp_client_proc_t f) { glStencilOp_client_proc_t retval = glStencilOp; glStencilOp = f; return retval;}
+	virtual glTexCoordPointer_client_proc_t set_glTexCoordPointer(glTexCoordPointer_client_proc_t f) { glTexCoordPointer_client_proc_t retval = glTexCoordPointer; glTexCoordPointer = f; return retval;}
+	virtual glTexEnvi_client_proc_t set_glTexEnvi(glTexEnvi_client_proc_t f) { glTexEnvi_client_proc_t retval = glTexEnvi; glTexEnvi = f; return retval;}
+	virtual glTexEnvx_client_proc_t set_glTexEnvx(glTexEnvx_client_proc_t f) { glTexEnvx_client_proc_t retval = glTexEnvx; glTexEnvx = f; return retval;}
+	virtual glTexEnviv_client_proc_t set_glTexEnviv(glTexEnviv_client_proc_t f) { glTexEnviv_client_proc_t retval = glTexEnviv; glTexEnviv = f; return retval;}
+	virtual glTexEnvxv_client_proc_t set_glTexEnvxv(glTexEnvxv_client_proc_t f) { glTexEnvxv_client_proc_t retval = glTexEnvxv; glTexEnvxv = f; return retval;}
+	virtual glTexImage2D_client_proc_t set_glTexImage2D(glTexImage2D_client_proc_t f) { glTexImage2D_client_proc_t retval = glTexImage2D; glTexImage2D = f; return retval;}
+	virtual glTexParameteri_client_proc_t set_glTexParameteri(glTexParameteri_client_proc_t f) { glTexParameteri_client_proc_t retval = glTexParameteri; glTexParameteri = f; return retval;}
+	virtual glTexParameterx_client_proc_t set_glTexParameterx(glTexParameterx_client_proc_t f) { glTexParameterx_client_proc_t retval = glTexParameterx; glTexParameterx = f; return retval;}
+	virtual glTexParameteriv_client_proc_t set_glTexParameteriv(glTexParameteriv_client_proc_t f) { glTexParameteriv_client_proc_t retval = glTexParameteriv; glTexParameteriv = f; return retval;}
+	virtual glTexParameterxv_client_proc_t set_glTexParameterxv(glTexParameterxv_client_proc_t f) { glTexParameterxv_client_proc_t retval = glTexParameterxv; glTexParameterxv = f; return retval;}
+	virtual glTexSubImage2D_client_proc_t set_glTexSubImage2D(glTexSubImage2D_client_proc_t f) { glTexSubImage2D_client_proc_t retval = glTexSubImage2D; glTexSubImage2D = f; return retval;}
+	virtual glTranslatex_client_proc_t set_glTranslatex(glTranslatex_client_proc_t f) { glTranslatex_client_proc_t retval = glTranslatex; glTranslatex = f; return retval;}
+	virtual glVertexPointer_client_proc_t set_glVertexPointer(glVertexPointer_client_proc_t f) { glVertexPointer_client_proc_t retval = glVertexPointer; glVertexPointer = f; return retval;}
+	virtual glViewport_client_proc_t set_glViewport(glViewport_client_proc_t f) { glViewport_client_proc_t retval = glViewport; glViewport = f; return retval;}
+	virtual glPointSizePointerOES_client_proc_t set_glPointSizePointerOES(glPointSizePointerOES_client_proc_t f) { glPointSizePointerOES_client_proc_t retval = glPointSizePointerOES; glPointSizePointerOES = f; return retval;}
+	virtual glVertexPointerOffset_client_proc_t set_glVertexPointerOffset(glVertexPointerOffset_client_proc_t f) { glVertexPointerOffset_client_proc_t retval = glVertexPointerOffset; glVertexPointerOffset = f; return retval;}
+	virtual glColorPointerOffset_client_proc_t set_glColorPointerOffset(glColorPointerOffset_client_proc_t f) { glColorPointerOffset_client_proc_t retval = glColorPointerOffset; glColorPointerOffset = f; return retval;}
+	virtual glNormalPointerOffset_client_proc_t set_glNormalPointerOffset(glNormalPointerOffset_client_proc_t f) { glNormalPointerOffset_client_proc_t retval = glNormalPointerOffset; glNormalPointerOffset = f; return retval;}
+	virtual glPointSizePointerOffset_client_proc_t set_glPointSizePointerOffset(glPointSizePointerOffset_client_proc_t f) { glPointSizePointerOffset_client_proc_t retval = glPointSizePointerOffset; glPointSizePointerOffset = f; return retval;}
+	virtual glTexCoordPointerOffset_client_proc_t set_glTexCoordPointerOffset(glTexCoordPointerOffset_client_proc_t f) { glTexCoordPointerOffset_client_proc_t retval = glTexCoordPointerOffset; glTexCoordPointerOffset = f; return retval;}
+	virtual glWeightPointerOffset_client_proc_t set_glWeightPointerOffset(glWeightPointerOffset_client_proc_t f) { glWeightPointerOffset_client_proc_t retval = glWeightPointerOffset; glWeightPointerOffset = f; return retval;}
+	virtual glMatrixIndexPointerOffset_client_proc_t set_glMatrixIndexPointerOffset(glMatrixIndexPointerOffset_client_proc_t f) { glMatrixIndexPointerOffset_client_proc_t retval = glMatrixIndexPointerOffset; glMatrixIndexPointerOffset = f; return retval;}
+	virtual glVertexPointerData_client_proc_t set_glVertexPointerData(glVertexPointerData_client_proc_t f) { glVertexPointerData_client_proc_t retval = glVertexPointerData; glVertexPointerData = f; return retval;}
+	virtual glColorPointerData_client_proc_t set_glColorPointerData(glColorPointerData_client_proc_t f) { glColorPointerData_client_proc_t retval = glColorPointerData; glColorPointerData = f; return retval;}
+	virtual glNormalPointerData_client_proc_t set_glNormalPointerData(glNormalPointerData_client_proc_t f) { glNormalPointerData_client_proc_t retval = glNormalPointerData; glNormalPointerData = f; return retval;}
+	virtual glTexCoordPointerData_client_proc_t set_glTexCoordPointerData(glTexCoordPointerData_client_proc_t f) { glTexCoordPointerData_client_proc_t retval = glTexCoordPointerData; glTexCoordPointerData = f; return retval;}
+	virtual glPointSizePointerData_client_proc_t set_glPointSizePointerData(glPointSizePointerData_client_proc_t f) { glPointSizePointerData_client_proc_t retval = glPointSizePointerData; glPointSizePointerData = f; return retval;}
+	virtual glWeightPointerData_client_proc_t set_glWeightPointerData(glWeightPointerData_client_proc_t f) { glWeightPointerData_client_proc_t retval = glWeightPointerData; glWeightPointerData = f; return retval;}
+	virtual glMatrixIndexPointerData_client_proc_t set_glMatrixIndexPointerData(glMatrixIndexPointerData_client_proc_t f) { glMatrixIndexPointerData_client_proc_t retval = glMatrixIndexPointerData; glMatrixIndexPointerData = f; return retval;}
+	virtual glDrawElementsOffset_client_proc_t set_glDrawElementsOffset(glDrawElementsOffset_client_proc_t f) { glDrawElementsOffset_client_proc_t retval = glDrawElementsOffset; glDrawElementsOffset = f; return retval;}
+	virtual glDrawElementsData_client_proc_t set_glDrawElementsData(glDrawElementsData_client_proc_t f) { glDrawElementsData_client_proc_t retval = glDrawElementsData; glDrawElementsData = f; return retval;}
+	virtual glGetCompressedTextureFormats_client_proc_t set_glGetCompressedTextureFormats(glGetCompressedTextureFormats_client_proc_t f) { glGetCompressedTextureFormats_client_proc_t retval = glGetCompressedTextureFormats; glGetCompressedTextureFormats = f; return retval;}
+	virtual glFinishRoundTrip_client_proc_t set_glFinishRoundTrip(glFinishRoundTrip_client_proc_t f) { glFinishRoundTrip_client_proc_t retval = glFinishRoundTrip; glFinishRoundTrip = f; return retval;}
+	virtual glBlendEquationSeparateOES_client_proc_t set_glBlendEquationSeparateOES(glBlendEquationSeparateOES_client_proc_t f) { glBlendEquationSeparateOES_client_proc_t retval = glBlendEquationSeparateOES; glBlendEquationSeparateOES = f; return retval;}
+	virtual glBlendFuncSeparateOES_client_proc_t set_glBlendFuncSeparateOES(glBlendFuncSeparateOES_client_proc_t f) { glBlendFuncSeparateOES_client_proc_t retval = glBlendFuncSeparateOES; glBlendFuncSeparateOES = f; return retval;}
+	virtual glBlendEquationOES_client_proc_t set_glBlendEquationOES(glBlendEquationOES_client_proc_t f) { glBlendEquationOES_client_proc_t retval = glBlendEquationOES; glBlendEquationOES = f; return retval;}
+	virtual glDrawTexsOES_client_proc_t set_glDrawTexsOES(glDrawTexsOES_client_proc_t f) { glDrawTexsOES_client_proc_t retval = glDrawTexsOES; glDrawTexsOES = f; return retval;}
+	virtual glDrawTexiOES_client_proc_t set_glDrawTexiOES(glDrawTexiOES_client_proc_t f) { glDrawTexiOES_client_proc_t retval = glDrawTexiOES; glDrawTexiOES = f; return retval;}
+	virtual glDrawTexxOES_client_proc_t set_glDrawTexxOES(glDrawTexxOES_client_proc_t f) { glDrawTexxOES_client_proc_t retval = glDrawTexxOES; glDrawTexxOES = f; return retval;}
+	virtual glDrawTexsvOES_client_proc_t set_glDrawTexsvOES(glDrawTexsvOES_client_proc_t f) { glDrawTexsvOES_client_proc_t retval = glDrawTexsvOES; glDrawTexsvOES = f; return retval;}
+	virtual glDrawTexivOES_client_proc_t set_glDrawTexivOES(glDrawTexivOES_client_proc_t f) { glDrawTexivOES_client_proc_t retval = glDrawTexivOES; glDrawTexivOES = f; return retval;}
+	virtual glDrawTexxvOES_client_proc_t set_glDrawTexxvOES(glDrawTexxvOES_client_proc_t f) { glDrawTexxvOES_client_proc_t retval = glDrawTexxvOES; glDrawTexxvOES = f; return retval;}
+	virtual glDrawTexfOES_client_proc_t set_glDrawTexfOES(glDrawTexfOES_client_proc_t f) { glDrawTexfOES_client_proc_t retval = glDrawTexfOES; glDrawTexfOES = f; return retval;}
+	virtual glDrawTexfvOES_client_proc_t set_glDrawTexfvOES(glDrawTexfvOES_client_proc_t f) { glDrawTexfvOES_client_proc_t retval = glDrawTexfvOES; glDrawTexfvOES = f; return retval;}
+	virtual glEGLImageTargetTexture2DOES_client_proc_t set_glEGLImageTargetTexture2DOES(glEGLImageTargetTexture2DOES_client_proc_t f) { glEGLImageTargetTexture2DOES_client_proc_t retval = glEGLImageTargetTexture2DOES; glEGLImageTargetTexture2DOES = f; return retval;}
+	virtual glEGLImageTargetRenderbufferStorageOES_client_proc_t set_glEGLImageTargetRenderbufferStorageOES(glEGLImageTargetRenderbufferStorageOES_client_proc_t f) { glEGLImageTargetRenderbufferStorageOES_client_proc_t retval = glEGLImageTargetRenderbufferStorageOES; glEGLImageTargetRenderbufferStorageOES = f; return retval;}
+	virtual glAlphaFuncxOES_client_proc_t set_glAlphaFuncxOES(glAlphaFuncxOES_client_proc_t f) { glAlphaFuncxOES_client_proc_t retval = glAlphaFuncxOES; glAlphaFuncxOES = f; return retval;}
+	virtual glClearColorxOES_client_proc_t set_glClearColorxOES(glClearColorxOES_client_proc_t f) { glClearColorxOES_client_proc_t retval = glClearColorxOES; glClearColorxOES = f; return retval;}
+	virtual glClearDepthxOES_client_proc_t set_glClearDepthxOES(glClearDepthxOES_client_proc_t f) { glClearDepthxOES_client_proc_t retval = glClearDepthxOES; glClearDepthxOES = f; return retval;}
+	virtual glClipPlanexOES_client_proc_t set_glClipPlanexOES(glClipPlanexOES_client_proc_t f) { glClipPlanexOES_client_proc_t retval = glClipPlanexOES; glClipPlanexOES = f; return retval;}
+	virtual glClipPlanexIMG_client_proc_t set_glClipPlanexIMG(glClipPlanexIMG_client_proc_t f) { glClipPlanexIMG_client_proc_t retval = glClipPlanexIMG; glClipPlanexIMG = f; return retval;}
+	virtual glColor4xOES_client_proc_t set_glColor4xOES(glColor4xOES_client_proc_t f) { glColor4xOES_client_proc_t retval = glColor4xOES; glColor4xOES = f; return retval;}
+	virtual glDepthRangexOES_client_proc_t set_glDepthRangexOES(glDepthRangexOES_client_proc_t f) { glDepthRangexOES_client_proc_t retval = glDepthRangexOES; glDepthRangexOES = f; return retval;}
+	virtual glFogxOES_client_proc_t set_glFogxOES(glFogxOES_client_proc_t f) { glFogxOES_client_proc_t retval = glFogxOES; glFogxOES = f; return retval;}
+	virtual glFogxvOES_client_proc_t set_glFogxvOES(glFogxvOES_client_proc_t f) { glFogxvOES_client_proc_t retval = glFogxvOES; glFogxvOES = f; return retval;}
+	virtual glFrustumxOES_client_proc_t set_glFrustumxOES(glFrustumxOES_client_proc_t f) { glFrustumxOES_client_proc_t retval = glFrustumxOES; glFrustumxOES = f; return retval;}
+	virtual glGetClipPlanexOES_client_proc_t set_glGetClipPlanexOES(glGetClipPlanexOES_client_proc_t f) { glGetClipPlanexOES_client_proc_t retval = glGetClipPlanexOES; glGetClipPlanexOES = f; return retval;}
+	virtual glGetClipPlanex_client_proc_t set_glGetClipPlanex(glGetClipPlanex_client_proc_t f) { glGetClipPlanex_client_proc_t retval = glGetClipPlanex; glGetClipPlanex = f; return retval;}
+	virtual glGetFixedvOES_client_proc_t set_glGetFixedvOES(glGetFixedvOES_client_proc_t f) { glGetFixedvOES_client_proc_t retval = glGetFixedvOES; glGetFixedvOES = f; return retval;}
+	virtual glGetLightxvOES_client_proc_t set_glGetLightxvOES(glGetLightxvOES_client_proc_t f) { glGetLightxvOES_client_proc_t retval = glGetLightxvOES; glGetLightxvOES = f; return retval;}
+	virtual glGetMaterialxvOES_client_proc_t set_glGetMaterialxvOES(glGetMaterialxvOES_client_proc_t f) { glGetMaterialxvOES_client_proc_t retval = glGetMaterialxvOES; glGetMaterialxvOES = f; return retval;}
+	virtual glGetTexEnvxvOES_client_proc_t set_glGetTexEnvxvOES(glGetTexEnvxvOES_client_proc_t f) { glGetTexEnvxvOES_client_proc_t retval = glGetTexEnvxvOES; glGetTexEnvxvOES = f; return retval;}
+	virtual glGetTexParameterxvOES_client_proc_t set_glGetTexParameterxvOES(glGetTexParameterxvOES_client_proc_t f) { glGetTexParameterxvOES_client_proc_t retval = glGetTexParameterxvOES; glGetTexParameterxvOES = f; return retval;}
+	virtual glLightModelxOES_client_proc_t set_glLightModelxOES(glLightModelxOES_client_proc_t f) { glLightModelxOES_client_proc_t retval = glLightModelxOES; glLightModelxOES = f; return retval;}
+	virtual glLightModelxvOES_client_proc_t set_glLightModelxvOES(glLightModelxvOES_client_proc_t f) { glLightModelxvOES_client_proc_t retval = glLightModelxvOES; glLightModelxvOES = f; return retval;}
+	virtual glLightxOES_client_proc_t set_glLightxOES(glLightxOES_client_proc_t f) { glLightxOES_client_proc_t retval = glLightxOES; glLightxOES = f; return retval;}
+	virtual glLightxvOES_client_proc_t set_glLightxvOES(glLightxvOES_client_proc_t f) { glLightxvOES_client_proc_t retval = glLightxvOES; glLightxvOES = f; return retval;}
+	virtual glLineWidthxOES_client_proc_t set_glLineWidthxOES(glLineWidthxOES_client_proc_t f) { glLineWidthxOES_client_proc_t retval = glLineWidthxOES; glLineWidthxOES = f; return retval;}
+	virtual glLoadMatrixxOES_client_proc_t set_glLoadMatrixxOES(glLoadMatrixxOES_client_proc_t f) { glLoadMatrixxOES_client_proc_t retval = glLoadMatrixxOES; glLoadMatrixxOES = f; return retval;}
+	virtual glMaterialxOES_client_proc_t set_glMaterialxOES(glMaterialxOES_client_proc_t f) { glMaterialxOES_client_proc_t retval = glMaterialxOES; glMaterialxOES = f; return retval;}
+	virtual glMaterialxvOES_client_proc_t set_glMaterialxvOES(glMaterialxvOES_client_proc_t f) { glMaterialxvOES_client_proc_t retval = glMaterialxvOES; glMaterialxvOES = f; return retval;}
+	virtual glMultMatrixxOES_client_proc_t set_glMultMatrixxOES(glMultMatrixxOES_client_proc_t f) { glMultMatrixxOES_client_proc_t retval = glMultMatrixxOES; glMultMatrixxOES = f; return retval;}
+	virtual glMultiTexCoord4xOES_client_proc_t set_glMultiTexCoord4xOES(glMultiTexCoord4xOES_client_proc_t f) { glMultiTexCoord4xOES_client_proc_t retval = glMultiTexCoord4xOES; glMultiTexCoord4xOES = f; return retval;}
+	virtual glNormal3xOES_client_proc_t set_glNormal3xOES(glNormal3xOES_client_proc_t f) { glNormal3xOES_client_proc_t retval = glNormal3xOES; glNormal3xOES = f; return retval;}
+	virtual glOrthoxOES_client_proc_t set_glOrthoxOES(glOrthoxOES_client_proc_t f) { glOrthoxOES_client_proc_t retval = glOrthoxOES; glOrthoxOES = f; return retval;}
+	virtual glPointParameterxOES_client_proc_t set_glPointParameterxOES(glPointParameterxOES_client_proc_t f) { glPointParameterxOES_client_proc_t retval = glPointParameterxOES; glPointParameterxOES = f; return retval;}
+	virtual glPointParameterxvOES_client_proc_t set_glPointParameterxvOES(glPointParameterxvOES_client_proc_t f) { glPointParameterxvOES_client_proc_t retval = glPointParameterxvOES; glPointParameterxvOES = f; return retval;}
+	virtual glPointSizexOES_client_proc_t set_glPointSizexOES(glPointSizexOES_client_proc_t f) { glPointSizexOES_client_proc_t retval = glPointSizexOES; glPointSizexOES = f; return retval;}
+	virtual glPolygonOffsetxOES_client_proc_t set_glPolygonOffsetxOES(glPolygonOffsetxOES_client_proc_t f) { glPolygonOffsetxOES_client_proc_t retval = glPolygonOffsetxOES; glPolygonOffsetxOES = f; return retval;}
+	virtual glRotatexOES_client_proc_t set_glRotatexOES(glRotatexOES_client_proc_t f) { glRotatexOES_client_proc_t retval = glRotatexOES; glRotatexOES = f; return retval;}
+	virtual glSampleCoveragexOES_client_proc_t set_glSampleCoveragexOES(glSampleCoveragexOES_client_proc_t f) { glSampleCoveragexOES_client_proc_t retval = glSampleCoveragexOES; glSampleCoveragexOES = f; return retval;}
+	virtual glScalexOES_client_proc_t set_glScalexOES(glScalexOES_client_proc_t f) { glScalexOES_client_proc_t retval = glScalexOES; glScalexOES = f; return retval;}
+	virtual glTexEnvxOES_client_proc_t set_glTexEnvxOES(glTexEnvxOES_client_proc_t f) { glTexEnvxOES_client_proc_t retval = glTexEnvxOES; glTexEnvxOES = f; return retval;}
+	virtual glTexEnvxvOES_client_proc_t set_glTexEnvxvOES(glTexEnvxvOES_client_proc_t f) { glTexEnvxvOES_client_proc_t retval = glTexEnvxvOES; glTexEnvxvOES = f; return retval;}
+	virtual glTexParameterxOES_client_proc_t set_glTexParameterxOES(glTexParameterxOES_client_proc_t f) { glTexParameterxOES_client_proc_t retval = glTexParameterxOES; glTexParameterxOES = f; return retval;}
+	virtual glTexParameterxvOES_client_proc_t set_glTexParameterxvOES(glTexParameterxvOES_client_proc_t f) { glTexParameterxvOES_client_proc_t retval = glTexParameterxvOES; glTexParameterxvOES = f; return retval;}
+	virtual glTranslatexOES_client_proc_t set_glTranslatexOES(glTranslatexOES_client_proc_t f) { glTranslatexOES_client_proc_t retval = glTranslatexOES; glTranslatexOES = f; return retval;}
+	virtual glIsRenderbufferOES_client_proc_t set_glIsRenderbufferOES(glIsRenderbufferOES_client_proc_t f) { glIsRenderbufferOES_client_proc_t retval = glIsRenderbufferOES; glIsRenderbufferOES = f; return retval;}
+	virtual glBindRenderbufferOES_client_proc_t set_glBindRenderbufferOES(glBindRenderbufferOES_client_proc_t f) { glBindRenderbufferOES_client_proc_t retval = glBindRenderbufferOES; glBindRenderbufferOES = f; return retval;}
+	virtual glDeleteRenderbuffersOES_client_proc_t set_glDeleteRenderbuffersOES(glDeleteRenderbuffersOES_client_proc_t f) { glDeleteRenderbuffersOES_client_proc_t retval = glDeleteRenderbuffersOES; glDeleteRenderbuffersOES = f; return retval;}
+	virtual glGenRenderbuffersOES_client_proc_t set_glGenRenderbuffersOES(glGenRenderbuffersOES_client_proc_t f) { glGenRenderbuffersOES_client_proc_t retval = glGenRenderbuffersOES; glGenRenderbuffersOES = f; return retval;}
+	virtual glRenderbufferStorageOES_client_proc_t set_glRenderbufferStorageOES(glRenderbufferStorageOES_client_proc_t f) { glRenderbufferStorageOES_client_proc_t retval = glRenderbufferStorageOES; glRenderbufferStorageOES = f; return retval;}
+	virtual glGetRenderbufferParameterivOES_client_proc_t set_glGetRenderbufferParameterivOES(glGetRenderbufferParameterivOES_client_proc_t f) { glGetRenderbufferParameterivOES_client_proc_t retval = glGetRenderbufferParameterivOES; glGetRenderbufferParameterivOES = f; return retval;}
+	virtual glIsFramebufferOES_client_proc_t set_glIsFramebufferOES(glIsFramebufferOES_client_proc_t f) { glIsFramebufferOES_client_proc_t retval = glIsFramebufferOES; glIsFramebufferOES = f; return retval;}
+	virtual glBindFramebufferOES_client_proc_t set_glBindFramebufferOES(glBindFramebufferOES_client_proc_t f) { glBindFramebufferOES_client_proc_t retval = glBindFramebufferOES; glBindFramebufferOES = f; return retval;}
+	virtual glDeleteFramebuffersOES_client_proc_t set_glDeleteFramebuffersOES(glDeleteFramebuffersOES_client_proc_t f) { glDeleteFramebuffersOES_client_proc_t retval = glDeleteFramebuffersOES; glDeleteFramebuffersOES = f; return retval;}
+	virtual glGenFramebuffersOES_client_proc_t set_glGenFramebuffersOES(glGenFramebuffersOES_client_proc_t f) { glGenFramebuffersOES_client_proc_t retval = glGenFramebuffersOES; glGenFramebuffersOES = f; return retval;}
+	virtual glCheckFramebufferStatusOES_client_proc_t set_glCheckFramebufferStatusOES(glCheckFramebufferStatusOES_client_proc_t f) { glCheckFramebufferStatusOES_client_proc_t retval = glCheckFramebufferStatusOES; glCheckFramebufferStatusOES = f; return retval;}
+	virtual glFramebufferRenderbufferOES_client_proc_t set_glFramebufferRenderbufferOES(glFramebufferRenderbufferOES_client_proc_t f) { glFramebufferRenderbufferOES_client_proc_t retval = glFramebufferRenderbufferOES; glFramebufferRenderbufferOES = f; return retval;}
+	virtual glFramebufferTexture2DOES_client_proc_t set_glFramebufferTexture2DOES(glFramebufferTexture2DOES_client_proc_t f) { glFramebufferTexture2DOES_client_proc_t retval = glFramebufferTexture2DOES; glFramebufferTexture2DOES = f; return retval;}
+	virtual glGetFramebufferAttachmentParameterivOES_client_proc_t set_glGetFramebufferAttachmentParameterivOES(glGetFramebufferAttachmentParameterivOES_client_proc_t f) { glGetFramebufferAttachmentParameterivOES_client_proc_t retval = glGetFramebufferAttachmentParameterivOES; glGetFramebufferAttachmentParameterivOES = f; return retval;}
+	virtual glGenerateMipmapOES_client_proc_t set_glGenerateMipmapOES(glGenerateMipmapOES_client_proc_t f) { glGenerateMipmapOES_client_proc_t retval = glGenerateMipmapOES; glGenerateMipmapOES = f; return retval;}
+	virtual glMapBufferOES_client_proc_t set_glMapBufferOES(glMapBufferOES_client_proc_t f) { glMapBufferOES_client_proc_t retval = glMapBufferOES; glMapBufferOES = f; return retval;}
+	virtual glUnmapBufferOES_client_proc_t set_glUnmapBufferOES(glUnmapBufferOES_client_proc_t f) { glUnmapBufferOES_client_proc_t retval = glUnmapBufferOES; glUnmapBufferOES = f; return retval;}
+	virtual glGetBufferPointervOES_client_proc_t set_glGetBufferPointervOES(glGetBufferPointervOES_client_proc_t f) { glGetBufferPointervOES_client_proc_t retval = glGetBufferPointervOES; glGetBufferPointervOES = f; return retval;}
+	virtual glCurrentPaletteMatrixOES_client_proc_t set_glCurrentPaletteMatrixOES(glCurrentPaletteMatrixOES_client_proc_t f) { glCurrentPaletteMatrixOES_client_proc_t retval = glCurrentPaletteMatrixOES; glCurrentPaletteMatrixOES = f; return retval;}
+	virtual glLoadPaletteFromModelViewMatrixOES_client_proc_t set_glLoadPaletteFromModelViewMatrixOES(glLoadPaletteFromModelViewMatrixOES_client_proc_t f) { glLoadPaletteFromModelViewMatrixOES_client_proc_t retval = glLoadPaletteFromModelViewMatrixOES; glLoadPaletteFromModelViewMatrixOES = f; return retval;}
+	virtual glMatrixIndexPointerOES_client_proc_t set_glMatrixIndexPointerOES(glMatrixIndexPointerOES_client_proc_t f) { glMatrixIndexPointerOES_client_proc_t retval = glMatrixIndexPointerOES; glMatrixIndexPointerOES = f; return retval;}
+	virtual glWeightPointerOES_client_proc_t set_glWeightPointerOES(glWeightPointerOES_client_proc_t f) { glWeightPointerOES_client_proc_t retval = glWeightPointerOES; glWeightPointerOES = f; return retval;}
+	virtual glQueryMatrixxOES_client_proc_t set_glQueryMatrixxOES(glQueryMatrixxOES_client_proc_t f) { glQueryMatrixxOES_client_proc_t retval = glQueryMatrixxOES; glQueryMatrixxOES = f; return retval;}
+	virtual glDepthRangefOES_client_proc_t set_glDepthRangefOES(glDepthRangefOES_client_proc_t f) { glDepthRangefOES_client_proc_t retval = glDepthRangefOES; glDepthRangefOES = f; return retval;}
+	virtual glFrustumfOES_client_proc_t set_glFrustumfOES(glFrustumfOES_client_proc_t f) { glFrustumfOES_client_proc_t retval = glFrustumfOES; glFrustumfOES = f; return retval;}
+	virtual glOrthofOES_client_proc_t set_glOrthofOES(glOrthofOES_client_proc_t f) { glOrthofOES_client_proc_t retval = glOrthofOES; glOrthofOES = f; return retval;}
+	virtual glClipPlanefOES_client_proc_t set_glClipPlanefOES(glClipPlanefOES_client_proc_t f) { glClipPlanefOES_client_proc_t retval = glClipPlanefOES; glClipPlanefOES = f; return retval;}
+	virtual glClipPlanefIMG_client_proc_t set_glClipPlanefIMG(glClipPlanefIMG_client_proc_t f) { glClipPlanefIMG_client_proc_t retval = glClipPlanefIMG; glClipPlanefIMG = f; return retval;}
+	virtual glGetClipPlanefOES_client_proc_t set_glGetClipPlanefOES(glGetClipPlanefOES_client_proc_t f) { glGetClipPlanefOES_client_proc_t retval = glGetClipPlanefOES; glGetClipPlanefOES = f; return retval;}
+	virtual glClearDepthfOES_client_proc_t set_glClearDepthfOES(glClearDepthfOES_client_proc_t f) { glClearDepthfOES_client_proc_t retval = glClearDepthfOES; glClearDepthfOES = f; return retval;}
+	virtual glTexGenfOES_client_proc_t set_glTexGenfOES(glTexGenfOES_client_proc_t f) { glTexGenfOES_client_proc_t retval = glTexGenfOES; glTexGenfOES = f; return retval;}
+	virtual glTexGenfvOES_client_proc_t set_glTexGenfvOES(glTexGenfvOES_client_proc_t f) { glTexGenfvOES_client_proc_t retval = glTexGenfvOES; glTexGenfvOES = f; return retval;}
+	virtual glTexGeniOES_client_proc_t set_glTexGeniOES(glTexGeniOES_client_proc_t f) { glTexGeniOES_client_proc_t retval = glTexGeniOES; glTexGeniOES = f; return retval;}
+	virtual glTexGenivOES_client_proc_t set_glTexGenivOES(glTexGenivOES_client_proc_t f) { glTexGenivOES_client_proc_t retval = glTexGenivOES; glTexGenivOES = f; return retval;}
+	virtual glTexGenxOES_client_proc_t set_glTexGenxOES(glTexGenxOES_client_proc_t f) { glTexGenxOES_client_proc_t retval = glTexGenxOES; glTexGenxOES = f; return retval;}
+	virtual glTexGenxvOES_client_proc_t set_glTexGenxvOES(glTexGenxvOES_client_proc_t f) { glTexGenxvOES_client_proc_t retval = glTexGenxvOES; glTexGenxvOES = f; return retval;}
+	virtual glGetTexGenfvOES_client_proc_t set_glGetTexGenfvOES(glGetTexGenfvOES_client_proc_t f) { glGetTexGenfvOES_client_proc_t retval = glGetTexGenfvOES; glGetTexGenfvOES = f; return retval;}
+	virtual glGetTexGenivOES_client_proc_t set_glGetTexGenivOES(glGetTexGenivOES_client_proc_t f) { glGetTexGenivOES_client_proc_t retval = glGetTexGenivOES; glGetTexGenivOES = f; return retval;}
+	virtual glGetTexGenxvOES_client_proc_t set_glGetTexGenxvOES(glGetTexGenxvOES_client_proc_t f) { glGetTexGenxvOES_client_proc_t retval = glGetTexGenxvOES; glGetTexGenxvOES = f; return retval;}
+	virtual glBindVertexArrayOES_client_proc_t set_glBindVertexArrayOES(glBindVertexArrayOES_client_proc_t f) { glBindVertexArrayOES_client_proc_t retval = glBindVertexArrayOES; glBindVertexArrayOES = f; return retval;}
+	virtual glDeleteVertexArraysOES_client_proc_t set_glDeleteVertexArraysOES(glDeleteVertexArraysOES_client_proc_t f) { glDeleteVertexArraysOES_client_proc_t retval = glDeleteVertexArraysOES; glDeleteVertexArraysOES = f; return retval;}
+	virtual glGenVertexArraysOES_client_proc_t set_glGenVertexArraysOES(glGenVertexArraysOES_client_proc_t f) { glGenVertexArraysOES_client_proc_t retval = glGenVertexArraysOES; glGenVertexArraysOES = f; return retval;}
+	virtual glIsVertexArrayOES_client_proc_t set_glIsVertexArrayOES(glIsVertexArrayOES_client_proc_t f) { glIsVertexArrayOES_client_proc_t retval = glIsVertexArrayOES; glIsVertexArrayOES = f; return retval;}
+	virtual glDiscardFramebufferEXT_client_proc_t set_glDiscardFramebufferEXT(glDiscardFramebufferEXT_client_proc_t f) { glDiscardFramebufferEXT_client_proc_t retval = glDiscardFramebufferEXT; glDiscardFramebufferEXT = f; return retval;}
+	virtual glMultiDrawArraysEXT_client_proc_t set_glMultiDrawArraysEXT(glMultiDrawArraysEXT_client_proc_t f) { glMultiDrawArraysEXT_client_proc_t retval = glMultiDrawArraysEXT; glMultiDrawArraysEXT = f; return retval;}
+	virtual glMultiDrawElementsEXT_client_proc_t set_glMultiDrawElementsEXT(glMultiDrawElementsEXT_client_proc_t f) { glMultiDrawElementsEXT_client_proc_t retval = glMultiDrawElementsEXT; glMultiDrawElementsEXT = f; return retval;}
+	virtual glMultiDrawArraysSUN_client_proc_t set_glMultiDrawArraysSUN(glMultiDrawArraysSUN_client_proc_t f) { glMultiDrawArraysSUN_client_proc_t retval = glMultiDrawArraysSUN; glMultiDrawArraysSUN = f; return retval;}
+	virtual glMultiDrawElementsSUN_client_proc_t set_glMultiDrawElementsSUN(glMultiDrawElementsSUN_client_proc_t f) { glMultiDrawElementsSUN_client_proc_t retval = glMultiDrawElementsSUN; glMultiDrawElementsSUN = f; return retval;}
+	virtual glRenderbufferStorageMultisampleIMG_client_proc_t set_glRenderbufferStorageMultisampleIMG(glRenderbufferStorageMultisampleIMG_client_proc_t f) { glRenderbufferStorageMultisampleIMG_client_proc_t retval = glRenderbufferStorageMultisampleIMG; glRenderbufferStorageMultisampleIMG = f; return retval;}
+	virtual glFramebufferTexture2DMultisampleIMG_client_proc_t set_glFramebufferTexture2DMultisampleIMG(glFramebufferTexture2DMultisampleIMG_client_proc_t f) { glFramebufferTexture2DMultisampleIMG_client_proc_t retval = glFramebufferTexture2DMultisampleIMG; glFramebufferTexture2DMultisampleIMG = f; return retval;}
+	virtual glDeleteFencesNV_client_proc_t set_glDeleteFencesNV(glDeleteFencesNV_client_proc_t f) { glDeleteFencesNV_client_proc_t retval = glDeleteFencesNV; glDeleteFencesNV = f; return retval;}
+	virtual glGenFencesNV_client_proc_t set_glGenFencesNV(glGenFencesNV_client_proc_t f) { glGenFencesNV_client_proc_t retval = glGenFencesNV; glGenFencesNV = f; return retval;}
+	virtual glIsFenceNV_client_proc_t set_glIsFenceNV(glIsFenceNV_client_proc_t f) { glIsFenceNV_client_proc_t retval = glIsFenceNV; glIsFenceNV = f; return retval;}
+	virtual glTestFenceNV_client_proc_t set_glTestFenceNV(glTestFenceNV_client_proc_t f) { glTestFenceNV_client_proc_t retval = glTestFenceNV; glTestFenceNV = f; return retval;}
+	virtual glGetFenceivNV_client_proc_t set_glGetFenceivNV(glGetFenceivNV_client_proc_t f) { glGetFenceivNV_client_proc_t retval = glGetFenceivNV; glGetFenceivNV = f; return retval;}
+	virtual glFinishFenceNV_client_proc_t set_glFinishFenceNV(glFinishFenceNV_client_proc_t f) { glFinishFenceNV_client_proc_t retval = glFinishFenceNV; glFinishFenceNV = f; return retval;}
+	virtual glSetFenceNV_client_proc_t set_glSetFenceNV(glSetFenceNV_client_proc_t f) { glSetFenceNV_client_proc_t retval = glSetFenceNV; glSetFenceNV = f; return retval;}
+	virtual glGetDriverControlsQCOM_client_proc_t set_glGetDriverControlsQCOM(glGetDriverControlsQCOM_client_proc_t f) { glGetDriverControlsQCOM_client_proc_t retval = glGetDriverControlsQCOM; glGetDriverControlsQCOM = f; return retval;}
+	virtual glGetDriverControlStringQCOM_client_proc_t set_glGetDriverControlStringQCOM(glGetDriverControlStringQCOM_client_proc_t f) { glGetDriverControlStringQCOM_client_proc_t retval = glGetDriverControlStringQCOM; glGetDriverControlStringQCOM = f; return retval;}
+	virtual glEnableDriverControlQCOM_client_proc_t set_glEnableDriverControlQCOM(glEnableDriverControlQCOM_client_proc_t f) { glEnableDriverControlQCOM_client_proc_t retval = glEnableDriverControlQCOM; glEnableDriverControlQCOM = f; return retval;}
+	virtual glDisableDriverControlQCOM_client_proc_t set_glDisableDriverControlQCOM(glDisableDriverControlQCOM_client_proc_t f) { glDisableDriverControlQCOM_client_proc_t retval = glDisableDriverControlQCOM; glDisableDriverControlQCOM = f; return retval;}
+	virtual glExtGetTexturesQCOM_client_proc_t set_glExtGetTexturesQCOM(glExtGetTexturesQCOM_client_proc_t f) { glExtGetTexturesQCOM_client_proc_t retval = glExtGetTexturesQCOM; glExtGetTexturesQCOM = f; return retval;}
+	virtual glExtGetBuffersQCOM_client_proc_t set_glExtGetBuffersQCOM(glExtGetBuffersQCOM_client_proc_t f) { glExtGetBuffersQCOM_client_proc_t retval = glExtGetBuffersQCOM; glExtGetBuffersQCOM = f; return retval;}
+	virtual glExtGetRenderbuffersQCOM_client_proc_t set_glExtGetRenderbuffersQCOM(glExtGetRenderbuffersQCOM_client_proc_t f) { glExtGetRenderbuffersQCOM_client_proc_t retval = glExtGetRenderbuffersQCOM; glExtGetRenderbuffersQCOM = f; return retval;}
+	virtual glExtGetFramebuffersQCOM_client_proc_t set_glExtGetFramebuffersQCOM(glExtGetFramebuffersQCOM_client_proc_t f) { glExtGetFramebuffersQCOM_client_proc_t retval = glExtGetFramebuffersQCOM; glExtGetFramebuffersQCOM = f; return retval;}
+	virtual glExtGetTexLevelParameterivQCOM_client_proc_t set_glExtGetTexLevelParameterivQCOM(glExtGetTexLevelParameterivQCOM_client_proc_t f) { glExtGetTexLevelParameterivQCOM_client_proc_t retval = glExtGetTexLevelParameterivQCOM; glExtGetTexLevelParameterivQCOM = f; return retval;}
+	virtual glExtTexObjectStateOverrideiQCOM_client_proc_t set_glExtTexObjectStateOverrideiQCOM(glExtTexObjectStateOverrideiQCOM_client_proc_t f) { glExtTexObjectStateOverrideiQCOM_client_proc_t retval = glExtTexObjectStateOverrideiQCOM; glExtTexObjectStateOverrideiQCOM = f; return retval;}
+	virtual glExtGetTexSubImageQCOM_client_proc_t set_glExtGetTexSubImageQCOM(glExtGetTexSubImageQCOM_client_proc_t f) { glExtGetTexSubImageQCOM_client_proc_t retval = glExtGetTexSubImageQCOM; glExtGetTexSubImageQCOM = f; return retval;}
+	virtual glExtGetBufferPointervQCOM_client_proc_t set_glExtGetBufferPointervQCOM(glExtGetBufferPointervQCOM_client_proc_t f) { glExtGetBufferPointervQCOM_client_proc_t retval = glExtGetBufferPointervQCOM; glExtGetBufferPointervQCOM = f; return retval;}
+	virtual glExtGetShadersQCOM_client_proc_t set_glExtGetShadersQCOM(glExtGetShadersQCOM_client_proc_t f) { glExtGetShadersQCOM_client_proc_t retval = glExtGetShadersQCOM; glExtGetShadersQCOM = f; return retval;}
+	virtual glExtGetProgramsQCOM_client_proc_t set_glExtGetProgramsQCOM(glExtGetProgramsQCOM_client_proc_t f) { glExtGetProgramsQCOM_client_proc_t retval = glExtGetProgramsQCOM; glExtGetProgramsQCOM = f; return retval;}
+	virtual glExtIsProgramBinaryQCOM_client_proc_t set_glExtIsProgramBinaryQCOM(glExtIsProgramBinaryQCOM_client_proc_t f) { glExtIsProgramBinaryQCOM_client_proc_t retval = glExtIsProgramBinaryQCOM; glExtIsProgramBinaryQCOM = f; return retval;}
+	virtual glExtGetProgramBinarySourceQCOM_client_proc_t set_glExtGetProgramBinarySourceQCOM(glExtGetProgramBinarySourceQCOM_client_proc_t f) { glExtGetProgramBinarySourceQCOM_client_proc_t retval = glExtGetProgramBinarySourceQCOM; glExtGetProgramBinarySourceQCOM = f; return retval;}
+	virtual glStartTilingQCOM_client_proc_t set_glStartTilingQCOM(glStartTilingQCOM_client_proc_t f) { glStartTilingQCOM_client_proc_t retval = glStartTilingQCOM; glStartTilingQCOM = f; return retval;}
+	virtual glEndTilingQCOM_client_proc_t set_glEndTilingQCOM(glEndTilingQCOM_client_proc_t f) { glEndTilingQCOM_client_proc_t retval = glEndTilingQCOM; glEndTilingQCOM = f; return retval;}
+	 virtual ~gl_client_context_t() {}
+
+	typedef gl_client_context_t *CONTEXT_ACCESSOR_TYPE(void);
+	static void setContextAccessor(CONTEXT_ACCESSOR_TYPE *f);
+	int initDispatchByName( void *(*getProc)(const char *name, void *userData), void *userData);
+	virtual void setError(unsigned int  error){};
+	virtual unsigned int getError(){ return 0; };
+};
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_client_proc.h b/tools/emulator/opengl/system/GLESv1_enc/gl_client_proc.h
new file mode 100644
index 0000000..a188657
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_client_proc.h
@@ -0,0 +1,305 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __gl_client_proc_t_h
+#define __gl_client_proc_t_h
+
+
+
+#include "gl_types.h"
+#ifndef gl_APIENTRY
+#define gl_APIENTRY 
+#endif
+typedef void (gl_APIENTRY *glAlphaFunc_client_proc_t) (void * ctx, GLenum, GLclampf);
+typedef void (gl_APIENTRY *glClearColor_client_proc_t) (void * ctx, GLclampf, GLclampf, GLclampf, GLclampf);
+typedef void (gl_APIENTRY *glClearDepthf_client_proc_t) (void * ctx, GLclampf);
+typedef void (gl_APIENTRY *glClipPlanef_client_proc_t) (void * ctx, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glColor4f_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glDepthRangef_client_proc_t) (void * ctx, GLclampf, GLclampf);
+typedef void (gl_APIENTRY *glFogf_client_proc_t) (void * ctx, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glFogfv_client_proc_t) (void * ctx, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glFrustumf_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glGetClipPlanef_client_proc_t) (void * ctx, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glGetFloatv_client_proc_t) (void * ctx, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glGetLightfv_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glGetMaterialfv_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glGetTexEnvfv_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glGetTexParameterfv_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glLightModelf_client_proc_t) (void * ctx, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glLightModelfv_client_proc_t) (void * ctx, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glLightf_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glLightfv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glLineWidth_client_proc_t) (void * ctx, GLfloat);
+typedef void (gl_APIENTRY *glLoadMatrixf_client_proc_t) (void * ctx, const GLfloat*);
+typedef void (gl_APIENTRY *glMaterialf_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glMaterialfv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glMultMatrixf_client_proc_t) (void * ctx, const GLfloat*);
+typedef void (gl_APIENTRY *glMultiTexCoord4f_client_proc_t) (void * ctx, GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glNormal3f_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glOrthof_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glPointParameterf_client_proc_t) (void * ctx, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glPointParameterfv_client_proc_t) (void * ctx, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glPointSize_client_proc_t) (void * ctx, GLfloat);
+typedef void (gl_APIENTRY *glPolygonOffset_client_proc_t) (void * ctx, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glRotatef_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glScalef_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glTexEnvf_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glTexEnvfv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glTexParameterf_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glTexParameterfv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glTranslatef_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glActiveTexture_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glAlphaFuncx_client_proc_t) (void * ctx, GLenum, GLclampx);
+typedef void (gl_APIENTRY *glBindBuffer_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl_APIENTRY *glBindTexture_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl_APIENTRY *glBlendFunc_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef void (gl_APIENTRY *glBufferData_client_proc_t) (void * ctx, GLenum, GLsizeiptr, const GLvoid*, GLenum);
+typedef void (gl_APIENTRY *glBufferSubData_client_proc_t) (void * ctx, GLenum, GLintptr, GLsizeiptr, const GLvoid*);
+typedef void (gl_APIENTRY *glClear_client_proc_t) (void * ctx, GLbitfield);
+typedef void (gl_APIENTRY *glClearColorx_client_proc_t) (void * ctx, GLclampx, GLclampx, GLclampx, GLclampx);
+typedef void (gl_APIENTRY *glClearDepthx_client_proc_t) (void * ctx, GLclampx);
+typedef void (gl_APIENTRY *glClearStencil_client_proc_t) (void * ctx, GLint);
+typedef void (gl_APIENTRY *glClientActiveTexture_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glColor4ub_client_proc_t) (void * ctx, GLubyte, GLubyte, GLubyte, GLubyte);
+typedef void (gl_APIENTRY *glColor4x_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glColorMask_client_proc_t) (void * ctx, GLboolean, GLboolean, GLboolean, GLboolean);
+typedef void (gl_APIENTRY *glColorPointer_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glCompressedTexImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glCompressedTexSubImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glCopyTexImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+typedef void (gl_APIENTRY *glCopyTexSubImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+typedef void (gl_APIENTRY *glCullFace_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glDeleteBuffers_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl_APIENTRY *glDeleteTextures_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl_APIENTRY *glDepthFunc_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glDepthMask_client_proc_t) (void * ctx, GLboolean);
+typedef void (gl_APIENTRY *glDepthRangex_client_proc_t) (void * ctx, GLclampx, GLclampx);
+typedef void (gl_APIENTRY *glDisable_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glDisableClientState_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glDrawArrays_client_proc_t) (void * ctx, GLenum, GLint, GLsizei);
+typedef void (gl_APIENTRY *glDrawElements_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, const GLvoid*);
+typedef void (gl_APIENTRY *glEnable_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glEnableClientState_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glFinish_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glFlush_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glFogx_client_proc_t) (void * ctx, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glFogxv_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glFrontFace_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glFrustumx_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glGetBooleanv_client_proc_t) (void * ctx, GLenum, GLboolean*);
+typedef void (gl_APIENTRY *glGetBufferParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef void (gl_APIENTRY *glClipPlanex_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glGenBuffers_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl_APIENTRY *glGenTextures_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef GLenum (gl_APIENTRY *glGetError_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glGetFixedv_client_proc_t) (void * ctx, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetIntegerv_client_proc_t) (void * ctx, GLenum, GLint*);
+typedef void (gl_APIENTRY *glGetLightxv_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetMaterialxv_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetPointerv_client_proc_t) (void * ctx, GLenum, GLvoid**);
+typedef const GLubyte* (gl_APIENTRY *glGetString_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glGetTexEnviv_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef void (gl_APIENTRY *glGetTexEnvxv_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetTexParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef void (gl_APIENTRY *glGetTexParameterxv_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glHint_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef GLboolean (gl_APIENTRY *glIsBuffer_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl_APIENTRY *glIsEnabled_client_proc_t) (void * ctx, GLenum);
+typedef GLboolean (gl_APIENTRY *glIsTexture_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glLightModelx_client_proc_t) (void * ctx, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glLightModelxv_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glLightx_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glLightxv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glLineWidthx_client_proc_t) (void * ctx, GLfixed);
+typedef void (gl_APIENTRY *glLoadIdentity_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glLoadMatrixx_client_proc_t) (void * ctx, const GLfixed*);
+typedef void (gl_APIENTRY *glLogicOp_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glMaterialx_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glMaterialxv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glMatrixMode_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glMultMatrixx_client_proc_t) (void * ctx, const GLfixed*);
+typedef void (gl_APIENTRY *glMultiTexCoord4x_client_proc_t) (void * ctx, GLenum, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glNormal3x_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glNormalPointer_client_proc_t) (void * ctx, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glOrthox_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glPixelStorei_client_proc_t) (void * ctx, GLenum, GLint);
+typedef void (gl_APIENTRY *glPointParameterx_client_proc_t) (void * ctx, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glPointParameterxv_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glPointSizex_client_proc_t) (void * ctx, GLfixed);
+typedef void (gl_APIENTRY *glPolygonOffsetx_client_proc_t) (void * ctx, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glPopMatrix_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glPushMatrix_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glReadPixels_client_proc_t) (void * ctx, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
+typedef void (gl_APIENTRY *glRotatex_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glSampleCoverage_client_proc_t) (void * ctx, GLclampf, GLboolean);
+typedef void (gl_APIENTRY *glSampleCoveragex_client_proc_t) (void * ctx, GLclampx, GLboolean);
+typedef void (gl_APIENTRY *glScalex_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glScissor_client_proc_t) (void * ctx, GLint, GLint, GLsizei, GLsizei);
+typedef void (gl_APIENTRY *glShadeModel_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glStencilFunc_client_proc_t) (void * ctx, GLenum, GLint, GLuint);
+typedef void (gl_APIENTRY *glStencilMask_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glStencilOp_client_proc_t) (void * ctx, GLenum, GLenum, GLenum);
+typedef void (gl_APIENTRY *glTexCoordPointer_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glTexEnvi_client_proc_t) (void * ctx, GLenum, GLenum, GLint);
+typedef void (gl_APIENTRY *glTexEnvx_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glTexEnviv_client_proc_t) (void * ctx, GLenum, GLenum, const GLint*);
+typedef void (gl_APIENTRY *glTexEnvxv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glTexImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
+typedef void (gl_APIENTRY *glTexParameteri_client_proc_t) (void * ctx, GLenum, GLenum, GLint);
+typedef void (gl_APIENTRY *glTexParameterx_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glTexParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, const GLint*);
+typedef void (gl_APIENTRY *glTexParameterxv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glTexSubImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
+typedef void (gl_APIENTRY *glTranslatex_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glVertexPointer_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glViewport_client_proc_t) (void * ctx, GLint, GLint, GLsizei, GLsizei);
+typedef void (gl_APIENTRY *glPointSizePointerOES_client_proc_t) (void * ctx, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glVertexPointerOffset_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glColorPointerOffset_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glNormalPointerOffset_client_proc_t) (void * ctx, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glPointSizePointerOffset_client_proc_t) (void * ctx, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glTexCoordPointerOffset_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glWeightPointerOffset_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glMatrixIndexPointerOffset_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, GLuint);
+typedef void (gl_APIENTRY *glVertexPointerData_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glColorPointerData_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glNormalPointerData_client_proc_t) (void * ctx, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glTexCoordPointerData_client_proc_t) (void * ctx, GLint, GLint, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glPointSizePointerData_client_proc_t) (void * ctx, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glWeightPointerData_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glMatrixIndexPointerData_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, void*, GLuint);
+typedef void (gl_APIENTRY *glDrawElementsOffset_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, GLuint);
+typedef void (gl_APIENTRY *glDrawElementsData_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, void*, GLuint);
+typedef void (gl_APIENTRY *glGetCompressedTextureFormats_client_proc_t) (void * ctx, int, GLint*);
+typedef int (gl_APIENTRY *glFinishRoundTrip_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glBlendEquationSeparateOES_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef void (gl_APIENTRY *glBlendFuncSeparateOES_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLenum);
+typedef void (gl_APIENTRY *glBlendEquationOES_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glDrawTexsOES_client_proc_t) (void * ctx, GLshort, GLshort, GLshort, GLshort, GLshort);
+typedef void (gl_APIENTRY *glDrawTexiOES_client_proc_t) (void * ctx, GLint, GLint, GLint, GLint, GLint);
+typedef void (gl_APIENTRY *glDrawTexxOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glDrawTexsvOES_client_proc_t) (void * ctx, const GLshort*);
+typedef void (gl_APIENTRY *glDrawTexivOES_client_proc_t) (void * ctx, const GLint*);
+typedef void (gl_APIENTRY *glDrawTexxvOES_client_proc_t) (void * ctx, const GLfixed*);
+typedef void (gl_APIENTRY *glDrawTexfOES_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glDrawTexfvOES_client_proc_t) (void * ctx, const GLfloat*);
+typedef void (gl_APIENTRY *glEGLImageTargetTexture2DOES_client_proc_t) (void * ctx, GLenum, GLeglImageOES);
+typedef void (gl_APIENTRY *glEGLImageTargetRenderbufferStorageOES_client_proc_t) (void * ctx, GLenum, GLeglImageOES);
+typedef void (gl_APIENTRY *glAlphaFuncxOES_client_proc_t) (void * ctx, GLenum, GLclampx);
+typedef void (gl_APIENTRY *glClearColorxOES_client_proc_t) (void * ctx, GLclampx, GLclampx, GLclampx, GLclampx);
+typedef void (gl_APIENTRY *glClearDepthxOES_client_proc_t) (void * ctx, GLclampx);
+typedef void (gl_APIENTRY *glClipPlanexOES_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glClipPlanexIMG_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glColor4xOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glDepthRangexOES_client_proc_t) (void * ctx, GLclampx, GLclampx);
+typedef void (gl_APIENTRY *glFogxOES_client_proc_t) (void * ctx, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glFogxvOES_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glFrustumxOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glGetClipPlanexOES_client_proc_t) (void * ctx, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetClipPlanex_client_proc_t) (void * ctx, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetFixedvOES_client_proc_t) (void * ctx, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetLightxvOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetMaterialxvOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetTexEnvxvOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glGetTexParameterxvOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glLightModelxOES_client_proc_t) (void * ctx, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glLightModelxvOES_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glLightxOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glLightxvOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glLineWidthxOES_client_proc_t) (void * ctx, GLfixed);
+typedef void (gl_APIENTRY *glLoadMatrixxOES_client_proc_t) (void * ctx, const GLfixed*);
+typedef void (gl_APIENTRY *glMaterialxOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glMaterialxvOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glMultMatrixxOES_client_proc_t) (void * ctx, const GLfixed*);
+typedef void (gl_APIENTRY *glMultiTexCoord4xOES_client_proc_t) (void * ctx, GLenum, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glNormal3xOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glOrthoxOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glPointParameterxOES_client_proc_t) (void * ctx, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glPointParameterxvOES_client_proc_t) (void * ctx, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glPointSizexOES_client_proc_t) (void * ctx, GLfixed);
+typedef void (gl_APIENTRY *glPolygonOffsetxOES_client_proc_t) (void * ctx, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glRotatexOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glSampleCoveragexOES_client_proc_t) (void * ctx, GLclampx, GLboolean);
+typedef void (gl_APIENTRY *glScalexOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed);
+typedef void (gl_APIENTRY *glTexEnvxOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glTexEnvxvOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glTexParameterxOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glTexParameterxvOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glTranslatexOES_client_proc_t) (void * ctx, GLfixed, GLfixed, GLfixed);
+typedef GLboolean (gl_APIENTRY *glIsRenderbufferOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glBindRenderbufferOES_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl_APIENTRY *glDeleteRenderbuffersOES_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl_APIENTRY *glGenRenderbuffersOES_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl_APIENTRY *glRenderbufferStorageOES_client_proc_t) (void * ctx, GLenum, GLenum, GLsizei, GLsizei);
+typedef void (gl_APIENTRY *glGetRenderbufferParameterivOES_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef GLboolean (gl_APIENTRY *glIsFramebufferOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glBindFramebufferOES_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl_APIENTRY *glDeleteFramebuffersOES_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl_APIENTRY *glGenFramebuffersOES_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef GLenum (gl_APIENTRY *glCheckFramebufferStatusOES_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glFramebufferRenderbufferOES_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint);
+typedef void (gl_APIENTRY *glFramebufferTexture2DOES_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint, GLint);
+typedef void (gl_APIENTRY *glGetFramebufferAttachmentParameterivOES_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLint*);
+typedef void (gl_APIENTRY *glGenerateMipmapOES_client_proc_t) (void * ctx, GLenum);
+typedef void* (gl_APIENTRY *glMapBufferOES_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef GLboolean (gl_APIENTRY *glUnmapBufferOES_client_proc_t) (void * ctx, GLenum);
+typedef void (gl_APIENTRY *glGetBufferPointervOES_client_proc_t) (void * ctx, GLenum, GLenum, GLvoid**);
+typedef void (gl_APIENTRY *glCurrentPaletteMatrixOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glLoadPaletteFromModelViewMatrixOES_client_proc_t) (void * ctx);
+typedef void (gl_APIENTRY *glMatrixIndexPointerOES_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, const GLvoid*);
+typedef void (gl_APIENTRY *glWeightPointerOES_client_proc_t) (void * ctx, GLint, GLenum, GLsizei, const GLvoid*);
+typedef GLbitfield (gl_APIENTRY *glQueryMatrixxOES_client_proc_t) (void * ctx, GLfixed*, GLint*);
+typedef void (gl_APIENTRY *glDepthRangefOES_client_proc_t) (void * ctx, GLclampf, GLclampf);
+typedef void (gl_APIENTRY *glFrustumfOES_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glOrthofOES_client_proc_t) (void * ctx, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl_APIENTRY *glClipPlanefOES_client_proc_t) (void * ctx, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glClipPlanefIMG_client_proc_t) (void * ctx, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glGetClipPlanefOES_client_proc_t) (void * ctx, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glClearDepthfOES_client_proc_t) (void * ctx, GLclampf);
+typedef void (gl_APIENTRY *glTexGenfOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat);
+typedef void (gl_APIENTRY *glTexGenfvOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLfloat*);
+typedef void (gl_APIENTRY *glTexGeniOES_client_proc_t) (void * ctx, GLenum, GLenum, GLint);
+typedef void (gl_APIENTRY *glTexGenivOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLint*);
+typedef void (gl_APIENTRY *glTexGenxOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed);
+typedef void (gl_APIENTRY *glTexGenxvOES_client_proc_t) (void * ctx, GLenum, GLenum, const GLfixed*);
+typedef void (gl_APIENTRY *glGetTexGenfvOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat*);
+typedef void (gl_APIENTRY *glGetTexGenivOES_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef void (gl_APIENTRY *glGetTexGenxvOES_client_proc_t) (void * ctx, GLenum, GLenum, GLfixed*);
+typedef void (gl_APIENTRY *glBindVertexArrayOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glDeleteVertexArraysOES_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl_APIENTRY *glGenVertexArraysOES_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef GLboolean (gl_APIENTRY *glIsVertexArrayOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glDiscardFramebufferEXT_client_proc_t) (void * ctx, GLenum, GLsizei, const GLenum*);
+typedef void (gl_APIENTRY *glMultiDrawArraysEXT_client_proc_t) (void * ctx, GLenum, GLint*, GLsizei*, GLsizei);
+typedef void (gl_APIENTRY *glMultiDrawElementsEXT_client_proc_t) (void * ctx, GLenum, const GLsizei*, GLenum, const GLvoid**, GLsizei);
+typedef void (gl_APIENTRY *glMultiDrawArraysSUN_client_proc_t) (void * ctx, GLenum, GLint*, GLsizei*, GLsizei);
+typedef void (gl_APIENTRY *glMultiDrawElementsSUN_client_proc_t) (void * ctx, GLenum, const GLsizei*, GLenum, const GLvoid**, GLsizei);
+typedef void (gl_APIENTRY *glRenderbufferStorageMultisampleIMG_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+typedef void (gl_APIENTRY *glFramebufferTexture2DMultisampleIMG_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
+typedef void (gl_APIENTRY *glDeleteFencesNV_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl_APIENTRY *glGenFencesNV_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef GLboolean (gl_APIENTRY *glIsFenceNV_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl_APIENTRY *glTestFenceNV_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glGetFenceivNV_client_proc_t) (void * ctx, GLuint, GLenum, GLint*);
+typedef void (gl_APIENTRY *glFinishFenceNV_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glSetFenceNV_client_proc_t) (void * ctx, GLuint, GLenum);
+typedef void (gl_APIENTRY *glGetDriverControlsQCOM_client_proc_t) (void * ctx, GLint*, GLsizei, GLuint*);
+typedef void (gl_APIENTRY *glGetDriverControlStringQCOM_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef void (gl_APIENTRY *glEnableDriverControlQCOM_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glDisableDriverControlQCOM_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glExtGetTexturesQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl_APIENTRY *glExtGetBuffersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl_APIENTRY *glExtGetRenderbuffersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl_APIENTRY *glExtGetFramebuffersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl_APIENTRY *glExtGetTexLevelParameterivQCOM_client_proc_t) (void * ctx, GLuint, GLenum, GLint, GLenum, GLint*);
+typedef void (gl_APIENTRY *glExtTexObjectStateOverrideiQCOM_client_proc_t) (void * ctx, GLenum, GLenum, GLint);
+typedef void (gl_APIENTRY *glExtGetTexSubImageQCOM_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
+typedef void (gl_APIENTRY *glExtGetBufferPointervQCOM_client_proc_t) (void * ctx, GLenum, GLvoid**);
+typedef void (gl_APIENTRY *glExtGetShadersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl_APIENTRY *glExtGetProgramsQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef GLboolean (gl_APIENTRY *glExtIsProgramBinaryQCOM_client_proc_t) (void * ctx, GLuint);
+typedef void (gl_APIENTRY *glExtGetProgramBinarySourceQCOM_client_proc_t) (void * ctx, GLuint, GLenum, GLchar*, GLint*);
+typedef void (gl_APIENTRY *glStartTilingQCOM_client_proc_t) (void * ctx, GLuint, GLuint, GLuint, GLuint, GLbitfield);
+typedef void (gl_APIENTRY *glEndTilingQCOM_client_proc_t) (void * ctx, GLbitfield);
+
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_enc.cpp b/tools/emulator/opengl/system/GLESv1_enc/gl_enc.cpp
new file mode 100644
index 0000000..0a343df
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_enc.cpp
@@ -0,0 +1,5184 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+
+#include <string.h>
+#include "gl_opcodes.h"
+
+#include "gl_enc.h"
+
+
+#include <stdio.h>
+static void enc_unsupported()
+{
+	ALOGE("Function is unsupported\n");
+}
+
+void glAlphaFunc_enc(void *self , GLenum func, GLclampf ref)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glAlphaFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+		memcpy(ptr, &ref, 4); ptr += 4;
+}
+
+void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearColor;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glClearDepthf_enc(void *self , GLclampf depth)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearDepthf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &depth, 4); ptr += 4;
+}
+
+void glClipPlanef_enc(void *self , GLenum plane, const GLfloat* equation)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_equation =  (4 * sizeof(float));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_equation + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClipPlanef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &plane, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_equation; ptr += 4;
+	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
+}
+
+void glColor4f_enc(void *self , GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColor4f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthRangef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glFogf_enc(void *self , GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFogf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glFogfv_enc(void *self , GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFogfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glFrustumf_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFrustumf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glGetClipPlanef_enc(void *self , GLenum pname, GLfloat* eqn)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_eqn =  (4 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_eqn + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetClipPlanef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_eqn; ptr += 4;
+	stream->readback(eqn, __size_eqn);
+}
+
+void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFloatv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetLightfv_enc(void *self , GLenum light, GLenum pname, GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetLightfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetMaterialfv_enc(void *self , GLenum face, GLenum pname, GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetMaterialfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexEnvfv_enc(void *self , GLenum env, GLenum pname, GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexEnvfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &env, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glLightModelf_enc(void *self , GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightModelf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glLightModelfv_enc(void *self , GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightModelfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glLightf_enc(void *self , GLenum light, GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glLightfv_enc(void *self , GLenum light, GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glLineWidth_enc(void *self , GLfloat width)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLineWidth;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &width, 4); ptr += 4;
+}
+
+void glLoadMatrixf_enc(void *self , const GLfloat* m)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_m =  (16 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_m + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLoadMatrixf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_m; ptr += 4;
+	memcpy(ptr, m, __size_m);ptr += __size_m;
+}
+
+void glMaterialf_enc(void *self , GLenum face, GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMaterialf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glMaterialfv_enc(void *self , GLenum face, GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMaterialfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glMultMatrixf_enc(void *self , const GLfloat* m)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_m =  (16 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_m + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMultMatrixf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_m; ptr += 4;
+	memcpy(ptr, m, __size_m);ptr += __size_m;
+}
+
+void glMultiTexCoord4f_enc(void *self , GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMultiTexCoord4f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &s, 4); ptr += 4;
+		memcpy(ptr, &t, 4); ptr += 4;
+		memcpy(ptr, &r, 4); ptr += 4;
+		memcpy(ptr, &q, 4); ptr += 4;
+}
+
+void glNormal3f_enc(void *self , GLfloat nx, GLfloat ny, GLfloat nz)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glNormal3f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &nx, 4); ptr += 4;
+		memcpy(ptr, &ny, 4); ptr += 4;
+		memcpy(ptr, &nz, 4); ptr += 4;
+}
+
+void glOrthof_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glOrthof;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glPointParameterf_enc(void *self , GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glPointParameterfv_enc(void *self , GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glPointSize_enc(void *self , GLfloat size)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointSize;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+}
+
+void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPolygonOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &factor, 4); ptr += 4;
+		memcpy(ptr, &units, 4); ptr += 4;
+}
+
+void glRotatef_enc(void *self , GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glRotatef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &angle, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glScalef_enc(void *self , GLfloat x, GLfloat y, GLfloat z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glScalef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glTexEnvf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexEnvfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTranslatef_enc(void *self , GLfloat x, GLfloat y, GLfloat z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTranslatef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glActiveTexture_enc(void *self , GLenum texture)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &texture, 4); ptr += 4;
+}
+
+void glAlphaFuncx_enc(void *self , GLenum func, GLclampx ref)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glAlphaFuncx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+		memcpy(ptr, &ref, 4); ptr += 4;
+}
+
+void glBindBuffer_enc(void *self , GLenum target, GLuint buffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &buffer, 4); ptr += 4;
+}
+
+void glBindTexture_enc(void *self , GLenum target, GLuint texture)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &texture, 4); ptr += 4;
+}
+
+void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &sfactor, 4); ptr += 4;
+		memcpy(ptr, &dfactor, 4); ptr += 4;
+}
+
+void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  size;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBufferData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	memcpy(ptr, data, __size_data);ptr += __size_data;
+		memcpy(ptr, &usage, 4); ptr += 4;
+}
+
+void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  size;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	memcpy(ptr, data, __size_data);ptr += __size_data;
+}
+
+void glClear_enc(void *self , GLbitfield mask)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClear;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glClearColorx_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearColorx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glClearDepthx_enc(void *self , GLclampx depth)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearDepthx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &depth, 4); ptr += 4;
+}
+
+void glClearStencil_enc(void *self , GLint s)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearStencil;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &s, 4); ptr += 4;
+}
+
+void glClientActiveTexture_enc(void *self , GLenum texture)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClientActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &texture, 4); ptr += 4;
+}
+
+void glColor4ub_enc(void *self , GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 1 + 1 + 1 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColor4ub;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 1); ptr += 1;
+		memcpy(ptr, &green, 1); ptr += 1;
+		memcpy(ptr, &blue, 1); ptr += 1;
+		memcpy(ptr, &alpha, 1); ptr += 1;
+}
+
+void glColor4x_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColor4x;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 1 + 1 + 1 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColorMask;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 1); ptr += 1;
+		memcpy(ptr, &green, 1); ptr += 1;
+		memcpy(ptr, &blue, 1); ptr += 1;
+		memcpy(ptr, &alpha, 1); ptr += 1;
+}
+
+void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data = ((data != NULL) ?  imageSize : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCompressedTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+		memcpy(ptr, &imageSize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	if (data != NULL) memcpy(ptr, data, __size_data);ptr += __size_data;
+}
+
+void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  imageSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCompressedTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &imageSize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	memcpy(ptr, data, __size_data);ptr += __size_data;
+}
+
+void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCopyTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+}
+
+void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCopyTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glCullFace_enc(void *self , GLenum mode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCullFace;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffers; ptr += 4;
+	memcpy(ptr, buffers, __size_buffers);ptr += __size_buffers;
+}
+
+void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_textures =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_textures + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteTextures;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_textures; ptr += 4;
+	memcpy(ptr, textures, __size_textures);ptr += __size_textures;
+}
+
+void glDepthFunc_enc(void *self , GLenum func)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+}
+
+void glDepthMask_enc(void *self , GLboolean flag)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthMask;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &flag, 1); ptr += 1;
+}
+
+void glDepthRangex_enc(void *self , GLclampx zNear, GLclampx zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthRangex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glDisable_enc(void *self , GLenum cap)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDisable;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &cap, 4); ptr += 4;
+}
+
+void glDisableClientState_enc(void *self , GLenum array)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDisableClientState;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &array, 4); ptr += 4;
+}
+
+void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawArrays;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+		memcpy(ptr, &first, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+}
+
+void glEnable_enc(void *self , GLenum cap)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEnable;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &cap, 4); ptr += 4;
+}
+
+void glEnableClientState_enc(void *self , GLenum array)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEnableClientState;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &array, 4); ptr += 4;
+}
+
+void glFinish_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFinish;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glFlush_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFlush;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glFogx_enc(void *self , GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFogx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glFogxv_enc(void *self , GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFogxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glFrontFace_enc(void *self , GLenum mode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFrontFace;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glFrustumx_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFrustumx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLboolean));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetBooleanv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetBufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glClipPlanex_enc(void *self , GLenum pname, const GLfixed* eqn)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_eqn + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClipPlanex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_eqn; ptr += 4;
+	memcpy(ptr, eqn, __size_eqn);ptr += __size_eqn;
+}
+
+void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffers; ptr += 4;
+	stream->readback(buffers, __size_buffers);
+}
+
+void glGenTextures_enc(void *self , GLsizei n, GLuint* textures)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_textures =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_textures + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenTextures;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_textures; ptr += 4;
+	stream->readback(textures, __size_textures);
+}
+
+GLenum glGetError_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetError;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+
+	GLenum retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glGetFixedv_enc(void *self , GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFixedv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetIntegerv_enc(void *self , GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetIntegerv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetLightxv_enc(void *self , GLenum light, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetLightxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetMaterialxv_enc(void *self , GLenum face, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetMaterialxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexEnviv_enc(void *self , GLenum env, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexEnviv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &env, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexEnvxv_enc(void *self , GLenum env, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexEnvxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &env, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexParameterxv_enc(void *self , GLenum target, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glHint_enc(void *self , GLenum target, GLenum mode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glHint;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+GLboolean glIsBuffer_enc(void *self , GLuint buffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &buffer, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsEnabled_enc(void *self , GLenum cap)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsEnabled;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &cap, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsTexture_enc(void *self , GLuint texture)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &texture, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glLightModelx_enc(void *self , GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightModelx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glLightModelxv_enc(void *self , GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightModelxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glLightx_enc(void *self , GLenum light, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glLightxv_enc(void *self , GLenum light, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glLineWidthx_enc(void *self , GLfixed width)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLineWidthx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &width, 4); ptr += 4;
+}
+
+void glLoadIdentity_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLoadIdentity;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glLoadMatrixx_enc(void *self , const GLfixed* m)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_m =  (16 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_m + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLoadMatrixx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_m; ptr += 4;
+	memcpy(ptr, m, __size_m);ptr += __size_m;
+}
+
+void glLogicOp_enc(void *self , GLenum opcode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLogicOp;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &opcode, 4); ptr += 4;
+}
+
+void glMaterialx_enc(void *self , GLenum face, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMaterialx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glMaterialxv_enc(void *self , GLenum face, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMaterialxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glMatrixMode_enc(void *self , GLenum mode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMatrixMode;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glMultMatrixx_enc(void *self , const GLfixed* m)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_m =  (16 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_m + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMultMatrixx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_m; ptr += 4;
+	memcpy(ptr, m, __size_m);ptr += __size_m;
+}
+
+void glMultiTexCoord4x_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMultiTexCoord4x;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &s, 4); ptr += 4;
+		memcpy(ptr, &t, 4); ptr += 4;
+		memcpy(ptr, &r, 4); ptr += 4;
+		memcpy(ptr, &q, 4); ptr += 4;
+}
+
+void glNormal3x_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glNormal3x;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &nx, 4); ptr += 4;
+		memcpy(ptr, &ny, 4); ptr += 4;
+		memcpy(ptr, &nz, 4); ptr += 4;
+}
+
+void glOrthox_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glOrthox;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glPixelStorei_enc(void *self , GLenum pname, GLint param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPixelStorei;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glPointParameterx_enc(void *self , GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointParameterx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glPointParameterxv_enc(void *self , GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glPointSizex_enc(void *self , GLfixed size)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointSizex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+}
+
+void glPolygonOffsetx_enc(void *self , GLfixed factor, GLfixed units)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPolygonOffsetx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &factor, 4); ptr += 4;
+		memcpy(ptr, &units, 4); ptr += 4;
+}
+
+void glPopMatrix_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPopMatrix;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glPushMatrix_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPushMatrix;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  pixelDataSize(self, width, height, format, type, 1);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glReadPixels;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_pixels; ptr += 4;
+	stream->readback(pixels, __size_pixels);
+}
+
+void glRotatex_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glRotatex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &angle, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glSampleCoverage;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &value, 4); ptr += 4;
+		memcpy(ptr, &invert, 1); ptr += 1;
+}
+
+void glSampleCoveragex_enc(void *self , GLclampx value, GLboolean invert)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glSampleCoveragex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &value, 4); ptr += 4;
+		memcpy(ptr, &invert, 1); ptr += 1;
+}
+
+void glScalex_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glScalex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glScissor;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glShadeModel_enc(void *self , GLenum mode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glShadeModel;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+		memcpy(ptr, &ref, 4); ptr += 4;
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glStencilMask_enc(void *self , GLuint mask)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilMask;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilOp;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fail, 4); ptr += 4;
+		memcpy(ptr, &zfail, 4); ptr += 4;
+		memcpy(ptr, &zpass, 4); ptr += 4;
+}
+
+void glTexEnvi_enc(void *self , GLenum target, GLenum pname, GLint param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvi;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexEnvx_enc(void *self , GLenum target, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexEnviv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnviv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexEnvxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels = ((pixels != NULL) ?  pixelDataSize(self, width, height, format, type, 0) : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	if (pixels != NULL) stream->writeFully(pixels, __size_pixels);
+}
+
+void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameteri;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexParameterx_enc(void *self , GLenum target, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterx;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexParameterxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterxv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  pixelDataSize(self, width, height, format, type, 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	stream->writeFully(pixels, __size_pixels);
+}
+
+void glTranslatex_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTranslatex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glViewport;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glVertexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glColorPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColorPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glNormalPointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glNormalPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glPointSizePointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointSizePointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glTexCoordPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexCoordPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glWeightPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glWeightPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glMatrixIndexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMatrixIndexPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glVertexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glColorPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColorPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glNormalPointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glNormalPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 3, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glTexCoordPointerData_enc(void *self , GLint unit, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexCoordPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &unit, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glPointSizePointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointSizePointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, 1, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glWeightPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glWeightPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glMatrixIndexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMatrixIndexPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char*)data, size, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawElementsOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawElementsData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	memcpy(ptr, data, __size_data);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_formats =  (count * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_formats + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetCompressedTextureFormats;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_formats; ptr += 4;
+	stream->readback(formats, __size_formats);
+}
+
+int glFinishRoundTrip_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFinishRoundTrip;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+
+	int retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glBlendEquationSeparateOES_enc(void *self , GLenum modeRGB, GLenum modeAlpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendEquationSeparateOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &modeRGB, 4); ptr += 4;
+		memcpy(ptr, &modeAlpha, 4); ptr += 4;
+}
+
+void glBlendFuncSeparateOES_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendFuncSeparateOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &srcRGB, 4); ptr += 4;
+		memcpy(ptr, &dstRGB, 4); ptr += 4;
+		memcpy(ptr, &srcAlpha, 4); ptr += 4;
+		memcpy(ptr, &dstAlpha, 4); ptr += 4;
+}
+
+void glBlendEquationOES_enc(void *self , GLenum mode)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendEquationOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glDrawTexsOES_enc(void *self , GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 2 + 2 + 2 + 2 + 2;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexsOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 2); ptr += 2;
+		memcpy(ptr, &y, 2); ptr += 2;
+		memcpy(ptr, &z, 2); ptr += 2;
+		memcpy(ptr, &width, 2); ptr += 2;
+		memcpy(ptr, &height, 2); ptr += 2;
+}
+
+void glDrawTexiOES_enc(void *self , GLint x, GLint y, GLint z, GLint width, GLint height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexiOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glDrawTexxOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glDrawTexsvOES_enc(void *self , const GLshort* coords)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_coords =  (5 * sizeof(GLshort));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_coords + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexsvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_coords; ptr += 4;
+	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
+}
+
+void glDrawTexivOES_enc(void *self , const GLint* coords)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_coords =  (5 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_coords + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexivOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_coords; ptr += 4;
+	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
+}
+
+void glDrawTexxvOES_enc(void *self , const GLfixed* coords)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_coords =  (5 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_coords + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_coords; ptr += 4;
+	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
+}
+
+void glDrawTexfOES_enc(void *self , GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexfOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glDrawTexfvOES_enc(void *self , const GLfloat* coords)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_coords =  (5 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_coords + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawTexfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_coords; ptr += 4;
+	memcpy(ptr, coords, __size_coords);ptr += __size_coords;
+}
+
+void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEGLImageTargetTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &image, 4); ptr += 4;
+}
+
+void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEGLImageTargetRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &image, 4); ptr += 4;
+}
+
+void glAlphaFuncxOES_enc(void *self , GLenum func, GLclampx ref)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glAlphaFuncxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+		memcpy(ptr, &ref, 4); ptr += 4;
+}
+
+void glClearColorxOES_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearColorxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glClearDepthxOES_enc(void *self , GLclampx depth)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearDepthxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &depth, 4); ptr += 4;
+}
+
+void glClipPlanexOES_enc(void *self , GLenum plane, const GLfixed* equation)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_equation =  (4 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_equation + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClipPlanexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &plane, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_equation; ptr += 4;
+	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
+}
+
+void glClipPlanexIMG_enc(void *self , GLenum plane, const GLfixed* equation)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_equation =  (4 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_equation + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClipPlanexIMG;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &plane, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_equation; ptr += 4;
+	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
+}
+
+void glColor4xOES_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColor4xOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glDepthRangexOES_enc(void *self , GLclampx zNear, GLclampx zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthRangexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glFogxOES_enc(void *self , GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFogxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glFogxvOES_enc(void *self , GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFogxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glFrustumxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFrustumxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glGetClipPlanexOES_enc(void *self , GLenum pname, GLfixed* eqn)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_eqn + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetClipPlanexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_eqn; ptr += 4;
+	stream->readback(eqn, __size_eqn);
+}
+
+void glGetClipPlanex_enc(void *self , GLenum pname, GLfixed* eqn)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_eqn =  (4 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_eqn + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetClipPlanex;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_eqn; ptr += 4;
+	stream->readback(eqn, __size_eqn);
+}
+
+void glGetFixedvOES_enc(void *self , GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFixedvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetLightxvOES_enc(void *self , GLenum light, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetLightxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetMaterialxvOES_enc(void *self , GLenum face, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetMaterialxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexEnvxvOES_enc(void *self , GLenum env, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexEnvxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &env, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glLightModelxOES_enc(void *self , GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightModelxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glLightModelxvOES_enc(void *self , GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightModelxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glLightxOES_enc(void *self , GLenum light, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glLightxvOES_enc(void *self , GLenum light, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLightxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &light, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glLineWidthxOES_enc(void *self , GLfixed width)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLineWidthxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &width, 4); ptr += 4;
+}
+
+void glLoadMatrixxOES_enc(void *self , const GLfixed* m)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_m =  (16 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_m + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLoadMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_m; ptr += 4;
+	memcpy(ptr, m, __size_m);ptr += __size_m;
+}
+
+void glMaterialxOES_enc(void *self , GLenum face, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMaterialxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glMaterialxvOES_enc(void *self , GLenum face, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMaterialxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glMultMatrixxOES_enc(void *self , const GLfixed* m)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_m =  (16 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_m + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMultMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_m; ptr += 4;
+	memcpy(ptr, m, __size_m);ptr += __size_m;
+}
+
+void glMultiTexCoord4xOES_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glMultiTexCoord4xOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &s, 4); ptr += 4;
+		memcpy(ptr, &t, 4); ptr += 4;
+		memcpy(ptr, &r, 4); ptr += 4;
+		memcpy(ptr, &q, 4); ptr += 4;
+}
+
+void glNormal3xOES_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glNormal3xOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &nx, 4); ptr += 4;
+		memcpy(ptr, &ny, 4); ptr += 4;
+		memcpy(ptr, &nz, 4); ptr += 4;
+}
+
+void glOrthoxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glOrthoxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glPointParameterxOES_enc(void *self , GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointParameterxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glPointParameterxvOES_enc(void *self , GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glPointSizexOES_enc(void *self , GLfixed size)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPointSizexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &size, 4); ptr += 4;
+}
+
+void glPolygonOffsetxOES_enc(void *self , GLfixed factor, GLfixed units)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPolygonOffsetxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &factor, 4); ptr += 4;
+		memcpy(ptr, &units, 4); ptr += 4;
+}
+
+void glRotatexOES_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glRotatexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &angle, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glSampleCoveragexOES_enc(void *self , GLclampx value, GLboolean invert)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glSampleCoveragexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &value, 4); ptr += 4;
+		memcpy(ptr, &invert, 1); ptr += 1;
+}
+
+void glScalexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glScalexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glTexEnvxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexEnvxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexEnvxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexParameterxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTranslatexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTranslatexOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+GLboolean glIsRenderbufferOES_enc(void *self , GLuint renderbuffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &renderbuffer, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glBindRenderbufferOES_enc(void *self , GLenum target, GLuint renderbuffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &renderbuffer, 4); ptr += 4;
+}
+
+void glDeleteRenderbuffersOES_enc(void *self , GLsizei n, const GLuint* renderbuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_renderbuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteRenderbuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
+	memcpy(ptr, renderbuffers, __size_renderbuffers);ptr += __size_renderbuffers;
+}
+
+void glGenRenderbuffersOES_enc(void *self , GLsizei n, GLuint* renderbuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_renderbuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenRenderbuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
+	stream->readback(renderbuffers, __size_renderbuffers);
+}
+
+void glRenderbufferStorageOES_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glGetRenderbufferParameterivOES_enc(void *self , GLenum target, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetRenderbufferParameterivOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+GLboolean glIsFramebufferOES_enc(void *self , GLuint framebuffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsFramebufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &framebuffer, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glBindFramebufferOES_enc(void *self , GLenum target, GLuint framebuffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindFramebufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &framebuffer, 4); ptr += 4;
+}
+
+void glDeleteFramebuffersOES_enc(void *self , GLsizei n, const GLuint* framebuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_framebuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteFramebuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
+	memcpy(ptr, framebuffers, __size_framebuffers);ptr += __size_framebuffers;
+}
+
+void glGenFramebuffersOES_enc(void *self , GLsizei n, GLuint* framebuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_framebuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenFramebuffersOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
+	stream->readback(framebuffers, __size_framebuffers);
+}
+
+GLenum glCheckFramebufferStatusOES_enc(void *self , GLenum target)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCheckFramebufferStatusOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+
+	GLenum retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glFramebufferRenderbufferOES_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFramebufferRenderbufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &renderbuffertarget, 4); ptr += 4;
+		memcpy(ptr, &renderbuffer, 4); ptr += 4;
+}
+
+void glFramebufferTexture2DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFramebufferTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &textarget, 4); ptr += 4;
+		memcpy(ptr, &texture, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+}
+
+void glGetFramebufferAttachmentParameterivOES_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFramebufferAttachmentParameterivOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGenerateMipmapOES_enc(void *self , GLenum target)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenerateMipmapOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+}
+
+GLboolean glUnmapBufferOES_enc(void *self , GLenum target)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUnmapBufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glCurrentPaletteMatrixOES_enc(void *self , GLuint matrixpaletteindex)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCurrentPaletteMatrixOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &matrixpaletteindex, 4); ptr += 4;
+}
+
+void glLoadPaletteFromModelViewMatrixOES_enc(void *self )
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLoadPaletteFromModelViewMatrixOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+GLbitfield glQueryMatrixxOES_enc(void *self , GLfixed* mantissa, GLint* exponent)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_mantissa =  (16 * sizeof(GLfixed));
+	const unsigned int __size_exponent =  (16 * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_mantissa + __size_exponent + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glQueryMatrixxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_mantissa; ptr += 4;
+	*(unsigned int *)(ptr) = __size_exponent; ptr += 4;
+	stream->readback(mantissa, __size_mantissa);
+	stream->readback(exponent, __size_exponent);
+
+	GLbitfield retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glDepthRangefOES_enc(void *self , GLclampf zNear, GLclampf zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthRangefOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glFrustumfOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFrustumfOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glOrthofOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glOrthofOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &left, 4); ptr += 4;
+		memcpy(ptr, &right, 4); ptr += 4;
+		memcpy(ptr, &bottom, 4); ptr += 4;
+		memcpy(ptr, &top, 4); ptr += 4;
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glClipPlanefOES_enc(void *self , GLenum plane, const GLfloat* equation)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_equation =  (4 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_equation + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClipPlanefOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &plane, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_equation; ptr += 4;
+	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
+}
+
+void glClipPlanefIMG_enc(void *self , GLenum plane, const GLfloat* equation)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_equation =  (4 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_equation + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClipPlanefIMG;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &plane, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_equation; ptr += 4;
+	memcpy(ptr, equation, __size_equation);ptr += __size_equation;
+}
+
+void glGetClipPlanefOES_enc(void *self , GLenum pname, GLfloat* eqn)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_eqn =  (4 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_eqn + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetClipPlanefOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_eqn; ptr += 4;
+	stream->readback(eqn, __size_eqn);
+}
+
+void glClearDepthfOES_enc(void *self , GLclampf depth)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearDepthfOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &depth, 4); ptr += 4;
+}
+
+void glTexGenfOES_enc(void *self , GLenum coord, GLenum pname, GLfloat param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexGenfOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, const GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexGenfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexGeniOES_enc(void *self , GLenum coord, GLenum pname, GLint param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexGeniOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexGenivOES_enc(void *self , GLenum coord, GLenum pname, const GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexGenivOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexGenxOES_enc(void *self , GLenum coord, GLenum pname, GLfixed param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexGenxOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, const GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexGenxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glGetTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, GLfloat* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexGenfvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glGetTexGenivOES_enc(void *self , GLenum coord, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexGenivOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glGetTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, GLfixed* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfixed));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexGenxvOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &coord, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glBindVertexArrayOES_enc(void *self , GLuint array)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &array, 4); ptr += 4;
+}
+
+void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_arrays =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_arrays + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_arrays; ptr += 4;
+	memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays;
+}
+
+void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_arrays =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_arrays + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_arrays; ptr += 4;
+	stream->readback(arrays, __size_arrays);
+}
+
+GLboolean glIsVertexArrayOES_enc(void *self , GLuint array)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &array, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_attachments =  (numAttachments * sizeof(const GLenum));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_attachments + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDiscardFramebufferEXT;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &numAttachments, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_attachments; ptr += 4;
+	memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments;
+}
+
+void glRenderbufferStorageMultisampleIMG_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glRenderbufferStorageMultisampleIMG;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &samples, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glFramebufferTexture2DMultisampleIMG_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFramebufferTexture2DMultisampleIMG;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &textarget, 4); ptr += 4;
+		memcpy(ptr, &texture, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &samples, 4); ptr += 4;
+}
+
+void glDeleteFencesNV_enc(void *self , GLsizei n, const GLuint* fences)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_fences =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_fences + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteFencesNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_fences; ptr += 4;
+	memcpy(ptr, fences, __size_fences);ptr += __size_fences;
+}
+
+void glGenFencesNV_enc(void *self , GLsizei n, GLuint* fences)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_fences =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_fences + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenFencesNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_fences; ptr += 4;
+	memcpy(ptr, fences, __size_fences);ptr += __size_fences;
+}
+
+GLboolean glIsFenceNV_enc(void *self , GLuint fence)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fence, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glTestFenceNV_enc(void *self , GLuint fence)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTestFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fence, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glGetFenceivNV_enc(void *self , GLuint fence, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFenceivNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fence, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glFinishFenceNV_enc(void *self , GLuint fence)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFinishFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fence, 4); ptr += 4;
+}
+
+void glSetFenceNV_enc(void *self , GLuint fence, GLenum condition)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glSetFenceNV;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fence, 4); ptr += 4;
+		memcpy(ptr, &condition, 4); ptr += 4;
+}
+
+void glGetDriverControlsQCOM_enc(void *self , GLint* num, GLsizei size, GLuint* driverControls)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_num =  (1 * sizeof(GLint));
+	const unsigned int __size_driverControls =  (size * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_num + 4 + __size_driverControls + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetDriverControlsQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_num; ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_driverControls; ptr += 4;
+	stream->readback(num, __size_num);
+	stream->readback(driverControls, __size_driverControls);
+}
+
+void glGetDriverControlStringQCOM_enc(void *self , GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_length =  (1 * sizeof(GLsizei));
+	const unsigned int __size_driverControlString =  (1 * sizeof(GLchar));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_length + __size_driverControlString + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetDriverControlStringQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &driverControl, 4); ptr += 4;
+		memcpy(ptr, &bufSize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_length; ptr += 4;
+	*(unsigned int *)(ptr) = __size_driverControlString; ptr += 4;
+	stream->readback(length, __size_length);
+	stream->readback(driverControlString, __size_driverControlString);
+}
+
+void glEnableDriverControlQCOM_enc(void *self , GLuint driverControl)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEnableDriverControlQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &driverControl, 4); ptr += 4;
+}
+
+void glDisableDriverControlQCOM_enc(void *self , GLuint driverControl)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDisableDriverControlQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &driverControl, 4); ptr += 4;
+}
+
+void glExtGetTexturesQCOM_enc(void *self , GLuint* textures, GLint maxTextures, GLint* numTextures)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_textures =  (maxTextures * sizeof(GLuint));
+	const unsigned int __size_numTextures =  (1 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_textures + 4 + __size_numTextures + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetTexturesQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_textures; ptr += 4;
+		memcpy(ptr, &maxTextures, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_numTextures; ptr += 4;
+	stream->readback(textures, __size_textures);
+	stream->readback(numTextures, __size_numTextures);
+}
+
+void glExtGetBuffersQCOM_enc(void *self , GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffers =  (maxBuffers * sizeof(GLuint));
+	const unsigned int __size_numBuffers =  (1 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_buffers + 4 + __size_numBuffers + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetBuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_buffers; ptr += 4;
+		memcpy(ptr, &maxBuffers, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_numBuffers; ptr += 4;
+	stream->readback(buffers, __size_buffers);
+	stream->readback(numBuffers, __size_numBuffers);
+}
+
+void glExtGetRenderbuffersQCOM_enc(void *self , GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_renderbuffers =  (maxRenderbuffers * sizeof(GLuint));
+	const unsigned int __size_numRenderbuffers =  (1 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_renderbuffers + 4 + __size_numRenderbuffers + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetRenderbuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
+		memcpy(ptr, &maxRenderbuffers, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_numRenderbuffers; ptr += 4;
+	stream->readback(renderbuffers, __size_renderbuffers);
+	stream->readback(numRenderbuffers, __size_numRenderbuffers);
+}
+
+void glExtGetFramebuffersQCOM_enc(void *self , GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_framebuffers =  (maxFramebuffers * sizeof(GLuint));
+	const unsigned int __size_numFramebuffers =  (1 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_framebuffers + 4 + __size_numFramebuffers + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetFramebuffersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
+		memcpy(ptr, &maxFramebuffers, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_numFramebuffers; ptr += 4;
+	stream->readback(framebuffers, __size_framebuffers);
+	stream->readback(numFramebuffers, __size_numFramebuffers);
+}
+
+void glExtGetTexLevelParameterivQCOM_enc(void *self , GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetTexLevelParameterivQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &texture, 4); ptr += 4;
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glExtTexObjectStateOverrideiQCOM_enc(void *self , GLenum target, GLenum pname, GLint param)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtTexObjectStateOverrideiQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glExtGetTexSubImageQCOM_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_texels =  (depth * pixelDataSize(self, width, height, format, type, 0));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_texels + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetTexSubImageQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &zoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &depth, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_texels; ptr += 4;
+	stream->readback(texels, __size_texels);
+}
+
+void glExtGetShadersQCOM_enc(void *self , GLuint* shaders, GLint maxShaders, GLint* numShaders)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_shaders =  (maxShaders * sizeof(GLuint));
+	const unsigned int __size_numShaders =  (1 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_shaders + 4 + __size_numShaders + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetShadersQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_shaders; ptr += 4;
+		memcpy(ptr, &maxShaders, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_numShaders; ptr += 4;
+	stream->readback(shaders, __size_shaders);
+	stream->readback(numShaders, __size_numShaders);
+}
+
+void glExtGetProgramsQCOM_enc(void *self , GLuint* programs, GLint maxPrograms, GLint* numPrograms)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_programs =  (maxPrograms * sizeof(GLuint));
+	const unsigned int __size_numPrograms =  (1 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_programs + 4 + __size_numPrograms + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtGetProgramsQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_programs; ptr += 4;
+		memcpy(ptr, &maxPrograms, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_numPrograms; ptr += 4;
+	stream->readback(programs, __size_programs);
+	stream->readback(numPrograms, __size_numPrograms);
+}
+
+GLboolean glExtIsProgramBinaryQCOM_enc(void *self , GLuint program)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glExtIsProgramBinaryQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glStartTilingQCOM_enc(void *self , GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStartTilingQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &preserveMask, 4); ptr += 4;
+}
+
+void glEndTilingQCOM_enc(void *self , GLbitfield preserveMask)
+{
+
+	gl_encoder_context_t *ctx = (gl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEndTilingQCOM;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &preserveMask, 4); ptr += 4;
+}
+
+gl_encoder_context_t::gl_encoder_context_t(IOStream *stream)
+{
+	m_stream = stream;
+
+	set_glAlphaFunc(glAlphaFunc_enc);
+	set_glClearColor(glClearColor_enc);
+	set_glClearDepthf(glClearDepthf_enc);
+	set_glClipPlanef(glClipPlanef_enc);
+	set_glColor4f(glColor4f_enc);
+	set_glDepthRangef(glDepthRangef_enc);
+	set_glFogf(glFogf_enc);
+	set_glFogfv(glFogfv_enc);
+	set_glFrustumf(glFrustumf_enc);
+	set_glGetClipPlanef(glGetClipPlanef_enc);
+	set_glGetFloatv(glGetFloatv_enc);
+	set_glGetLightfv(glGetLightfv_enc);
+	set_glGetMaterialfv(glGetMaterialfv_enc);
+	set_glGetTexEnvfv(glGetTexEnvfv_enc);
+	set_glGetTexParameterfv(glGetTexParameterfv_enc);
+	set_glLightModelf(glLightModelf_enc);
+	set_glLightModelfv(glLightModelfv_enc);
+	set_glLightf(glLightf_enc);
+	set_glLightfv(glLightfv_enc);
+	set_glLineWidth(glLineWidth_enc);
+	set_glLoadMatrixf(glLoadMatrixf_enc);
+	set_glMaterialf(glMaterialf_enc);
+	set_glMaterialfv(glMaterialfv_enc);
+	set_glMultMatrixf(glMultMatrixf_enc);
+	set_glMultiTexCoord4f(glMultiTexCoord4f_enc);
+	set_glNormal3f(glNormal3f_enc);
+	set_glOrthof(glOrthof_enc);
+	set_glPointParameterf(glPointParameterf_enc);
+	set_glPointParameterfv(glPointParameterfv_enc);
+	set_glPointSize(glPointSize_enc);
+	set_glPolygonOffset(glPolygonOffset_enc);
+	set_glRotatef(glRotatef_enc);
+	set_glScalef(glScalef_enc);
+	set_glTexEnvf(glTexEnvf_enc);
+	set_glTexEnvfv(glTexEnvfv_enc);
+	set_glTexParameterf(glTexParameterf_enc);
+	set_glTexParameterfv(glTexParameterfv_enc);
+	set_glTranslatef(glTranslatef_enc);
+	set_glActiveTexture(glActiveTexture_enc);
+	set_glAlphaFuncx(glAlphaFuncx_enc);
+	set_glBindBuffer(glBindBuffer_enc);
+	set_glBindTexture(glBindTexture_enc);
+	set_glBlendFunc(glBlendFunc_enc);
+	set_glBufferData(glBufferData_enc);
+	set_glBufferSubData(glBufferSubData_enc);
+	set_glClear(glClear_enc);
+	set_glClearColorx(glClearColorx_enc);
+	set_glClearDepthx(glClearDepthx_enc);
+	set_glClearStencil(glClearStencil_enc);
+	set_glClientActiveTexture(glClientActiveTexture_enc);
+	set_glColor4ub(glColor4ub_enc);
+	set_glColor4x(glColor4x_enc);
+	set_glColorMask(glColorMask_enc);
+	set_glColorPointer((glColorPointer_client_proc_t)(enc_unsupported));
+	set_glCompressedTexImage2D(glCompressedTexImage2D_enc);
+	set_glCompressedTexSubImage2D(glCompressedTexSubImage2D_enc);
+	set_glCopyTexImage2D(glCopyTexImage2D_enc);
+	set_glCopyTexSubImage2D(glCopyTexSubImage2D_enc);
+	set_glCullFace(glCullFace_enc);
+	set_glDeleteBuffers(glDeleteBuffers_enc);
+	set_glDeleteTextures(glDeleteTextures_enc);
+	set_glDepthFunc(glDepthFunc_enc);
+	set_glDepthMask(glDepthMask_enc);
+	set_glDepthRangex(glDepthRangex_enc);
+	set_glDisable(glDisable_enc);
+	set_glDisableClientState(glDisableClientState_enc);
+	set_glDrawArrays(glDrawArrays_enc);
+	set_glDrawElements((glDrawElements_client_proc_t)(enc_unsupported));
+	set_glEnable(glEnable_enc);
+	set_glEnableClientState(glEnableClientState_enc);
+	set_glFinish(glFinish_enc);
+	set_glFlush(glFlush_enc);
+	set_glFogx(glFogx_enc);
+	set_glFogxv(glFogxv_enc);
+	set_glFrontFace(glFrontFace_enc);
+	set_glFrustumx(glFrustumx_enc);
+	set_glGetBooleanv(glGetBooleanv_enc);
+	set_glGetBufferParameteriv(glGetBufferParameteriv_enc);
+	set_glClipPlanex(glClipPlanex_enc);
+	set_glGenBuffers(glGenBuffers_enc);
+	set_glGenTextures(glGenTextures_enc);
+	set_glGetError(glGetError_enc);
+	set_glGetFixedv(glGetFixedv_enc);
+	set_glGetIntegerv(glGetIntegerv_enc);
+	set_glGetLightxv(glGetLightxv_enc);
+	set_glGetMaterialxv(glGetMaterialxv_enc);
+	set_glGetPointerv((glGetPointerv_client_proc_t)(enc_unsupported));
+	set_glGetString((glGetString_client_proc_t)(enc_unsupported));
+	set_glGetTexEnviv(glGetTexEnviv_enc);
+	set_glGetTexEnvxv(glGetTexEnvxv_enc);
+	set_glGetTexParameteriv(glGetTexParameteriv_enc);
+	set_glGetTexParameterxv(glGetTexParameterxv_enc);
+	set_glHint(glHint_enc);
+	set_glIsBuffer(glIsBuffer_enc);
+	set_glIsEnabled(glIsEnabled_enc);
+	set_glIsTexture(glIsTexture_enc);
+	set_glLightModelx(glLightModelx_enc);
+	set_glLightModelxv(glLightModelxv_enc);
+	set_glLightx(glLightx_enc);
+	set_glLightxv(glLightxv_enc);
+	set_glLineWidthx(glLineWidthx_enc);
+	set_glLoadIdentity(glLoadIdentity_enc);
+	set_glLoadMatrixx(glLoadMatrixx_enc);
+	set_glLogicOp(glLogicOp_enc);
+	set_glMaterialx(glMaterialx_enc);
+	set_glMaterialxv(glMaterialxv_enc);
+	set_glMatrixMode(glMatrixMode_enc);
+	set_glMultMatrixx(glMultMatrixx_enc);
+	set_glMultiTexCoord4x(glMultiTexCoord4x_enc);
+	set_glNormal3x(glNormal3x_enc);
+	set_glNormalPointer((glNormalPointer_client_proc_t)(enc_unsupported));
+	set_glOrthox(glOrthox_enc);
+	set_glPixelStorei(glPixelStorei_enc);
+	set_glPointParameterx(glPointParameterx_enc);
+	set_glPointParameterxv(glPointParameterxv_enc);
+	set_glPointSizex(glPointSizex_enc);
+	set_glPolygonOffsetx(glPolygonOffsetx_enc);
+	set_glPopMatrix(glPopMatrix_enc);
+	set_glPushMatrix(glPushMatrix_enc);
+	set_glReadPixels(glReadPixels_enc);
+	set_glRotatex(glRotatex_enc);
+	set_glSampleCoverage(glSampleCoverage_enc);
+	set_glSampleCoveragex(glSampleCoveragex_enc);
+	set_glScalex(glScalex_enc);
+	set_glScissor(glScissor_enc);
+	set_glShadeModel(glShadeModel_enc);
+	set_glStencilFunc(glStencilFunc_enc);
+	set_glStencilMask(glStencilMask_enc);
+	set_glStencilOp(glStencilOp_enc);
+	set_glTexCoordPointer((glTexCoordPointer_client_proc_t)(enc_unsupported));
+	set_glTexEnvi(glTexEnvi_enc);
+	set_glTexEnvx(glTexEnvx_enc);
+	set_glTexEnviv(glTexEnviv_enc);
+	set_glTexEnvxv(glTexEnvxv_enc);
+	set_glTexImage2D(glTexImage2D_enc);
+	set_glTexParameteri(glTexParameteri_enc);
+	set_glTexParameterx(glTexParameterx_enc);
+	set_glTexParameteriv(glTexParameteriv_enc);
+	set_glTexParameterxv(glTexParameterxv_enc);
+	set_glTexSubImage2D(glTexSubImage2D_enc);
+	set_glTranslatex(glTranslatex_enc);
+	set_glVertexPointer((glVertexPointer_client_proc_t)(enc_unsupported));
+	set_glViewport(glViewport_enc);
+	set_glPointSizePointerOES((glPointSizePointerOES_client_proc_t)(enc_unsupported));
+	set_glVertexPointerOffset(glVertexPointerOffset_enc);
+	set_glColorPointerOffset(glColorPointerOffset_enc);
+	set_glNormalPointerOffset(glNormalPointerOffset_enc);
+	set_glPointSizePointerOffset(glPointSizePointerOffset_enc);
+	set_glTexCoordPointerOffset(glTexCoordPointerOffset_enc);
+	set_glWeightPointerOffset(glWeightPointerOffset_enc);
+	set_glMatrixIndexPointerOffset(glMatrixIndexPointerOffset_enc);
+	set_glVertexPointerData(glVertexPointerData_enc);
+	set_glColorPointerData(glColorPointerData_enc);
+	set_glNormalPointerData(glNormalPointerData_enc);
+	set_glTexCoordPointerData(glTexCoordPointerData_enc);
+	set_glPointSizePointerData(glPointSizePointerData_enc);
+	set_glWeightPointerData(glWeightPointerData_enc);
+	set_glMatrixIndexPointerData(glMatrixIndexPointerData_enc);
+	set_glDrawElementsOffset(glDrawElementsOffset_enc);
+	set_glDrawElementsData(glDrawElementsData_enc);
+	set_glGetCompressedTextureFormats(glGetCompressedTextureFormats_enc);
+	set_glFinishRoundTrip(glFinishRoundTrip_enc);
+	set_glBlendEquationSeparateOES(glBlendEquationSeparateOES_enc);
+	set_glBlendFuncSeparateOES(glBlendFuncSeparateOES_enc);
+	set_glBlendEquationOES(glBlendEquationOES_enc);
+	set_glDrawTexsOES(glDrawTexsOES_enc);
+	set_glDrawTexiOES(glDrawTexiOES_enc);
+	set_glDrawTexxOES(glDrawTexxOES_enc);
+	set_glDrawTexsvOES(glDrawTexsvOES_enc);
+	set_glDrawTexivOES(glDrawTexivOES_enc);
+	set_glDrawTexxvOES(glDrawTexxvOES_enc);
+	set_glDrawTexfOES(glDrawTexfOES_enc);
+	set_glDrawTexfvOES(glDrawTexfvOES_enc);
+	set_glEGLImageTargetTexture2DOES(glEGLImageTargetTexture2DOES_enc);
+	set_glEGLImageTargetRenderbufferStorageOES(glEGLImageTargetRenderbufferStorageOES_enc);
+	set_glAlphaFuncxOES(glAlphaFuncxOES_enc);
+	set_glClearColorxOES(glClearColorxOES_enc);
+	set_glClearDepthxOES(glClearDepthxOES_enc);
+	set_glClipPlanexOES(glClipPlanexOES_enc);
+	set_glClipPlanexIMG(glClipPlanexIMG_enc);
+	set_glColor4xOES(glColor4xOES_enc);
+	set_glDepthRangexOES(glDepthRangexOES_enc);
+	set_glFogxOES(glFogxOES_enc);
+	set_glFogxvOES(glFogxvOES_enc);
+	set_glFrustumxOES(glFrustumxOES_enc);
+	set_glGetClipPlanexOES(glGetClipPlanexOES_enc);
+	set_glGetClipPlanex(glGetClipPlanex_enc);
+	set_glGetFixedvOES(glGetFixedvOES_enc);
+	set_glGetLightxvOES(glGetLightxvOES_enc);
+	set_glGetMaterialxvOES(glGetMaterialxvOES_enc);
+	set_glGetTexEnvxvOES(glGetTexEnvxvOES_enc);
+	set_glGetTexParameterxvOES(glGetTexParameterxvOES_enc);
+	set_glLightModelxOES(glLightModelxOES_enc);
+	set_glLightModelxvOES(glLightModelxvOES_enc);
+	set_glLightxOES(glLightxOES_enc);
+	set_glLightxvOES(glLightxvOES_enc);
+	set_glLineWidthxOES(glLineWidthxOES_enc);
+	set_glLoadMatrixxOES(glLoadMatrixxOES_enc);
+	set_glMaterialxOES(glMaterialxOES_enc);
+	set_glMaterialxvOES(glMaterialxvOES_enc);
+	set_glMultMatrixxOES(glMultMatrixxOES_enc);
+	set_glMultiTexCoord4xOES(glMultiTexCoord4xOES_enc);
+	set_glNormal3xOES(glNormal3xOES_enc);
+	set_glOrthoxOES(glOrthoxOES_enc);
+	set_glPointParameterxOES(glPointParameterxOES_enc);
+	set_glPointParameterxvOES(glPointParameterxvOES_enc);
+	set_glPointSizexOES(glPointSizexOES_enc);
+	set_glPolygonOffsetxOES(glPolygonOffsetxOES_enc);
+	set_glRotatexOES(glRotatexOES_enc);
+	set_glSampleCoveragexOES(glSampleCoveragexOES_enc);
+	set_glScalexOES(glScalexOES_enc);
+	set_glTexEnvxOES(glTexEnvxOES_enc);
+	set_glTexEnvxvOES(glTexEnvxvOES_enc);
+	set_glTexParameterxOES(glTexParameterxOES_enc);
+	set_glTexParameterxvOES(glTexParameterxvOES_enc);
+	set_glTranslatexOES(glTranslatexOES_enc);
+	set_glIsRenderbufferOES(glIsRenderbufferOES_enc);
+	set_glBindRenderbufferOES(glBindRenderbufferOES_enc);
+	set_glDeleteRenderbuffersOES(glDeleteRenderbuffersOES_enc);
+	set_glGenRenderbuffersOES(glGenRenderbuffersOES_enc);
+	set_glRenderbufferStorageOES(glRenderbufferStorageOES_enc);
+	set_glGetRenderbufferParameterivOES(glGetRenderbufferParameterivOES_enc);
+	set_glIsFramebufferOES(glIsFramebufferOES_enc);
+	set_glBindFramebufferOES(glBindFramebufferOES_enc);
+	set_glDeleteFramebuffersOES(glDeleteFramebuffersOES_enc);
+	set_glGenFramebuffersOES(glGenFramebuffersOES_enc);
+	set_glCheckFramebufferStatusOES(glCheckFramebufferStatusOES_enc);
+	set_glFramebufferRenderbufferOES(glFramebufferRenderbufferOES_enc);
+	set_glFramebufferTexture2DOES(glFramebufferTexture2DOES_enc);
+	set_glGetFramebufferAttachmentParameterivOES(glGetFramebufferAttachmentParameterivOES_enc);
+	set_glGenerateMipmapOES(glGenerateMipmapOES_enc);
+	set_glMapBufferOES((glMapBufferOES_client_proc_t)(enc_unsupported));
+	set_glUnmapBufferOES(glUnmapBufferOES_enc);
+	set_glGetBufferPointervOES((glGetBufferPointervOES_client_proc_t)(enc_unsupported));
+	set_glCurrentPaletteMatrixOES(glCurrentPaletteMatrixOES_enc);
+	set_glLoadPaletteFromModelViewMatrixOES(glLoadPaletteFromModelViewMatrixOES_enc);
+	set_glMatrixIndexPointerOES((glMatrixIndexPointerOES_client_proc_t)(enc_unsupported));
+	set_glWeightPointerOES((glWeightPointerOES_client_proc_t)(enc_unsupported));
+	set_glQueryMatrixxOES(glQueryMatrixxOES_enc);
+	set_glDepthRangefOES(glDepthRangefOES_enc);
+	set_glFrustumfOES(glFrustumfOES_enc);
+	set_glOrthofOES(glOrthofOES_enc);
+	set_glClipPlanefOES(glClipPlanefOES_enc);
+	set_glClipPlanefIMG(glClipPlanefIMG_enc);
+	set_glGetClipPlanefOES(glGetClipPlanefOES_enc);
+	set_glClearDepthfOES(glClearDepthfOES_enc);
+	set_glTexGenfOES(glTexGenfOES_enc);
+	set_glTexGenfvOES(glTexGenfvOES_enc);
+	set_glTexGeniOES(glTexGeniOES_enc);
+	set_glTexGenivOES(glTexGenivOES_enc);
+	set_glTexGenxOES(glTexGenxOES_enc);
+	set_glTexGenxvOES(glTexGenxvOES_enc);
+	set_glGetTexGenfvOES(glGetTexGenfvOES_enc);
+	set_glGetTexGenivOES(glGetTexGenivOES_enc);
+	set_glGetTexGenxvOES(glGetTexGenxvOES_enc);
+	set_glBindVertexArrayOES(glBindVertexArrayOES_enc);
+	set_glDeleteVertexArraysOES(glDeleteVertexArraysOES_enc);
+	set_glGenVertexArraysOES(glGenVertexArraysOES_enc);
+	set_glIsVertexArrayOES(glIsVertexArrayOES_enc);
+	set_glDiscardFramebufferEXT(glDiscardFramebufferEXT_enc);
+	set_glMultiDrawArraysEXT((glMultiDrawArraysEXT_client_proc_t)(enc_unsupported));
+	set_glMultiDrawElementsEXT((glMultiDrawElementsEXT_client_proc_t)(enc_unsupported));
+	set_glMultiDrawArraysSUN((glMultiDrawArraysSUN_client_proc_t)(enc_unsupported));
+	set_glMultiDrawElementsSUN((glMultiDrawElementsSUN_client_proc_t)(enc_unsupported));
+	set_glRenderbufferStorageMultisampleIMG(glRenderbufferStorageMultisampleIMG_enc);
+	set_glFramebufferTexture2DMultisampleIMG(glFramebufferTexture2DMultisampleIMG_enc);
+	set_glDeleteFencesNV(glDeleteFencesNV_enc);
+	set_glGenFencesNV(glGenFencesNV_enc);
+	set_glIsFenceNV(glIsFenceNV_enc);
+	set_glTestFenceNV(glTestFenceNV_enc);
+	set_glGetFenceivNV(glGetFenceivNV_enc);
+	set_glFinishFenceNV(glFinishFenceNV_enc);
+	set_glSetFenceNV(glSetFenceNV_enc);
+	set_glGetDriverControlsQCOM(glGetDriverControlsQCOM_enc);
+	set_glGetDriverControlStringQCOM(glGetDriverControlStringQCOM_enc);
+	set_glEnableDriverControlQCOM(glEnableDriverControlQCOM_enc);
+	set_glDisableDriverControlQCOM(glDisableDriverControlQCOM_enc);
+	set_glExtGetTexturesQCOM(glExtGetTexturesQCOM_enc);
+	set_glExtGetBuffersQCOM(glExtGetBuffersQCOM_enc);
+	set_glExtGetRenderbuffersQCOM(glExtGetRenderbuffersQCOM_enc);
+	set_glExtGetFramebuffersQCOM(glExtGetFramebuffersQCOM_enc);
+	set_glExtGetTexLevelParameterivQCOM(glExtGetTexLevelParameterivQCOM_enc);
+	set_glExtTexObjectStateOverrideiQCOM(glExtTexObjectStateOverrideiQCOM_enc);
+	set_glExtGetTexSubImageQCOM(glExtGetTexSubImageQCOM_enc);
+	set_glExtGetBufferPointervQCOM((glExtGetBufferPointervQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetShadersQCOM(glExtGetShadersQCOM_enc);
+	set_glExtGetProgramsQCOM(glExtGetProgramsQCOM_enc);
+	set_glExtIsProgramBinaryQCOM(glExtIsProgramBinaryQCOM_enc);
+	set_glExtGetProgramBinarySourceQCOM((glExtGetProgramBinarySourceQCOM_client_proc_t)(enc_unsupported));
+	set_glStartTilingQCOM(glStartTilingQCOM_enc);
+	set_glEndTilingQCOM(glEndTilingQCOM_enc);
+}
+
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_enc.h b/tools/emulator/opengl/system/GLESv1_enc/gl_enc.h
new file mode 100644
index 0000000..d8a23e4
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_enc.h
@@ -0,0 +1,316 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+#ifndef GUARD_gl_encoder_context_t
+#define GUARD_gl_encoder_context_t
+
+#include "IOStream.h"
+#include "gl_client_context.h"
+
+
+#include "glUtils.h"
+#include "GLEncoderUtils.h"
+
+struct gl_encoder_context_t : public gl_client_context_t {
+
+	IOStream *m_stream;
+
+	gl_encoder_context_t(IOStream *stream);
+
+
+};
+
+extern "C" {
+	void glAlphaFunc_enc(void *self , GLenum func, GLclampf ref);
+	void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void glClearDepthf_enc(void *self , GLclampf depth);
+	void glClipPlanef_enc(void *self , GLenum plane, const GLfloat* equation);
+	void glColor4f_enc(void *self , GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+	void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar);
+	void glFogf_enc(void *self , GLenum pname, GLfloat param);
+	void glFogfv_enc(void *self , GLenum pname, const GLfloat* params);
+	void glFrustumf_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glGetClipPlanef_enc(void *self , GLenum pname, GLfloat* eqn);
+	void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params);
+	void glGetLightfv_enc(void *self , GLenum light, GLenum pname, GLfloat* params);
+	void glGetMaterialfv_enc(void *self , GLenum face, GLenum pname, GLfloat* params);
+	void glGetTexEnvfv_enc(void *self , GLenum env, GLenum pname, GLfloat* params);
+	void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params);
+	void glLightModelf_enc(void *self , GLenum pname, GLfloat param);
+	void glLightModelfv_enc(void *self , GLenum pname, const GLfloat* params);
+	void glLightf_enc(void *self , GLenum light, GLenum pname, GLfloat param);
+	void glLightfv_enc(void *self , GLenum light, GLenum pname, const GLfloat* params);
+	void glLineWidth_enc(void *self , GLfloat width);
+	void glLoadMatrixf_enc(void *self , const GLfloat* m);
+	void glMaterialf_enc(void *self , GLenum face, GLenum pname, GLfloat param);
+	void glMaterialfv_enc(void *self , GLenum face, GLenum pname, const GLfloat* params);
+	void glMultMatrixf_enc(void *self , const GLfloat* m);
+	void glMultiTexCoord4f_enc(void *self , GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+	void glNormal3f_enc(void *self , GLfloat nx, GLfloat ny, GLfloat nz);
+	void glOrthof_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glPointParameterf_enc(void *self , GLenum pname, GLfloat param);
+	void glPointParameterfv_enc(void *self , GLenum pname, const GLfloat* params);
+	void glPointSize_enc(void *self , GLfloat size);
+	void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units);
+	void glRotatef_enc(void *self , GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+	void glScalef_enc(void *self , GLfloat x, GLfloat y, GLfloat z);
+	void glTexEnvf_enc(void *self , GLenum target, GLenum pname, GLfloat param);
+	void glTexEnvfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params);
+	void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param);
+	void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params);
+	void glTranslatef_enc(void *self , GLfloat x, GLfloat y, GLfloat z);
+	void glActiveTexture_enc(void *self , GLenum texture);
+	void glAlphaFuncx_enc(void *self , GLenum func, GLclampx ref);
+	void glBindBuffer_enc(void *self , GLenum target, GLuint buffer);
+	void glBindTexture_enc(void *self , GLenum target, GLuint texture);
+	void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor);
+	void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+	void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+	void glClear_enc(void *self , GLbitfield mask);
+	void glClearColorx_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
+	void glClearDepthx_enc(void *self , GLclampx depth);
+	void glClearStencil_enc(void *self , GLint s);
+	void glClientActiveTexture_enc(void *self , GLenum texture);
+	void glColor4ub_enc(void *self , GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+	void glColor4x_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+	void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+	void glColorPointer_enc(void *self , GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+	void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+	void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+	void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	void glCullFace_enc(void *self , GLenum mode);
+	void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers);
+	void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures);
+	void glDepthFunc_enc(void *self , GLenum func);
+	void glDepthMask_enc(void *self , GLboolean flag);
+	void glDepthRangex_enc(void *self , GLclampx zNear, GLclampx zFar);
+	void glDisable_enc(void *self , GLenum cap);
+	void glDisableClientState_enc(void *self , GLenum array);
+	void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count);
+	void glDrawElements_enc(void *self , GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
+	void glEnable_enc(void *self , GLenum cap);
+	void glEnableClientState_enc(void *self , GLenum array);
+	void glFinish_enc(void *self );
+	void glFlush_enc(void *self );
+	void glFogx_enc(void *self , GLenum pname, GLfixed param);
+	void glFogxv_enc(void *self , GLenum pname, const GLfixed* params);
+	void glFrontFace_enc(void *self , GLenum mode);
+	void glFrustumx_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params);
+	void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params);
+	void glClipPlanex_enc(void *self , GLenum pname, const GLfixed* eqn);
+	void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers);
+	void glGenTextures_enc(void *self , GLsizei n, GLuint* textures);
+	GLenum glGetError_enc(void *self );
+	void glGetFixedv_enc(void *self , GLenum pname, GLfixed* params);
+	void glGetIntegerv_enc(void *self , GLenum pname, GLint* params);
+	void glGetLightxv_enc(void *self , GLenum light, GLenum pname, GLfixed* params);
+	void glGetMaterialxv_enc(void *self , GLenum face, GLenum pname, GLfixed* params);
+	void glGetPointerv_enc(void *self , GLenum pname, GLvoid** params);
+	const GLubyte* glGetString_enc(void *self , GLenum name);
+	void glGetTexEnviv_enc(void *self , GLenum env, GLenum pname, GLint* params);
+	void glGetTexEnvxv_enc(void *self , GLenum env, GLenum pname, GLfixed* params);
+	void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params);
+	void glGetTexParameterxv_enc(void *self , GLenum target, GLenum pname, GLfixed* params);
+	void glHint_enc(void *self , GLenum target, GLenum mode);
+	GLboolean glIsBuffer_enc(void *self , GLuint buffer);
+	GLboolean glIsEnabled_enc(void *self , GLenum cap);
+	GLboolean glIsTexture_enc(void *self , GLuint texture);
+	void glLightModelx_enc(void *self , GLenum pname, GLfixed param);
+	void glLightModelxv_enc(void *self , GLenum pname, const GLfixed* params);
+	void glLightx_enc(void *self , GLenum light, GLenum pname, GLfixed param);
+	void glLightxv_enc(void *self , GLenum light, GLenum pname, const GLfixed* params);
+	void glLineWidthx_enc(void *self , GLfixed width);
+	void glLoadIdentity_enc(void *self );
+	void glLoadMatrixx_enc(void *self , const GLfixed* m);
+	void glLogicOp_enc(void *self , GLenum opcode);
+	void glMaterialx_enc(void *self , GLenum face, GLenum pname, GLfixed param);
+	void glMaterialxv_enc(void *self , GLenum face, GLenum pname, const GLfixed* params);
+	void glMatrixMode_enc(void *self , GLenum mode);
+	void glMultMatrixx_enc(void *self , const GLfixed* m);
+	void glMultiTexCoord4x_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+	void glNormal3x_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz);
+	void glNormalPointer_enc(void *self , GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glOrthox_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glPixelStorei_enc(void *self , GLenum pname, GLint param);
+	void glPointParameterx_enc(void *self , GLenum pname, GLfixed param);
+	void glPointParameterxv_enc(void *self , GLenum pname, const GLfixed* params);
+	void glPointSizex_enc(void *self , GLfixed size);
+	void glPolygonOffsetx_enc(void *self , GLfixed factor, GLfixed units);
+	void glPopMatrix_enc(void *self );
+	void glPushMatrix_enc(void *self );
+	void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
+	void glRotatex_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+	void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert);
+	void glSampleCoveragex_enc(void *self , GLclampx value, GLboolean invert);
+	void glScalex_enc(void *self , GLfixed x, GLfixed y, GLfixed z);
+	void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height);
+	void glShadeModel_enc(void *self , GLenum mode);
+	void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask);
+	void glStencilMask_enc(void *self , GLuint mask);
+	void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass);
+	void glTexCoordPointer_enc(void *self , GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glTexEnvi_enc(void *self , GLenum target, GLenum pname, GLint param);
+	void glTexEnvx_enc(void *self , GLenum target, GLenum pname, GLfixed param);
+	void glTexEnviv_enc(void *self , GLenum target, GLenum pname, const GLint* params);
+	void glTexEnvxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params);
+	void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param);
+	void glTexParameterx_enc(void *self , GLenum target, GLenum pname, GLfixed param);
+	void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params);
+	void glTexParameterxv_enc(void *self , GLenum target, GLenum pname, const GLfixed* params);
+	void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTranslatex_enc(void *self , GLfixed x, GLfixed y, GLfixed z);
+	void glVertexPointer_enc(void *self , GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height);
+	void glPointSizePointerOES_enc(void *self , GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glVertexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glColorPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glNormalPointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset);
+	void glPointSizePointerOffset_enc(void *self , GLenum type, GLsizei stride, GLuint offset);
+	void glTexCoordPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glWeightPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glMatrixIndexPointerOffset_enc(void *self , GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glVertexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glColorPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glNormalPointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glTexCoordPointerData_enc(void *self , GLint unit, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glPointSizePointerData_enc(void *self , GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glWeightPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glMatrixIndexPointerData_enc(void *self , GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset);
+	void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
+	void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats);
+	int glFinishRoundTrip_enc(void *self );
+	void glBlendEquationSeparateOES_enc(void *self , GLenum modeRGB, GLenum modeAlpha);
+	void glBlendFuncSeparateOES_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+	void glBlendEquationOES_enc(void *self , GLenum mode);
+	void glDrawTexsOES_enc(void *self , GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+	void glDrawTexiOES_enc(void *self , GLint x, GLint y, GLint z, GLint width, GLint height);
+	void glDrawTexxOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+	void glDrawTexsvOES_enc(void *self , const GLshort* coords);
+	void glDrawTexivOES_enc(void *self , const GLint* coords);
+	void glDrawTexxvOES_enc(void *self , const GLfixed* coords);
+	void glDrawTexfOES_enc(void *self , GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+	void glDrawTexfvOES_enc(void *self , const GLfloat* coords);
+	void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image);
+	void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image);
+	void glAlphaFuncxOES_enc(void *self , GLenum func, GLclampx ref);
+	void glClearColorxOES_enc(void *self , GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
+	void glClearDepthxOES_enc(void *self , GLclampx depth);
+	void glClipPlanexOES_enc(void *self , GLenum plane, const GLfixed* equation);
+	void glClipPlanexIMG_enc(void *self , GLenum plane, const GLfixed* equation);
+	void glColor4xOES_enc(void *self , GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+	void glDepthRangexOES_enc(void *self , GLclampx zNear, GLclampx zFar);
+	void glFogxOES_enc(void *self , GLenum pname, GLfixed param);
+	void glFogxvOES_enc(void *self , GLenum pname, const GLfixed* params);
+	void glFrustumxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glGetClipPlanexOES_enc(void *self , GLenum pname, GLfixed* eqn);
+	void glGetClipPlanex_enc(void *self , GLenum pname, GLfixed* eqn);
+	void glGetFixedvOES_enc(void *self , GLenum pname, GLfixed* params);
+	void glGetLightxvOES_enc(void *self , GLenum light, GLenum pname, GLfixed* params);
+	void glGetMaterialxvOES_enc(void *self , GLenum face, GLenum pname, GLfixed* params);
+	void glGetTexEnvxvOES_enc(void *self , GLenum env, GLenum pname, GLfixed* params);
+	void glGetTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, GLfixed* params);
+	void glLightModelxOES_enc(void *self , GLenum pname, GLfixed param);
+	void glLightModelxvOES_enc(void *self , GLenum pname, const GLfixed* params);
+	void glLightxOES_enc(void *self , GLenum light, GLenum pname, GLfixed param);
+	void glLightxvOES_enc(void *self , GLenum light, GLenum pname, const GLfixed* params);
+	void glLineWidthxOES_enc(void *self , GLfixed width);
+	void glLoadMatrixxOES_enc(void *self , const GLfixed* m);
+	void glMaterialxOES_enc(void *self , GLenum face, GLenum pname, GLfixed param);
+	void glMaterialxvOES_enc(void *self , GLenum face, GLenum pname, const GLfixed* params);
+	void glMultMatrixxOES_enc(void *self , const GLfixed* m);
+	void glMultiTexCoord4xOES_enc(void *self , GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+	void glNormal3xOES_enc(void *self , GLfixed nx, GLfixed ny, GLfixed nz);
+	void glOrthoxOES_enc(void *self , GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glPointParameterxOES_enc(void *self , GLenum pname, GLfixed param);
+	void glPointParameterxvOES_enc(void *self , GLenum pname, const GLfixed* params);
+	void glPointSizexOES_enc(void *self , GLfixed size);
+	void glPolygonOffsetxOES_enc(void *self , GLfixed factor, GLfixed units);
+	void glRotatexOES_enc(void *self , GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+	void glSampleCoveragexOES_enc(void *self , GLclampx value, GLboolean invert);
+	void glScalexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z);
+	void glTexEnvxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param);
+	void glTexEnvxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params);
+	void glTexParameterxOES_enc(void *self , GLenum target, GLenum pname, GLfixed param);
+	void glTexParameterxvOES_enc(void *self , GLenum target, GLenum pname, const GLfixed* params);
+	void glTranslatexOES_enc(void *self , GLfixed x, GLfixed y, GLfixed z);
+	GLboolean glIsRenderbufferOES_enc(void *self , GLuint renderbuffer);
+	void glBindRenderbufferOES_enc(void *self , GLenum target, GLuint renderbuffer);
+	void glDeleteRenderbuffersOES_enc(void *self , GLsizei n, const GLuint* renderbuffers);
+	void glGenRenderbuffersOES_enc(void *self , GLsizei n, GLuint* renderbuffers);
+	void glRenderbufferStorageOES_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+	void glGetRenderbufferParameterivOES_enc(void *self , GLenum target, GLenum pname, GLint* params);
+	GLboolean glIsFramebufferOES_enc(void *self , GLuint framebuffer);
+	void glBindFramebufferOES_enc(void *self , GLenum target, GLuint framebuffer);
+	void glDeleteFramebuffersOES_enc(void *self , GLsizei n, const GLuint* framebuffers);
+	void glGenFramebuffersOES_enc(void *self , GLsizei n, GLuint* framebuffers);
+	GLenum glCheckFramebufferStatusOES_enc(void *self , GLenum target);
+	void glFramebufferRenderbufferOES_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+	void glFramebufferTexture2DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+	void glGetFramebufferAttachmentParameterivOES_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params);
+	void glGenerateMipmapOES_enc(void *self , GLenum target);
+	void* glMapBufferOES_enc(void *self , GLenum target, GLenum access);
+	GLboolean glUnmapBufferOES_enc(void *self , GLenum target);
+	void glGetBufferPointervOES_enc(void *self , GLenum target, GLenum pname, GLvoid** params);
+	void glCurrentPaletteMatrixOES_enc(void *self , GLuint matrixpaletteindex);
+	void glLoadPaletteFromModelViewMatrixOES_enc(void *self );
+	void glMatrixIndexPointerOES_enc(void *self , GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glWeightPointerOES_enc(void *self , GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	GLbitfield glQueryMatrixxOES_enc(void *self , GLfixed* mantissa, GLint* exponent);
+	void glDepthRangefOES_enc(void *self , GLclampf zNear, GLclampf zFar);
+	void glFrustumfOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glOrthofOES_enc(void *self , GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glClipPlanefOES_enc(void *self , GLenum plane, const GLfloat* equation);
+	void glClipPlanefIMG_enc(void *self , GLenum plane, const GLfloat* equation);
+	void glGetClipPlanefOES_enc(void *self , GLenum pname, GLfloat* eqn);
+	void glClearDepthfOES_enc(void *self , GLclampf depth);
+	void glTexGenfOES_enc(void *self , GLenum coord, GLenum pname, GLfloat param);
+	void glTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, const GLfloat* params);
+	void glTexGeniOES_enc(void *self , GLenum coord, GLenum pname, GLint param);
+	void glTexGenivOES_enc(void *self , GLenum coord, GLenum pname, const GLint* params);
+	void glTexGenxOES_enc(void *self , GLenum coord, GLenum pname, GLfixed param);
+	void glTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, const GLfixed* params);
+	void glGetTexGenfvOES_enc(void *self , GLenum coord, GLenum pname, GLfloat* params);
+	void glGetTexGenivOES_enc(void *self , GLenum coord, GLenum pname, GLint* params);
+	void glGetTexGenxvOES_enc(void *self , GLenum coord, GLenum pname, GLfixed* params);
+	void glBindVertexArrayOES_enc(void *self , GLuint array);
+	void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays);
+	void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays);
+	GLboolean glIsVertexArrayOES_enc(void *self , GLuint array);
+	void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments);
+	void glMultiDrawArraysEXT_enc(void *self , GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
+	void glMultiDrawElementsEXT_enc(void *self , GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount);
+	void glMultiDrawArraysSUN_enc(void *self , GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
+	void glMultiDrawElementsSUN_enc(void *self , GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount);
+	void glRenderbufferStorageMultisampleIMG_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+	void glFramebufferTexture2DMultisampleIMG_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+	void glDeleteFencesNV_enc(void *self , GLsizei n, const GLuint* fences);
+	void glGenFencesNV_enc(void *self , GLsizei n, GLuint* fences);
+	GLboolean glIsFenceNV_enc(void *self , GLuint fence);
+	GLboolean glTestFenceNV_enc(void *self , GLuint fence);
+	void glGetFenceivNV_enc(void *self , GLuint fence, GLenum pname, GLint* params);
+	void glFinishFenceNV_enc(void *self , GLuint fence);
+	void glSetFenceNV_enc(void *self , GLuint fence, GLenum condition);
+	void glGetDriverControlsQCOM_enc(void *self , GLint* num, GLsizei size, GLuint* driverControls);
+	void glGetDriverControlStringQCOM_enc(void *self , GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
+	void glEnableDriverControlQCOM_enc(void *self , GLuint driverControl);
+	void glDisableDriverControlQCOM_enc(void *self , GLuint driverControl);
+	void glExtGetTexturesQCOM_enc(void *self , GLuint* textures, GLint maxTextures, GLint* numTextures);
+	void glExtGetBuffersQCOM_enc(void *self , GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
+	void glExtGetRenderbuffersQCOM_enc(void *self , GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
+	void glExtGetFramebuffersQCOM_enc(void *self , GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
+	void glExtGetTexLevelParameterivQCOM_enc(void *self , GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
+	void glExtTexObjectStateOverrideiQCOM_enc(void *self , GLenum target, GLenum pname, GLint param);
+	void glExtGetTexSubImageQCOM_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels);
+	void glExtGetBufferPointervQCOM_enc(void *self , GLenum target, GLvoid** params);
+	void glExtGetShadersQCOM_enc(void *self , GLuint* shaders, GLint maxShaders, GLint* numShaders);
+	void glExtGetProgramsQCOM_enc(void *self , GLuint* programs, GLint maxPrograms, GLint* numPrograms);
+	GLboolean glExtIsProgramBinaryQCOM_enc(void *self , GLuint program);
+	void glExtGetProgramBinarySourceQCOM_enc(void *self , GLuint program, GLenum shadertype, GLchar* source, GLint* length);
+	void glStartTilingQCOM_enc(void *self , GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
+	void glEndTilingQCOM_enc(void *self , GLbitfield preserveMask);
+};
+#endif
\ No newline at end of file
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_entry.cpp b/tools/emulator/opengl/system/GLESv1_enc/gl_entry.cpp
new file mode 100644
index 0000000..b43df09
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_entry.cpp
@@ -0,0 +1,2066 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#include <stdio.h>
+#include <stdlib.h>
+#include "gl_client_context.h"
+
+#ifndef GL_TRUE
+extern "C" {
+	void glAlphaFunc(GLenum func, GLclampf ref);
+	void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void glClearDepthf(GLclampf depth);
+	void glClipPlanef(GLenum plane, const GLfloat* equation);
+	void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+	void glDepthRangef(GLclampf zNear, GLclampf zFar);
+	void glFogf(GLenum pname, GLfloat param);
+	void glFogfv(GLenum pname, const GLfloat* params);
+	void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glGetClipPlanef(GLenum pname, GLfloat* eqn);
+	void glGetFloatv(GLenum pname, GLfloat* params);
+	void glGetLightfv(GLenum light, GLenum pname, GLfloat* params);
+	void glGetMaterialfv(GLenum face, GLenum pname, GLfloat* params);
+	void glGetTexEnvfv(GLenum env, GLenum pname, GLfloat* params);
+	void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
+	void glLightModelf(GLenum pname, GLfloat param);
+	void glLightModelfv(GLenum pname, const GLfloat* params);
+	void glLightf(GLenum light, GLenum pname, GLfloat param);
+	void glLightfv(GLenum light, GLenum pname, const GLfloat* params);
+	void glLineWidth(GLfloat width);
+	void glLoadMatrixf(const GLfloat* m);
+	void glMaterialf(GLenum face, GLenum pname, GLfloat param);
+	void glMaterialfv(GLenum face, GLenum pname, const GLfloat* params);
+	void glMultMatrixf(const GLfloat* m);
+	void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+	void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
+	void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glPointParameterf(GLenum pname, GLfloat param);
+	void glPointParameterfv(GLenum pname, const GLfloat* params);
+	void glPointSize(GLfloat size);
+	void glPolygonOffset(GLfloat factor, GLfloat units);
+	void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+	void glScalef(GLfloat x, GLfloat y, GLfloat z);
+	void glTexEnvf(GLenum target, GLenum pname, GLfloat param);
+	void glTexEnvfv(GLenum target, GLenum pname, const GLfloat* params);
+	void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
+	void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params);
+	void glTranslatef(GLfloat x, GLfloat y, GLfloat z);
+	void glActiveTexture(GLenum texture);
+	void glAlphaFuncx(GLenum func, GLclampx ref);
+	void glBindBuffer(GLenum target, GLuint buffer);
+	void glBindTexture(GLenum target, GLuint texture);
+	void glBlendFunc(GLenum sfactor, GLenum dfactor);
+	void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+	void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+	void glClear(GLbitfield mask);
+	void glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
+	void glClearDepthx(GLclampx depth);
+	void glClearStencil(GLint s);
+	void glClientActiveTexture(GLenum texture);
+	void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+	void glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+	void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+	void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+	void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+	void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+	void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	void glCullFace(GLenum mode);
+	void glDeleteBuffers(GLsizei n, const GLuint* buffers);
+	void glDeleteTextures(GLsizei n, const GLuint* textures);
+	void glDepthFunc(GLenum func);
+	void glDepthMask(GLboolean flag);
+	void glDepthRangex(GLclampx zNear, GLclampx zFar);
+	void glDisable(GLenum cap);
+	void glDisableClientState(GLenum array);
+	void glDrawArrays(GLenum mode, GLint first, GLsizei count);
+	void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
+	void glEnable(GLenum cap);
+	void glEnableClientState(GLenum array);
+	void glFinish();
+	void glFlush();
+	void glFogx(GLenum pname, GLfixed param);
+	void glFogxv(GLenum pname, const GLfixed* params);
+	void glFrontFace(GLenum mode);
+	void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glGetBooleanv(GLenum pname, GLboolean* params);
+	void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
+	void glClipPlanex(GLenum pname, const GLfixed* eqn);
+	void glGenBuffers(GLsizei n, GLuint* buffers);
+	void glGenTextures(GLsizei n, GLuint* textures);
+	GLenum glGetError();
+	void glGetFixedv(GLenum pname, GLfixed* params);
+	void glGetIntegerv(GLenum pname, GLint* params);
+	void glGetLightxv(GLenum light, GLenum pname, GLfixed* params);
+	void glGetMaterialxv(GLenum face, GLenum pname, GLfixed* params);
+	void glGetPointerv(GLenum pname, GLvoid** params);
+	const GLubyte* glGetString(GLenum name);
+	void glGetTexEnviv(GLenum env, GLenum pname, GLint* params);
+	void glGetTexEnvxv(GLenum env, GLenum pname, GLfixed* params);
+	void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
+	void glGetTexParameterxv(GLenum target, GLenum pname, GLfixed* params);
+	void glHint(GLenum target, GLenum mode);
+	GLboolean glIsBuffer(GLuint buffer);
+	GLboolean glIsEnabled(GLenum cap);
+	GLboolean glIsTexture(GLuint texture);
+	void glLightModelx(GLenum pname, GLfixed param);
+	void glLightModelxv(GLenum pname, const GLfixed* params);
+	void glLightx(GLenum light, GLenum pname, GLfixed param);
+	void glLightxv(GLenum light, GLenum pname, const GLfixed* params);
+	void glLineWidthx(GLfixed width);
+	void glLoadIdentity();
+	void glLoadMatrixx(const GLfixed* m);
+	void glLogicOp(GLenum opcode);
+	void glMaterialx(GLenum face, GLenum pname, GLfixed param);
+	void glMaterialxv(GLenum face, GLenum pname, const GLfixed* params);
+	void glMatrixMode(GLenum mode);
+	void glMultMatrixx(const GLfixed* m);
+	void glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+	void glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz);
+	void glNormalPointer(GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glPixelStorei(GLenum pname, GLint param);
+	void glPointParameterx(GLenum pname, GLfixed param);
+	void glPointParameterxv(GLenum pname, const GLfixed* params);
+	void glPointSizex(GLfixed size);
+	void glPolygonOffsetx(GLfixed factor, GLfixed units);
+	void glPopMatrix();
+	void glPushMatrix();
+	void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
+	void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+	void glSampleCoverage(GLclampf value, GLboolean invert);
+	void glSampleCoveragex(GLclampx value, GLboolean invert);
+	void glScalex(GLfixed x, GLfixed y, GLfixed z);
+	void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
+	void glShadeModel(GLenum mode);
+	void glStencilFunc(GLenum func, GLint ref, GLuint mask);
+	void glStencilMask(GLuint mask);
+	void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
+	void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glTexEnvi(GLenum target, GLenum pname, GLint param);
+	void glTexEnvx(GLenum target, GLenum pname, GLfixed param);
+	void glTexEnviv(GLenum target, GLenum pname, const GLint* params);
+	void glTexEnvxv(GLenum target, GLenum pname, const GLfixed* params);
+	void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTexParameteri(GLenum target, GLenum pname, GLint param);
+	void glTexParameterx(GLenum target, GLenum pname, GLfixed param);
+	void glTexParameteriv(GLenum target, GLenum pname, const GLint* params);
+	void glTexParameterxv(GLenum target, GLenum pname, const GLfixed* params);
+	void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTranslatex(GLfixed x, GLfixed y, GLfixed z);
+	void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
+	void glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glColorPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glNormalPointerOffset(GLenum type, GLsizei stride, GLuint offset);
+	void glPointSizePointerOffset(GLenum type, GLsizei stride, GLuint offset);
+	void glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glWeightPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glMatrixIndexPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset);
+	void glVertexPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glColorPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glNormalPointerData(GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glTexCoordPointerData(GLint unit, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glPointSizePointerData(GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glWeightPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glMatrixIndexPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen);
+	void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset);
+	void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
+	void glGetCompressedTextureFormats(int count, GLint* formats);
+	int glFinishRoundTrip();
+	void glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha);
+	void glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+	void glBlendEquationOES(GLenum mode);
+	void glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+	void glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height);
+	void glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+	void glDrawTexsvOES(const GLshort* coords);
+	void glDrawTexivOES(const GLint* coords);
+	void glDrawTexxvOES(const GLfixed* coords);
+	void glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+	void glDrawTexfvOES(const GLfloat* coords);
+	void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
+	void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
+	void glAlphaFuncxOES(GLenum func, GLclampx ref);
+	void glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
+	void glClearDepthxOES(GLclampx depth);
+	void glClipPlanexOES(GLenum plane, const GLfixed* equation);
+	void glClipPlanexIMG(GLenum plane, const GLfixed* equation);
+	void glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+	void glDepthRangexOES(GLclampx zNear, GLclampx zFar);
+	void glFogxOES(GLenum pname, GLfixed param);
+	void glFogxvOES(GLenum pname, const GLfixed* params);
+	void glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glGetClipPlanexOES(GLenum pname, GLfixed* eqn);
+	void glGetClipPlanex(GLenum pname, GLfixed* eqn);
+	void glGetFixedvOES(GLenum pname, GLfixed* params);
+	void glGetLightxvOES(GLenum light, GLenum pname, GLfixed* params);
+	void glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed* params);
+	void glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed* params);
+	void glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed* params);
+	void glLightModelxOES(GLenum pname, GLfixed param);
+	void glLightModelxvOES(GLenum pname, const GLfixed* params);
+	void glLightxOES(GLenum light, GLenum pname, GLfixed param);
+	void glLightxvOES(GLenum light, GLenum pname, const GLfixed* params);
+	void glLineWidthxOES(GLfixed width);
+	void glLoadMatrixxOES(const GLfixed* m);
+	void glMaterialxOES(GLenum face, GLenum pname, GLfixed param);
+	void glMaterialxvOES(GLenum face, GLenum pname, const GLfixed* params);
+	void glMultMatrixxOES(const GLfixed* m);
+	void glMultiTexCoord4xOES(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+	void glNormal3xOES(GLfixed nx, GLfixed ny, GLfixed nz);
+	void glOrthoxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
+	void glPointParameterxOES(GLenum pname, GLfixed param);
+	void glPointParameterxvOES(GLenum pname, const GLfixed* params);
+	void glPointSizexOES(GLfixed size);
+	void glPolygonOffsetxOES(GLfixed factor, GLfixed units);
+	void glRotatexOES(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+	void glSampleCoveragexOES(GLclampx value, GLboolean invert);
+	void glScalexOES(GLfixed x, GLfixed y, GLfixed z);
+	void glTexEnvxOES(GLenum target, GLenum pname, GLfixed param);
+	void glTexEnvxvOES(GLenum target, GLenum pname, const GLfixed* params);
+	void glTexParameterxOES(GLenum target, GLenum pname, GLfixed param);
+	void glTexParameterxvOES(GLenum target, GLenum pname, const GLfixed* params);
+	void glTranslatexOES(GLfixed x, GLfixed y, GLfixed z);
+	GLboolean glIsRenderbufferOES(GLuint renderbuffer);
+	void glBindRenderbufferOES(GLenum target, GLuint renderbuffer);
+	void glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers);
+	void glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers);
+	void glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+	void glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params);
+	GLboolean glIsFramebufferOES(GLuint framebuffer);
+	void glBindFramebufferOES(GLenum target, GLuint framebuffer);
+	void glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers);
+	void glGenFramebuffersOES(GLsizei n, GLuint* framebuffers);
+	GLenum glCheckFramebufferStatusOES(GLenum target);
+	void glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+	void glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+	void glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+	void glGenerateMipmapOES(GLenum target);
+	void* glMapBufferOES(GLenum target, GLenum access);
+	GLboolean glUnmapBufferOES(GLenum target);
+	void glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid** params);
+	void glCurrentPaletteMatrixOES(GLuint matrixpaletteindex);
+	void glLoadPaletteFromModelViewMatrixOES();
+	void glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	void glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+	GLbitfield glQueryMatrixxOES(GLfixed* mantissa, GLint* exponent);
+	void glDepthRangefOES(GLclampf zNear, GLclampf zFar);
+	void glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glOrthofOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
+	void glClipPlanefOES(GLenum plane, const GLfloat* equation);
+	void glClipPlanefIMG(GLenum plane, const GLfloat* equation);
+	void glGetClipPlanefOES(GLenum pname, GLfloat* eqn);
+	void glClearDepthfOES(GLclampf depth);
+	void glTexGenfOES(GLenum coord, GLenum pname, GLfloat param);
+	void glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat* params);
+	void glTexGeniOES(GLenum coord, GLenum pname, GLint param);
+	void glTexGenivOES(GLenum coord, GLenum pname, const GLint* params);
+	void glTexGenxOES(GLenum coord, GLenum pname, GLfixed param);
+	void glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed* params);
+	void glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat* params);
+	void glGetTexGenivOES(GLenum coord, GLenum pname, GLint* params);
+	void glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed* params);
+	void glBindVertexArrayOES(GLuint array);
+	void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays);
+	void glGenVertexArraysOES(GLsizei n, GLuint* arrays);
+	GLboolean glIsVertexArrayOES(GLuint array);
+	void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments);
+	void glMultiDrawArraysEXT(GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
+	void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount);
+	void glMultiDrawArraysSUN(GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
+	void glMultiDrawElementsSUN(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount);
+	void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+	void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+	void glDeleteFencesNV(GLsizei n, const GLuint* fences);
+	void glGenFencesNV(GLsizei n, GLuint* fences);
+	GLboolean glIsFenceNV(GLuint fence);
+	GLboolean glTestFenceNV(GLuint fence);
+	void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params);
+	void glFinishFenceNV(GLuint fence);
+	void glSetFenceNV(GLuint fence, GLenum condition);
+	void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls);
+	void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
+	void glEnableDriverControlQCOM(GLuint driverControl);
+	void glDisableDriverControlQCOM(GLuint driverControl);
+	void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures);
+	void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
+	void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
+	void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
+	void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
+	void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param);
+	void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels);
+	void glExtGetBufferPointervQCOM(GLenum target, GLvoid** params);
+	void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders);
+	void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms);
+	GLboolean glExtIsProgramBinaryQCOM(GLuint program);
+	void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length);
+	void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
+	void glEndTilingQCOM(GLbitfield preserveMask);
+};
+
+#endif
+#ifndef GET_CONTEXT
+static gl_client_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL;
+void gl_client_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; }
+#define GET_CONTEXT gl_client_context_t * ctx = getCurrentContext() 
+#endif
+
+void glAlphaFunc(GLenum func, GLclampf ref)
+{
+	GET_CONTEXT; 
+	 ctx->glAlphaFunc(ctx, func, ref);
+}
+
+void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glClearColor(ctx, red, green, blue, alpha);
+}
+
+void glClearDepthf(GLclampf depth)
+{
+	GET_CONTEXT; 
+	 ctx->glClearDepthf(ctx, depth);
+}
+
+void glClipPlanef(GLenum plane, const GLfloat* equation)
+{
+	GET_CONTEXT; 
+	 ctx->glClipPlanef(ctx, plane, equation);
+}
+
+void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glColor4f(ctx, red, green, blue, alpha);
+}
+
+void glDepthRangef(GLclampf zNear, GLclampf zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthRangef(ctx, zNear, zFar);
+}
+
+void glFogf(GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glFogf(ctx, pname, param);
+}
+
+void glFogfv(GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glFogfv(ctx, pname, params);
+}
+
+void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glFrustumf(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glGetClipPlanef(GLenum pname, GLfloat* eqn)
+{
+	GET_CONTEXT; 
+	 ctx->glGetClipPlanef(ctx, pname, eqn);
+}
+
+void glGetFloatv(GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFloatv(ctx, pname, params);
+}
+
+void glGetLightfv(GLenum light, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetLightfv(ctx, light, pname, params);
+}
+
+void glGetMaterialfv(GLenum face, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetMaterialfv(ctx, face, pname, params);
+}
+
+void glGetTexEnvfv(GLenum env, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexEnvfv(ctx, env, pname, params);
+}
+
+void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexParameterfv(ctx, target, pname, params);
+}
+
+void glLightModelf(GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glLightModelf(ctx, pname, param);
+}
+
+void glLightModelfv(GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glLightModelfv(ctx, pname, params);
+}
+
+void glLightf(GLenum light, GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glLightf(ctx, light, pname, param);
+}
+
+void glLightfv(GLenum light, GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glLightfv(ctx, light, pname, params);
+}
+
+void glLineWidth(GLfloat width)
+{
+	GET_CONTEXT; 
+	 ctx->glLineWidth(ctx, width);
+}
+
+void glLoadMatrixf(const GLfloat* m)
+{
+	GET_CONTEXT; 
+	 ctx->glLoadMatrixf(ctx, m);
+}
+
+void glMaterialf(GLenum face, GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glMaterialf(ctx, face, pname, param);
+}
+
+void glMaterialfv(GLenum face, GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glMaterialfv(ctx, face, pname, params);
+}
+
+void glMultMatrixf(const GLfloat* m)
+{
+	GET_CONTEXT; 
+	 ctx->glMultMatrixf(ctx, m);
+}
+
+void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiTexCoord4f(ctx, target, s, t, r, q);
+}
+
+void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
+{
+	GET_CONTEXT; 
+	 ctx->glNormal3f(ctx, nx, ny, nz);
+}
+
+void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glOrthof(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glPointParameterf(GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glPointParameterf(ctx, pname, param);
+}
+
+void glPointParameterfv(GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glPointParameterfv(ctx, pname, params);
+}
+
+void glPointSize(GLfloat size)
+{
+	GET_CONTEXT; 
+	 ctx->glPointSize(ctx, size);
+}
+
+void glPolygonOffset(GLfloat factor, GLfloat units)
+{
+	GET_CONTEXT; 
+	 ctx->glPolygonOffset(ctx, factor, units);
+}
+
+void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
+{
+	GET_CONTEXT; 
+	 ctx->glRotatef(ctx, angle, x, y, z);
+}
+
+void glScalef(GLfloat x, GLfloat y, GLfloat z)
+{
+	GET_CONTEXT; 
+	 ctx->glScalef(ctx, x, y, z);
+}
+
+void glTexEnvf(GLenum target, GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvf(ctx, target, pname, param);
+}
+
+void glTexEnvfv(GLenum target, GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvfv(ctx, target, pname, params);
+}
+
+void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterf(ctx, target, pname, param);
+}
+
+void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterfv(ctx, target, pname, params);
+}
+
+void glTranslatef(GLfloat x, GLfloat y, GLfloat z)
+{
+	GET_CONTEXT; 
+	 ctx->glTranslatef(ctx, x, y, z);
+}
+
+void glActiveTexture(GLenum texture)
+{
+	GET_CONTEXT; 
+	 ctx->glActiveTexture(ctx, texture);
+}
+
+void glAlphaFuncx(GLenum func, GLclampx ref)
+{
+	GET_CONTEXT; 
+	 ctx->glAlphaFuncx(ctx, func, ref);
+}
+
+void glBindBuffer(GLenum target, GLuint buffer)
+{
+	GET_CONTEXT; 
+	 ctx->glBindBuffer(ctx, target, buffer);
+}
+
+void glBindTexture(GLenum target, GLuint texture)
+{
+	GET_CONTEXT; 
+	 ctx->glBindTexture(ctx, target, texture);
+}
+
+void glBlendFunc(GLenum sfactor, GLenum dfactor)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendFunc(ctx, sfactor, dfactor);
+}
+
+void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+	GET_CONTEXT; 
+	 ctx->glBufferData(ctx, target, size, data, usage);
+}
+
+void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glBufferSubData(ctx, target, offset, size, data);
+}
+
+void glClear(GLbitfield mask)
+{
+	GET_CONTEXT; 
+	 ctx->glClear(ctx, mask);
+}
+
+void glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glClearColorx(ctx, red, green, blue, alpha);
+}
+
+void glClearDepthx(GLclampx depth)
+{
+	GET_CONTEXT; 
+	 ctx->glClearDepthx(ctx, depth);
+}
+
+void glClearStencil(GLint s)
+{
+	GET_CONTEXT; 
+	 ctx->glClearStencil(ctx, s);
+}
+
+void glClientActiveTexture(GLenum texture)
+{
+	GET_CONTEXT; 
+	 ctx->glClientActiveTexture(ctx, texture);
+}
+
+void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glColor4ub(ctx, red, green, blue, alpha);
+}
+
+void glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glColor4x(ctx, red, green, blue, alpha);
+}
+
+void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glColorMask(ctx, red, green, blue, alpha);
+}
+
+void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glColorPointer(ctx, size, type, stride, pointer);
+}
+
+void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glCompressedTexImage2D(ctx, target, level, internalformat, width, height, border, imageSize, data);
+}
+
+void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glCompressedTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+	GET_CONTEXT; 
+	 ctx->glCopyTexImage2D(ctx, target, level, internalformat, x, y, width, height, border);
+}
+
+void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glCopyTexSubImage2D(ctx, target, level, xoffset, yoffset, x, y, width, height);
+}
+
+void glCullFace(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glCullFace(ctx, mode);
+}
+
+void glDeleteBuffers(GLsizei n, const GLuint* buffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteBuffers(ctx, n, buffers);
+}
+
+void glDeleteTextures(GLsizei n, const GLuint* textures)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteTextures(ctx, n, textures);
+}
+
+void glDepthFunc(GLenum func)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthFunc(ctx, func);
+}
+
+void glDepthMask(GLboolean flag)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthMask(ctx, flag);
+}
+
+void glDepthRangex(GLclampx zNear, GLclampx zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthRangex(ctx, zNear, zFar);
+}
+
+void glDisable(GLenum cap)
+{
+	GET_CONTEXT; 
+	 ctx->glDisable(ctx, cap);
+}
+
+void glDisableClientState(GLenum array)
+{
+	GET_CONTEXT; 
+	 ctx->glDisableClientState(ctx, array);
+}
+
+void glDrawArrays(GLenum mode, GLint first, GLsizei count)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawArrays(ctx, mode, first, count);
+}
+
+void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawElements(ctx, mode, count, type, indices);
+}
+
+void glEnable(GLenum cap)
+{
+	GET_CONTEXT; 
+	 ctx->glEnable(ctx, cap);
+}
+
+void glEnableClientState(GLenum array)
+{
+	GET_CONTEXT; 
+	 ctx->glEnableClientState(ctx, array);
+}
+
+void glFinish()
+{
+	GET_CONTEXT; 
+	 ctx->glFinish(ctx);
+}
+
+void glFlush()
+{
+	GET_CONTEXT; 
+	 ctx->glFlush(ctx);
+}
+
+void glFogx(GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glFogx(ctx, pname, param);
+}
+
+void glFogxv(GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glFogxv(ctx, pname, params);
+}
+
+void glFrontFace(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glFrontFace(ctx, mode);
+}
+
+void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glFrustumx(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glGetBooleanv(GLenum pname, GLboolean* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetBooleanv(ctx, pname, params);
+}
+
+void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetBufferParameteriv(ctx, target, pname, params);
+}
+
+void glClipPlanex(GLenum pname, const GLfixed* eqn)
+{
+	GET_CONTEXT; 
+	 ctx->glClipPlanex(ctx, pname, eqn);
+}
+
+void glGenBuffers(GLsizei n, GLuint* buffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenBuffers(ctx, n, buffers);
+}
+
+void glGenTextures(GLsizei n, GLuint* textures)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenTextures(ctx, n, textures);
+}
+
+GLenum glGetError()
+{
+	GET_CONTEXT; 
+	 return ctx->glGetError(ctx);
+}
+
+void glGetFixedv(GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFixedv(ctx, pname, params);
+}
+
+void glGetIntegerv(GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetIntegerv(ctx, pname, params);
+}
+
+void glGetLightxv(GLenum light, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetLightxv(ctx, light, pname, params);
+}
+
+void glGetMaterialxv(GLenum face, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetMaterialxv(ctx, face, pname, params);
+}
+
+void glGetPointerv(GLenum pname, GLvoid** params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPointerv(ctx, pname, params);
+}
+
+const GLubyte* glGetString(GLenum name)
+{
+	GET_CONTEXT; 
+	 return ctx->glGetString(ctx, name);
+}
+
+void glGetTexEnviv(GLenum env, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexEnviv(ctx, env, pname, params);
+}
+
+void glGetTexEnvxv(GLenum env, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexEnvxv(ctx, env, pname, params);
+}
+
+void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexParameteriv(ctx, target, pname, params);
+}
+
+void glGetTexParameterxv(GLenum target, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexParameterxv(ctx, target, pname, params);
+}
+
+void glHint(GLenum target, GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glHint(ctx, target, mode);
+}
+
+GLboolean glIsBuffer(GLuint buffer)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsBuffer(ctx, buffer);
+}
+
+GLboolean glIsEnabled(GLenum cap)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsEnabled(ctx, cap);
+}
+
+GLboolean glIsTexture(GLuint texture)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsTexture(ctx, texture);
+}
+
+void glLightModelx(GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glLightModelx(ctx, pname, param);
+}
+
+void glLightModelxv(GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glLightModelxv(ctx, pname, params);
+}
+
+void glLightx(GLenum light, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glLightx(ctx, light, pname, param);
+}
+
+void glLightxv(GLenum light, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glLightxv(ctx, light, pname, params);
+}
+
+void glLineWidthx(GLfixed width)
+{
+	GET_CONTEXT; 
+	 ctx->glLineWidthx(ctx, width);
+}
+
+void glLoadIdentity()
+{
+	GET_CONTEXT; 
+	 ctx->glLoadIdentity(ctx);
+}
+
+void glLoadMatrixx(const GLfixed* m)
+{
+	GET_CONTEXT; 
+	 ctx->glLoadMatrixx(ctx, m);
+}
+
+void glLogicOp(GLenum opcode)
+{
+	GET_CONTEXT; 
+	 ctx->glLogicOp(ctx, opcode);
+}
+
+void glMaterialx(GLenum face, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glMaterialx(ctx, face, pname, param);
+}
+
+void glMaterialxv(GLenum face, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glMaterialxv(ctx, face, pname, params);
+}
+
+void glMatrixMode(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glMatrixMode(ctx, mode);
+}
+
+void glMultMatrixx(const GLfixed* m)
+{
+	GET_CONTEXT; 
+	 ctx->glMultMatrixx(ctx, m);
+}
+
+void glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiTexCoord4x(ctx, target, s, t, r, q);
+}
+
+void glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz)
+{
+	GET_CONTEXT; 
+	 ctx->glNormal3x(ctx, nx, ny, nz);
+}
+
+void glNormalPointer(GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glNormalPointer(ctx, type, stride, pointer);
+}
+
+void glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glOrthox(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glPixelStorei(GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glPixelStorei(ctx, pname, param);
+}
+
+void glPointParameterx(GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glPointParameterx(ctx, pname, param);
+}
+
+void glPointParameterxv(GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glPointParameterxv(ctx, pname, params);
+}
+
+void glPointSizex(GLfixed size)
+{
+	GET_CONTEXT; 
+	 ctx->glPointSizex(ctx, size);
+}
+
+void glPolygonOffsetx(GLfixed factor, GLfixed units)
+{
+	GET_CONTEXT; 
+	 ctx->glPolygonOffsetx(ctx, factor, units);
+}
+
+void glPopMatrix()
+{
+	GET_CONTEXT; 
+	 ctx->glPopMatrix(ctx);
+}
+
+void glPushMatrix()
+{
+	GET_CONTEXT; 
+	 ctx->glPushMatrix(ctx);
+}
+
+void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glReadPixels(ctx, x, y, width, height, format, type, pixels);
+}
+
+void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+	GET_CONTEXT; 
+	 ctx->glRotatex(ctx, angle, x, y, z);
+}
+
+void glSampleCoverage(GLclampf value, GLboolean invert)
+{
+	GET_CONTEXT; 
+	 ctx->glSampleCoverage(ctx, value, invert);
+}
+
+void glSampleCoveragex(GLclampx value, GLboolean invert)
+{
+	GET_CONTEXT; 
+	 ctx->glSampleCoveragex(ctx, value, invert);
+}
+
+void glScalex(GLfixed x, GLfixed y, GLfixed z)
+{
+	GET_CONTEXT; 
+	 ctx->glScalex(ctx, x, y, z);
+}
+
+void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glScissor(ctx, x, y, width, height);
+}
+
+void glShadeModel(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glShadeModel(ctx, mode);
+}
+
+void glStencilFunc(GLenum func, GLint ref, GLuint mask)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilFunc(ctx, func, ref, mask);
+}
+
+void glStencilMask(GLuint mask)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilMask(ctx, mask);
+}
+
+void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilOp(ctx, fail, zfail, zpass);
+}
+
+void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glTexCoordPointer(ctx, size, type, stride, pointer);
+}
+
+void glTexEnvi(GLenum target, GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvi(ctx, target, pname, param);
+}
+
+void glTexEnvx(GLenum target, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvx(ctx, target, pname, param);
+}
+
+void glTexEnviv(GLenum target, GLenum pname, const GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnviv(ctx, target, pname, params);
+}
+
+void glTexEnvxv(GLenum target, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvxv(ctx, target, pname, params);
+}
+
+void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glTexImage2D(ctx, target, level, internalformat, width, height, border, format, type, pixels);
+}
+
+void glTexParameteri(GLenum target, GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameteri(ctx, target, pname, param);
+}
+
+void glTexParameterx(GLenum target, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterx(ctx, target, pname, param);
+}
+
+void glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameteriv(ctx, target, pname, params);
+}
+
+void glTexParameterxv(GLenum target, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterxv(ctx, target, pname, params);
+}
+
+void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, type, pixels);
+}
+
+void glTranslatex(GLfixed x, GLfixed y, GLfixed z)
+{
+	GET_CONTEXT; 
+	 ctx->glTranslatex(ctx, x, y, z);
+}
+
+void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexPointer(ctx, size, type, stride, pointer);
+}
+
+void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glViewport(ctx, x, y, width, height);
+}
+
+void glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glPointSizePointerOES(ctx, type, stride, pointer);
+}
+
+void glVertexPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexPointerOffset(ctx, size, type, stride, offset);
+}
+
+void glColorPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glColorPointerOffset(ctx, size, type, stride, offset);
+}
+
+void glNormalPointerOffset(GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glNormalPointerOffset(ctx, type, stride, offset);
+}
+
+void glPointSizePointerOffset(GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glPointSizePointerOffset(ctx, type, stride, offset);
+}
+
+void glTexCoordPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glTexCoordPointerOffset(ctx, size, type, stride, offset);
+}
+
+void glWeightPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glWeightPointerOffset(ctx, size, type, stride, offset);
+}
+
+void glMatrixIndexPointerOffset(GLint size, GLenum type, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glMatrixIndexPointerOffset(ctx, size, type, stride, offset);
+}
+
+void glVertexPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexPointerData(ctx, size, type, stride, data, datalen);
+}
+
+void glColorPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glColorPointerData(ctx, size, type, stride, data, datalen);
+}
+
+void glNormalPointerData(GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glNormalPointerData(ctx, type, stride, data, datalen);
+}
+
+void glTexCoordPointerData(GLint unit, GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glTexCoordPointerData(ctx, unit, size, type, stride, data, datalen);
+}
+
+void glPointSizePointerData(GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glPointSizePointerData(ctx, type, stride, data, datalen);
+}
+
+void glWeightPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glWeightPointerData(ctx, size, type, stride, data, datalen);
+}
+
+void glMatrixIndexPointerData(GLint size, GLenum type, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glMatrixIndexPointerData(ctx, size, type, stride, data, datalen);
+}
+
+void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawElementsOffset(ctx, mode, count, type, offset);
+}
+
+void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawElementsData(ctx, mode, count, type, data, datalen);
+}
+
+void glGetCompressedTextureFormats(int count, GLint* formats)
+{
+	GET_CONTEXT; 
+	 ctx->glGetCompressedTextureFormats(ctx, count, formats);
+}
+
+int glFinishRoundTrip()
+{
+	GET_CONTEXT; 
+	 return ctx->glFinishRoundTrip(ctx);
+}
+
+void glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendEquationSeparateOES(ctx, modeRGB, modeAlpha);
+}
+
+void glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendFuncSeparateOES(ctx, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void glBlendEquationOES(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendEquationOES(ctx, mode);
+}
+
+void glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexsOES(ctx, x, y, z, width, height);
+}
+
+void glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexiOES(ctx, x, y, z, width, height);
+}
+
+void glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexxOES(ctx, x, y, z, width, height);
+}
+
+void glDrawTexsvOES(const GLshort* coords)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexsvOES(ctx, coords);
+}
+
+void glDrawTexivOES(const GLint* coords)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexivOES(ctx, coords);
+}
+
+void glDrawTexxvOES(const GLfixed* coords)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexxvOES(ctx, coords);
+}
+
+void glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexfOES(ctx, x, y, z, width, height);
+}
+
+void glDrawTexfvOES(const GLfloat* coords)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawTexfvOES(ctx, coords);
+}
+
+void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
+{
+	GET_CONTEXT; 
+	 ctx->glEGLImageTargetTexture2DOES(ctx, target, image);
+}
+
+void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
+{
+	GET_CONTEXT; 
+	 ctx->glEGLImageTargetRenderbufferStorageOES(ctx, target, image);
+}
+
+void glAlphaFuncxOES(GLenum func, GLclampx ref)
+{
+	GET_CONTEXT; 
+	 ctx->glAlphaFuncxOES(ctx, func, ref);
+}
+
+void glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glClearColorxOES(ctx, red, green, blue, alpha);
+}
+
+void glClearDepthxOES(GLclampx depth)
+{
+	GET_CONTEXT; 
+	 ctx->glClearDepthxOES(ctx, depth);
+}
+
+void glClipPlanexOES(GLenum plane, const GLfixed* equation)
+{
+	GET_CONTEXT; 
+	 ctx->glClipPlanexOES(ctx, plane, equation);
+}
+
+void glClipPlanexIMG(GLenum plane, const GLfixed* equation)
+{
+	GET_CONTEXT; 
+	 ctx->glClipPlanexIMG(ctx, plane, equation);
+}
+
+void glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glColor4xOES(ctx, red, green, blue, alpha);
+}
+
+void glDepthRangexOES(GLclampx zNear, GLclampx zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthRangexOES(ctx, zNear, zFar);
+}
+
+void glFogxOES(GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glFogxOES(ctx, pname, param);
+}
+
+void glFogxvOES(GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glFogxvOES(ctx, pname, params);
+}
+
+void glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glFrustumxOES(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glGetClipPlanexOES(GLenum pname, GLfixed* eqn)
+{
+	GET_CONTEXT; 
+	 ctx->glGetClipPlanexOES(ctx, pname, eqn);
+}
+
+void glGetClipPlanex(GLenum pname, GLfixed* eqn)
+{
+	GET_CONTEXT; 
+	 ctx->glGetClipPlanex(ctx, pname, eqn);
+}
+
+void glGetFixedvOES(GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFixedvOES(ctx, pname, params);
+}
+
+void glGetLightxvOES(GLenum light, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetLightxvOES(ctx, light, pname, params);
+}
+
+void glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetMaterialxvOES(ctx, face, pname, params);
+}
+
+void glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexEnvxvOES(ctx, env, pname, params);
+}
+
+void glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexParameterxvOES(ctx, target, pname, params);
+}
+
+void glLightModelxOES(GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glLightModelxOES(ctx, pname, param);
+}
+
+void glLightModelxvOES(GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glLightModelxvOES(ctx, pname, params);
+}
+
+void glLightxOES(GLenum light, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glLightxOES(ctx, light, pname, param);
+}
+
+void glLightxvOES(GLenum light, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glLightxvOES(ctx, light, pname, params);
+}
+
+void glLineWidthxOES(GLfixed width)
+{
+	GET_CONTEXT; 
+	 ctx->glLineWidthxOES(ctx, width);
+}
+
+void glLoadMatrixxOES(const GLfixed* m)
+{
+	GET_CONTEXT; 
+	 ctx->glLoadMatrixxOES(ctx, m);
+}
+
+void glMaterialxOES(GLenum face, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glMaterialxOES(ctx, face, pname, param);
+}
+
+void glMaterialxvOES(GLenum face, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glMaterialxvOES(ctx, face, pname, params);
+}
+
+void glMultMatrixxOES(const GLfixed* m)
+{
+	GET_CONTEXT; 
+	 ctx->glMultMatrixxOES(ctx, m);
+}
+
+void glMultiTexCoord4xOES(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiTexCoord4xOES(ctx, target, s, t, r, q);
+}
+
+void glNormal3xOES(GLfixed nx, GLfixed ny, GLfixed nz)
+{
+	GET_CONTEXT; 
+	 ctx->glNormal3xOES(ctx, nx, ny, nz);
+}
+
+void glOrthoxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glOrthoxOES(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glPointParameterxOES(GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glPointParameterxOES(ctx, pname, param);
+}
+
+void glPointParameterxvOES(GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glPointParameterxvOES(ctx, pname, params);
+}
+
+void glPointSizexOES(GLfixed size)
+{
+	GET_CONTEXT; 
+	 ctx->glPointSizexOES(ctx, size);
+}
+
+void glPolygonOffsetxOES(GLfixed factor, GLfixed units)
+{
+	GET_CONTEXT; 
+	 ctx->glPolygonOffsetxOES(ctx, factor, units);
+}
+
+void glRotatexOES(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
+{
+	GET_CONTEXT; 
+	 ctx->glRotatexOES(ctx, angle, x, y, z);
+}
+
+void glSampleCoveragexOES(GLclampx value, GLboolean invert)
+{
+	GET_CONTEXT; 
+	 ctx->glSampleCoveragexOES(ctx, value, invert);
+}
+
+void glScalexOES(GLfixed x, GLfixed y, GLfixed z)
+{
+	GET_CONTEXT; 
+	 ctx->glScalexOES(ctx, x, y, z);
+}
+
+void glTexEnvxOES(GLenum target, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvxOES(ctx, target, pname, param);
+}
+
+void glTexEnvxvOES(GLenum target, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexEnvxvOES(ctx, target, pname, params);
+}
+
+void glTexParameterxOES(GLenum target, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterxOES(ctx, target, pname, param);
+}
+
+void glTexParameterxvOES(GLenum target, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterxvOES(ctx, target, pname, params);
+}
+
+void glTranslatexOES(GLfixed x, GLfixed y, GLfixed z)
+{
+	GET_CONTEXT; 
+	 ctx->glTranslatexOES(ctx, x, y, z);
+}
+
+GLboolean glIsRenderbufferOES(GLuint renderbuffer)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsRenderbufferOES(ctx, renderbuffer);
+}
+
+void glBindRenderbufferOES(GLenum target, GLuint renderbuffer)
+{
+	GET_CONTEXT; 
+	 ctx->glBindRenderbufferOES(ctx, target, renderbuffer);
+}
+
+void glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteRenderbuffersOES(ctx, n, renderbuffers);
+}
+
+void glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenRenderbuffersOES(ctx, n, renderbuffers);
+}
+
+void glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glRenderbufferStorageOES(ctx, target, internalformat, width, height);
+}
+
+void glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetRenderbufferParameterivOES(ctx, target, pname, params);
+}
+
+GLboolean glIsFramebufferOES(GLuint framebuffer)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsFramebufferOES(ctx, framebuffer);
+}
+
+void glBindFramebufferOES(GLenum target, GLuint framebuffer)
+{
+	GET_CONTEXT; 
+	 ctx->glBindFramebufferOES(ctx, target, framebuffer);
+}
+
+void glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteFramebuffersOES(ctx, n, framebuffers);
+}
+
+void glGenFramebuffersOES(GLsizei n, GLuint* framebuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenFramebuffersOES(ctx, n, framebuffers);
+}
+
+GLenum glCheckFramebufferStatusOES(GLenum target)
+{
+	GET_CONTEXT; 
+	 return ctx->glCheckFramebufferStatusOES(ctx, target);
+}
+
+void glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferRenderbufferOES(ctx, target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferTexture2DOES(ctx, target, attachment, textarget, texture, level);
+}
+
+void glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFramebufferAttachmentParameterivOES(ctx, target, attachment, pname, params);
+}
+
+void glGenerateMipmapOES(GLenum target)
+{
+	GET_CONTEXT; 
+	 ctx->glGenerateMipmapOES(ctx, target);
+}
+
+void* glMapBufferOES(GLenum target, GLenum access)
+{
+	GET_CONTEXT; 
+	 return ctx->glMapBufferOES(ctx, target, access);
+}
+
+GLboolean glUnmapBufferOES(GLenum target)
+{
+	GET_CONTEXT; 
+	 return ctx->glUnmapBufferOES(ctx, target);
+}
+
+void glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid** params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetBufferPointervOES(ctx, target, pname, params);
+}
+
+void glCurrentPaletteMatrixOES(GLuint matrixpaletteindex)
+{
+	GET_CONTEXT; 
+	 ctx->glCurrentPaletteMatrixOES(ctx, matrixpaletteindex);
+}
+
+void glLoadPaletteFromModelViewMatrixOES()
+{
+	GET_CONTEXT; 
+	 ctx->glLoadPaletteFromModelViewMatrixOES(ctx);
+}
+
+void glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glMatrixIndexPointerOES(ctx, size, type, stride, pointer);
+}
+
+void glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid* pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glWeightPointerOES(ctx, size, type, stride, pointer);
+}
+
+GLbitfield glQueryMatrixxOES(GLfixed* mantissa, GLint* exponent)
+{
+	GET_CONTEXT; 
+	 return ctx->glQueryMatrixxOES(ctx, mantissa, exponent);
+}
+
+void glDepthRangefOES(GLclampf zNear, GLclampf zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthRangefOES(ctx, zNear, zFar);
+}
+
+void glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glFrustumfOES(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glOrthofOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glOrthofOES(ctx, left, right, bottom, top, zNear, zFar);
+}
+
+void glClipPlanefOES(GLenum plane, const GLfloat* equation)
+{
+	GET_CONTEXT; 
+	 ctx->glClipPlanefOES(ctx, plane, equation);
+}
+
+void glClipPlanefIMG(GLenum plane, const GLfloat* equation)
+{
+	GET_CONTEXT; 
+	 ctx->glClipPlanefIMG(ctx, plane, equation);
+}
+
+void glGetClipPlanefOES(GLenum pname, GLfloat* eqn)
+{
+	GET_CONTEXT; 
+	 ctx->glGetClipPlanefOES(ctx, pname, eqn);
+}
+
+void glClearDepthfOES(GLclampf depth)
+{
+	GET_CONTEXT; 
+	 ctx->glClearDepthfOES(ctx, depth);
+}
+
+void glTexGenfOES(GLenum coord, GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexGenfOES(ctx, coord, pname, param);
+}
+
+void glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexGenfvOES(ctx, coord, pname, params);
+}
+
+void glTexGeniOES(GLenum coord, GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexGeniOES(ctx, coord, pname, param);
+}
+
+void glTexGenivOES(GLenum coord, GLenum pname, const GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexGenivOES(ctx, coord, pname, params);
+}
+
+void glTexGenxOES(GLenum coord, GLenum pname, GLfixed param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexGenxOES(ctx, coord, pname, param);
+}
+
+void glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexGenxvOES(ctx, coord, pname, params);
+}
+
+void glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexGenfvOES(ctx, coord, pname, params);
+}
+
+void glGetTexGenivOES(GLenum coord, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexGenivOES(ctx, coord, pname, params);
+}
+
+void glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexGenxvOES(ctx, coord, pname, params);
+}
+
+void glBindVertexArrayOES(GLuint array)
+{
+	GET_CONTEXT; 
+	 ctx->glBindVertexArrayOES(ctx, array);
+}
+
+void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteVertexArraysOES(ctx, n, arrays);
+}
+
+void glGenVertexArraysOES(GLsizei n, GLuint* arrays)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenVertexArraysOES(ctx, n, arrays);
+}
+
+GLboolean glIsVertexArrayOES(GLuint array)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsVertexArrayOES(ctx, array);
+}
+
+void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments)
+{
+	GET_CONTEXT; 
+	 ctx->glDiscardFramebufferEXT(ctx, target, numAttachments, attachments);
+}
+
+void glMultiDrawArraysEXT(GLenum mode, GLint* first, GLsizei* count, GLsizei primcount)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiDrawArraysEXT(ctx, mode, first, count, primcount);
+}
+
+void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiDrawElementsEXT(ctx, mode, count, type, indices, primcount);
+}
+
+void glMultiDrawArraysSUN(GLenum mode, GLint* first, GLsizei* count, GLsizei primcount)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiDrawArraysSUN(ctx, mode, first, count, primcount);
+}
+
+void glMultiDrawElementsSUN(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiDrawElementsSUN(ctx, mode, count, type, indices, primcount);
+}
+
+void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glRenderbufferStorageMultisampleIMG(ctx, target, samples, internalformat, width, height);
+}
+
+void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferTexture2DMultisampleIMG(ctx, target, attachment, textarget, texture, level, samples);
+}
+
+void glDeleteFencesNV(GLsizei n, const GLuint* fences)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteFencesNV(ctx, n, fences);
+}
+
+void glGenFencesNV(GLsizei n, GLuint* fences)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenFencesNV(ctx, n, fences);
+}
+
+GLboolean glIsFenceNV(GLuint fence)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsFenceNV(ctx, fence);
+}
+
+GLboolean glTestFenceNV(GLuint fence)
+{
+	GET_CONTEXT; 
+	 return ctx->glTestFenceNV(ctx, fence);
+}
+
+void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFenceivNV(ctx, fence, pname, params);
+}
+
+void glFinishFenceNV(GLuint fence)
+{
+	GET_CONTEXT; 
+	 ctx->glFinishFenceNV(ctx, fence);
+}
+
+void glSetFenceNV(GLuint fence, GLenum condition)
+{
+	GET_CONTEXT; 
+	 ctx->glSetFenceNV(ctx, fence, condition);
+}
+
+void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls)
+{
+	GET_CONTEXT; 
+	 ctx->glGetDriverControlsQCOM(ctx, num, size, driverControls);
+}
+
+void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
+{
+	GET_CONTEXT; 
+	 ctx->glGetDriverControlStringQCOM(ctx, driverControl, bufSize, length, driverControlString);
+}
+
+void glEnableDriverControlQCOM(GLuint driverControl)
+{
+	GET_CONTEXT; 
+	 ctx->glEnableDriverControlQCOM(ctx, driverControl);
+}
+
+void glDisableDriverControlQCOM(GLuint driverControl)
+{
+	GET_CONTEXT; 
+	 ctx->glDisableDriverControlQCOM(ctx, driverControl);
+}
+
+void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetTexturesQCOM(ctx, textures, maxTextures, numTextures);
+}
+
+void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetBuffersQCOM(ctx, buffers, maxBuffers, numBuffers);
+}
+
+void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetRenderbuffersQCOM(ctx, renderbuffers, maxRenderbuffers, numRenderbuffers);
+}
+
+void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetFramebuffersQCOM(ctx, framebuffers, maxFramebuffers, numFramebuffers);
+}
+
+void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetTexLevelParameterivQCOM(ctx, texture, face, level, pname, params);
+}
+
+void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glExtTexObjectStateOverrideiQCOM(ctx, target, pname, param);
+}
+
+void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetTexSubImageQCOM(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
+}
+
+void glExtGetBufferPointervQCOM(GLenum target, GLvoid** params)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetBufferPointervQCOM(ctx, target, params);
+}
+
+void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetShadersQCOM(ctx, shaders, maxShaders, numShaders);
+}
+
+void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetProgramsQCOM(ctx, programs, maxPrograms, numPrograms);
+}
+
+GLboolean glExtIsProgramBinaryQCOM(GLuint program)
+{
+	GET_CONTEXT; 
+	 return ctx->glExtIsProgramBinaryQCOM(ctx, program);
+}
+
+void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetProgramBinarySourceQCOM(ctx, program, shadertype, source, length);
+}
+
+void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
+{
+	GET_CONTEXT; 
+	 ctx->glStartTilingQCOM(ctx, x, y, width, height, preserveMask);
+}
+
+void glEndTilingQCOM(GLbitfield preserveMask)
+{
+	GET_CONTEXT; 
+	 ctx->glEndTilingQCOM(ctx, preserveMask);
+}
+
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_ftable.h b/tools/emulator/opengl/system/GLESv1_enc/gl_ftable.h
new file mode 100644
index 0000000..7201e7f
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_ftable.h
@@ -0,0 +1,288 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __gl_client_ftable_t_h
+#define __gl_client_ftable_t_h
+
+
+static struct _gl_funcs_by_name {
+	const char *name;
+	void *proc;
+} gl_funcs_by_name[] = {
+	{"glAlphaFunc", (void*)glAlphaFunc},
+	{"glClearColor", (void*)glClearColor},
+	{"glClearDepthf", (void*)glClearDepthf},
+	{"glClipPlanef", (void*)glClipPlanef},
+	{"glColor4f", (void*)glColor4f},
+	{"glDepthRangef", (void*)glDepthRangef},
+	{"glFogf", (void*)glFogf},
+	{"glFogfv", (void*)glFogfv},
+	{"glFrustumf", (void*)glFrustumf},
+	{"glGetClipPlanef", (void*)glGetClipPlanef},
+	{"glGetFloatv", (void*)glGetFloatv},
+	{"glGetLightfv", (void*)glGetLightfv},
+	{"glGetMaterialfv", (void*)glGetMaterialfv},
+	{"glGetTexEnvfv", (void*)glGetTexEnvfv},
+	{"glGetTexParameterfv", (void*)glGetTexParameterfv},
+	{"glLightModelf", (void*)glLightModelf},
+	{"glLightModelfv", (void*)glLightModelfv},
+	{"glLightf", (void*)glLightf},
+	{"glLightfv", (void*)glLightfv},
+	{"glLineWidth", (void*)glLineWidth},
+	{"glLoadMatrixf", (void*)glLoadMatrixf},
+	{"glMaterialf", (void*)glMaterialf},
+	{"glMaterialfv", (void*)glMaterialfv},
+	{"glMultMatrixf", (void*)glMultMatrixf},
+	{"glMultiTexCoord4f", (void*)glMultiTexCoord4f},
+	{"glNormal3f", (void*)glNormal3f},
+	{"glOrthof", (void*)glOrthof},
+	{"glPointParameterf", (void*)glPointParameterf},
+	{"glPointParameterfv", (void*)glPointParameterfv},
+	{"glPointSize", (void*)glPointSize},
+	{"glPolygonOffset", (void*)glPolygonOffset},
+	{"glRotatef", (void*)glRotatef},
+	{"glScalef", (void*)glScalef},
+	{"glTexEnvf", (void*)glTexEnvf},
+	{"glTexEnvfv", (void*)glTexEnvfv},
+	{"glTexParameterf", (void*)glTexParameterf},
+	{"glTexParameterfv", (void*)glTexParameterfv},
+	{"glTranslatef", (void*)glTranslatef},
+	{"glActiveTexture", (void*)glActiveTexture},
+	{"glAlphaFuncx", (void*)glAlphaFuncx},
+	{"glBindBuffer", (void*)glBindBuffer},
+	{"glBindTexture", (void*)glBindTexture},
+	{"glBlendFunc", (void*)glBlendFunc},
+	{"glBufferData", (void*)glBufferData},
+	{"glBufferSubData", (void*)glBufferSubData},
+	{"glClear", (void*)glClear},
+	{"glClearColorx", (void*)glClearColorx},
+	{"glClearDepthx", (void*)glClearDepthx},
+	{"glClearStencil", (void*)glClearStencil},
+	{"glClientActiveTexture", (void*)glClientActiveTexture},
+	{"glColor4ub", (void*)glColor4ub},
+	{"glColor4x", (void*)glColor4x},
+	{"glColorMask", (void*)glColorMask},
+	{"glColorPointer", (void*)glColorPointer},
+	{"glCompressedTexImage2D", (void*)glCompressedTexImage2D},
+	{"glCompressedTexSubImage2D", (void*)glCompressedTexSubImage2D},
+	{"glCopyTexImage2D", (void*)glCopyTexImage2D},
+	{"glCopyTexSubImage2D", (void*)glCopyTexSubImage2D},
+	{"glCullFace", (void*)glCullFace},
+	{"glDeleteBuffers", (void*)glDeleteBuffers},
+	{"glDeleteTextures", (void*)glDeleteTextures},
+	{"glDepthFunc", (void*)glDepthFunc},
+	{"glDepthMask", (void*)glDepthMask},
+	{"glDepthRangex", (void*)glDepthRangex},
+	{"glDisable", (void*)glDisable},
+	{"glDisableClientState", (void*)glDisableClientState},
+	{"glDrawArrays", (void*)glDrawArrays},
+	{"glDrawElements", (void*)glDrawElements},
+	{"glEnable", (void*)glEnable},
+	{"glEnableClientState", (void*)glEnableClientState},
+	{"glFinish", (void*)glFinish},
+	{"glFlush", (void*)glFlush},
+	{"glFogx", (void*)glFogx},
+	{"glFogxv", (void*)glFogxv},
+	{"glFrontFace", (void*)glFrontFace},
+	{"glFrustumx", (void*)glFrustumx},
+	{"glGetBooleanv", (void*)glGetBooleanv},
+	{"glGetBufferParameteriv", (void*)glGetBufferParameteriv},
+	{"glClipPlanex", (void*)glClipPlanex},
+	{"glGenBuffers", (void*)glGenBuffers},
+	{"glGenTextures", (void*)glGenTextures},
+	{"glGetError", (void*)glGetError},
+	{"glGetFixedv", (void*)glGetFixedv},
+	{"glGetIntegerv", (void*)glGetIntegerv},
+	{"glGetLightxv", (void*)glGetLightxv},
+	{"glGetMaterialxv", (void*)glGetMaterialxv},
+	{"glGetPointerv", (void*)glGetPointerv},
+	{"glGetString", (void*)glGetString},
+	{"glGetTexEnviv", (void*)glGetTexEnviv},
+	{"glGetTexEnvxv", (void*)glGetTexEnvxv},
+	{"glGetTexParameteriv", (void*)glGetTexParameteriv},
+	{"glGetTexParameterxv", (void*)glGetTexParameterxv},
+	{"glHint", (void*)glHint},
+	{"glIsBuffer", (void*)glIsBuffer},
+	{"glIsEnabled", (void*)glIsEnabled},
+	{"glIsTexture", (void*)glIsTexture},
+	{"glLightModelx", (void*)glLightModelx},
+	{"glLightModelxv", (void*)glLightModelxv},
+	{"glLightx", (void*)glLightx},
+	{"glLightxv", (void*)glLightxv},
+	{"glLineWidthx", (void*)glLineWidthx},
+	{"glLoadIdentity", (void*)glLoadIdentity},
+	{"glLoadMatrixx", (void*)glLoadMatrixx},
+	{"glLogicOp", (void*)glLogicOp},
+	{"glMaterialx", (void*)glMaterialx},
+	{"glMaterialxv", (void*)glMaterialxv},
+	{"glMatrixMode", (void*)glMatrixMode},
+	{"glMultMatrixx", (void*)glMultMatrixx},
+	{"glMultiTexCoord4x", (void*)glMultiTexCoord4x},
+	{"glNormal3x", (void*)glNormal3x},
+	{"glNormalPointer", (void*)glNormalPointer},
+	{"glOrthox", (void*)glOrthox},
+	{"glPixelStorei", (void*)glPixelStorei},
+	{"glPointParameterx", (void*)glPointParameterx},
+	{"glPointParameterxv", (void*)glPointParameterxv},
+	{"glPointSizex", (void*)glPointSizex},
+	{"glPolygonOffsetx", (void*)glPolygonOffsetx},
+	{"glPopMatrix", (void*)glPopMatrix},
+	{"glPushMatrix", (void*)glPushMatrix},
+	{"glReadPixels", (void*)glReadPixels},
+	{"glRotatex", (void*)glRotatex},
+	{"glSampleCoverage", (void*)glSampleCoverage},
+	{"glSampleCoveragex", (void*)glSampleCoveragex},
+	{"glScalex", (void*)glScalex},
+	{"glScissor", (void*)glScissor},
+	{"glShadeModel", (void*)glShadeModel},
+	{"glStencilFunc", (void*)glStencilFunc},
+	{"glStencilMask", (void*)glStencilMask},
+	{"glStencilOp", (void*)glStencilOp},
+	{"glTexCoordPointer", (void*)glTexCoordPointer},
+	{"glTexEnvi", (void*)glTexEnvi},
+	{"glTexEnvx", (void*)glTexEnvx},
+	{"glTexEnviv", (void*)glTexEnviv},
+	{"glTexEnvxv", (void*)glTexEnvxv},
+	{"glTexImage2D", (void*)glTexImage2D},
+	{"glTexParameteri", (void*)glTexParameteri},
+	{"glTexParameterx", (void*)glTexParameterx},
+	{"glTexParameteriv", (void*)glTexParameteriv},
+	{"glTexParameterxv", (void*)glTexParameterxv},
+	{"glTexSubImage2D", (void*)glTexSubImage2D},
+	{"glTranslatex", (void*)glTranslatex},
+	{"glVertexPointer", (void*)glVertexPointer},
+	{"glViewport", (void*)glViewport},
+	{"glPointSizePointerOES", (void*)glPointSizePointerOES},
+	{"glBlendEquationSeparateOES", (void*)glBlendEquationSeparateOES},
+	{"glBlendFuncSeparateOES", (void*)glBlendFuncSeparateOES},
+	{"glBlendEquationOES", (void*)glBlendEquationOES},
+	{"glDrawTexsOES", (void*)glDrawTexsOES},
+	{"glDrawTexiOES", (void*)glDrawTexiOES},
+	{"glDrawTexxOES", (void*)glDrawTexxOES},
+	{"glDrawTexsvOES", (void*)glDrawTexsvOES},
+	{"glDrawTexivOES", (void*)glDrawTexivOES},
+	{"glDrawTexxvOES", (void*)glDrawTexxvOES},
+	{"glDrawTexfOES", (void*)glDrawTexfOES},
+	{"glDrawTexfvOES", (void*)glDrawTexfvOES},
+	{"glEGLImageTargetTexture2DOES", (void*)glEGLImageTargetTexture2DOES},
+	{"glEGLImageTargetRenderbufferStorageOES", (void*)glEGLImageTargetRenderbufferStorageOES},
+	{"glAlphaFuncxOES", (void*)glAlphaFuncxOES},
+	{"glClearColorxOES", (void*)glClearColorxOES},
+	{"glClearDepthxOES", (void*)glClearDepthxOES},
+	{"glClipPlanexOES", (void*)glClipPlanexOES},
+	{"glClipPlanexIMG", (void*)glClipPlanexIMG},
+	{"glColor4xOES", (void*)glColor4xOES},
+	{"glDepthRangexOES", (void*)glDepthRangexOES},
+	{"glFogxOES", (void*)glFogxOES},
+	{"glFogxvOES", (void*)glFogxvOES},
+	{"glFrustumxOES", (void*)glFrustumxOES},
+	{"glGetClipPlanexOES", (void*)glGetClipPlanexOES},
+	{"glGetClipPlanex", (void*)glGetClipPlanex},
+	{"glGetFixedvOES", (void*)glGetFixedvOES},
+	{"glGetLightxvOES", (void*)glGetLightxvOES},
+	{"glGetMaterialxvOES", (void*)glGetMaterialxvOES},
+	{"glGetTexEnvxvOES", (void*)glGetTexEnvxvOES},
+	{"glGetTexParameterxvOES", (void*)glGetTexParameterxvOES},
+	{"glLightModelxOES", (void*)glLightModelxOES},
+	{"glLightModelxvOES", (void*)glLightModelxvOES},
+	{"glLightxOES", (void*)glLightxOES},
+	{"glLightxvOES", (void*)glLightxvOES},
+	{"glLineWidthxOES", (void*)glLineWidthxOES},
+	{"glLoadMatrixxOES", (void*)glLoadMatrixxOES},
+	{"glMaterialxOES", (void*)glMaterialxOES},
+	{"glMaterialxvOES", (void*)glMaterialxvOES},
+	{"glMultMatrixxOES", (void*)glMultMatrixxOES},
+	{"glMultiTexCoord4xOES", (void*)glMultiTexCoord4xOES},
+	{"glNormal3xOES", (void*)glNormal3xOES},
+	{"glOrthoxOES", (void*)glOrthoxOES},
+	{"glPointParameterxOES", (void*)glPointParameterxOES},
+	{"glPointParameterxvOES", (void*)glPointParameterxvOES},
+	{"glPointSizexOES", (void*)glPointSizexOES},
+	{"glPolygonOffsetxOES", (void*)glPolygonOffsetxOES},
+	{"glRotatexOES", (void*)glRotatexOES},
+	{"glSampleCoveragexOES", (void*)glSampleCoveragexOES},
+	{"glScalexOES", (void*)glScalexOES},
+	{"glTexEnvxOES", (void*)glTexEnvxOES},
+	{"glTexEnvxvOES", (void*)glTexEnvxvOES},
+	{"glTexParameterxOES", (void*)glTexParameterxOES},
+	{"glTexParameterxvOES", (void*)glTexParameterxvOES},
+	{"glTranslatexOES", (void*)glTranslatexOES},
+	{"glIsRenderbufferOES", (void*)glIsRenderbufferOES},
+	{"glBindRenderbufferOES", (void*)glBindRenderbufferOES},
+	{"glDeleteRenderbuffersOES", (void*)glDeleteRenderbuffersOES},
+	{"glGenRenderbuffersOES", (void*)glGenRenderbuffersOES},
+	{"glRenderbufferStorageOES", (void*)glRenderbufferStorageOES},
+	{"glGetRenderbufferParameterivOES", (void*)glGetRenderbufferParameterivOES},
+	{"glIsFramebufferOES", (void*)glIsFramebufferOES},
+	{"glBindFramebufferOES", (void*)glBindFramebufferOES},
+	{"glDeleteFramebuffersOES", (void*)glDeleteFramebuffersOES},
+	{"glGenFramebuffersOES", (void*)glGenFramebuffersOES},
+	{"glCheckFramebufferStatusOES", (void*)glCheckFramebufferStatusOES},
+	{"glFramebufferRenderbufferOES", (void*)glFramebufferRenderbufferOES},
+	{"glFramebufferTexture2DOES", (void*)glFramebufferTexture2DOES},
+	{"glGetFramebufferAttachmentParameterivOES", (void*)glGetFramebufferAttachmentParameterivOES},
+	{"glGenerateMipmapOES", (void*)glGenerateMipmapOES},
+	{"glMapBufferOES", (void*)glMapBufferOES},
+	{"glUnmapBufferOES", (void*)glUnmapBufferOES},
+	{"glGetBufferPointervOES", (void*)glGetBufferPointervOES},
+	{"glCurrentPaletteMatrixOES", (void*)glCurrentPaletteMatrixOES},
+	{"glLoadPaletteFromModelViewMatrixOES", (void*)glLoadPaletteFromModelViewMatrixOES},
+	{"glMatrixIndexPointerOES", (void*)glMatrixIndexPointerOES},
+	{"glWeightPointerOES", (void*)glWeightPointerOES},
+	{"glQueryMatrixxOES", (void*)glQueryMatrixxOES},
+	{"glDepthRangefOES", (void*)glDepthRangefOES},
+	{"glFrustumfOES", (void*)glFrustumfOES},
+	{"glOrthofOES", (void*)glOrthofOES},
+	{"glClipPlanefOES", (void*)glClipPlanefOES},
+	{"glClipPlanefIMG", (void*)glClipPlanefIMG},
+	{"glGetClipPlanefOES", (void*)glGetClipPlanefOES},
+	{"glClearDepthfOES", (void*)glClearDepthfOES},
+	{"glTexGenfOES", (void*)glTexGenfOES},
+	{"glTexGenfvOES", (void*)glTexGenfvOES},
+	{"glTexGeniOES", (void*)glTexGeniOES},
+	{"glTexGenivOES", (void*)glTexGenivOES},
+	{"glTexGenxOES", (void*)glTexGenxOES},
+	{"glTexGenxvOES", (void*)glTexGenxvOES},
+	{"glGetTexGenfvOES", (void*)glGetTexGenfvOES},
+	{"glGetTexGenivOES", (void*)glGetTexGenivOES},
+	{"glGetTexGenxvOES", (void*)glGetTexGenxvOES},
+	{"glBindVertexArrayOES", (void*)glBindVertexArrayOES},
+	{"glDeleteVertexArraysOES", (void*)glDeleteVertexArraysOES},
+	{"glGenVertexArraysOES", (void*)glGenVertexArraysOES},
+	{"glIsVertexArrayOES", (void*)glIsVertexArrayOES},
+	{"glDiscardFramebufferEXT", (void*)glDiscardFramebufferEXT},
+	{"glMultiDrawArraysEXT", (void*)glMultiDrawArraysEXT},
+	{"glMultiDrawElementsEXT", (void*)glMultiDrawElementsEXT},
+	{"glMultiDrawArraysSUN", (void*)glMultiDrawArraysSUN},
+	{"glMultiDrawElementsSUN", (void*)glMultiDrawElementsSUN},
+	{"glRenderbufferStorageMultisampleIMG", (void*)glRenderbufferStorageMultisampleIMG},
+	{"glFramebufferTexture2DMultisampleIMG", (void*)glFramebufferTexture2DMultisampleIMG},
+	{"glDeleteFencesNV", (void*)glDeleteFencesNV},
+	{"glGenFencesNV", (void*)glGenFencesNV},
+	{"glIsFenceNV", (void*)glIsFenceNV},
+	{"glTestFenceNV", (void*)glTestFenceNV},
+	{"glGetFenceivNV", (void*)glGetFenceivNV},
+	{"glFinishFenceNV", (void*)glFinishFenceNV},
+	{"glSetFenceNV", (void*)glSetFenceNV},
+	{"glGetDriverControlsQCOM", (void*)glGetDriverControlsQCOM},
+	{"glGetDriverControlStringQCOM", (void*)glGetDriverControlStringQCOM},
+	{"glEnableDriverControlQCOM", (void*)glEnableDriverControlQCOM},
+	{"glDisableDriverControlQCOM", (void*)glDisableDriverControlQCOM},
+	{"glExtGetTexturesQCOM", (void*)glExtGetTexturesQCOM},
+	{"glExtGetBuffersQCOM", (void*)glExtGetBuffersQCOM},
+	{"glExtGetRenderbuffersQCOM", (void*)glExtGetRenderbuffersQCOM},
+	{"glExtGetFramebuffersQCOM", (void*)glExtGetFramebuffersQCOM},
+	{"glExtGetTexLevelParameterivQCOM", (void*)glExtGetTexLevelParameterivQCOM},
+	{"glExtTexObjectStateOverrideiQCOM", (void*)glExtTexObjectStateOverrideiQCOM},
+	{"glExtGetTexSubImageQCOM", (void*)glExtGetTexSubImageQCOM},
+	{"glExtGetBufferPointervQCOM", (void*)glExtGetBufferPointervQCOM},
+	{"glExtGetShadersQCOM", (void*)glExtGetShadersQCOM},
+	{"glExtGetProgramsQCOM", (void*)glExtGetProgramsQCOM},
+	{"glExtIsProgramBinaryQCOM", (void*)glExtIsProgramBinaryQCOM},
+	{"glExtGetProgramBinarySourceQCOM", (void*)glExtGetProgramBinarySourceQCOM},
+	{"glStartTilingQCOM", (void*)glStartTilingQCOM},
+	{"glEndTilingQCOM", (void*)glEndTilingQCOM},
+};
+static int gl_num_funcs = sizeof(gl_funcs_by_name) / sizeof(struct _gl_funcs_by_name);
+
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv1_enc/gl_opcodes.h b/tools/emulator/opengl/system/GLESv1_enc/gl_opcodes.h
new file mode 100644
index 0000000..319d0a1
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv1_enc/gl_opcodes.h
@@ -0,0 +1,300 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __GUARD_gl_opcodes_h_
+#define __GUARD_gl_opcodes_h_
+
+#define OP_glAlphaFunc 					1024
+#define OP_glClearColor 					1025
+#define OP_glClearDepthf 					1026
+#define OP_glClipPlanef 					1027
+#define OP_glColor4f 					1028
+#define OP_glDepthRangef 					1029
+#define OP_glFogf 					1030
+#define OP_glFogfv 					1031
+#define OP_glFrustumf 					1032
+#define OP_glGetClipPlanef 					1033
+#define OP_glGetFloatv 					1034
+#define OP_glGetLightfv 					1035
+#define OP_glGetMaterialfv 					1036
+#define OP_glGetTexEnvfv 					1037
+#define OP_glGetTexParameterfv 					1038
+#define OP_glLightModelf 					1039
+#define OP_glLightModelfv 					1040
+#define OP_glLightf 					1041
+#define OP_glLightfv 					1042
+#define OP_glLineWidth 					1043
+#define OP_glLoadMatrixf 					1044
+#define OP_glMaterialf 					1045
+#define OP_glMaterialfv 					1046
+#define OP_glMultMatrixf 					1047
+#define OP_glMultiTexCoord4f 					1048
+#define OP_glNormal3f 					1049
+#define OP_glOrthof 					1050
+#define OP_glPointParameterf 					1051
+#define OP_glPointParameterfv 					1052
+#define OP_glPointSize 					1053
+#define OP_glPolygonOffset 					1054
+#define OP_glRotatef 					1055
+#define OP_glScalef 					1056
+#define OP_glTexEnvf 					1057
+#define OP_glTexEnvfv 					1058
+#define OP_glTexParameterf 					1059
+#define OP_glTexParameterfv 					1060
+#define OP_glTranslatef 					1061
+#define OP_glActiveTexture 					1062
+#define OP_glAlphaFuncx 					1063
+#define OP_glBindBuffer 					1064
+#define OP_glBindTexture 					1065
+#define OP_glBlendFunc 					1066
+#define OP_glBufferData 					1067
+#define OP_glBufferSubData 					1068
+#define OP_glClear 					1069
+#define OP_glClearColorx 					1070
+#define OP_glClearDepthx 					1071
+#define OP_glClearStencil 					1072
+#define OP_glClientActiveTexture 					1073
+#define OP_glColor4ub 					1074
+#define OP_glColor4x 					1075
+#define OP_glColorMask 					1076
+#define OP_glColorPointer 					1077
+#define OP_glCompressedTexImage2D 					1078
+#define OP_glCompressedTexSubImage2D 					1079
+#define OP_glCopyTexImage2D 					1080
+#define OP_glCopyTexSubImage2D 					1081
+#define OP_glCullFace 					1082
+#define OP_glDeleteBuffers 					1083
+#define OP_glDeleteTextures 					1084
+#define OP_glDepthFunc 					1085
+#define OP_glDepthMask 					1086
+#define OP_glDepthRangex 					1087
+#define OP_glDisable 					1088
+#define OP_glDisableClientState 					1089
+#define OP_glDrawArrays 					1090
+#define OP_glDrawElements 					1091
+#define OP_glEnable 					1092
+#define OP_glEnableClientState 					1093
+#define OP_glFinish 					1094
+#define OP_glFlush 					1095
+#define OP_glFogx 					1096
+#define OP_glFogxv 					1097
+#define OP_glFrontFace 					1098
+#define OP_glFrustumx 					1099
+#define OP_glGetBooleanv 					1100
+#define OP_glGetBufferParameteriv 					1101
+#define OP_glClipPlanex 					1102
+#define OP_glGenBuffers 					1103
+#define OP_glGenTextures 					1104
+#define OP_glGetError 					1105
+#define OP_glGetFixedv 					1106
+#define OP_glGetIntegerv 					1107
+#define OP_glGetLightxv 					1108
+#define OP_glGetMaterialxv 					1109
+#define OP_glGetPointerv 					1110
+#define OP_glGetString 					1111
+#define OP_glGetTexEnviv 					1112
+#define OP_glGetTexEnvxv 					1113
+#define OP_glGetTexParameteriv 					1114
+#define OP_glGetTexParameterxv 					1115
+#define OP_glHint 					1116
+#define OP_glIsBuffer 					1117
+#define OP_glIsEnabled 					1118
+#define OP_glIsTexture 					1119
+#define OP_glLightModelx 					1120
+#define OP_glLightModelxv 					1121
+#define OP_glLightx 					1122
+#define OP_glLightxv 					1123
+#define OP_glLineWidthx 					1124
+#define OP_glLoadIdentity 					1125
+#define OP_glLoadMatrixx 					1126
+#define OP_glLogicOp 					1127
+#define OP_glMaterialx 					1128
+#define OP_glMaterialxv 					1129
+#define OP_glMatrixMode 					1130
+#define OP_glMultMatrixx 					1131
+#define OP_glMultiTexCoord4x 					1132
+#define OP_glNormal3x 					1133
+#define OP_glNormalPointer 					1134
+#define OP_glOrthox 					1135
+#define OP_glPixelStorei 					1136
+#define OP_glPointParameterx 					1137
+#define OP_glPointParameterxv 					1138
+#define OP_glPointSizex 					1139
+#define OP_glPolygonOffsetx 					1140
+#define OP_glPopMatrix 					1141
+#define OP_glPushMatrix 					1142
+#define OP_glReadPixels 					1143
+#define OP_glRotatex 					1144
+#define OP_glSampleCoverage 					1145
+#define OP_glSampleCoveragex 					1146
+#define OP_glScalex 					1147
+#define OP_glScissor 					1148
+#define OP_glShadeModel 					1149
+#define OP_glStencilFunc 					1150
+#define OP_glStencilMask 					1151
+#define OP_glStencilOp 					1152
+#define OP_glTexCoordPointer 					1153
+#define OP_glTexEnvi 					1154
+#define OP_glTexEnvx 					1155
+#define OP_glTexEnviv 					1156
+#define OP_glTexEnvxv 					1157
+#define OP_glTexImage2D 					1158
+#define OP_glTexParameteri 					1159
+#define OP_glTexParameterx 					1160
+#define OP_glTexParameteriv 					1161
+#define OP_glTexParameterxv 					1162
+#define OP_glTexSubImage2D 					1163
+#define OP_glTranslatex 					1164
+#define OP_glVertexPointer 					1165
+#define OP_glViewport 					1166
+#define OP_glPointSizePointerOES 					1167
+#define OP_glVertexPointerOffset 					1168
+#define OP_glColorPointerOffset 					1169
+#define OP_glNormalPointerOffset 					1170
+#define OP_glPointSizePointerOffset 					1171
+#define OP_glTexCoordPointerOffset 					1172
+#define OP_glWeightPointerOffset 					1173
+#define OP_glMatrixIndexPointerOffset 					1174
+#define OP_glVertexPointerData 					1175
+#define OP_glColorPointerData 					1176
+#define OP_glNormalPointerData 					1177
+#define OP_glTexCoordPointerData 					1178
+#define OP_glPointSizePointerData 					1179
+#define OP_glWeightPointerData 					1180
+#define OP_glMatrixIndexPointerData 					1181
+#define OP_glDrawElementsOffset 					1182
+#define OP_glDrawElementsData 					1183
+#define OP_glGetCompressedTextureFormats 					1184
+#define OP_glFinishRoundTrip 					1185
+#define OP_glBlendEquationSeparateOES 					1186
+#define OP_glBlendFuncSeparateOES 					1187
+#define OP_glBlendEquationOES 					1188
+#define OP_glDrawTexsOES 					1189
+#define OP_glDrawTexiOES 					1190
+#define OP_glDrawTexxOES 					1191
+#define OP_glDrawTexsvOES 					1192
+#define OP_glDrawTexivOES 					1193
+#define OP_glDrawTexxvOES 					1194
+#define OP_glDrawTexfOES 					1195
+#define OP_glDrawTexfvOES 					1196
+#define OP_glEGLImageTargetTexture2DOES 					1197
+#define OP_glEGLImageTargetRenderbufferStorageOES 					1198
+#define OP_glAlphaFuncxOES 					1199
+#define OP_glClearColorxOES 					1200
+#define OP_glClearDepthxOES 					1201
+#define OP_glClipPlanexOES 					1202
+#define OP_glClipPlanexIMG 					1203
+#define OP_glColor4xOES 					1204
+#define OP_glDepthRangexOES 					1205
+#define OP_glFogxOES 					1206
+#define OP_glFogxvOES 					1207
+#define OP_glFrustumxOES 					1208
+#define OP_glGetClipPlanexOES 					1209
+#define OP_glGetClipPlanex 					1210
+#define OP_glGetFixedvOES 					1211
+#define OP_glGetLightxvOES 					1212
+#define OP_glGetMaterialxvOES 					1213
+#define OP_glGetTexEnvxvOES 					1214
+#define OP_glGetTexParameterxvOES 					1215
+#define OP_glLightModelxOES 					1216
+#define OP_glLightModelxvOES 					1217
+#define OP_glLightxOES 					1218
+#define OP_glLightxvOES 					1219
+#define OP_glLineWidthxOES 					1220
+#define OP_glLoadMatrixxOES 					1221
+#define OP_glMaterialxOES 					1222
+#define OP_glMaterialxvOES 					1223
+#define OP_glMultMatrixxOES 					1224
+#define OP_glMultiTexCoord4xOES 					1225
+#define OP_glNormal3xOES 					1226
+#define OP_glOrthoxOES 					1227
+#define OP_glPointParameterxOES 					1228
+#define OP_glPointParameterxvOES 					1229
+#define OP_glPointSizexOES 					1230
+#define OP_glPolygonOffsetxOES 					1231
+#define OP_glRotatexOES 					1232
+#define OP_glSampleCoveragexOES 					1233
+#define OP_glScalexOES 					1234
+#define OP_glTexEnvxOES 					1235
+#define OP_glTexEnvxvOES 					1236
+#define OP_glTexParameterxOES 					1237
+#define OP_glTexParameterxvOES 					1238
+#define OP_glTranslatexOES 					1239
+#define OP_glIsRenderbufferOES 					1240
+#define OP_glBindRenderbufferOES 					1241
+#define OP_glDeleteRenderbuffersOES 					1242
+#define OP_glGenRenderbuffersOES 					1243
+#define OP_glRenderbufferStorageOES 					1244
+#define OP_glGetRenderbufferParameterivOES 					1245
+#define OP_glIsFramebufferOES 					1246
+#define OP_glBindFramebufferOES 					1247
+#define OP_glDeleteFramebuffersOES 					1248
+#define OP_glGenFramebuffersOES 					1249
+#define OP_glCheckFramebufferStatusOES 					1250
+#define OP_glFramebufferRenderbufferOES 					1251
+#define OP_glFramebufferTexture2DOES 					1252
+#define OP_glGetFramebufferAttachmentParameterivOES 					1253
+#define OP_glGenerateMipmapOES 					1254
+#define OP_glMapBufferOES 					1255
+#define OP_glUnmapBufferOES 					1256
+#define OP_glGetBufferPointervOES 					1257
+#define OP_glCurrentPaletteMatrixOES 					1258
+#define OP_glLoadPaletteFromModelViewMatrixOES 					1259
+#define OP_glMatrixIndexPointerOES 					1260
+#define OP_glWeightPointerOES 					1261
+#define OP_glQueryMatrixxOES 					1262
+#define OP_glDepthRangefOES 					1263
+#define OP_glFrustumfOES 					1264
+#define OP_glOrthofOES 					1265
+#define OP_glClipPlanefOES 					1266
+#define OP_glClipPlanefIMG 					1267
+#define OP_glGetClipPlanefOES 					1268
+#define OP_glClearDepthfOES 					1269
+#define OP_glTexGenfOES 					1270
+#define OP_glTexGenfvOES 					1271
+#define OP_glTexGeniOES 					1272
+#define OP_glTexGenivOES 					1273
+#define OP_glTexGenxOES 					1274
+#define OP_glTexGenxvOES 					1275
+#define OP_glGetTexGenfvOES 					1276
+#define OP_glGetTexGenivOES 					1277
+#define OP_glGetTexGenxvOES 					1278
+#define OP_glBindVertexArrayOES 					1279
+#define OP_glDeleteVertexArraysOES 					1280
+#define OP_glGenVertexArraysOES 					1281
+#define OP_glIsVertexArrayOES 					1282
+#define OP_glDiscardFramebufferEXT 					1283
+#define OP_glMultiDrawArraysEXT 					1284
+#define OP_glMultiDrawElementsEXT 					1285
+#define OP_glMultiDrawArraysSUN 					1286
+#define OP_glMultiDrawElementsSUN 					1287
+#define OP_glRenderbufferStorageMultisampleIMG 					1288
+#define OP_glFramebufferTexture2DMultisampleIMG 					1289
+#define OP_glDeleteFencesNV 					1290
+#define OP_glGenFencesNV 					1291
+#define OP_glIsFenceNV 					1292
+#define OP_glTestFenceNV 					1293
+#define OP_glGetFenceivNV 					1294
+#define OP_glFinishFenceNV 					1295
+#define OP_glSetFenceNV 					1296
+#define OP_glGetDriverControlsQCOM 					1297
+#define OP_glGetDriverControlStringQCOM 					1298
+#define OP_glEnableDriverControlQCOM 					1299
+#define OP_glDisableDriverControlQCOM 					1300
+#define OP_glExtGetTexturesQCOM 					1301
+#define OP_glExtGetBuffersQCOM 					1302
+#define OP_glExtGetRenderbuffersQCOM 					1303
+#define OP_glExtGetFramebuffersQCOM 					1304
+#define OP_glExtGetTexLevelParameterivQCOM 					1305
+#define OP_glExtTexObjectStateOverrideiQCOM 					1306
+#define OP_glExtGetTexSubImageQCOM 					1307
+#define OP_glExtGetBufferPointervQCOM 					1308
+#define OP_glExtGetShadersQCOM 					1309
+#define OP_glExtGetProgramsQCOM 					1310
+#define OP_glExtIsProgramBinaryQCOM 					1311
+#define OP_glExtGetProgramBinarySourceQCOM 					1312
+#define OP_glStartTilingQCOM 					1313
+#define OP_glEndTilingQCOM 					1314
+#define OP_last 					1315
+
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv2/gl2.cpp b/tools/emulator/opengl/system/GLESv2/gl2.cpp
index a014c1a..b32dd74 100644
--- a/tools/emulator/opengl/system/GLESv2/gl2.cpp
+++ b/tools/emulator/opengl/system/GLESv2/gl2.cpp
@@ -1,15 +1,30 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include "EGLClientIface.h"
 #include "HostConnection.h"
 #include "GL2Encoder.h"
 #include "GLES/gl.h"
 #include "GLES/glext.h"
 #include "ErrorLog.h"
-#include <private/ui/android_natives_priv.h>
 #include "gralloc_cb.h"
 #include "ThreadInfo.h"
 
 //XXX: fix this macro to get the context from fast tls path
-#define GET_CONTEXT gl2_client_context_t * ctx = getEGLThreadInfo()->hostConn->gl2Encoder();
+#define GET_CONTEXT GL2Encoder * ctx = getEGLThreadInfo()->hostConn->gl2Encoder();
 
 #include "gl2_entry.cpp"
 
@@ -23,19 +38,19 @@
 #define DEFINE_AND_VALIDATE_HOST_CONNECTION(ret) \
     HostConnection *hostCon = HostConnection::get(); \
     if (!hostCon) { \
-        LOGE("egl: Failed to get host connection\n"); \
+        ALOGE("egl: Failed to get host connection\n"); \
         return ret; \
     } \
     renderControl_encoder_context_t *rcEnc = hostCon->rcEncoder(); \
     if (!rcEnc) { \
-        LOGE("egl: Failed to get renderControl encoder context\n"); \
+        ALOGE("egl: Failed to get renderControl encoder context\n"); \
         return ret; \
     }
 
 //GL extensions
 void glEGLImageTargetTexture2DOES(void * self, GLenum target, GLeglImageOES image)
 {
-    DBG("glEGLImageTargetTexture2DOES v2 img=%p\n", image);
+    DBG("glEGLImageTargetTexture2DOES v2 target=%#x img=%p\n", target, image);
     //TODO: check error - we don't have a way to set gl error
     android_native_buffer_t* native_buffer = (android_native_buffer_t*)image;
 
@@ -47,8 +62,12 @@
         return;
     }
 
+    GET_CONTEXT;
     DEFINE_AND_VALIDATE_HOST_CONNECTION();
+
+    ctx->override2DTextureTarget(target);
     rcEnc->rcBindTexture(rcEnc, ((cb_handle_t *)(native_buffer->handle))->hostHandle);
+    ctx->restore2DTextureTarget();
 
     return;
 }
diff --git a/tools/emulator/opengl/system/GLESv2_enc/Android.mk b/tools/emulator/opengl/system/GLESv2_enc/Android.mk
index 2a4d2f4..e76a175 100644
--- a/tools/emulator/opengl/system/GLESv2_enc/Android.mk
+++ b/tools/emulator/opengl/system/GLESv2_enc/Android.mk
@@ -5,11 +5,13 @@
 
 LOCAL_SRC_FILES := \
     GL2EncoderUtils.cpp \
-    GL2Encoder.cpp
+    GL2Encoder.cpp \
+    gl2_client_context.cpp \
+    gl2_enc.cpp \
+    gl2_entry.cpp
 
 LOCAL_CFLAGS += -DLOG_TAG=\"emuglGLESv2_enc\"
 
-$(call emugl-gen-encoder,$(LOCAL_PATH),gl2)
 $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
 $(call emugl-import,libOpenglCodecCommon)
 
diff --git a/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.cpp b/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.cpp
index 59fe1a2..d8fedf3 100644
--- a/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.cpp
+++ b/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.cpp
@@ -1,6 +1,26 @@
+/*
+* Copyright (C) 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include "GL2Encoder.h"
 #include <assert.h>
+#include <ctype.h>
 
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
 
 static GLubyte *gVendorString= (GLubyte *) "Android";
 static GLubyte *gRendererString= (GLubyte *) "Android HW-GLES 2.0";
@@ -8,14 +28,14 @@
 static GLubyte *gExtensionsString= (GLubyte *) ""; // no extensions at this point;
 
 #define SET_ERROR_IF(condition,err) if((condition)) {                            \
-        LOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
+        ALOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
         ctx->setError(err);                                    \
         return;                                                  \
     }
 
 
 #define RET_AND_SET_ERROR_IF(condition,err,ret) if((condition)) {                \
-        LOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
+        ALOGE("%s:%s:%d GL error 0x%x\n", __FILE__, __FUNCTION__, __LINE__, err); \
         ctx->setError(err);                                    \
         return ret;                                              \
     }
@@ -57,6 +77,8 @@
     m_glCreateProgram_enc = set_glCreateProgram(s_glCreateProgram);
     m_glCreateShader_enc = set_glCreateShader(s_glCreateShader);
     m_glDeleteShader_enc = set_glDeleteShader(s_glDeleteShader);
+    m_glAttachShader_enc = set_glAttachShader(s_glAttachShader);
+    m_glDetachShader_enc = set_glDetachShader(s_glDetachShader);
     m_glGetUniformLocation_enc = set_glGetUniformLocation(s_glGetUniformLocation);
     m_glUseProgram_enc = set_glUseProgram(s_glUseProgram);
 
@@ -79,6 +101,16 @@
     m_glUniformMatrix2fv_enc = set_glUniformMatrix2fv(s_glUniformMatrix2fv);
     m_glUniformMatrix3fv_enc = set_glUniformMatrix3fv(s_glUniformMatrix3fv);
     m_glUniformMatrix4fv_enc = set_glUniformMatrix4fv(s_glUniformMatrix4fv);
+
+    m_glActiveTexture_enc = set_glActiveTexture(s_glActiveTexture);
+    m_glBindTexture_enc = set_glBindTexture(s_glBindTexture);
+    m_glDeleteTextures_enc = set_glDeleteTextures(s_glDeleteTextures);
+    m_glGetTexParameterfv_enc = set_glGetTexParameterfv(s_glGetTexParameterfv);
+    m_glGetTexParameteriv_enc = set_glGetTexParameteriv(s_glGetTexParameteriv);
+    m_glTexParameterf_enc = set_glTexParameterf(s_glTexParameterf);
+    m_glTexParameterfv_enc = set_glTexParameterfv(s_glTexParameterfv);
+    m_glTexParameteri_enc = set_glTexParameteri(s_glTexParameteri);
+    m_glTexParameteriv_enc = set_glTexParameteriv(s_glTexParameteriv);
 }
 
 GL2Encoder::~GL2Encoder()
@@ -184,21 +216,49 @@
     ctx->m_state->setState(indx, size, type, normalized, stride, ptr);
 }
 
-void GL2Encoder::s_glGetIntegerv(void *self, GLenum param, GLint *params)
+void GL2Encoder::s_glGetIntegerv(void *self, GLenum param, GLint *ptr)
 {
     GL2Encoder *ctx = (GL2Encoder *) self;
     assert(ctx->m_state != NULL);
-    if (param == GL_NUM_SHADER_BINARY_FORMATS) {
-        *params = 0;
-    } else if (param == GL_SHADER_BINARY_FORMATS) {
+    GLClientState* state = ctx->m_state;
+
+    switch (param) {
+    case GL_NUM_SHADER_BINARY_FORMATS:
+        *ptr = 0;
+        break;
+    case GL_SHADER_BINARY_FORMATS:
         // do nothing
-    } else  if (param == GL_COMPRESSED_TEXTURE_FORMATS) {
+        break;
+
+    case GL_COMPRESSED_TEXTURE_FORMATS: {
         GLint *compressedTextureFormats = ctx->getCompressedTextureFormats();
-        if (ctx->m_num_compressedTextureFormats > 0 && compressedTextureFormats != NULL) {
-            memcpy(params, compressedTextureFormats, ctx->m_num_compressedTextureFormats * sizeof(GLint));
+        if (ctx->m_num_compressedTextureFormats > 0 &&
+                compressedTextureFormats != NULL) {
+            memcpy(ptr, compressedTextureFormats,
+                    ctx->m_num_compressedTextureFormats * sizeof(GLint));
         }
-    } else if (!ctx->m_state->getClientStateParameter<GLint>(param, params)) {
-        ctx->m_glGetIntegerv_enc(self, param, params);
+        break;
+    }
+
+    case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
+    case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
+    case GL_MAX_TEXTURE_IMAGE_UNITS:
+        ctx->m_glGetIntegerv_enc(self, param, ptr);
+        *ptr = MIN(*ptr, GLClientState::MAX_TEXTURE_UNITS);
+        break;
+
+    case GL_TEXTURE_BINDING_2D:
+        *ptr = state->getBoundTexture(GL_TEXTURE_2D);
+        break;
+    case GL_TEXTURE_BINDING_EXTERNAL_OES:
+        *ptr = state->getBoundTexture(GL_TEXTURE_EXTERNAL_OES);
+        break;
+
+    default:
+        if (!ctx->m_state->getClientStateParameter<GLint>(param, ptr)) {
+            ctx->m_glGetIntegerv_enc(self, param, ptr);
+        }
+        break;
     }
 }
 
@@ -207,20 +267,46 @@
 {
     GL2Encoder *ctx = (GL2Encoder *)self;
     assert(ctx->m_state != NULL);
-    if (param == GL_NUM_SHADER_BINARY_FORMATS) {
+    GLClientState* state = ctx->m_state;
+
+    switch (param) {
+    case GL_NUM_SHADER_BINARY_FORMATS:
         *ptr = 0;
-    } else if (param == GL_SHADER_BINARY_FORMATS) {
-        // do nothing;
-    } else  if (param == GL_COMPRESSED_TEXTURE_FORMATS) {
-        GLint * compressedTextureFormats = ctx->getCompressedTextureFormats();
-        if (ctx->m_num_compressedTextureFormats > 0 && compressedTextureFormats != NULL) {
+        break;
+    case GL_SHADER_BINARY_FORMATS:
+        // do nothing
+        break;
+
+    case GL_COMPRESSED_TEXTURE_FORMATS: {
+        GLint *compressedTextureFormats = ctx->getCompressedTextureFormats();
+        if (ctx->m_num_compressedTextureFormats > 0 &&
+                compressedTextureFormats != NULL) {
             for (int i = 0; i < ctx->m_num_compressedTextureFormats; i++) {
                 ptr[i] = (GLfloat) compressedTextureFormats[i];
             }
         }
+        break;
     }
-    else if (!ctx->m_state->getClientStateParameter<GLfloat>(param,ptr)) {
+
+    case GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS:
+    case GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS:
+    case GL_MAX_TEXTURE_IMAGE_UNITS:
         ctx->m_glGetFloatv_enc(self, param, ptr);
+        *ptr = MIN(*ptr, (GLfloat)GLClientState::MAX_TEXTURE_UNITS);
+        break;
+
+    case GL_TEXTURE_BINDING_2D:
+        *ptr = (GLfloat)state->getBoundTexture(GL_TEXTURE_2D);
+        break;
+    case GL_TEXTURE_BINDING_EXTERNAL_OES:
+        *ptr = (GLfloat)state->getBoundTexture(GL_TEXTURE_EXTERNAL_OES);
+        break;
+
+    default:
+        if (!ctx->m_state->getClientStateParameter<GLfloat>(param, ptr)) {
+            ctx->m_glGetFloatv_enc(self, param, ptr);
+        }
+        break;
     }
 }
 
@@ -229,11 +315,40 @@
 {
     GL2Encoder *ctx = (GL2Encoder *)self;
     assert(ctx->m_state != NULL);
-    if (param == GL_COMPRESSED_TEXTURE_FORMATS) {
-        // ignore the command, although we should have generated a GLerror;
+    GLClientState* state = ctx->m_state;
+
+    switch (param) {
+    case GL_NUM_SHADER_BINARY_FORMATS:
+        *ptr = GL_FALSE;
+        break;
+    case GL_SHADER_BINARY_FORMATS:
+        // do nothing
+        break;
+
+    case GL_COMPRESSED_TEXTURE_FORMATS: {
+        GLint *compressedTextureFormats = ctx->getCompressedTextureFormats();
+        if (ctx->m_num_compressedTextureFormats > 0 &&
+                compressedTextureFormats != NULL) {
+            for (int i = 0; i < ctx->m_num_compressedTextureFormats; i++) {
+                ptr[i] = compressedTextureFormats[i] != 0 ? GL_TRUE : GL_FALSE;
+            }
+        }
+        break;
     }
-    else if (!ctx->m_state->getClientStateParameter<GLboolean>(param,ptr)) {
-        ctx->m_glGetBooleanv_enc(self, param, ptr);
+
+    case GL_TEXTURE_BINDING_2D:
+        *ptr = state->getBoundTexture(GL_TEXTURE_2D) != 0 ? GL_TRUE : GL_FALSE;
+        break;
+    case GL_TEXTURE_BINDING_EXTERNAL_OES:
+        *ptr = state->getBoundTexture(GL_TEXTURE_EXTERNAL_OES) != 0
+                ? GL_TRUE : GL_FALSE;
+        break;
+
+    default:
+        if (!ctx->m_state->getClientStateParameter<GLboolean>(param, ptr)) {
+            ctx->m_glGetBooleanv_enc(self, param, ptr);
+        }
+        break;
     }
 }
 
@@ -355,7 +470,7 @@
     }
 
     if (!has_immediate_arrays && !has_indirect_arrays) {
-        LOGE("glDrawElements: no data bound to the command - ignoring\n");
+        ALOGE("glDrawElements: no data bound to the command - ignoring\n");
         return;
     }
 
@@ -398,7 +513,7 @@
             }
             break;
         default:
-            LOGE("unsupported index buffer type %d\n", type);
+            ALOGE("unsupported index buffer type %d\n", type);
         }
         if (has_indirect_arrays || 1) {
             ctx->sendVertexAttributes(minIndex, maxIndex - minIndex + 1);
@@ -406,12 +521,12 @@
                                     count * glSizeof(type));
             // XXX - OPTIMIZATION (see the other else branch) should be implemented
             if(!has_indirect_arrays) {
-                //LOGD("unoptimized drawelements !!!\n");
+                //ALOGD("unoptimized drawelements !!!\n");
             }
         } else {
             // we are all direct arrays and immidate mode index array -
             // rebuild the arrays and the index array;
-            LOGE("glDrawElements: direct index & direct buffer data - will be implemented in later versions;\n");
+            ALOGE("glDrawElements: direct index & direct buffer data - will be implemented in later versions;\n");
         }
     }
 }
@@ -431,13 +546,112 @@
     return m_compressedTextureFormats;
 }
 
+// Replace uses of samplerExternalOES with sampler2D, recording the names of
+// modified shaders in data. Also remove
+//   #extension GL_OES_EGL_image_external : require
+// statements.
+//
+// This implementation assumes the input has already been pre-processed. If not,
+// a few cases will be mishandled:
+//
+// 1. "mySampler" will be incorrectly recorded as being a samplerExternalOES in
+//    the following code:
+//      #if 1
+//      uniform sampler2D mySampler;
+//      #else
+//      uniform samplerExternalOES mySampler;
+//      #endif
+//
+// 2. Comments that look like sampler declarations will be incorrectly modified
+//    and recorded:
+//      // samplerExternalOES hahaFooledYou
+//
+// 3. However, GLSL ES does not have a concatentation operator, so things like
+//    this (valid in C) are invalid and not a problem:
+//      #define SAMPLER(TYPE, NAME) uniform sampler#TYPE NAME
+//      SAMPLER(ExternalOES, mySampler);
+//
+static bool replaceSamplerExternalWith2D(char* const str, ShaderData* const data)
+{
+    static const char STR_HASH_EXTENSION[] = "#extension";
+    static const char STR_GL_OES_EGL_IMAGE_EXTERNAL[] = "GL_OES_EGL_image_external";
+    static const char STR_SAMPLER_EXTERNAL_OES[] = "samplerExternalOES";
+    static const char STR_SAMPLER2D_SPACE[]      = "sampler2D         ";
+
+    // -- overwrite all "#extension GL_OES_EGL_image_external : xxx" statements
+    char* c = str;
+    while ((c = strstr(c, STR_HASH_EXTENSION))) {
+        char* start = c;
+        c += sizeof(STR_HASH_EXTENSION)-1;
+        while (isspace(*c) && *c != '\0') {
+            c++;
+        }
+        if (strncmp(c, STR_GL_OES_EGL_IMAGE_EXTERNAL,
+                sizeof(STR_GL_OES_EGL_IMAGE_EXTERNAL)-1) == 0)
+        {
+            // #extension statements are terminated by end of line
+            c = start;
+            while (*c != '\0' && *c != '\r' && *c != '\n') {
+                *c++ = ' ';
+            }
+        }
+    }
+
+    // -- replace "samplerExternalOES" with "sampler2D" and record name
+    c = str;
+    while ((c = strstr(c, STR_SAMPLER_EXTERNAL_OES))) {
+        // Make sure "samplerExternalOES" isn't a substring of a larger token
+        if (c == str || !isspace(*(c-1))) {
+            c++;
+            continue;
+        }
+        char* sampler_start = c;
+        c += sizeof(STR_SAMPLER_EXTERNAL_OES)-1;
+        if (!isspace(*c) && *c != '\0') {
+            continue;
+        }
+
+        // capture sampler name
+        while (isspace(*c) && *c != '\0') {
+            c++;
+        }
+        if (!isalpha(*c) && *c != '_') {
+            // not an identifier
+            return false;
+        }
+        char* name_start = c;
+        do {
+            c++;
+        } while (isalnum(*c) || *c == '_');
+        data->samplerExternalNames.push_back(
+                android::String8(name_start, c - name_start));
+
+        // memcpy instead of strcpy since we don't want the NUL terminator
+        memcpy(sampler_start, STR_SAMPLER2D_SPACE, sizeof(STR_SAMPLER2D_SPACE)-1);
+    }
+
+    return true;
+}
+
 void GL2Encoder::s_glShaderSource(void *self, GLuint shader, GLsizei count, const GLchar **string, const GLint *length)
 {
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    ShaderData* shaderData = ctx->m_shared->getShaderData(shader);
+    SET_ERROR_IF(!shaderData, GL_INVALID_VALUE);
+
     int len = glUtilsCalcShaderSourceLen((char**)string, (GLint*)length, count);
     char *str = new char[len + 1];
     glUtilsPackStrings(str, (char**)string, (GLint*)length, count);
 
-    GL2Encoder *ctx = (GL2Encoder *)self;
+    // TODO: pre-process str before calling replaceSamplerExternalWith2D().
+    // Perhaps we can borrow Mesa's pre-processor?
+
+    if (!replaceSamplerExternalWith2D(str, shaderData)) {
+        delete str;
+        ctx->setError(GL_OUT_OF_MEMORY);
+        return;
+    }
+
     ctx->glShaderString(ctx, shader, str, len + 1);
     delete str;
 }
@@ -476,7 +690,7 @@
     {
         ctx->glGetActiveUniform(self, program, i, maxLength, NULL, &size, &type, name);
         location = ctx->m_glGetUniformLocation_enc(self, program, name);
-        ctx->m_shared->setProgramIndexInfo(program, i, location, size, type);
+        ctx->m_shared->setProgramIndexInfo(program, i, location, size, type, name);
     }
     ctx->m_shared->setupLocationShiftWAR(program);
 
@@ -494,7 +708,7 @@
 void GL2Encoder::s_glGetUniformiv(void *self, GLuint program, GLint location, GLint* params)
 {
     GL2Encoder *ctx = (GL2Encoder*)self;
-    SET_ERROR_IF(!(ctx->m_shared->isProgram(program) || ctx->m_shared->isShader(program)), GL_INVALID_VALUE);
+    SET_ERROR_IF(!ctx->m_shared->isProgram(program), GL_INVALID_VALUE);
     SET_ERROR_IF(!ctx->m_shared->isProgramInitialized(program), GL_INVALID_OPERATION);
     GLint hostLoc = ctx->m_shared->locationWARAppToHost(program, location);
     SET_ERROR_IF(ctx->m_shared->getProgramUniformType(program,hostLoc)==0, GL_INVALID_OPERATION);
@@ -503,7 +717,7 @@
 void GL2Encoder::s_glGetUniformfv(void *self, GLuint program, GLint location, GLfloat* params)
 {
     GL2Encoder *ctx = (GL2Encoder*)self;
-    SET_ERROR_IF(!(ctx->m_shared->isProgram(program) || ctx->m_shared->isShader(program)), GL_INVALID_VALUE);
+    SET_ERROR_IF(!ctx->m_shared->isProgram(program), GL_INVALID_VALUE);
     SET_ERROR_IF(!ctx->m_shared->isProgramInitialized(program), GL_INVALID_OPERATION);
     GLint hostLoc = ctx->m_shared->locationWARAppToHost(program,location);
     SET_ERROR_IF(ctx->m_shared->getProgramUniformType(program,hostLoc)==0, GL_INVALID_OPERATION);
@@ -523,8 +737,12 @@
 {
     GL2Encoder *ctx = (GL2Encoder*)self;
     GLuint shader = ctx->m_glCreateShader_enc(self, shaderType);
-    if (shader!=0)
-        ctx->m_shared->addShaderData(shader);
+    if (shader != 0) {
+        if (!ctx->m_shared->addShaderData(shader)) {
+            ctx->m_glDeleteShader_enc(self, shader);
+            return 0;
+        }
+    }
     return shader;
 }
 
@@ -532,7 +750,21 @@
 {
     GL2Encoder *ctx = (GL2Encoder*)self;
     ctx->m_glDeleteShader_enc(self,shader);
-    ctx->m_shared->deleteShaderData(shader);
+    ctx->m_shared->unrefShaderData(shader);
+}
+
+void GL2Encoder::s_glAttachShader(void *self, GLuint program, GLuint shader)
+{
+    GL2Encoder *ctx = (GL2Encoder*)self;
+    ctx->m_glAttachShader_enc(self, program, shader);
+    ctx->m_shared->attachShader(program, shader);
+}
+
+void GL2Encoder::s_glDetachShader(void *self, GLuint program, GLuint shader)
+{
+    GL2Encoder *ctx = (GL2Encoder*)self;
+    ctx->m_glDetachShader_enc(self, program, shader);
+    ctx->m_shared->detachShader(program, shader);
 }
 
 int GL2Encoder::s_glGetUniformLocation(void *self, GLuint program, const GLchar *name)
@@ -563,11 +795,58 @@
     return hostLoc;
 }
 
+bool GL2Encoder::updateHostTexture2DBinding(GLenum texUnit, GLenum newTarget)
+{
+    if (newTarget != GL_TEXTURE_2D && newTarget != GL_TEXTURE_EXTERNAL_OES)
+        return false;
+
+    m_state->setActiveTextureUnit(texUnit);
+
+    GLenum oldTarget = m_state->getPriorityEnabledTarget(GL_TEXTURE_2D);
+    if (newTarget != oldTarget) {
+        if (newTarget == GL_TEXTURE_EXTERNAL_OES) {
+            m_state->disableTextureTarget(GL_TEXTURE_2D);
+            m_state->enableTextureTarget(GL_TEXTURE_EXTERNAL_OES);
+        } else {
+            m_state->disableTextureTarget(GL_TEXTURE_EXTERNAL_OES);
+            m_state->enableTextureTarget(GL_TEXTURE_2D);
+        }
+        m_glActiveTexture_enc(this, texUnit);
+        m_glBindTexture_enc(this, GL_TEXTURE_2D,
+                m_state->getBoundTexture(newTarget));
+        return true;
+    }
+
+    return false;
+}
+
 void GL2Encoder::s_glUseProgram(void *self, GLuint program)
 {
     GL2Encoder *ctx = (GL2Encoder*)self;
+    GLClientState* state = ctx->m_state;
+    GLSharedGroupPtr shared = ctx->m_shared;
+
     ctx->m_glUseProgram_enc(self, program);
     ctx->m_state->setCurrentProgram(program);
+
+    GLenum origActiveTexture = state->getActiveTextureUnit();
+    GLenum hostActiveTexture = origActiveTexture;
+    GLint samplerIdx = -1;
+    GLint samplerVal;
+    GLenum samplerTarget;
+    while ((samplerIdx = shared->getNextSamplerUniform(program, samplerIdx, &samplerVal, &samplerTarget)) != -1) {
+        if (samplerVal < 0 || samplerVal >= GLClientState::MAX_TEXTURE_UNITS)
+            continue;
+        if (ctx->updateHostTexture2DBinding(GL_TEXTURE0 + samplerVal,
+                samplerTarget))
+        {
+            hostActiveTexture = GL_TEXTURE0 + samplerVal;
+        }
+    }
+    state->setActiveTextureUnit(origActiveTexture);
+    if (hostActiveTexture != origActiveTexture) {
+        ctx->m_glActiveTexture_enc(self, origActiveTexture);
+    }
 }
 
 void GL2Encoder::s_glUniform1f(void *self , GLint location, GLfloat x)
@@ -587,8 +866,20 @@
 void GL2Encoder::s_glUniform1i(void *self , GLint location, GLint x)
 {
     GL2Encoder *ctx = (GL2Encoder*)self;
+    GLClientState* state = ctx->m_state;
+    GLSharedGroupPtr shared = ctx->m_shared;
+
     GLint hostLoc = ctx->m_shared->locationWARAppToHost(ctx->m_state->currentProgram(),location);
     ctx->m_glUniform1i_enc(self, hostLoc, x);
+
+    GLenum target;
+    if (shared->setSamplerUniform(state->currentProgram(), location, x, &target)) {
+        GLenum origActiveTexture = state->getActiveTextureUnit();
+        if (ctx->updateHostTexture2DBinding(GL_TEXTURE0 + x, target)) {
+            ctx->m_glActiveTexture_enc(self, origActiveTexture);
+        }
+        state->setActiveTextureUnit(origActiveTexture);
+    }
 }
 
 void GL2Encoder::s_glUniform1iv(void *self , GLint location, GLsizei count, const GLint* v)
@@ -703,3 +994,204 @@
     ctx->m_glUniformMatrix4fv_enc(self, hostLoc, count, transpose, value);
 }
 
+void GL2Encoder::s_glActiveTexture(void* self, GLenum texture)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    GLClientState* state = ctx->m_state;
+    GLenum err;
+
+    SET_ERROR_IF((err = state->setActiveTextureUnit(texture)) != GL_NO_ERROR, err);
+
+    ctx->m_glActiveTexture_enc(ctx, texture);
+}
+
+void GL2Encoder::s_glBindTexture(void* self, GLenum target, GLuint texture)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    GLClientState* state = ctx->m_state;
+    GLenum err;
+    GLboolean firstUse;
+
+    SET_ERROR_IF((err = state->bindTexture(target, texture, &firstUse)) != GL_NO_ERROR, err);
+
+    if (target != GL_TEXTURE_2D && target != GL_TEXTURE_EXTERNAL_OES) {
+        ctx->m_glBindTexture_enc(ctx, target, texture);
+        return;
+    }
+
+    GLenum priorityTarget = state->getPriorityEnabledTarget(GL_TEXTURE_2D);
+
+    if (target == GL_TEXTURE_EXTERNAL_OES && firstUse) {
+        ctx->m_glBindTexture_enc(ctx, GL_TEXTURE_2D, texture);
+        ctx->m_glTexParameteri_enc(ctx, GL_TEXTURE_2D,
+                GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+        ctx->m_glTexParameteri_enc(ctx, GL_TEXTURE_2D,
+                GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+        ctx->m_glTexParameteri_enc(ctx, GL_TEXTURE_2D,
+                GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+
+        if (target != priorityTarget) {
+            ctx->m_glBindTexture_enc(ctx, GL_TEXTURE_2D,
+                    state->getBoundTexture(GL_TEXTURE_2D));
+        }
+    }
+
+    if (target == priorityTarget) {
+        ctx->m_glBindTexture_enc(ctx, GL_TEXTURE_2D, texture);
+    }
+}
+
+void GL2Encoder::s_glDeleteTextures(void* self, GLsizei n, const GLuint* textures)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    GLClientState* state = ctx->m_state;
+
+    state->deleteTextures(n, textures);
+    ctx->m_glDeleteTextures_enc(ctx, n, textures);
+}
+
+void GL2Encoder::s_glGetTexParameterfv(void* self,
+        GLenum target, GLenum pname, GLfloat* params)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    const GLClientState* state = ctx->m_state;
+
+    if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+        ctx->override2DTextureTarget(target);
+        ctx->m_glGetTexParameterfv_enc(ctx, GL_TEXTURE_2D, pname, params);
+        ctx->restore2DTextureTarget();
+    } else {
+        ctx->m_glGetTexParameterfv_enc(ctx, target, pname, params);
+    }
+}
+
+void GL2Encoder::s_glGetTexParameteriv(void* self,
+        GLenum target, GLenum pname, GLint* params)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    const GLClientState* state = ctx->m_state;
+
+    switch (pname) {
+    case GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES:
+        *params = 1;
+        break;
+
+    default:
+        if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+            ctx->override2DTextureTarget(target);
+            ctx->m_glGetTexParameteriv_enc(ctx, GL_TEXTURE_2D, pname, params);
+            ctx->restore2DTextureTarget();
+        } else {
+            ctx->m_glGetTexParameteriv_enc(ctx, target, pname, params);
+        }
+        break;
+    }
+}
+
+static bool isValidTextureExternalParam(GLenum pname, GLenum param)
+{
+    switch (pname) {
+    case GL_TEXTURE_MIN_FILTER:
+    case GL_TEXTURE_MAG_FILTER:
+        return param == GL_NEAREST || param == GL_LINEAR;
+
+    case GL_TEXTURE_WRAP_S:
+    case GL_TEXTURE_WRAP_T:
+        return param == GL_CLAMP_TO_EDGE;
+
+    default:
+        return true;
+    }
+}
+
+void GL2Encoder::s_glTexParameterf(void* self,
+        GLenum target, GLenum pname, GLfloat param)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    const GLClientState* state = ctx->m_state;
+
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)param)),
+            GL_INVALID_ENUM);
+
+    if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+        ctx->override2DTextureTarget(target);
+        ctx->m_glTexParameterf_enc(ctx, GL_TEXTURE_2D, pname, param);
+        ctx->restore2DTextureTarget();
+    } else {
+        ctx->m_glTexParameterf_enc(ctx, target, pname, param);
+    }
+}
+
+void GL2Encoder::s_glTexParameterfv(void* self,
+        GLenum target, GLenum pname, const GLfloat* params)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    const GLClientState* state = ctx->m_state;
+
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)params[0])),
+            GL_INVALID_ENUM);
+
+    if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+        ctx->override2DTextureTarget(target);
+        ctx->m_glTexParameterfv_enc(ctx, GL_TEXTURE_2D, pname, params);
+        ctx->restore2DTextureTarget();
+    } else {
+        ctx->m_glTexParameterfv_enc(ctx, target, pname, params);
+    }
+}
+
+void GL2Encoder::s_glTexParameteri(void* self,
+        GLenum target, GLenum pname, GLint param)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    const GLClientState* state = ctx->m_state;
+
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)param)),
+            GL_INVALID_ENUM);
+
+    if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+        ctx->override2DTextureTarget(target);
+        ctx->m_glTexParameteri_enc(ctx, GL_TEXTURE_2D, pname, param);
+        ctx->restore2DTextureTarget();
+    } else {
+        ctx->m_glTexParameteri_enc(ctx, target, pname, param);
+    }
+}
+
+void GL2Encoder::s_glTexParameteriv(void* self,
+        GLenum target, GLenum pname, const GLint* params)
+{
+    GL2Encoder* ctx = (GL2Encoder*)self;
+    const GLClientState* state = ctx->m_state;
+
+    SET_ERROR_IF((target == GL_TEXTURE_EXTERNAL_OES &&
+            !isValidTextureExternalParam(pname, (GLenum)params[0])),
+            GL_INVALID_ENUM);
+
+    if (target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) {
+        ctx->override2DTextureTarget(target);
+        ctx->m_glTexParameteriv_enc(ctx, GL_TEXTURE_2D, pname, params);
+        ctx->restore2DTextureTarget();
+    } else {
+        ctx->m_glTexParameteriv_enc(ctx, target, pname, params);
+    }
+}
+
+void GL2Encoder::override2DTextureTarget(GLenum target)
+{
+    if ((target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES) &&
+        target != m_state->getPriorityEnabledTarget(GL_TEXTURE_2D)) {
+            m_glBindTexture_enc(this, GL_TEXTURE_2D,
+                    m_state->getBoundTexture(target));
+    }
+}
+
+void GL2Encoder::restore2DTextureTarget()
+{
+    GLenum priorityTarget = m_state->getPriorityEnabledTarget(GL_TEXTURE_2D);
+    m_glBindTexture_enc(this, GL_TEXTURE_2D,
+            m_state->getBoundTexture(priorityTarget));
+}
diff --git a/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.h b/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.h
index 2914fa9..f9235d7 100644
--- a/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.h
+++ b/tools/emulator/opengl/system/GLESv2_enc/GL2Encoder.h
@@ -17,7 +17,6 @@
 #define _GL2_ENCODER_H_
 
 #include "gl2_enc.h"
-#include "IOStream.h"
 #include "GLClientState.h"
 #include "GLSharedGroup.h"
 #include "FixedBuffer.h"
@@ -33,9 +32,7 @@
     void setSharedGroup(GLSharedGroupPtr shared){ m_shared = shared; }
     const GLClientState *state() { return m_state; }
     const GLSharedGroupPtr shared() { return m_shared; }
-    void flush() {
-        gl2_encoder_context_t::m_stream->flush();
-    }
+    void flush() { m_stream->flush(); }
 
     void setInitialized(){ m_initialized = true; };
     bool isInitialized(){ return m_initialized; };
@@ -43,6 +40,9 @@
     virtual void setError(GLenum error){ m_error = error; };
     virtual GLenum getError() { return m_error; };
 
+    void override2DTextureTarget(GLenum target);
+    void restore2DTextureTarget();
+
 private:
 
     bool    m_initialized;
@@ -57,6 +57,7 @@
     FixedBuffer m_fixedBuffer;
 
     void sendVertexAttributes(GLint first, GLsizei count);
+    bool updateHostTexture2DBinding(GLenum texUnit, GLenum newTarget);
 
     glGetError_client_proc_t    m_glGetError_enc;
     static GLenum s_glGetError(void * self);
@@ -141,6 +142,12 @@
     glDeleteShader_client_proc_t m_glDeleteShader_enc;
     static void s_glDeleteShader(void *self, GLuint shader);
 
+    glAttachShader_client_proc_t m_glAttachShader_enc;
+    static void s_glAttachShader(void *self, GLuint program, GLuint shader);
+
+    glDetachShader_client_proc_t m_glDetachShader_enc;
+    static void s_glDetachShader(void *self, GLuint program, GLuint shader);
+
     glGetUniformLocation_client_proc_t m_glGetUniformLocation_enc;
     static int s_glGetUniformLocation(void *self, GLuint program, const GLchar *name);
     glUseProgram_client_proc_t m_glUseProgram_enc;
@@ -185,5 +192,25 @@
 	static void s_glUniformMatrix2fv(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
 	static void s_glUniformMatrix3fv(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
 	static void s_glUniformMatrix4fv(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+
+    glActiveTexture_client_proc_t m_glActiveTexture_enc;
+    glBindTexture_client_proc_t m_glBindTexture_enc;
+    glDeleteTextures_client_proc_t m_glDeleteTextures_enc;
+    glGetTexParameterfv_client_proc_t m_glGetTexParameterfv_enc;
+    glGetTexParameteriv_client_proc_t m_glGetTexParameteriv_enc;
+    glTexParameterf_client_proc_t m_glTexParameterf_enc;
+    glTexParameterfv_client_proc_t m_glTexParameterfv_enc;
+    glTexParameteri_client_proc_t m_glTexParameteri_enc;
+    glTexParameteriv_client_proc_t m_glTexParameteriv_enc;
+
+    static void s_glActiveTexture(void* self, GLenum texture);
+    static void s_glBindTexture(void* self, GLenum target, GLuint texture);
+    static void s_glDeleteTextures(void* self, GLsizei n, const GLuint* textures);
+    static void s_glGetTexParameterfv(void* self, GLenum target, GLenum pname, GLfloat* params);
+    static void s_glGetTexParameteriv(void* self, GLenum target, GLenum pname, GLint* params);
+    static void s_glTexParameterf(void* self, GLenum target, GLenum pname, GLfloat param);
+    static void s_glTexParameterfv(void* self, GLenum target, GLenum pname, const GLfloat* params);
+    static void s_glTexParameteri(void* self, GLenum target, GLenum pname, GLint param);
+    static void s_glTexParameteriv(void* self, GLenum target, GLenum pname, const GLint* params);
 };
 #endif
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2.attrib b/tools/emulator/opengl/system/GLESv2_enc/gl2.attrib
deleted file mode 100644
index 7fe9a66..0000000
--- a/tools/emulator/opengl/system/GLESv2_enc/gl2.attrib
+++ /dev/null
@@ -1,590 +0,0 @@
-GLOBAL
-	base_opcode 2048
-	encoder_headers <string.h> "glUtils.h" "GL2EncoderUtils.h"
-
-#void glBindAttribLocation(GLuint program, GLuint index, GLchar *name)
-glBindAttribLocation
-	len name (strlen(name) + 1)
-
-#void glBufferData(GLenum target, GLsizeiptr size, GLvoid *data, GLenum usage)
-glBufferData
-	len data size
-	var_flag data nullAllowed isLarge
-
-#void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data)
-glBufferSubData
-	len data size
-        var_flag data isLarge
-
-#void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, GLvoid *data)
-glCompressedTexImage2D
-	len data imageSize
-    var_flag data nullAllowed isLarge
-
-#void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLvoid *data)
-glCompressedTexSubImage2D
-	len data imageSize
-        var_flag data isLarge
-
-#void glDeleteBuffers(GLsizei n, GLuint *buffers)
-glDeleteBuffers
-	len buffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glDeleteFramebuffers(GLsizei n, GLuint *framebuffers)
-glDeleteFramebuffers
-	len framebuffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glDeleteRenderbuffers(GLsizei n, GLuint *renderbuffers)
-glDeleteRenderbuffers
-	len renderbuffers (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glDeleteTextures(GLsizei n, GLuint *textures)
-glDeleteTextures
-	len textures (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glDrawElements(GLenum mode, GLsizei count, GLenum type, GLvoid *indices)
-glDrawElements
-	flag unsupported
-
-#void glGenBuffers(GLsizei n, GLuint *buffers)
-glGenBuffers
-	len buffers (n * sizeof(GLuint))
-	dir buffers out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenFramebuffers(GLsizei n, GLuint *framebuffers)
-glGenFramebuffers
-	len framebuffers (n * sizeof(GLuint))
-	dir framebuffers out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
-glGenRenderbuffers
-	len renderbuffers (n * sizeof(GLuint))
-	dir renderbuffers out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenTextures(GLsizei n, GLuint *textures)
-glGenTextures
-	len textures (n * sizeof(GLuint))
-	dir textures out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
-glGetActiveAttrib
-	len name bufsize
-	dir name out
-	var_flag name nullAllowed
-	dir length out
-	len length (sizeof(GLsizei))
-	var_flag length nullAllowed
-	dir size out
-	len size (sizeof(GLint))
-	dir type out
-	len type (sizeof(GLenum))
-	
-#void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
-glGetActiveUniform
-	len name bufsize
-	dir name out
-	  var_flag name nullAllowed
-	dir length out
-	len length (sizeof(GLsizei))
-	var_flag length nullAllowed
-	dir size out
-	len size (sizeof(GLint))
-	dir type out
-	len type (sizeof(GLenum))
-
-
-#void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders)
-glGetAttachedShaders
-	len shaders (maxcount*sizeof(GLuint))
-	dir shaders out
-	dir count out
-	var_flag count nullAllowed
-	len count (sizeof(GLsizei))
-
-#int glGetAttribLocation(GLuint program, GLchar *name)
-glGetAttribLocation
-	len name (strlen(name) + 1)
-
-#void glGetBooleanv(GLenum pname, GLboolean *params)
-glGetBooleanv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLboolean))
-
-#void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
-glGetBufferParameteriv
-	len params (sizeof(GLint))
-	dir params out
-
-#void glGetFloatv(GLenum pname, GLfloat *params)
-glGetFloatv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params)
-glGetFramebufferAttachmentParameteriv
-	dir params out
-	len params (sizeof(GLint))
-
-#void glGetIntegerv(GLenum pname, GLint *params)
-glGetIntegerv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glGetProgramiv(GLuint program, GLenum pname, GLint *params)
-glGetProgramiv
-	dir params out
-	len params sizeof(GLint)
-#XXX - might change if extension constants that return more then one value
-
-
-#void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei *length, GLchar *infolog)
-glGetProgramInfoLog
-	dir infolog out
-	len infolog bufsize
-	dir length out
-	len length sizeof(GLsizei)
-
-#void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
-glGetRenderbufferParameteriv
-	dir params out
-	len params sizeof(GLint)
-# XXX - might change if pname with value larger then one is added
-
-#void glGetShaderiv(GLuint shader, GLenum pname, GLint *params)
-glGetShaderiv
-	dir params out
-	len params sizeof(GLint)
-# XXX - might change if pname with value larger then one is added
-
-#void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *infolog)
-glGetShaderInfoLog
-	dir length out
-	len length (sizeof(GLsizei))
-	var_flag length nullAllowed
-	dir infolog out
-	len infolog bufsize
-	
-
-#void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
-glGetShaderPrecisionFormat
-	dir range out
-	len range (2 * sizeof(GLint))
-	dir precision out
-	len precision (sizeof(GLint))
-
-#void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source)
-glGetShaderSource
-	dir length out
-	len length (sizeof(GLsizei))
-	var_flag length nullAllowed
-	dir source out
-	len source bufsize
-
-#GLubyte* glGetString(GLenum name)
-glGetString
-	flag unsupported
-
-#void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-glGetTexParameterfv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
-glGetTexParameteriv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glGetUniformfv(GLuint program, GLint location, GLfloat *params)
-glGetUniformfv
-	dir params out
-	len params glSizeof(uniformType(self, program, location))
-
-#void glGetUniformiv(GLuint program, GLint location, GLint *params)
-glGetUniformiv
-	dir params out
-	len params glSizeof(uniformType(self, program, location))
-
-#int glGetUniformLocation(GLuint program, GLchar *name)
-glGetUniformLocation
-	len name (strlen(name) + 1)
-
-# client-state shall be handled locally by the encoder in most cases.
-# however, GL_CURRENT_VERTEX_ATTRIB and potential others are handled by the server side,
-# thus we still need to implement it. 
-#void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
-glGetVertexAttribfv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-
-#see glGetVertexAttribfv for comments
-#void glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params)
-glGetVertexAttribiv
-	dir params out
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-
-
-#void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-glReadPixels
-	dir pixels out
-	len pixels pixelDataSize(self, width, height, format, type, 1)
-
-#void glShaderBinary(GLsizei n, GLuint *shaders, GLenum binaryformat, GLvoid *binary, GLsizei length)
-glShaderBinary
-	flag unsupported
-
-#void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLvoid *pixels)
-glTexImage2D
-	dir pixels in
-	len pixels pixelDataSize(self, width, height, format, type, 0)
-	var_flag pixels nullAllowed isLarge
-
-#void glTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
-glTexParameterfv
-	len params (glUtilsParamSize(pname) * sizeof(GLfloat))
-#void glTexParameteriv(GLenum target, GLenum pname, GLint *params)
-glTexParameteriv
-	len params (glUtilsParamSize(pname) * sizeof(GLint))
-
-#void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
-glTexSubImage2D
-	len pixels pixelDataSize(self, width, height, format, type, 0)
-        var_flag pixels isLarge
-	
-#void glUniform1fv(GLint location, GLsizei count, GLfloat *v)
-glUniform1fv
-	len v (count * sizeof(GLfloat))
-
-#void glUniform1iv(GLint location, GLsizei count, GLint *v)
-glUniform1iv
-	len v (count * sizeof(GLint))
-
-#void glUniform2fv(GLint location, GLsizei count, GLfloat *v)
-glUniform2fv
-	len v (count * 2 * sizeof(GLfloat))
-
-#void glUniform2iv(GLint location, GLsizei count, GLint *v)
-glUniform2iv
-	len v (count * 2 * sizeof(GLint))
-
-#void glUniform3fv(GLint location, GLsizei count, GLfloat *v)
-glUniform3fv
-	len v (count * 3 * sizeof(GLfloat))
-
-#void glUniform3iv(GLint location, GLsizei count, GLint *v)
-glUniform3iv
-	len v (3 * count * sizeof(GLint))
-
-#void glUniform4fv(GLint location, GLsizei count, GLfloat *v)
-glUniform4fv
-	len v (4 * count * sizeof(GLfloat))
-
-#void glUniform4iv(GLint location, GLsizei count, GLint *v)
-glUniform4iv
-	len v (4 * count * sizeof(GLint))
-
-#void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
-glUniformMatrix2fv
-	len value (count * 4 * sizeof(GLfloat))
-
-#void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
-glUniformMatrix3fv
-	len value (count * 9 * sizeof(GLfloat))
-	
-#void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, GLfloat *value)
-glUniformMatrix4fv
-	len value (count * 16 * sizeof(GLfloat))
-
-#void glVertexAttrib1fv(GLuint indx, GLfloat *values)
-glVertexAttrib1fv
-	len values (sizeof(GLfloat))
-#void glVertexAttrib2fv(GLuint indx, GLfloat *values)
-glVertexAttrib2fv
-	len values (2 * sizeof(GLfloat))
-
-#void glVertexAttrib3fv(GLuint indx, GLfloat *values)
-glVertexAttrib3fv
-	len values (3 * sizeof(GLfloat))
-
-#void glVertexAttrib4fv(GLuint indx, GLfloat *values)
-glVertexAttrib4fv
-	len values (4 * sizeof(GLfloat))
-
-#void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLvoid *ptr)
-glVertexAttribPointer
-	flag unsupported
-
-#void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary)
-glGetProgramBinaryOES
-	flag unsupported
-
-#void glProgramBinaryOES(GLuint program, GLenum binaryFormat, GLvoid *binary, GLint length)
-glProgramBinaryOES
-	flag unsupported
-
-#void* glMapBufferOES(GLenum target, GLenum access)
-glMapBufferOES
-	flag unsupported
-
-#void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLvoid *pixels)
-glTexImage3DOES
-	len pixels pixelDataSize3D(self, width, height, depth, format, type, 0)
-	var_flag pixels nullAllowed isLarge
-
-#void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *pixels)
-glTexSubImage3DOES
-	len pixels pixelDataSize3D(self, width, height, depth, format, type, 0)	
-        var_flag pixels isLarge
-
-#void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLvoid *data)
-glCompressedTexImage3DOES
-	len data imageSize
-        var_flag data isLarge
-
-#void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, GLvoid *data)
-glCompressedTexSubImage3DOES
-	len data imageSize
-        var_flag data isLarge
-
-#void glDeleteVertexArraysOES(GLsizei n, GLuint *arrays)
-glDeleteVertexArraysOES
-	len arrays (n * sizeof(GLuint))
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-#void glGenVertexArraysOES(GLsizei n, GLuint *arrays)
-glGenVertexArraysOES
-	len arrays (n * sizeof(GLuint))
-	dir arrays out
-    param_check n if(n<0){ ctx->setError(GL_INVALID_VALUE); return; } 
-
-
-#void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, GLenum *attachments)
-glDiscardFramebufferEXT
-	len attachments (numAttachments * sizeof(GLenum))
-
-#void glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
-glMultiDrawArraysEXT
-	flag unsupported
-#void glMultiDrawElementsEXT(GLenum mode, GLsizei *count, GLenum type, GLvoid *indices, GLsizei primcount)
-glMultiDrawElementsEXT
-	flag unsupported
-
-
-# handled by encoder
-#void glShaderSource(GLuint shader, GLsizei count, GLstr *string, const GLint *length)
-glShaderSource
-	flag unsupported
-
-
-
-#void glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups)
-glGetPerfMonitorGroupsAMD
-	flag unsupported
-
-#void glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)
-glGetPerfMonitorCountersAMD
-	flag unsupported
-
-#void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)
-glGetPerfMonitorGroupStringAMD
-	flag unsupported
-
-#void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)
-glGetPerfMonitorCounterStringAMD
-	flag unsupported
-
-#void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data)
-glGetPerfMonitorCounterInfoAMD
-	flag unsupported
-
-#void glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors)
-glGenPerfMonitorsAMD
-	flag unsupported
-
-#void glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors)
-glDeletePerfMonitorsAMD
-	flag unsupported
-
-#void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList)
-glSelectPerfMonitorCountersAMD
-	flag unsupported
-
-#void glBeginPerfMonitorAMD(GLuint monitor)
-glBeginPerfMonitorAMD
-	flag unsupported
-
-#void glEndPerfMonitorAMD(GLuint monitor)
-glEndPerfMonitorAMD
-	flag unsupported
-
-#void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)
-glGetPerfMonitorCounterDataAMD
-	flag unsupported
-
-#void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
-glRenderbufferStorageMultisampleIMG
-	flag unsupported
-
-#void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
-glFramebufferTexture2DMultisampleIMG
-	flag unsupported
-
-#void glDeleteFencesNV(GLsizei n, GLuint *fences)
-glDeleteFencesNV
-	flag unsupported
-
-#void glGenFencesNV(GLsizei n, GLuint *fences)
-glGenFencesNV
-	flag unsupported
-
-#GLboolean glIsFenceNV(GLuint fence)
-glIsFenceNV
-	flag unsupported
-
-#GLboolean glTestFenceNV(GLuint fence)
-glTestFenceNV
-	flag unsupported
-
-#void glGetFenceivNV(GLuint fence, GLenum pname, GLint *params)
-glGetFenceivNV
-	flag unsupported
-
-#void glFinishFenceNV(GLuint fence)
-glFinishFenceNV
-	flag unsupported
-
-#void glSetFenceNV(GLuint fence, GLenum condition)
-glSetFenceNV
-	flag unsupported
-
-#void glCoverageMaskNV(GLboolean mask)
-glCoverageMaskNV
-	flag unsupported
-
-#void glCoverageOperationNV(GLenum operation)
-glCoverageOperationNV
-	flag unsupported
-
-#void glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls)
-glGetDriverControlsQCOM
-	flag unsupported
-
-#void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
-glGetDriverControlStringQCOM
-	flag unsupported
-
-#void glEnableDriverControlQCOM(GLuint driverControl)
-glEnableDriverControlQCOM
-	flag unsupported
-
-#void glDisableDriverControlQCOM(GLuint driverControl)
-glDisableDriverControlQCOM
-	flag unsupported
-
-#void glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures)
-glExtGetTexturesQCOM
-	flag unsupported
-
-#void glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
-glExtGetBuffersQCOM
-	flag unsupported
-
-#void glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
-glExtGetRenderbuffersQCOM
-	flag unsupported
-
-#void glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
-glExtGetFramebuffersQCOM
-	flag unsupported
-
-#void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
-glExtGetTexLevelParameterivQCOM
-	flag unsupported
-
-#void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
-glExtTexObjectStateOverrideiQCOM
-	flag unsupported
-
-#void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
-glExtGetTexSubImageQCOM
-	flag unsupported
-
-#void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr *params)
-glExtGetBufferPointervQCOM
-	flag unsupported
-
-#void glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders)
-glExtGetShadersQCOM
-	flag unsupported
-
-#void glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms)
-glExtGetProgramsQCOM
-	flag unsupported
-
-#GLboolean glExtIsProgramBinaryQCOM(GLuint program)
-glExtIsProgramBinaryQCOM
-	flag unsupported
-
-#void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length)
-glExtGetProgramBinarySourceQCOM
-	flag unsupported
-
-#void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
-glStartTilingQCOM
-	flag unsupported
-
-#void glEndTilingQCOM(GLbitfield preserveMask)
-glEndTilingQCOM
-	flag unsupported
-
-
-#void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,  void * data, GLuint datalen)
-glVertexAttribPointerData
-	len data datalen
-	custom_pack data glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen) 
-	flag custom_decoder
-	flag not_api
-
-glVertexAttribPointerOffset
-	flag custom_decoder
-	flag not_api
-
-#client-state, handled by the encoder
-#GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, GLvoid** pointer)
-glGetVertexAttribPointerv
-	flag unsupported
-
-glDrawElementsData
-	len data datalen
-	flag custom_decoder
-	flag not_api
-
-glDrawElementsOffset
-	flag custom_decoder
-	flag not_api
-
-#GL_ENTRY(void, glGetCompressedTextureFormats, int count, GLint *formats)
-glGetCompressedTextureFormats
-	dir formats out
-	len formats (count * sizeof(GLint))
-	flag custom_decoder
-	flag not_api
-
-#GL_ENTRY(void, glShaderString, GLuint shader, GLchar *string, GLsizei len)
-glShaderString
-	len string len
-	flag custom_decoder
-	flag not_api
-	
-glFinishRoundTrip
-	flag custom_decoder
-	flag not_api
-
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2.in b/tools/emulator/opengl/system/GLESv2_enc/gl2.in
deleted file mode 100644
index 916153b..0000000
--- a/tools/emulator/opengl/system/GLESv2_enc/gl2.in
+++ /dev/null
@@ -1,214 +0,0 @@
-GL_ENTRY(void, glActiveTexture, GLenum texture)
-GL_ENTRY(void, glAttachShader, GLuint program, GLuint shader)
-GL_ENTRY(void, glBindAttribLocation, GLuint program, GLuint index, const GLchar* name)
-GL_ENTRY(void, glBindBuffer, GLenum target, GLuint buffer)
-GL_ENTRY(void, glBindFramebuffer, GLenum target, GLuint framebuffer)
-GL_ENTRY(void, glBindRenderbuffer, GLenum target, GLuint renderbuffer)
-GL_ENTRY(void, glBindTexture, GLenum target, GLuint texture)
-GL_ENTRY(void, glBlendColor, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
-GL_ENTRY(void, glBlendEquation,  GLenum mode )
-GL_ENTRY(void, glBlendEquationSeparate, GLenum modeRGB, GLenum modeAlpha)
-GL_ENTRY(void, glBlendFunc, GLenum sfactor, GLenum dfactor)
-GL_ENTRY(void, glBlendFuncSeparate, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
-GL_ENTRY(void, glBufferData, GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
-GL_ENTRY(void, glBufferSubData, GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
-GL_ENTRY(GLenum, glCheckFramebufferStatus, GLenum target)
-GL_ENTRY(void, glClear, GLbitfield mask)
-GL_ENTRY(void, glClearColor, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
-GL_ENTRY(void, glClearDepthf, GLclampf depth)
-GL_ENTRY(void, glClearStencil, GLint s)
-GL_ENTRY(void, glColorMask, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
-GL_ENTRY(void, glCompileShader, GLuint shader)
-GL_ENTRY(void, glCompressedTexImage2D, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
-GL_ENTRY(void, glCompressedTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
-GL_ENTRY(void, glCopyTexImage2D, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
-GL_ENTRY(void, glCopyTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(GLuint, glCreateProgram, void)
-GL_ENTRY(GLuint, glCreateShader, GLenum type)
-GL_ENTRY(void, glCullFace, GLenum mode)
-GL_ENTRY(void, glDeleteBuffers, GLsizei n, const GLuint* buffers)
-GL_ENTRY(void, glDeleteFramebuffers, GLsizei n, const GLuint* framebuffers)
-GL_ENTRY(void, glDeleteProgram, GLuint program)
-GL_ENTRY(void, glDeleteRenderbuffers, GLsizei n, const GLuint* renderbuffers)
-GL_ENTRY(void, glDeleteShader, GLuint shader)
-GL_ENTRY(void, glDeleteTextures, GLsizei n, const GLuint* textures)
-GL_ENTRY(void, glDepthFunc, GLenum func)
-GL_ENTRY(void, glDepthMask, GLboolean flag)
-GL_ENTRY(void, glDepthRangef, GLclampf zNear, GLclampf zFar)
-GL_ENTRY(void, glDetachShader, GLuint program, GLuint shader)
-GL_ENTRY(void, glDisable, GLenum cap)
-GL_ENTRY(void, glDisableVertexAttribArray, GLuint index)
-GL_ENTRY(void, glDrawArrays, GLenum mode, GLint first, GLsizei count)
-GL_ENTRY(void, glDrawElements, GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
-GL_ENTRY(void, glEnable, GLenum cap)
-GL_ENTRY(void, glEnableVertexAttribArray, GLuint index)
-GL_ENTRY(void, glFinish, void)
-GL_ENTRY(void, glFlush, void)
-GL_ENTRY(void, glFramebufferRenderbuffer, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
-GL_ENTRY(void, glFramebufferTexture2D, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
-GL_ENTRY(void, glFrontFace, GLenum mode)
-GL_ENTRY(void, glGenBuffers, GLsizei n, GLuint* buffers)
-GL_ENTRY(void, glGenerateMipmap, GLenum target)
-GL_ENTRY(void, glGenFramebuffers, GLsizei n, GLuint* framebuffers)
-GL_ENTRY(void, glGenRenderbuffers, GLsizei n, GLuint* renderbuffers)
-GL_ENTRY(void, glGenTextures, GLsizei n, GLuint* textures)
-GL_ENTRY(void, glGetActiveAttrib, GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
-GL_ENTRY(void, glGetActiveUniform, GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
-GL_ENTRY(void, glGetAttachedShaders, GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
-GL_ENTRY(int, glGetAttribLocation, GLuint program, const GLchar* name)
-GL_ENTRY(void, glGetBooleanv, GLenum pname, GLboolean* params)
-GL_ENTRY(void, glGetBufferParameteriv, GLenum target, GLenum pname, GLint* params)
-GL_ENTRY(GLenum, glGetError, void)
-GL_ENTRY(void, glGetFloatv, GLenum pname, GLfloat* params)
-GL_ENTRY(void, glGetFramebufferAttachmentParameteriv, GLenum target, GLenum attachment, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetIntegerv, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetProgramiv, GLuint program, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetProgramInfoLog, GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
-GL_ENTRY(void, glGetRenderbufferParameteriv, GLenum target, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetShaderiv, GLuint shader, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetShaderInfoLog, GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
-GL_ENTRY(void, glGetShaderPrecisionFormat, GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
-GL_ENTRY(void, glGetShaderSource, GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
-GL_ENTRY(const GLubyte*, glGetString, GLenum name)
-GL_ENTRY(void, glGetTexParameterfv, GLenum target, GLenum pname, GLfloat* params)
-GL_ENTRY(void, glGetTexParameteriv, GLenum target, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetUniformfv, GLuint program, GLint location, GLfloat* params)
-GL_ENTRY(void, glGetUniformiv, GLuint program, GLint location, GLint* params)
-GL_ENTRY(int, glGetUniformLocation, GLuint program, const GLchar* name)
-GL_ENTRY(void, glGetVertexAttribfv, GLuint index, GLenum pname, GLfloat* params)
-GL_ENTRY(void, glGetVertexAttribiv, GLuint index, GLenum pname, GLint* params)
-GL_ENTRY(void, glGetVertexAttribPointerv, GLuint index, GLenum pname, GLvoid** pointer)
-GL_ENTRY(void, glHint, GLenum target, GLenum mode)
-GL_ENTRY(GLboolean, glIsBuffer, GLuint buffer)
-GL_ENTRY(GLboolean, glIsEnabled, GLenum cap)
-GL_ENTRY(GLboolean, glIsFramebuffer, GLuint framebuffer)
-GL_ENTRY(GLboolean, glIsProgram, GLuint program)
-GL_ENTRY(GLboolean, glIsRenderbuffer, GLuint renderbuffer)
-GL_ENTRY(GLboolean, glIsShader, GLuint shader)
-GL_ENTRY(GLboolean, glIsTexture, GLuint texture)
-GL_ENTRY(void, glLineWidth, GLfloat width)
-GL_ENTRY(void, glLinkProgram, GLuint program)
-GL_ENTRY(void, glPixelStorei, GLenum pname, GLint param)
-GL_ENTRY(void, glPolygonOffset, GLfloat factor, GLfloat units)
-GL_ENTRY(void, glReadPixels, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
-GL_ENTRY(void, glReleaseShaderCompiler, void)
-GL_ENTRY(void, glRenderbufferStorage, GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
-GL_ENTRY(void, glSampleCoverage, GLclampf value, GLboolean invert)
-GL_ENTRY(void, glScissor, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(void, glShaderBinary, GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length)
-GL_ENTRY(void, glShaderSource, GLuint shader, GLsizei count, const GLchar** string, const GLint* length)
-GL_ENTRY(void, glStencilFunc, GLenum func, GLint ref, GLuint mask)
-GL_ENTRY(void, glStencilFuncSeparate, GLenum face, GLenum func, GLint ref, GLuint mask)
-GL_ENTRY(void, glStencilMask, GLuint mask)
-GL_ENTRY(void, glStencilMaskSeparate, GLenum face, GLuint mask)
-GL_ENTRY(void, glStencilOp, GLenum fail, GLenum zfail, GLenum zpass)
-GL_ENTRY(void, glStencilOpSeparate, GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
-GL_ENTRY(void, glTexImage2D, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
-GL_ENTRY(void, glTexParameterf, GLenum target, GLenum pname, GLfloat param)
-GL_ENTRY(void, glTexParameterfv, GLenum target, GLenum pname, const GLfloat* params)
-GL_ENTRY(void, glTexParameteri, GLenum target, GLenum pname, GLint param)
-GL_ENTRY(void, glTexParameteriv, GLenum target, GLenum pname, const GLint* params)
-GL_ENTRY(void, glTexSubImage2D, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
-GL_ENTRY(void, glUniform1f, GLint location, GLfloat x)
-GL_ENTRY(void, glUniform1fv, GLint location, GLsizei count, const GLfloat* v)
-GL_ENTRY(void, glUniform1i, GLint location, GLint x)
-GL_ENTRY(void, glUniform1iv, GLint location, GLsizei count, const GLint* v)
-GL_ENTRY(void, glUniform2f, GLint location, GLfloat x, GLfloat y)
-GL_ENTRY(void, glUniform2fv, GLint location, GLsizei count, const GLfloat* v)
-GL_ENTRY(void, glUniform2i, GLint location, GLint x, GLint y)
-GL_ENTRY(void, glUniform2iv, GLint location, GLsizei count, const GLint* v)
-GL_ENTRY(void, glUniform3f, GLint location, GLfloat x, GLfloat y, GLfloat z)
-GL_ENTRY(void, glUniform3fv, GLint location, GLsizei count, const GLfloat* v)
-GL_ENTRY(void, glUniform3i, GLint location, GLint x, GLint y, GLint z)
-GL_ENTRY(void, glUniform3iv, GLint location, GLsizei count, const GLint* v)
-GL_ENTRY(void, glUniform4f, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-GL_ENTRY(void, glUniform4fv, GLint location, GLsizei count, const GLfloat* v)
-GL_ENTRY(void, glUniform4i, GLint location, GLint x, GLint y, GLint z, GLint w)
-GL_ENTRY(void, glUniform4iv, GLint location, GLsizei count, const GLint* v)
-GL_ENTRY(void, glUniformMatrix2fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-GL_ENTRY(void, glUniformMatrix3fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-GL_ENTRY(void, glUniformMatrix4fv, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
-GL_ENTRY(void, glUseProgram, GLuint program)
-GL_ENTRY(void, glValidateProgram, GLuint program)
-GL_ENTRY(void, glVertexAttrib1f, GLuint indx, GLfloat x)
-GL_ENTRY(void, glVertexAttrib1fv, GLuint indx, const GLfloat* values)
-GL_ENTRY(void, glVertexAttrib2f, GLuint indx, GLfloat x, GLfloat y)
-GL_ENTRY(void, glVertexAttrib2fv, GLuint indx, const GLfloat* values)
-GL_ENTRY(void, glVertexAttrib3f, GLuint indx, GLfloat x, GLfloat y, GLfloat z)
-GL_ENTRY(void, glVertexAttrib3fv, GLuint indx, const GLfloat* values)
-GL_ENTRY(void, glVertexAttrib4f, GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
-GL_ENTRY(void, glVertexAttrib4fv, GLuint indx, const GLfloat* values)
-GL_ENTRY(void, glVertexAttribPointer, GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)
-GL_ENTRY(void, glViewport, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(void, glEGLImageTargetTexture2DOES, GLenum target, GLeglImageOES image)
-GL_ENTRY(void, glEGLImageTargetRenderbufferStorageOES, GLenum target, GLeglImageOES image)
-GL_ENTRY(void, glGetProgramBinaryOES, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary)
-GL_ENTRY(void, glProgramBinaryOES, GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length)
-GL_ENTRY(void*, glMapBufferOES, GLenum target, GLenum access)
-GL_ENTRY(GLboolean, glUnmapBufferOES, GLenum target)
-#GL_ENTRY(void, glGetBufferPointervOES, GLenum target, GLenum pname, GLvoid** params)
-GL_ENTRY(void, glTexImage3DOES, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
-GL_ENTRY(void, glTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
-GL_ENTRY(void, glCopyTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
-GL_ENTRY(void, glCompressedTexImage3DOES, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
-GL_ENTRY(void, glCompressedTexSubImage3DOES, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
-GL_ENTRY(void, glFramebufferTexture3DOES, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
-GL_ENTRY(void, glBindVertexArrayOES, GLuint array)
-GL_ENTRY(void, glDeleteVertexArraysOES, GLsizei n, const GLuint *arrays)
-GL_ENTRY(void, glGenVertexArraysOES, GLsizei n, GLuint *arrays)
-GL_ENTRY(GLboolean, glIsVertexArrayOES, GLuint array)
-GL_ENTRY(void, glDiscardFramebufferEXT, GLenum target, GLsizei numAttachments, const GLenum *attachments)
-GL_ENTRY(void, glMultiDrawArraysEXT, GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
-GL_ENTRY(void, glMultiDrawElementsEXT, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount)
-
-#not supported
-GL_ENTRY(void, glGetPerfMonitorGroupsAMD, GLint *numGroups, GLsizei groupsSize, GLuint *groups)
-GL_ENTRY(void, glGetPerfMonitorCountersAMD, GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters)
-GL_ENTRY(void, glGetPerfMonitorGroupStringAMD, GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString)
-GL_ENTRY(void, glGetPerfMonitorCounterStringAMD, GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString)
-GL_ENTRY(void, glGetPerfMonitorCounterInfoAMD, GLuint group, GLuint counter, GLenum pname, GLvoid *data)
-GL_ENTRY(void, glGenPerfMonitorsAMD, GLsizei n, GLuint *monitors)
-GL_ENTRY(void, glDeletePerfMonitorsAMD, GLsizei n, GLuint *monitors)
-GL_ENTRY(void, glSelectPerfMonitorCountersAMD, GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList)
-GL_ENTRY(void, glBeginPerfMonitorAMD, GLuint monitor)
-GL_ENTRY(void, glEndPerfMonitorAMD, GLuint monitor)
-GL_ENTRY(void, glGetPerfMonitorCounterDataAMD, GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten)
-
-GL_ENTRY(void, glRenderbufferStorageMultisampleIMG, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
-GL_ENTRY(void, glFramebufferTexture2DMultisampleIMG, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
-GL_ENTRY(void, glDeleteFencesNV, GLsizei n, const GLuint *fences)
-GL_ENTRY(void, glGenFencesNV, GLsizei n, GLuint *fences)
-GL_ENTRY(GLboolean, glIsFenceNV, GLuint fence)
-GL_ENTRY(GLboolean, glTestFenceNV, GLuint fence)
-GL_ENTRY(void, glGetFenceivNV, GLuint fence, GLenum pname, GLint *params)
-GL_ENTRY(void, glFinishFenceNV, GLuint fence)
-GL_ENTRY(void, glSetFenceNV, GLuint fence, GLenum condition)
-GL_ENTRY(void, glCoverageMaskNV, GLboolean mask)
-GL_ENTRY(void, glCoverageOperationNV, GLenum operation)
-GL_ENTRY(void, glGetDriverControlsQCOM, GLint *num, GLsizei size, GLuint *driverControls)
-GL_ENTRY(void, glGetDriverControlStringQCOM, GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
-GL_ENTRY(void, glEnableDriverControlQCOM, GLuint driverControl)
-GL_ENTRY(void, glDisableDriverControlQCOM, GLuint driverControl)
-GL_ENTRY(void, glExtGetTexturesQCOM, GLuint *textures, GLint maxTextures, GLint *numTextures)
-GL_ENTRY(void, glExtGetBuffersQCOM, GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
-GL_ENTRY(void, glExtGetRenderbuffersQCOM, GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
-GL_ENTRY(void, glExtGetFramebuffersQCOM, GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
-GL_ENTRY(void, glExtGetTexLevelParameterivQCOM, GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
-GL_ENTRY(void, glExtTexObjectStateOverrideiQCOM, GLenum target, GLenum pname, GLint param)
-GL_ENTRY(void, glExtGetTexSubImageQCOM, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
-GL_ENTRY(void, glExtGetBufferPointervQCOM, GLenum target, GLvoidptr *params)
-GL_ENTRY(void, glExtGetShadersQCOM, GLuint *shaders, GLint maxShaders, GLint *numShaders)
-GL_ENTRY(void, glExtGetProgramsQCOM, GLuint *programs, GLint maxPrograms, GLint *numPrograms)
-GL_ENTRY(GLboolean, glExtIsProgramBinaryQCOM, GLuint program)
-GL_ENTRY(void, glExtGetProgramBinarySourceQCOM, GLuint program, GLenum shadertype, GLchar *source, GLint *length)
-GL_ENTRY(void, glStartTilingQCOM, GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
-GL_ENTRY(void, glEndTilingQCOM, GLbitfield preserveMask)
-
-# add-ons
-GL_ENTRY(void, glVertexAttribPointerData, GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,  void * data, GLuint datalen)
-GL_ENTRY(void, glVertexAttribPointerOffset, GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,  GLuint offset)
-GL_ENTRY(void, glDrawElementsOffset, GLenum mode, GLsizei count, GLenum type, GLuint offset)
-GL_ENTRY(void, glDrawElementsData, GLenum mode, GLsizei count, GLenum type, void *data, GLuint datalen)
-GL_ENTRY(void, glGetCompressedTextureFormats, int count, GLint *formats)
-GL_ENTRY(void, glShaderString, GLuint shader, const GLchar* string, GLsizei len)
-GL_ENTRY(int, glFinishRoundTrip, void)
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2.types b/tools/emulator/opengl/system/GLESv2_enc/gl2.types
deleted file mode 100644
index 4cee99e..0000000
--- a/tools/emulator/opengl/system/GLESv2_enc/gl2.types
+++ /dev/null
@@ -1,37 +0,0 @@
-GLbitfield 32 0x%08x false
-GLboolean 8 %d false
-GLclampf 32 %f false
-GLclampx 32 0x%08x false
-GLeglImageOES 32 %p false
-GLenum 32 0x%08x false
-GLfixed 32 0x%08x false
-GLfloat 32 %f false
-GLint 32 %d false
-GLintptr 32 %p false
-GLshort 16 %d false
-GLsizei 32 %d false
-GLsizeiptr 32 %p false
-GLubyte 8 0x%02x false
-GLuint 32 %u false
-GLvoid 0 %x false
-GLchar 8 %d false
-GLenum* 32 0x%08x true
-GLboolean* 32 0x%08x true
-GLclampf* 32 0x%08x true
-GLclampx* 32 0x%08x true
-GLeglImageOES* 32 0x%08x true
-GLfixed* 32 0x%08x true
-GLfloat* 32 0x%08x true
-GLint* 32 0x%08x true
-GLshort* 32 0x%08x true
-GLsizei* 32 0x%08x true
-GLubyte* 32 0x%08x true
-GLuint* 32 0x%08x true
-GLvoid* 32 0x%08x true
-GLchar* 32 0x%08x true
-GLchar** 32 0x%08x true
-GLvoid** 32 0x%08x true
-void* 32 0x%08x true
-GLstr 32 %s true
-GLstr* 32 0x%08x true
-GLvoidptr* 32 0x%08x true
\ No newline at end of file
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_client_context.cpp b/tools/emulator/opengl/system/GLESv2_enc/gl2_client_context.cpp
new file mode 100644
index 0000000..e4e08b2
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_client_context.cpp
@@ -0,0 +1,225 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+
+#include <string.h>
+#include "gl2_client_context.h"
+
+
+#include <stdio.h>
+
+int gl2_client_context_t::initDispatchByName(void *(*getProc)(const char *, void *userData), void *userData)
+{
+	void *ptr;
+
+	ptr = getProc("glActiveTexture", userData); set_glActiveTexture((glActiveTexture_client_proc_t)ptr);
+	ptr = getProc("glAttachShader", userData); set_glAttachShader((glAttachShader_client_proc_t)ptr);
+	ptr = getProc("glBindAttribLocation", userData); set_glBindAttribLocation((glBindAttribLocation_client_proc_t)ptr);
+	ptr = getProc("glBindBuffer", userData); set_glBindBuffer((glBindBuffer_client_proc_t)ptr);
+	ptr = getProc("glBindFramebuffer", userData); set_glBindFramebuffer((glBindFramebuffer_client_proc_t)ptr);
+	ptr = getProc("glBindRenderbuffer", userData); set_glBindRenderbuffer((glBindRenderbuffer_client_proc_t)ptr);
+	ptr = getProc("glBindTexture", userData); set_glBindTexture((glBindTexture_client_proc_t)ptr);
+	ptr = getProc("glBlendColor", userData); set_glBlendColor((glBlendColor_client_proc_t)ptr);
+	ptr = getProc("glBlendEquation", userData); set_glBlendEquation((glBlendEquation_client_proc_t)ptr);
+	ptr = getProc("glBlendEquationSeparate", userData); set_glBlendEquationSeparate((glBlendEquationSeparate_client_proc_t)ptr);
+	ptr = getProc("glBlendFunc", userData); set_glBlendFunc((glBlendFunc_client_proc_t)ptr);
+	ptr = getProc("glBlendFuncSeparate", userData); set_glBlendFuncSeparate((glBlendFuncSeparate_client_proc_t)ptr);
+	ptr = getProc("glBufferData", userData); set_glBufferData((glBufferData_client_proc_t)ptr);
+	ptr = getProc("glBufferSubData", userData); set_glBufferSubData((glBufferSubData_client_proc_t)ptr);
+	ptr = getProc("glCheckFramebufferStatus", userData); set_glCheckFramebufferStatus((glCheckFramebufferStatus_client_proc_t)ptr);
+	ptr = getProc("glClear", userData); set_glClear((glClear_client_proc_t)ptr);
+	ptr = getProc("glClearColor", userData); set_glClearColor((glClearColor_client_proc_t)ptr);
+	ptr = getProc("glClearDepthf", userData); set_glClearDepthf((glClearDepthf_client_proc_t)ptr);
+	ptr = getProc("glClearStencil", userData); set_glClearStencil((glClearStencil_client_proc_t)ptr);
+	ptr = getProc("glColorMask", userData); set_glColorMask((glColorMask_client_proc_t)ptr);
+	ptr = getProc("glCompileShader", userData); set_glCompileShader((glCompileShader_client_proc_t)ptr);
+	ptr = getProc("glCompressedTexImage2D", userData); set_glCompressedTexImage2D((glCompressedTexImage2D_client_proc_t)ptr);
+	ptr = getProc("glCompressedTexSubImage2D", userData); set_glCompressedTexSubImage2D((glCompressedTexSubImage2D_client_proc_t)ptr);
+	ptr = getProc("glCopyTexImage2D", userData); set_glCopyTexImage2D((glCopyTexImage2D_client_proc_t)ptr);
+	ptr = getProc("glCopyTexSubImage2D", userData); set_glCopyTexSubImage2D((glCopyTexSubImage2D_client_proc_t)ptr);
+	ptr = getProc("glCreateProgram", userData); set_glCreateProgram((glCreateProgram_client_proc_t)ptr);
+	ptr = getProc("glCreateShader", userData); set_glCreateShader((glCreateShader_client_proc_t)ptr);
+	ptr = getProc("glCullFace", userData); set_glCullFace((glCullFace_client_proc_t)ptr);
+	ptr = getProc("glDeleteBuffers", userData); set_glDeleteBuffers((glDeleteBuffers_client_proc_t)ptr);
+	ptr = getProc("glDeleteFramebuffers", userData); set_glDeleteFramebuffers((glDeleteFramebuffers_client_proc_t)ptr);
+	ptr = getProc("glDeleteProgram", userData); set_glDeleteProgram((glDeleteProgram_client_proc_t)ptr);
+	ptr = getProc("glDeleteRenderbuffers", userData); set_glDeleteRenderbuffers((glDeleteRenderbuffers_client_proc_t)ptr);
+	ptr = getProc("glDeleteShader", userData); set_glDeleteShader((glDeleteShader_client_proc_t)ptr);
+	ptr = getProc("glDeleteTextures", userData); set_glDeleteTextures((glDeleteTextures_client_proc_t)ptr);
+	ptr = getProc("glDepthFunc", userData); set_glDepthFunc((glDepthFunc_client_proc_t)ptr);
+	ptr = getProc("glDepthMask", userData); set_glDepthMask((glDepthMask_client_proc_t)ptr);
+	ptr = getProc("glDepthRangef", userData); set_glDepthRangef((glDepthRangef_client_proc_t)ptr);
+	ptr = getProc("glDetachShader", userData); set_glDetachShader((glDetachShader_client_proc_t)ptr);
+	ptr = getProc("glDisable", userData); set_glDisable((glDisable_client_proc_t)ptr);
+	ptr = getProc("glDisableVertexAttribArray", userData); set_glDisableVertexAttribArray((glDisableVertexAttribArray_client_proc_t)ptr);
+	ptr = getProc("glDrawArrays", userData); set_glDrawArrays((glDrawArrays_client_proc_t)ptr);
+	ptr = getProc("glDrawElements", userData); set_glDrawElements((glDrawElements_client_proc_t)ptr);
+	ptr = getProc("glEnable", userData); set_glEnable((glEnable_client_proc_t)ptr);
+	ptr = getProc("glEnableVertexAttribArray", userData); set_glEnableVertexAttribArray((glEnableVertexAttribArray_client_proc_t)ptr);
+	ptr = getProc("glFinish", userData); set_glFinish((glFinish_client_proc_t)ptr);
+	ptr = getProc("glFlush", userData); set_glFlush((glFlush_client_proc_t)ptr);
+	ptr = getProc("glFramebufferRenderbuffer", userData); set_glFramebufferRenderbuffer((glFramebufferRenderbuffer_client_proc_t)ptr);
+	ptr = getProc("glFramebufferTexture2D", userData); set_glFramebufferTexture2D((glFramebufferTexture2D_client_proc_t)ptr);
+	ptr = getProc("glFrontFace", userData); set_glFrontFace((glFrontFace_client_proc_t)ptr);
+	ptr = getProc("glGenBuffers", userData); set_glGenBuffers((glGenBuffers_client_proc_t)ptr);
+	ptr = getProc("glGenerateMipmap", userData); set_glGenerateMipmap((glGenerateMipmap_client_proc_t)ptr);
+	ptr = getProc("glGenFramebuffers", userData); set_glGenFramebuffers((glGenFramebuffers_client_proc_t)ptr);
+	ptr = getProc("glGenRenderbuffers", userData); set_glGenRenderbuffers((glGenRenderbuffers_client_proc_t)ptr);
+	ptr = getProc("glGenTextures", userData); set_glGenTextures((glGenTextures_client_proc_t)ptr);
+	ptr = getProc("glGetActiveAttrib", userData); set_glGetActiveAttrib((glGetActiveAttrib_client_proc_t)ptr);
+	ptr = getProc("glGetActiveUniform", userData); set_glGetActiveUniform((glGetActiveUniform_client_proc_t)ptr);
+	ptr = getProc("glGetAttachedShaders", userData); set_glGetAttachedShaders((glGetAttachedShaders_client_proc_t)ptr);
+	ptr = getProc("glGetAttribLocation", userData); set_glGetAttribLocation((glGetAttribLocation_client_proc_t)ptr);
+	ptr = getProc("glGetBooleanv", userData); set_glGetBooleanv((glGetBooleanv_client_proc_t)ptr);
+	ptr = getProc("glGetBufferParameteriv", userData); set_glGetBufferParameteriv((glGetBufferParameteriv_client_proc_t)ptr);
+	ptr = getProc("glGetError", userData); set_glGetError((glGetError_client_proc_t)ptr);
+	ptr = getProc("glGetFloatv", userData); set_glGetFloatv((glGetFloatv_client_proc_t)ptr);
+	ptr = getProc("glGetFramebufferAttachmentParameteriv", userData); set_glGetFramebufferAttachmentParameteriv((glGetFramebufferAttachmentParameteriv_client_proc_t)ptr);
+	ptr = getProc("glGetIntegerv", userData); set_glGetIntegerv((glGetIntegerv_client_proc_t)ptr);
+	ptr = getProc("glGetProgramiv", userData); set_glGetProgramiv((glGetProgramiv_client_proc_t)ptr);
+	ptr = getProc("glGetProgramInfoLog", userData); set_glGetProgramInfoLog((glGetProgramInfoLog_client_proc_t)ptr);
+	ptr = getProc("glGetRenderbufferParameteriv", userData); set_glGetRenderbufferParameteriv((glGetRenderbufferParameteriv_client_proc_t)ptr);
+	ptr = getProc("glGetShaderiv", userData); set_glGetShaderiv((glGetShaderiv_client_proc_t)ptr);
+	ptr = getProc("glGetShaderInfoLog", userData); set_glGetShaderInfoLog((glGetShaderInfoLog_client_proc_t)ptr);
+	ptr = getProc("glGetShaderPrecisionFormat", userData); set_glGetShaderPrecisionFormat((glGetShaderPrecisionFormat_client_proc_t)ptr);
+	ptr = getProc("glGetShaderSource", userData); set_glGetShaderSource((glGetShaderSource_client_proc_t)ptr);
+	ptr = getProc("glGetString", userData); set_glGetString((glGetString_client_proc_t)ptr);
+	ptr = getProc("glGetTexParameterfv", userData); set_glGetTexParameterfv((glGetTexParameterfv_client_proc_t)ptr);
+	ptr = getProc("glGetTexParameteriv", userData); set_glGetTexParameteriv((glGetTexParameteriv_client_proc_t)ptr);
+	ptr = getProc("glGetUniformfv", userData); set_glGetUniformfv((glGetUniformfv_client_proc_t)ptr);
+	ptr = getProc("glGetUniformiv", userData); set_glGetUniformiv((glGetUniformiv_client_proc_t)ptr);
+	ptr = getProc("glGetUniformLocation", userData); set_glGetUniformLocation((glGetUniformLocation_client_proc_t)ptr);
+	ptr = getProc("glGetVertexAttribfv", userData); set_glGetVertexAttribfv((glGetVertexAttribfv_client_proc_t)ptr);
+	ptr = getProc("glGetVertexAttribiv", userData); set_glGetVertexAttribiv((glGetVertexAttribiv_client_proc_t)ptr);
+	ptr = getProc("glGetVertexAttribPointerv", userData); set_glGetVertexAttribPointerv((glGetVertexAttribPointerv_client_proc_t)ptr);
+	ptr = getProc("glHint", userData); set_glHint((glHint_client_proc_t)ptr);
+	ptr = getProc("glIsBuffer", userData); set_glIsBuffer((glIsBuffer_client_proc_t)ptr);
+	ptr = getProc("glIsEnabled", userData); set_glIsEnabled((glIsEnabled_client_proc_t)ptr);
+	ptr = getProc("glIsFramebuffer", userData); set_glIsFramebuffer((glIsFramebuffer_client_proc_t)ptr);
+	ptr = getProc("glIsProgram", userData); set_glIsProgram((glIsProgram_client_proc_t)ptr);
+	ptr = getProc("glIsRenderbuffer", userData); set_glIsRenderbuffer((glIsRenderbuffer_client_proc_t)ptr);
+	ptr = getProc("glIsShader", userData); set_glIsShader((glIsShader_client_proc_t)ptr);
+	ptr = getProc("glIsTexture", userData); set_glIsTexture((glIsTexture_client_proc_t)ptr);
+	ptr = getProc("glLineWidth", userData); set_glLineWidth((glLineWidth_client_proc_t)ptr);
+	ptr = getProc("glLinkProgram", userData); set_glLinkProgram((glLinkProgram_client_proc_t)ptr);
+	ptr = getProc("glPixelStorei", userData); set_glPixelStorei((glPixelStorei_client_proc_t)ptr);
+	ptr = getProc("glPolygonOffset", userData); set_glPolygonOffset((glPolygonOffset_client_proc_t)ptr);
+	ptr = getProc("glReadPixels", userData); set_glReadPixels((glReadPixels_client_proc_t)ptr);
+	ptr = getProc("glReleaseShaderCompiler", userData); set_glReleaseShaderCompiler((glReleaseShaderCompiler_client_proc_t)ptr);
+	ptr = getProc("glRenderbufferStorage", userData); set_glRenderbufferStorage((glRenderbufferStorage_client_proc_t)ptr);
+	ptr = getProc("glSampleCoverage", userData); set_glSampleCoverage((glSampleCoverage_client_proc_t)ptr);
+	ptr = getProc("glScissor", userData); set_glScissor((glScissor_client_proc_t)ptr);
+	ptr = getProc("glShaderBinary", userData); set_glShaderBinary((glShaderBinary_client_proc_t)ptr);
+	ptr = getProc("glShaderSource", userData); set_glShaderSource((glShaderSource_client_proc_t)ptr);
+	ptr = getProc("glStencilFunc", userData); set_glStencilFunc((glStencilFunc_client_proc_t)ptr);
+	ptr = getProc("glStencilFuncSeparate", userData); set_glStencilFuncSeparate((glStencilFuncSeparate_client_proc_t)ptr);
+	ptr = getProc("glStencilMask", userData); set_glStencilMask((glStencilMask_client_proc_t)ptr);
+	ptr = getProc("glStencilMaskSeparate", userData); set_glStencilMaskSeparate((glStencilMaskSeparate_client_proc_t)ptr);
+	ptr = getProc("glStencilOp", userData); set_glStencilOp((glStencilOp_client_proc_t)ptr);
+	ptr = getProc("glStencilOpSeparate", userData); set_glStencilOpSeparate((glStencilOpSeparate_client_proc_t)ptr);
+	ptr = getProc("glTexImage2D", userData); set_glTexImage2D((glTexImage2D_client_proc_t)ptr);
+	ptr = getProc("glTexParameterf", userData); set_glTexParameterf((glTexParameterf_client_proc_t)ptr);
+	ptr = getProc("glTexParameterfv", userData); set_glTexParameterfv((glTexParameterfv_client_proc_t)ptr);
+	ptr = getProc("glTexParameteri", userData); set_glTexParameteri((glTexParameteri_client_proc_t)ptr);
+	ptr = getProc("glTexParameteriv", userData); set_glTexParameteriv((glTexParameteriv_client_proc_t)ptr);
+	ptr = getProc("glTexSubImage2D", userData); set_glTexSubImage2D((glTexSubImage2D_client_proc_t)ptr);
+	ptr = getProc("glUniform1f", userData); set_glUniform1f((glUniform1f_client_proc_t)ptr);
+	ptr = getProc("glUniform1fv", userData); set_glUniform1fv((glUniform1fv_client_proc_t)ptr);
+	ptr = getProc("glUniform1i", userData); set_glUniform1i((glUniform1i_client_proc_t)ptr);
+	ptr = getProc("glUniform1iv", userData); set_glUniform1iv((glUniform1iv_client_proc_t)ptr);
+	ptr = getProc("glUniform2f", userData); set_glUniform2f((glUniform2f_client_proc_t)ptr);
+	ptr = getProc("glUniform2fv", userData); set_glUniform2fv((glUniform2fv_client_proc_t)ptr);
+	ptr = getProc("glUniform2i", userData); set_glUniform2i((glUniform2i_client_proc_t)ptr);
+	ptr = getProc("glUniform2iv", userData); set_glUniform2iv((glUniform2iv_client_proc_t)ptr);
+	ptr = getProc("glUniform3f", userData); set_glUniform3f((glUniform3f_client_proc_t)ptr);
+	ptr = getProc("glUniform3fv", userData); set_glUniform3fv((glUniform3fv_client_proc_t)ptr);
+	ptr = getProc("glUniform3i", userData); set_glUniform3i((glUniform3i_client_proc_t)ptr);
+	ptr = getProc("glUniform3iv", userData); set_glUniform3iv((glUniform3iv_client_proc_t)ptr);
+	ptr = getProc("glUniform4f", userData); set_glUniform4f((glUniform4f_client_proc_t)ptr);
+	ptr = getProc("glUniform4fv", userData); set_glUniform4fv((glUniform4fv_client_proc_t)ptr);
+	ptr = getProc("glUniform4i", userData); set_glUniform4i((glUniform4i_client_proc_t)ptr);
+	ptr = getProc("glUniform4iv", userData); set_glUniform4iv((glUniform4iv_client_proc_t)ptr);
+	ptr = getProc("glUniformMatrix2fv", userData); set_glUniformMatrix2fv((glUniformMatrix2fv_client_proc_t)ptr);
+	ptr = getProc("glUniformMatrix3fv", userData); set_glUniformMatrix3fv((glUniformMatrix3fv_client_proc_t)ptr);
+	ptr = getProc("glUniformMatrix4fv", userData); set_glUniformMatrix4fv((glUniformMatrix4fv_client_proc_t)ptr);
+	ptr = getProc("glUseProgram", userData); set_glUseProgram((glUseProgram_client_proc_t)ptr);
+	ptr = getProc("glValidateProgram", userData); set_glValidateProgram((glValidateProgram_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib1f", userData); set_glVertexAttrib1f((glVertexAttrib1f_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib1fv", userData); set_glVertexAttrib1fv((glVertexAttrib1fv_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib2f", userData); set_glVertexAttrib2f((glVertexAttrib2f_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib2fv", userData); set_glVertexAttrib2fv((glVertexAttrib2fv_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib3f", userData); set_glVertexAttrib3f((glVertexAttrib3f_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib3fv", userData); set_glVertexAttrib3fv((glVertexAttrib3fv_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib4f", userData); set_glVertexAttrib4f((glVertexAttrib4f_client_proc_t)ptr);
+	ptr = getProc("glVertexAttrib4fv", userData); set_glVertexAttrib4fv((glVertexAttrib4fv_client_proc_t)ptr);
+	ptr = getProc("glVertexAttribPointer", userData); set_glVertexAttribPointer((glVertexAttribPointer_client_proc_t)ptr);
+	ptr = getProc("glViewport", userData); set_glViewport((glViewport_client_proc_t)ptr);
+	ptr = getProc("glEGLImageTargetTexture2DOES", userData); set_glEGLImageTargetTexture2DOES((glEGLImageTargetTexture2DOES_client_proc_t)ptr);
+	ptr = getProc("glEGLImageTargetRenderbufferStorageOES", userData); set_glEGLImageTargetRenderbufferStorageOES((glEGLImageTargetRenderbufferStorageOES_client_proc_t)ptr);
+	ptr = getProc("glGetProgramBinaryOES", userData); set_glGetProgramBinaryOES((glGetProgramBinaryOES_client_proc_t)ptr);
+	ptr = getProc("glProgramBinaryOES", userData); set_glProgramBinaryOES((glProgramBinaryOES_client_proc_t)ptr);
+	ptr = getProc("glMapBufferOES", userData); set_glMapBufferOES((glMapBufferOES_client_proc_t)ptr);
+	ptr = getProc("glUnmapBufferOES", userData); set_glUnmapBufferOES((glUnmapBufferOES_client_proc_t)ptr);
+	ptr = getProc("glTexImage3DOES", userData); set_glTexImage3DOES((glTexImage3DOES_client_proc_t)ptr);
+	ptr = getProc("glTexSubImage3DOES", userData); set_glTexSubImage3DOES((glTexSubImage3DOES_client_proc_t)ptr);
+	ptr = getProc("glCopyTexSubImage3DOES", userData); set_glCopyTexSubImage3DOES((glCopyTexSubImage3DOES_client_proc_t)ptr);
+	ptr = getProc("glCompressedTexImage3DOES", userData); set_glCompressedTexImage3DOES((glCompressedTexImage3DOES_client_proc_t)ptr);
+	ptr = getProc("glCompressedTexSubImage3DOES", userData); set_glCompressedTexSubImage3DOES((glCompressedTexSubImage3DOES_client_proc_t)ptr);
+	ptr = getProc("glFramebufferTexture3DOES", userData); set_glFramebufferTexture3DOES((glFramebufferTexture3DOES_client_proc_t)ptr);
+	ptr = getProc("glBindVertexArrayOES", userData); set_glBindVertexArrayOES((glBindVertexArrayOES_client_proc_t)ptr);
+	ptr = getProc("glDeleteVertexArraysOES", userData); set_glDeleteVertexArraysOES((glDeleteVertexArraysOES_client_proc_t)ptr);
+	ptr = getProc("glGenVertexArraysOES", userData); set_glGenVertexArraysOES((glGenVertexArraysOES_client_proc_t)ptr);
+	ptr = getProc("glIsVertexArrayOES", userData); set_glIsVertexArrayOES((glIsVertexArrayOES_client_proc_t)ptr);
+	ptr = getProc("glDiscardFramebufferEXT", userData); set_glDiscardFramebufferEXT((glDiscardFramebufferEXT_client_proc_t)ptr);
+	ptr = getProc("glMultiDrawArraysEXT", userData); set_glMultiDrawArraysEXT((glMultiDrawArraysEXT_client_proc_t)ptr);
+	ptr = getProc("glMultiDrawElementsEXT", userData); set_glMultiDrawElementsEXT((glMultiDrawElementsEXT_client_proc_t)ptr);
+	ptr = getProc("glGetPerfMonitorGroupsAMD", userData); set_glGetPerfMonitorGroupsAMD((glGetPerfMonitorGroupsAMD_client_proc_t)ptr);
+	ptr = getProc("glGetPerfMonitorCountersAMD", userData); set_glGetPerfMonitorCountersAMD((glGetPerfMonitorCountersAMD_client_proc_t)ptr);
+	ptr = getProc("glGetPerfMonitorGroupStringAMD", userData); set_glGetPerfMonitorGroupStringAMD((glGetPerfMonitorGroupStringAMD_client_proc_t)ptr);
+	ptr = getProc("glGetPerfMonitorCounterStringAMD", userData); set_glGetPerfMonitorCounterStringAMD((glGetPerfMonitorCounterStringAMD_client_proc_t)ptr);
+	ptr = getProc("glGetPerfMonitorCounterInfoAMD", userData); set_glGetPerfMonitorCounterInfoAMD((glGetPerfMonitorCounterInfoAMD_client_proc_t)ptr);
+	ptr = getProc("glGenPerfMonitorsAMD", userData); set_glGenPerfMonitorsAMD((glGenPerfMonitorsAMD_client_proc_t)ptr);
+	ptr = getProc("glDeletePerfMonitorsAMD", userData); set_glDeletePerfMonitorsAMD((glDeletePerfMonitorsAMD_client_proc_t)ptr);
+	ptr = getProc("glSelectPerfMonitorCountersAMD", userData); set_glSelectPerfMonitorCountersAMD((glSelectPerfMonitorCountersAMD_client_proc_t)ptr);
+	ptr = getProc("glBeginPerfMonitorAMD", userData); set_glBeginPerfMonitorAMD((glBeginPerfMonitorAMD_client_proc_t)ptr);
+	ptr = getProc("glEndPerfMonitorAMD", userData); set_glEndPerfMonitorAMD((glEndPerfMonitorAMD_client_proc_t)ptr);
+	ptr = getProc("glGetPerfMonitorCounterDataAMD", userData); set_glGetPerfMonitorCounterDataAMD((glGetPerfMonitorCounterDataAMD_client_proc_t)ptr);
+	ptr = getProc("glRenderbufferStorageMultisampleIMG", userData); set_glRenderbufferStorageMultisampleIMG((glRenderbufferStorageMultisampleIMG_client_proc_t)ptr);
+	ptr = getProc("glFramebufferTexture2DMultisampleIMG", userData); set_glFramebufferTexture2DMultisampleIMG((glFramebufferTexture2DMultisampleIMG_client_proc_t)ptr);
+	ptr = getProc("glDeleteFencesNV", userData); set_glDeleteFencesNV((glDeleteFencesNV_client_proc_t)ptr);
+	ptr = getProc("glGenFencesNV", userData); set_glGenFencesNV((glGenFencesNV_client_proc_t)ptr);
+	ptr = getProc("glIsFenceNV", userData); set_glIsFenceNV((glIsFenceNV_client_proc_t)ptr);
+	ptr = getProc("glTestFenceNV", userData); set_glTestFenceNV((glTestFenceNV_client_proc_t)ptr);
+	ptr = getProc("glGetFenceivNV", userData); set_glGetFenceivNV((glGetFenceivNV_client_proc_t)ptr);
+	ptr = getProc("glFinishFenceNV", userData); set_glFinishFenceNV((glFinishFenceNV_client_proc_t)ptr);
+	ptr = getProc("glSetFenceNV", userData); set_glSetFenceNV((glSetFenceNV_client_proc_t)ptr);
+	ptr = getProc("glCoverageMaskNV", userData); set_glCoverageMaskNV((glCoverageMaskNV_client_proc_t)ptr);
+	ptr = getProc("glCoverageOperationNV", userData); set_glCoverageOperationNV((glCoverageOperationNV_client_proc_t)ptr);
+	ptr = getProc("glGetDriverControlsQCOM", userData); set_glGetDriverControlsQCOM((glGetDriverControlsQCOM_client_proc_t)ptr);
+	ptr = getProc("glGetDriverControlStringQCOM", userData); set_glGetDriverControlStringQCOM((glGetDriverControlStringQCOM_client_proc_t)ptr);
+	ptr = getProc("glEnableDriverControlQCOM", userData); set_glEnableDriverControlQCOM((glEnableDriverControlQCOM_client_proc_t)ptr);
+	ptr = getProc("glDisableDriverControlQCOM", userData); set_glDisableDriverControlQCOM((glDisableDriverControlQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetTexturesQCOM", userData); set_glExtGetTexturesQCOM((glExtGetTexturesQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetBuffersQCOM", userData); set_glExtGetBuffersQCOM((glExtGetBuffersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetRenderbuffersQCOM", userData); set_glExtGetRenderbuffersQCOM((glExtGetRenderbuffersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetFramebuffersQCOM", userData); set_glExtGetFramebuffersQCOM((glExtGetFramebuffersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetTexLevelParameterivQCOM", userData); set_glExtGetTexLevelParameterivQCOM((glExtGetTexLevelParameterivQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtTexObjectStateOverrideiQCOM", userData); set_glExtTexObjectStateOverrideiQCOM((glExtTexObjectStateOverrideiQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetTexSubImageQCOM", userData); set_glExtGetTexSubImageQCOM((glExtGetTexSubImageQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetBufferPointervQCOM", userData); set_glExtGetBufferPointervQCOM((glExtGetBufferPointervQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetShadersQCOM", userData); set_glExtGetShadersQCOM((glExtGetShadersQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetProgramsQCOM", userData); set_glExtGetProgramsQCOM((glExtGetProgramsQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtIsProgramBinaryQCOM", userData); set_glExtIsProgramBinaryQCOM((glExtIsProgramBinaryQCOM_client_proc_t)ptr);
+	ptr = getProc("glExtGetProgramBinarySourceQCOM", userData); set_glExtGetProgramBinarySourceQCOM((glExtGetProgramBinarySourceQCOM_client_proc_t)ptr);
+	ptr = getProc("glStartTilingQCOM", userData); set_glStartTilingQCOM((glStartTilingQCOM_client_proc_t)ptr);
+	ptr = getProc("glEndTilingQCOM", userData); set_glEndTilingQCOM((glEndTilingQCOM_client_proc_t)ptr);
+	ptr = getProc("glVertexAttribPointerData", userData); set_glVertexAttribPointerData((glVertexAttribPointerData_client_proc_t)ptr);
+	ptr = getProc("glVertexAttribPointerOffset", userData); set_glVertexAttribPointerOffset((glVertexAttribPointerOffset_client_proc_t)ptr);
+	ptr = getProc("glDrawElementsOffset", userData); set_glDrawElementsOffset((glDrawElementsOffset_client_proc_t)ptr);
+	ptr = getProc("glDrawElementsData", userData); set_glDrawElementsData((glDrawElementsData_client_proc_t)ptr);
+	ptr = getProc("glGetCompressedTextureFormats", userData); set_glGetCompressedTextureFormats((glGetCompressedTextureFormats_client_proc_t)ptr);
+	ptr = getProc("glShaderString", userData); set_glShaderString((glShaderString_client_proc_t)ptr);
+	ptr = getProc("glFinishRoundTrip", userData); set_glFinishRoundTrip((glFinishRoundTrip_client_proc_t)ptr);
+	return 0;
+}
+
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_client_context.h b/tools/emulator/opengl/system/GLESv2_enc/gl2_client_context.h
new file mode 100644
index 0000000..7f0abcd
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_client_context.h
@@ -0,0 +1,437 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __gl2_client_context_t_h
+#define __gl2_client_context_t_h
+
+#include "gl2_client_proc.h"
+
+
+struct gl2_client_context_t {
+
+	glActiveTexture_client_proc_t glActiveTexture;
+	glAttachShader_client_proc_t glAttachShader;
+	glBindAttribLocation_client_proc_t glBindAttribLocation;
+	glBindBuffer_client_proc_t glBindBuffer;
+	glBindFramebuffer_client_proc_t glBindFramebuffer;
+	glBindRenderbuffer_client_proc_t glBindRenderbuffer;
+	glBindTexture_client_proc_t glBindTexture;
+	glBlendColor_client_proc_t glBlendColor;
+	glBlendEquation_client_proc_t glBlendEquation;
+	glBlendEquationSeparate_client_proc_t glBlendEquationSeparate;
+	glBlendFunc_client_proc_t glBlendFunc;
+	glBlendFuncSeparate_client_proc_t glBlendFuncSeparate;
+	glBufferData_client_proc_t glBufferData;
+	glBufferSubData_client_proc_t glBufferSubData;
+	glCheckFramebufferStatus_client_proc_t glCheckFramebufferStatus;
+	glClear_client_proc_t glClear;
+	glClearColor_client_proc_t glClearColor;
+	glClearDepthf_client_proc_t glClearDepthf;
+	glClearStencil_client_proc_t glClearStencil;
+	glColorMask_client_proc_t glColorMask;
+	glCompileShader_client_proc_t glCompileShader;
+	glCompressedTexImage2D_client_proc_t glCompressedTexImage2D;
+	glCompressedTexSubImage2D_client_proc_t glCompressedTexSubImage2D;
+	glCopyTexImage2D_client_proc_t glCopyTexImage2D;
+	glCopyTexSubImage2D_client_proc_t glCopyTexSubImage2D;
+	glCreateProgram_client_proc_t glCreateProgram;
+	glCreateShader_client_proc_t glCreateShader;
+	glCullFace_client_proc_t glCullFace;
+	glDeleteBuffers_client_proc_t glDeleteBuffers;
+	glDeleteFramebuffers_client_proc_t glDeleteFramebuffers;
+	glDeleteProgram_client_proc_t glDeleteProgram;
+	glDeleteRenderbuffers_client_proc_t glDeleteRenderbuffers;
+	glDeleteShader_client_proc_t glDeleteShader;
+	glDeleteTextures_client_proc_t glDeleteTextures;
+	glDepthFunc_client_proc_t glDepthFunc;
+	glDepthMask_client_proc_t glDepthMask;
+	glDepthRangef_client_proc_t glDepthRangef;
+	glDetachShader_client_proc_t glDetachShader;
+	glDisable_client_proc_t glDisable;
+	glDisableVertexAttribArray_client_proc_t glDisableVertexAttribArray;
+	glDrawArrays_client_proc_t glDrawArrays;
+	glDrawElements_client_proc_t glDrawElements;
+	glEnable_client_proc_t glEnable;
+	glEnableVertexAttribArray_client_proc_t glEnableVertexAttribArray;
+	glFinish_client_proc_t glFinish;
+	glFlush_client_proc_t glFlush;
+	glFramebufferRenderbuffer_client_proc_t glFramebufferRenderbuffer;
+	glFramebufferTexture2D_client_proc_t glFramebufferTexture2D;
+	glFrontFace_client_proc_t glFrontFace;
+	glGenBuffers_client_proc_t glGenBuffers;
+	glGenerateMipmap_client_proc_t glGenerateMipmap;
+	glGenFramebuffers_client_proc_t glGenFramebuffers;
+	glGenRenderbuffers_client_proc_t glGenRenderbuffers;
+	glGenTextures_client_proc_t glGenTextures;
+	glGetActiveAttrib_client_proc_t glGetActiveAttrib;
+	glGetActiveUniform_client_proc_t glGetActiveUniform;
+	glGetAttachedShaders_client_proc_t glGetAttachedShaders;
+	glGetAttribLocation_client_proc_t glGetAttribLocation;
+	glGetBooleanv_client_proc_t glGetBooleanv;
+	glGetBufferParameteriv_client_proc_t glGetBufferParameteriv;
+	glGetError_client_proc_t glGetError;
+	glGetFloatv_client_proc_t glGetFloatv;
+	glGetFramebufferAttachmentParameteriv_client_proc_t glGetFramebufferAttachmentParameteriv;
+	glGetIntegerv_client_proc_t glGetIntegerv;
+	glGetProgramiv_client_proc_t glGetProgramiv;
+	glGetProgramInfoLog_client_proc_t glGetProgramInfoLog;
+	glGetRenderbufferParameteriv_client_proc_t glGetRenderbufferParameteriv;
+	glGetShaderiv_client_proc_t glGetShaderiv;
+	glGetShaderInfoLog_client_proc_t glGetShaderInfoLog;
+	glGetShaderPrecisionFormat_client_proc_t glGetShaderPrecisionFormat;
+	glGetShaderSource_client_proc_t glGetShaderSource;
+	glGetString_client_proc_t glGetString;
+	glGetTexParameterfv_client_proc_t glGetTexParameterfv;
+	glGetTexParameteriv_client_proc_t glGetTexParameteriv;
+	glGetUniformfv_client_proc_t glGetUniformfv;
+	glGetUniformiv_client_proc_t glGetUniformiv;
+	glGetUniformLocation_client_proc_t glGetUniformLocation;
+	glGetVertexAttribfv_client_proc_t glGetVertexAttribfv;
+	glGetVertexAttribiv_client_proc_t glGetVertexAttribiv;
+	glGetVertexAttribPointerv_client_proc_t glGetVertexAttribPointerv;
+	glHint_client_proc_t glHint;
+	glIsBuffer_client_proc_t glIsBuffer;
+	glIsEnabled_client_proc_t glIsEnabled;
+	glIsFramebuffer_client_proc_t glIsFramebuffer;
+	glIsProgram_client_proc_t glIsProgram;
+	glIsRenderbuffer_client_proc_t glIsRenderbuffer;
+	glIsShader_client_proc_t glIsShader;
+	glIsTexture_client_proc_t glIsTexture;
+	glLineWidth_client_proc_t glLineWidth;
+	glLinkProgram_client_proc_t glLinkProgram;
+	glPixelStorei_client_proc_t glPixelStorei;
+	glPolygonOffset_client_proc_t glPolygonOffset;
+	glReadPixels_client_proc_t glReadPixels;
+	glReleaseShaderCompiler_client_proc_t glReleaseShaderCompiler;
+	glRenderbufferStorage_client_proc_t glRenderbufferStorage;
+	glSampleCoverage_client_proc_t glSampleCoverage;
+	glScissor_client_proc_t glScissor;
+	glShaderBinary_client_proc_t glShaderBinary;
+	glShaderSource_client_proc_t glShaderSource;
+	glStencilFunc_client_proc_t glStencilFunc;
+	glStencilFuncSeparate_client_proc_t glStencilFuncSeparate;
+	glStencilMask_client_proc_t glStencilMask;
+	glStencilMaskSeparate_client_proc_t glStencilMaskSeparate;
+	glStencilOp_client_proc_t glStencilOp;
+	glStencilOpSeparate_client_proc_t glStencilOpSeparate;
+	glTexImage2D_client_proc_t glTexImage2D;
+	glTexParameterf_client_proc_t glTexParameterf;
+	glTexParameterfv_client_proc_t glTexParameterfv;
+	glTexParameteri_client_proc_t glTexParameteri;
+	glTexParameteriv_client_proc_t glTexParameteriv;
+	glTexSubImage2D_client_proc_t glTexSubImage2D;
+	glUniform1f_client_proc_t glUniform1f;
+	glUniform1fv_client_proc_t glUniform1fv;
+	glUniform1i_client_proc_t glUniform1i;
+	glUniform1iv_client_proc_t glUniform1iv;
+	glUniform2f_client_proc_t glUniform2f;
+	glUniform2fv_client_proc_t glUniform2fv;
+	glUniform2i_client_proc_t glUniform2i;
+	glUniform2iv_client_proc_t glUniform2iv;
+	glUniform3f_client_proc_t glUniform3f;
+	glUniform3fv_client_proc_t glUniform3fv;
+	glUniform3i_client_proc_t glUniform3i;
+	glUniform3iv_client_proc_t glUniform3iv;
+	glUniform4f_client_proc_t glUniform4f;
+	glUniform4fv_client_proc_t glUniform4fv;
+	glUniform4i_client_proc_t glUniform4i;
+	glUniform4iv_client_proc_t glUniform4iv;
+	glUniformMatrix2fv_client_proc_t glUniformMatrix2fv;
+	glUniformMatrix3fv_client_proc_t glUniformMatrix3fv;
+	glUniformMatrix4fv_client_proc_t glUniformMatrix4fv;
+	glUseProgram_client_proc_t glUseProgram;
+	glValidateProgram_client_proc_t glValidateProgram;
+	glVertexAttrib1f_client_proc_t glVertexAttrib1f;
+	glVertexAttrib1fv_client_proc_t glVertexAttrib1fv;
+	glVertexAttrib2f_client_proc_t glVertexAttrib2f;
+	glVertexAttrib2fv_client_proc_t glVertexAttrib2fv;
+	glVertexAttrib3f_client_proc_t glVertexAttrib3f;
+	glVertexAttrib3fv_client_proc_t glVertexAttrib3fv;
+	glVertexAttrib4f_client_proc_t glVertexAttrib4f;
+	glVertexAttrib4fv_client_proc_t glVertexAttrib4fv;
+	glVertexAttribPointer_client_proc_t glVertexAttribPointer;
+	glViewport_client_proc_t glViewport;
+	glEGLImageTargetTexture2DOES_client_proc_t glEGLImageTargetTexture2DOES;
+	glEGLImageTargetRenderbufferStorageOES_client_proc_t glEGLImageTargetRenderbufferStorageOES;
+	glGetProgramBinaryOES_client_proc_t glGetProgramBinaryOES;
+	glProgramBinaryOES_client_proc_t glProgramBinaryOES;
+	glMapBufferOES_client_proc_t glMapBufferOES;
+	glUnmapBufferOES_client_proc_t glUnmapBufferOES;
+	glTexImage3DOES_client_proc_t glTexImage3DOES;
+	glTexSubImage3DOES_client_proc_t glTexSubImage3DOES;
+	glCopyTexSubImage3DOES_client_proc_t glCopyTexSubImage3DOES;
+	glCompressedTexImage3DOES_client_proc_t glCompressedTexImage3DOES;
+	glCompressedTexSubImage3DOES_client_proc_t glCompressedTexSubImage3DOES;
+	glFramebufferTexture3DOES_client_proc_t glFramebufferTexture3DOES;
+	glBindVertexArrayOES_client_proc_t glBindVertexArrayOES;
+	glDeleteVertexArraysOES_client_proc_t glDeleteVertexArraysOES;
+	glGenVertexArraysOES_client_proc_t glGenVertexArraysOES;
+	glIsVertexArrayOES_client_proc_t glIsVertexArrayOES;
+	glDiscardFramebufferEXT_client_proc_t glDiscardFramebufferEXT;
+	glMultiDrawArraysEXT_client_proc_t glMultiDrawArraysEXT;
+	glMultiDrawElementsEXT_client_proc_t glMultiDrawElementsEXT;
+	glGetPerfMonitorGroupsAMD_client_proc_t glGetPerfMonitorGroupsAMD;
+	glGetPerfMonitorCountersAMD_client_proc_t glGetPerfMonitorCountersAMD;
+	glGetPerfMonitorGroupStringAMD_client_proc_t glGetPerfMonitorGroupStringAMD;
+	glGetPerfMonitorCounterStringAMD_client_proc_t glGetPerfMonitorCounterStringAMD;
+	glGetPerfMonitorCounterInfoAMD_client_proc_t glGetPerfMonitorCounterInfoAMD;
+	glGenPerfMonitorsAMD_client_proc_t glGenPerfMonitorsAMD;
+	glDeletePerfMonitorsAMD_client_proc_t glDeletePerfMonitorsAMD;
+	glSelectPerfMonitorCountersAMD_client_proc_t glSelectPerfMonitorCountersAMD;
+	glBeginPerfMonitorAMD_client_proc_t glBeginPerfMonitorAMD;
+	glEndPerfMonitorAMD_client_proc_t glEndPerfMonitorAMD;
+	glGetPerfMonitorCounterDataAMD_client_proc_t glGetPerfMonitorCounterDataAMD;
+	glRenderbufferStorageMultisampleIMG_client_proc_t glRenderbufferStorageMultisampleIMG;
+	glFramebufferTexture2DMultisampleIMG_client_proc_t glFramebufferTexture2DMultisampleIMG;
+	glDeleteFencesNV_client_proc_t glDeleteFencesNV;
+	glGenFencesNV_client_proc_t glGenFencesNV;
+	glIsFenceNV_client_proc_t glIsFenceNV;
+	glTestFenceNV_client_proc_t glTestFenceNV;
+	glGetFenceivNV_client_proc_t glGetFenceivNV;
+	glFinishFenceNV_client_proc_t glFinishFenceNV;
+	glSetFenceNV_client_proc_t glSetFenceNV;
+	glCoverageMaskNV_client_proc_t glCoverageMaskNV;
+	glCoverageOperationNV_client_proc_t glCoverageOperationNV;
+	glGetDriverControlsQCOM_client_proc_t glGetDriverControlsQCOM;
+	glGetDriverControlStringQCOM_client_proc_t glGetDriverControlStringQCOM;
+	glEnableDriverControlQCOM_client_proc_t glEnableDriverControlQCOM;
+	glDisableDriverControlQCOM_client_proc_t glDisableDriverControlQCOM;
+	glExtGetTexturesQCOM_client_proc_t glExtGetTexturesQCOM;
+	glExtGetBuffersQCOM_client_proc_t glExtGetBuffersQCOM;
+	glExtGetRenderbuffersQCOM_client_proc_t glExtGetRenderbuffersQCOM;
+	glExtGetFramebuffersQCOM_client_proc_t glExtGetFramebuffersQCOM;
+	glExtGetTexLevelParameterivQCOM_client_proc_t glExtGetTexLevelParameterivQCOM;
+	glExtTexObjectStateOverrideiQCOM_client_proc_t glExtTexObjectStateOverrideiQCOM;
+	glExtGetTexSubImageQCOM_client_proc_t glExtGetTexSubImageQCOM;
+	glExtGetBufferPointervQCOM_client_proc_t glExtGetBufferPointervQCOM;
+	glExtGetShadersQCOM_client_proc_t glExtGetShadersQCOM;
+	glExtGetProgramsQCOM_client_proc_t glExtGetProgramsQCOM;
+	glExtIsProgramBinaryQCOM_client_proc_t glExtIsProgramBinaryQCOM;
+	glExtGetProgramBinarySourceQCOM_client_proc_t glExtGetProgramBinarySourceQCOM;
+	glStartTilingQCOM_client_proc_t glStartTilingQCOM;
+	glEndTilingQCOM_client_proc_t glEndTilingQCOM;
+	glVertexAttribPointerData_client_proc_t glVertexAttribPointerData;
+	glVertexAttribPointerOffset_client_proc_t glVertexAttribPointerOffset;
+	glDrawElementsOffset_client_proc_t glDrawElementsOffset;
+	glDrawElementsData_client_proc_t glDrawElementsData;
+	glGetCompressedTextureFormats_client_proc_t glGetCompressedTextureFormats;
+	glShaderString_client_proc_t glShaderString;
+	glFinishRoundTrip_client_proc_t glFinishRoundTrip;
+	//Accessors 
+	virtual glActiveTexture_client_proc_t set_glActiveTexture(glActiveTexture_client_proc_t f) { glActiveTexture_client_proc_t retval = glActiveTexture; glActiveTexture = f; return retval;}
+	virtual glAttachShader_client_proc_t set_glAttachShader(glAttachShader_client_proc_t f) { glAttachShader_client_proc_t retval = glAttachShader; glAttachShader = f; return retval;}
+	virtual glBindAttribLocation_client_proc_t set_glBindAttribLocation(glBindAttribLocation_client_proc_t f) { glBindAttribLocation_client_proc_t retval = glBindAttribLocation; glBindAttribLocation = f; return retval;}
+	virtual glBindBuffer_client_proc_t set_glBindBuffer(glBindBuffer_client_proc_t f) { glBindBuffer_client_proc_t retval = glBindBuffer; glBindBuffer = f; return retval;}
+	virtual glBindFramebuffer_client_proc_t set_glBindFramebuffer(glBindFramebuffer_client_proc_t f) { glBindFramebuffer_client_proc_t retval = glBindFramebuffer; glBindFramebuffer = f; return retval;}
+	virtual glBindRenderbuffer_client_proc_t set_glBindRenderbuffer(glBindRenderbuffer_client_proc_t f) { glBindRenderbuffer_client_proc_t retval = glBindRenderbuffer; glBindRenderbuffer = f; return retval;}
+	virtual glBindTexture_client_proc_t set_glBindTexture(glBindTexture_client_proc_t f) { glBindTexture_client_proc_t retval = glBindTexture; glBindTexture = f; return retval;}
+	virtual glBlendColor_client_proc_t set_glBlendColor(glBlendColor_client_proc_t f) { glBlendColor_client_proc_t retval = glBlendColor; glBlendColor = f; return retval;}
+	virtual glBlendEquation_client_proc_t set_glBlendEquation(glBlendEquation_client_proc_t f) { glBlendEquation_client_proc_t retval = glBlendEquation; glBlendEquation = f; return retval;}
+	virtual glBlendEquationSeparate_client_proc_t set_glBlendEquationSeparate(glBlendEquationSeparate_client_proc_t f) { glBlendEquationSeparate_client_proc_t retval = glBlendEquationSeparate; glBlendEquationSeparate = f; return retval;}
+	virtual glBlendFunc_client_proc_t set_glBlendFunc(glBlendFunc_client_proc_t f) { glBlendFunc_client_proc_t retval = glBlendFunc; glBlendFunc = f; return retval;}
+	virtual glBlendFuncSeparate_client_proc_t set_glBlendFuncSeparate(glBlendFuncSeparate_client_proc_t f) { glBlendFuncSeparate_client_proc_t retval = glBlendFuncSeparate; glBlendFuncSeparate = f; return retval;}
+	virtual glBufferData_client_proc_t set_glBufferData(glBufferData_client_proc_t f) { glBufferData_client_proc_t retval = glBufferData; glBufferData = f; return retval;}
+	virtual glBufferSubData_client_proc_t set_glBufferSubData(glBufferSubData_client_proc_t f) { glBufferSubData_client_proc_t retval = glBufferSubData; glBufferSubData = f; return retval;}
+	virtual glCheckFramebufferStatus_client_proc_t set_glCheckFramebufferStatus(glCheckFramebufferStatus_client_proc_t f) { glCheckFramebufferStatus_client_proc_t retval = glCheckFramebufferStatus; glCheckFramebufferStatus = f; return retval;}
+	virtual glClear_client_proc_t set_glClear(glClear_client_proc_t f) { glClear_client_proc_t retval = glClear; glClear = f; return retval;}
+	virtual glClearColor_client_proc_t set_glClearColor(glClearColor_client_proc_t f) { glClearColor_client_proc_t retval = glClearColor; glClearColor = f; return retval;}
+	virtual glClearDepthf_client_proc_t set_glClearDepthf(glClearDepthf_client_proc_t f) { glClearDepthf_client_proc_t retval = glClearDepthf; glClearDepthf = f; return retval;}
+	virtual glClearStencil_client_proc_t set_glClearStencil(glClearStencil_client_proc_t f) { glClearStencil_client_proc_t retval = glClearStencil; glClearStencil = f; return retval;}
+	virtual glColorMask_client_proc_t set_glColorMask(glColorMask_client_proc_t f) { glColorMask_client_proc_t retval = glColorMask; glColorMask = f; return retval;}
+	virtual glCompileShader_client_proc_t set_glCompileShader(glCompileShader_client_proc_t f) { glCompileShader_client_proc_t retval = glCompileShader; glCompileShader = f; return retval;}
+	virtual glCompressedTexImage2D_client_proc_t set_glCompressedTexImage2D(glCompressedTexImage2D_client_proc_t f) { glCompressedTexImage2D_client_proc_t retval = glCompressedTexImage2D; glCompressedTexImage2D = f; return retval;}
+	virtual glCompressedTexSubImage2D_client_proc_t set_glCompressedTexSubImage2D(glCompressedTexSubImage2D_client_proc_t f) { glCompressedTexSubImage2D_client_proc_t retval = glCompressedTexSubImage2D; glCompressedTexSubImage2D = f; return retval;}
+	virtual glCopyTexImage2D_client_proc_t set_glCopyTexImage2D(glCopyTexImage2D_client_proc_t f) { glCopyTexImage2D_client_proc_t retval = glCopyTexImage2D; glCopyTexImage2D = f; return retval;}
+	virtual glCopyTexSubImage2D_client_proc_t set_glCopyTexSubImage2D(glCopyTexSubImage2D_client_proc_t f) { glCopyTexSubImage2D_client_proc_t retval = glCopyTexSubImage2D; glCopyTexSubImage2D = f; return retval;}
+	virtual glCreateProgram_client_proc_t set_glCreateProgram(glCreateProgram_client_proc_t f) { glCreateProgram_client_proc_t retval = glCreateProgram; glCreateProgram = f; return retval;}
+	virtual glCreateShader_client_proc_t set_glCreateShader(glCreateShader_client_proc_t f) { glCreateShader_client_proc_t retval = glCreateShader; glCreateShader = f; return retval;}
+	virtual glCullFace_client_proc_t set_glCullFace(glCullFace_client_proc_t f) { glCullFace_client_proc_t retval = glCullFace; glCullFace = f; return retval;}
+	virtual glDeleteBuffers_client_proc_t set_glDeleteBuffers(glDeleteBuffers_client_proc_t f) { glDeleteBuffers_client_proc_t retval = glDeleteBuffers; glDeleteBuffers = f; return retval;}
+	virtual glDeleteFramebuffers_client_proc_t set_glDeleteFramebuffers(glDeleteFramebuffers_client_proc_t f) { glDeleteFramebuffers_client_proc_t retval = glDeleteFramebuffers; glDeleteFramebuffers = f; return retval;}
+	virtual glDeleteProgram_client_proc_t set_glDeleteProgram(glDeleteProgram_client_proc_t f) { glDeleteProgram_client_proc_t retval = glDeleteProgram; glDeleteProgram = f; return retval;}
+	virtual glDeleteRenderbuffers_client_proc_t set_glDeleteRenderbuffers(glDeleteRenderbuffers_client_proc_t f) { glDeleteRenderbuffers_client_proc_t retval = glDeleteRenderbuffers; glDeleteRenderbuffers = f; return retval;}
+	virtual glDeleteShader_client_proc_t set_glDeleteShader(glDeleteShader_client_proc_t f) { glDeleteShader_client_proc_t retval = glDeleteShader; glDeleteShader = f; return retval;}
+	virtual glDeleteTextures_client_proc_t set_glDeleteTextures(glDeleteTextures_client_proc_t f) { glDeleteTextures_client_proc_t retval = glDeleteTextures; glDeleteTextures = f; return retval;}
+	virtual glDepthFunc_client_proc_t set_glDepthFunc(glDepthFunc_client_proc_t f) { glDepthFunc_client_proc_t retval = glDepthFunc; glDepthFunc = f; return retval;}
+	virtual glDepthMask_client_proc_t set_glDepthMask(glDepthMask_client_proc_t f) { glDepthMask_client_proc_t retval = glDepthMask; glDepthMask = f; return retval;}
+	virtual glDepthRangef_client_proc_t set_glDepthRangef(glDepthRangef_client_proc_t f) { glDepthRangef_client_proc_t retval = glDepthRangef; glDepthRangef = f; return retval;}
+	virtual glDetachShader_client_proc_t set_glDetachShader(glDetachShader_client_proc_t f) { glDetachShader_client_proc_t retval = glDetachShader; glDetachShader = f; return retval;}
+	virtual glDisable_client_proc_t set_glDisable(glDisable_client_proc_t f) { glDisable_client_proc_t retval = glDisable; glDisable = f; return retval;}
+	virtual glDisableVertexAttribArray_client_proc_t set_glDisableVertexAttribArray(glDisableVertexAttribArray_client_proc_t f) { glDisableVertexAttribArray_client_proc_t retval = glDisableVertexAttribArray; glDisableVertexAttribArray = f; return retval;}
+	virtual glDrawArrays_client_proc_t set_glDrawArrays(glDrawArrays_client_proc_t f) { glDrawArrays_client_proc_t retval = glDrawArrays; glDrawArrays = f; return retval;}
+	virtual glDrawElements_client_proc_t set_glDrawElements(glDrawElements_client_proc_t f) { glDrawElements_client_proc_t retval = glDrawElements; glDrawElements = f; return retval;}
+	virtual glEnable_client_proc_t set_glEnable(glEnable_client_proc_t f) { glEnable_client_proc_t retval = glEnable; glEnable = f; return retval;}
+	virtual glEnableVertexAttribArray_client_proc_t set_glEnableVertexAttribArray(glEnableVertexAttribArray_client_proc_t f) { glEnableVertexAttribArray_client_proc_t retval = glEnableVertexAttribArray; glEnableVertexAttribArray = f; return retval;}
+	virtual glFinish_client_proc_t set_glFinish(glFinish_client_proc_t f) { glFinish_client_proc_t retval = glFinish; glFinish = f; return retval;}
+	virtual glFlush_client_proc_t set_glFlush(glFlush_client_proc_t f) { glFlush_client_proc_t retval = glFlush; glFlush = f; return retval;}
+	virtual glFramebufferRenderbuffer_client_proc_t set_glFramebufferRenderbuffer(glFramebufferRenderbuffer_client_proc_t f) { glFramebufferRenderbuffer_client_proc_t retval = glFramebufferRenderbuffer; glFramebufferRenderbuffer = f; return retval;}
+	virtual glFramebufferTexture2D_client_proc_t set_glFramebufferTexture2D(glFramebufferTexture2D_client_proc_t f) { glFramebufferTexture2D_client_proc_t retval = glFramebufferTexture2D; glFramebufferTexture2D = f; return retval;}
+	virtual glFrontFace_client_proc_t set_glFrontFace(glFrontFace_client_proc_t f) { glFrontFace_client_proc_t retval = glFrontFace; glFrontFace = f; return retval;}
+	virtual glGenBuffers_client_proc_t set_glGenBuffers(glGenBuffers_client_proc_t f) { glGenBuffers_client_proc_t retval = glGenBuffers; glGenBuffers = f; return retval;}
+	virtual glGenerateMipmap_client_proc_t set_glGenerateMipmap(glGenerateMipmap_client_proc_t f) { glGenerateMipmap_client_proc_t retval = glGenerateMipmap; glGenerateMipmap = f; return retval;}
+	virtual glGenFramebuffers_client_proc_t set_glGenFramebuffers(glGenFramebuffers_client_proc_t f) { glGenFramebuffers_client_proc_t retval = glGenFramebuffers; glGenFramebuffers = f; return retval;}
+	virtual glGenRenderbuffers_client_proc_t set_glGenRenderbuffers(glGenRenderbuffers_client_proc_t f) { glGenRenderbuffers_client_proc_t retval = glGenRenderbuffers; glGenRenderbuffers = f; return retval;}
+	virtual glGenTextures_client_proc_t set_glGenTextures(glGenTextures_client_proc_t f) { glGenTextures_client_proc_t retval = glGenTextures; glGenTextures = f; return retval;}
+	virtual glGetActiveAttrib_client_proc_t set_glGetActiveAttrib(glGetActiveAttrib_client_proc_t f) { glGetActiveAttrib_client_proc_t retval = glGetActiveAttrib; glGetActiveAttrib = f; return retval;}
+	virtual glGetActiveUniform_client_proc_t set_glGetActiveUniform(glGetActiveUniform_client_proc_t f) { glGetActiveUniform_client_proc_t retval = glGetActiveUniform; glGetActiveUniform = f; return retval;}
+	virtual glGetAttachedShaders_client_proc_t set_glGetAttachedShaders(glGetAttachedShaders_client_proc_t f) { glGetAttachedShaders_client_proc_t retval = glGetAttachedShaders; glGetAttachedShaders = f; return retval;}
+	virtual glGetAttribLocation_client_proc_t set_glGetAttribLocation(glGetAttribLocation_client_proc_t f) { glGetAttribLocation_client_proc_t retval = glGetAttribLocation; glGetAttribLocation = f; return retval;}
+	virtual glGetBooleanv_client_proc_t set_glGetBooleanv(glGetBooleanv_client_proc_t f) { glGetBooleanv_client_proc_t retval = glGetBooleanv; glGetBooleanv = f; return retval;}
+	virtual glGetBufferParameteriv_client_proc_t set_glGetBufferParameteriv(glGetBufferParameteriv_client_proc_t f) { glGetBufferParameteriv_client_proc_t retval = glGetBufferParameteriv; glGetBufferParameteriv = f; return retval;}
+	virtual glGetError_client_proc_t set_glGetError(glGetError_client_proc_t f) { glGetError_client_proc_t retval = glGetError; glGetError = f; return retval;}
+	virtual glGetFloatv_client_proc_t set_glGetFloatv(glGetFloatv_client_proc_t f) { glGetFloatv_client_proc_t retval = glGetFloatv; glGetFloatv = f; return retval;}
+	virtual glGetFramebufferAttachmentParameteriv_client_proc_t set_glGetFramebufferAttachmentParameteriv(glGetFramebufferAttachmentParameteriv_client_proc_t f) { glGetFramebufferAttachmentParameteriv_client_proc_t retval = glGetFramebufferAttachmentParameteriv; glGetFramebufferAttachmentParameteriv = f; return retval;}
+	virtual glGetIntegerv_client_proc_t set_glGetIntegerv(glGetIntegerv_client_proc_t f) { glGetIntegerv_client_proc_t retval = glGetIntegerv; glGetIntegerv = f; return retval;}
+	virtual glGetProgramiv_client_proc_t set_glGetProgramiv(glGetProgramiv_client_proc_t f) { glGetProgramiv_client_proc_t retval = glGetProgramiv; glGetProgramiv = f; return retval;}
+	virtual glGetProgramInfoLog_client_proc_t set_glGetProgramInfoLog(glGetProgramInfoLog_client_proc_t f) { glGetProgramInfoLog_client_proc_t retval = glGetProgramInfoLog; glGetProgramInfoLog = f; return retval;}
+	virtual glGetRenderbufferParameteriv_client_proc_t set_glGetRenderbufferParameteriv(glGetRenderbufferParameteriv_client_proc_t f) { glGetRenderbufferParameteriv_client_proc_t retval = glGetRenderbufferParameteriv; glGetRenderbufferParameteriv = f; return retval;}
+	virtual glGetShaderiv_client_proc_t set_glGetShaderiv(glGetShaderiv_client_proc_t f) { glGetShaderiv_client_proc_t retval = glGetShaderiv; glGetShaderiv = f; return retval;}
+	virtual glGetShaderInfoLog_client_proc_t set_glGetShaderInfoLog(glGetShaderInfoLog_client_proc_t f) { glGetShaderInfoLog_client_proc_t retval = glGetShaderInfoLog; glGetShaderInfoLog = f; return retval;}
+	virtual glGetShaderPrecisionFormat_client_proc_t set_glGetShaderPrecisionFormat(glGetShaderPrecisionFormat_client_proc_t f) { glGetShaderPrecisionFormat_client_proc_t retval = glGetShaderPrecisionFormat; glGetShaderPrecisionFormat = f; return retval;}
+	virtual glGetShaderSource_client_proc_t set_glGetShaderSource(glGetShaderSource_client_proc_t f) { glGetShaderSource_client_proc_t retval = glGetShaderSource; glGetShaderSource = f; return retval;}
+	virtual glGetString_client_proc_t set_glGetString(glGetString_client_proc_t f) { glGetString_client_proc_t retval = glGetString; glGetString = f; return retval;}
+	virtual glGetTexParameterfv_client_proc_t set_glGetTexParameterfv(glGetTexParameterfv_client_proc_t f) { glGetTexParameterfv_client_proc_t retval = glGetTexParameterfv; glGetTexParameterfv = f; return retval;}
+	virtual glGetTexParameteriv_client_proc_t set_glGetTexParameteriv(glGetTexParameteriv_client_proc_t f) { glGetTexParameteriv_client_proc_t retval = glGetTexParameteriv; glGetTexParameteriv = f; return retval;}
+	virtual glGetUniformfv_client_proc_t set_glGetUniformfv(glGetUniformfv_client_proc_t f) { glGetUniformfv_client_proc_t retval = glGetUniformfv; glGetUniformfv = f; return retval;}
+	virtual glGetUniformiv_client_proc_t set_glGetUniformiv(glGetUniformiv_client_proc_t f) { glGetUniformiv_client_proc_t retval = glGetUniformiv; glGetUniformiv = f; return retval;}
+	virtual glGetUniformLocation_client_proc_t set_glGetUniformLocation(glGetUniformLocation_client_proc_t f) { glGetUniformLocation_client_proc_t retval = glGetUniformLocation; glGetUniformLocation = f; return retval;}
+	virtual glGetVertexAttribfv_client_proc_t set_glGetVertexAttribfv(glGetVertexAttribfv_client_proc_t f) { glGetVertexAttribfv_client_proc_t retval = glGetVertexAttribfv; glGetVertexAttribfv = f; return retval;}
+	virtual glGetVertexAttribiv_client_proc_t set_glGetVertexAttribiv(glGetVertexAttribiv_client_proc_t f) { glGetVertexAttribiv_client_proc_t retval = glGetVertexAttribiv; glGetVertexAttribiv = f; return retval;}
+	virtual glGetVertexAttribPointerv_client_proc_t set_glGetVertexAttribPointerv(glGetVertexAttribPointerv_client_proc_t f) { glGetVertexAttribPointerv_client_proc_t retval = glGetVertexAttribPointerv; glGetVertexAttribPointerv = f; return retval;}
+	virtual glHint_client_proc_t set_glHint(glHint_client_proc_t f) { glHint_client_proc_t retval = glHint; glHint = f; return retval;}
+	virtual glIsBuffer_client_proc_t set_glIsBuffer(glIsBuffer_client_proc_t f) { glIsBuffer_client_proc_t retval = glIsBuffer; glIsBuffer = f; return retval;}
+	virtual glIsEnabled_client_proc_t set_glIsEnabled(glIsEnabled_client_proc_t f) { glIsEnabled_client_proc_t retval = glIsEnabled; glIsEnabled = f; return retval;}
+	virtual glIsFramebuffer_client_proc_t set_glIsFramebuffer(glIsFramebuffer_client_proc_t f) { glIsFramebuffer_client_proc_t retval = glIsFramebuffer; glIsFramebuffer = f; return retval;}
+	virtual glIsProgram_client_proc_t set_glIsProgram(glIsProgram_client_proc_t f) { glIsProgram_client_proc_t retval = glIsProgram; glIsProgram = f; return retval;}
+	virtual glIsRenderbuffer_client_proc_t set_glIsRenderbuffer(glIsRenderbuffer_client_proc_t f) { glIsRenderbuffer_client_proc_t retval = glIsRenderbuffer; glIsRenderbuffer = f; return retval;}
+	virtual glIsShader_client_proc_t set_glIsShader(glIsShader_client_proc_t f) { glIsShader_client_proc_t retval = glIsShader; glIsShader = f; return retval;}
+	virtual glIsTexture_client_proc_t set_glIsTexture(glIsTexture_client_proc_t f) { glIsTexture_client_proc_t retval = glIsTexture; glIsTexture = f; return retval;}
+	virtual glLineWidth_client_proc_t set_glLineWidth(glLineWidth_client_proc_t f) { glLineWidth_client_proc_t retval = glLineWidth; glLineWidth = f; return retval;}
+	virtual glLinkProgram_client_proc_t set_glLinkProgram(glLinkProgram_client_proc_t f) { glLinkProgram_client_proc_t retval = glLinkProgram; glLinkProgram = f; return retval;}
+	virtual glPixelStorei_client_proc_t set_glPixelStorei(glPixelStorei_client_proc_t f) { glPixelStorei_client_proc_t retval = glPixelStorei; glPixelStorei = f; return retval;}
+	virtual glPolygonOffset_client_proc_t set_glPolygonOffset(glPolygonOffset_client_proc_t f) { glPolygonOffset_client_proc_t retval = glPolygonOffset; glPolygonOffset = f; return retval;}
+	virtual glReadPixels_client_proc_t set_glReadPixels(glReadPixels_client_proc_t f) { glReadPixels_client_proc_t retval = glReadPixels; glReadPixels = f; return retval;}
+	virtual glReleaseShaderCompiler_client_proc_t set_glReleaseShaderCompiler(glReleaseShaderCompiler_client_proc_t f) { glReleaseShaderCompiler_client_proc_t retval = glReleaseShaderCompiler; glReleaseShaderCompiler = f; return retval;}
+	virtual glRenderbufferStorage_client_proc_t set_glRenderbufferStorage(glRenderbufferStorage_client_proc_t f) { glRenderbufferStorage_client_proc_t retval = glRenderbufferStorage; glRenderbufferStorage = f; return retval;}
+	virtual glSampleCoverage_client_proc_t set_glSampleCoverage(glSampleCoverage_client_proc_t f) { glSampleCoverage_client_proc_t retval = glSampleCoverage; glSampleCoverage = f; return retval;}
+	virtual glScissor_client_proc_t set_glScissor(glScissor_client_proc_t f) { glScissor_client_proc_t retval = glScissor; glScissor = f; return retval;}
+	virtual glShaderBinary_client_proc_t set_glShaderBinary(glShaderBinary_client_proc_t f) { glShaderBinary_client_proc_t retval = glShaderBinary; glShaderBinary = f; return retval;}
+	virtual glShaderSource_client_proc_t set_glShaderSource(glShaderSource_client_proc_t f) { glShaderSource_client_proc_t retval = glShaderSource; glShaderSource = f; return retval;}
+	virtual glStencilFunc_client_proc_t set_glStencilFunc(glStencilFunc_client_proc_t f) { glStencilFunc_client_proc_t retval = glStencilFunc; glStencilFunc = f; return retval;}
+	virtual glStencilFuncSeparate_client_proc_t set_glStencilFuncSeparate(glStencilFuncSeparate_client_proc_t f) { glStencilFuncSeparate_client_proc_t retval = glStencilFuncSeparate; glStencilFuncSeparate = f; return retval;}
+	virtual glStencilMask_client_proc_t set_glStencilMask(glStencilMask_client_proc_t f) { glStencilMask_client_proc_t retval = glStencilMask; glStencilMask = f; return retval;}
+	virtual glStencilMaskSeparate_client_proc_t set_glStencilMaskSeparate(glStencilMaskSeparate_client_proc_t f) { glStencilMaskSeparate_client_proc_t retval = glStencilMaskSeparate; glStencilMaskSeparate = f; return retval;}
+	virtual glStencilOp_client_proc_t set_glStencilOp(glStencilOp_client_proc_t f) { glStencilOp_client_proc_t retval = glStencilOp; glStencilOp = f; return retval;}
+	virtual glStencilOpSeparate_client_proc_t set_glStencilOpSeparate(glStencilOpSeparate_client_proc_t f) { glStencilOpSeparate_client_proc_t retval = glStencilOpSeparate; glStencilOpSeparate = f; return retval;}
+	virtual glTexImage2D_client_proc_t set_glTexImage2D(glTexImage2D_client_proc_t f) { glTexImage2D_client_proc_t retval = glTexImage2D; glTexImage2D = f; return retval;}
+	virtual glTexParameterf_client_proc_t set_glTexParameterf(glTexParameterf_client_proc_t f) { glTexParameterf_client_proc_t retval = glTexParameterf; glTexParameterf = f; return retval;}
+	virtual glTexParameterfv_client_proc_t set_glTexParameterfv(glTexParameterfv_client_proc_t f) { glTexParameterfv_client_proc_t retval = glTexParameterfv; glTexParameterfv = f; return retval;}
+	virtual glTexParameteri_client_proc_t set_glTexParameteri(glTexParameteri_client_proc_t f) { glTexParameteri_client_proc_t retval = glTexParameteri; glTexParameteri = f; return retval;}
+	virtual glTexParameteriv_client_proc_t set_glTexParameteriv(glTexParameteriv_client_proc_t f) { glTexParameteriv_client_proc_t retval = glTexParameteriv; glTexParameteriv = f; return retval;}
+	virtual glTexSubImage2D_client_proc_t set_glTexSubImage2D(glTexSubImage2D_client_proc_t f) { glTexSubImage2D_client_proc_t retval = glTexSubImage2D; glTexSubImage2D = f; return retval;}
+	virtual glUniform1f_client_proc_t set_glUniform1f(glUniform1f_client_proc_t f) { glUniform1f_client_proc_t retval = glUniform1f; glUniform1f = f; return retval;}
+	virtual glUniform1fv_client_proc_t set_glUniform1fv(glUniform1fv_client_proc_t f) { glUniform1fv_client_proc_t retval = glUniform1fv; glUniform1fv = f; return retval;}
+	virtual glUniform1i_client_proc_t set_glUniform1i(glUniform1i_client_proc_t f) { glUniform1i_client_proc_t retval = glUniform1i; glUniform1i = f; return retval;}
+	virtual glUniform1iv_client_proc_t set_glUniform1iv(glUniform1iv_client_proc_t f) { glUniform1iv_client_proc_t retval = glUniform1iv; glUniform1iv = f; return retval;}
+	virtual glUniform2f_client_proc_t set_glUniform2f(glUniform2f_client_proc_t f) { glUniform2f_client_proc_t retval = glUniform2f; glUniform2f = f; return retval;}
+	virtual glUniform2fv_client_proc_t set_glUniform2fv(glUniform2fv_client_proc_t f) { glUniform2fv_client_proc_t retval = glUniform2fv; glUniform2fv = f; return retval;}
+	virtual glUniform2i_client_proc_t set_glUniform2i(glUniform2i_client_proc_t f) { glUniform2i_client_proc_t retval = glUniform2i; glUniform2i = f; return retval;}
+	virtual glUniform2iv_client_proc_t set_glUniform2iv(glUniform2iv_client_proc_t f) { glUniform2iv_client_proc_t retval = glUniform2iv; glUniform2iv = f; return retval;}
+	virtual glUniform3f_client_proc_t set_glUniform3f(glUniform3f_client_proc_t f) { glUniform3f_client_proc_t retval = glUniform3f; glUniform3f = f; return retval;}
+	virtual glUniform3fv_client_proc_t set_glUniform3fv(glUniform3fv_client_proc_t f) { glUniform3fv_client_proc_t retval = glUniform3fv; glUniform3fv = f; return retval;}
+	virtual glUniform3i_client_proc_t set_glUniform3i(glUniform3i_client_proc_t f) { glUniform3i_client_proc_t retval = glUniform3i; glUniform3i = f; return retval;}
+	virtual glUniform3iv_client_proc_t set_glUniform3iv(glUniform3iv_client_proc_t f) { glUniform3iv_client_proc_t retval = glUniform3iv; glUniform3iv = f; return retval;}
+	virtual glUniform4f_client_proc_t set_glUniform4f(glUniform4f_client_proc_t f) { glUniform4f_client_proc_t retval = glUniform4f; glUniform4f = f; return retval;}
+	virtual glUniform4fv_client_proc_t set_glUniform4fv(glUniform4fv_client_proc_t f) { glUniform4fv_client_proc_t retval = glUniform4fv; glUniform4fv = f; return retval;}
+	virtual glUniform4i_client_proc_t set_glUniform4i(glUniform4i_client_proc_t f) { glUniform4i_client_proc_t retval = glUniform4i; glUniform4i = f; return retval;}
+	virtual glUniform4iv_client_proc_t set_glUniform4iv(glUniform4iv_client_proc_t f) { glUniform4iv_client_proc_t retval = glUniform4iv; glUniform4iv = f; return retval;}
+	virtual glUniformMatrix2fv_client_proc_t set_glUniformMatrix2fv(glUniformMatrix2fv_client_proc_t f) { glUniformMatrix2fv_client_proc_t retval = glUniformMatrix2fv; glUniformMatrix2fv = f; return retval;}
+	virtual glUniformMatrix3fv_client_proc_t set_glUniformMatrix3fv(glUniformMatrix3fv_client_proc_t f) { glUniformMatrix3fv_client_proc_t retval = glUniformMatrix3fv; glUniformMatrix3fv = f; return retval;}
+	virtual glUniformMatrix4fv_client_proc_t set_glUniformMatrix4fv(glUniformMatrix4fv_client_proc_t f) { glUniformMatrix4fv_client_proc_t retval = glUniformMatrix4fv; glUniformMatrix4fv = f; return retval;}
+	virtual glUseProgram_client_proc_t set_glUseProgram(glUseProgram_client_proc_t f) { glUseProgram_client_proc_t retval = glUseProgram; glUseProgram = f; return retval;}
+	virtual glValidateProgram_client_proc_t set_glValidateProgram(glValidateProgram_client_proc_t f) { glValidateProgram_client_proc_t retval = glValidateProgram; glValidateProgram = f; return retval;}
+	virtual glVertexAttrib1f_client_proc_t set_glVertexAttrib1f(glVertexAttrib1f_client_proc_t f) { glVertexAttrib1f_client_proc_t retval = glVertexAttrib1f; glVertexAttrib1f = f; return retval;}
+	virtual glVertexAttrib1fv_client_proc_t set_glVertexAttrib1fv(glVertexAttrib1fv_client_proc_t f) { glVertexAttrib1fv_client_proc_t retval = glVertexAttrib1fv; glVertexAttrib1fv = f; return retval;}
+	virtual glVertexAttrib2f_client_proc_t set_glVertexAttrib2f(glVertexAttrib2f_client_proc_t f) { glVertexAttrib2f_client_proc_t retval = glVertexAttrib2f; glVertexAttrib2f = f; return retval;}
+	virtual glVertexAttrib2fv_client_proc_t set_glVertexAttrib2fv(glVertexAttrib2fv_client_proc_t f) { glVertexAttrib2fv_client_proc_t retval = glVertexAttrib2fv; glVertexAttrib2fv = f; return retval;}
+	virtual glVertexAttrib3f_client_proc_t set_glVertexAttrib3f(glVertexAttrib3f_client_proc_t f) { glVertexAttrib3f_client_proc_t retval = glVertexAttrib3f; glVertexAttrib3f = f; return retval;}
+	virtual glVertexAttrib3fv_client_proc_t set_glVertexAttrib3fv(glVertexAttrib3fv_client_proc_t f) { glVertexAttrib3fv_client_proc_t retval = glVertexAttrib3fv; glVertexAttrib3fv = f; return retval;}
+	virtual glVertexAttrib4f_client_proc_t set_glVertexAttrib4f(glVertexAttrib4f_client_proc_t f) { glVertexAttrib4f_client_proc_t retval = glVertexAttrib4f; glVertexAttrib4f = f; return retval;}
+	virtual glVertexAttrib4fv_client_proc_t set_glVertexAttrib4fv(glVertexAttrib4fv_client_proc_t f) { glVertexAttrib4fv_client_proc_t retval = glVertexAttrib4fv; glVertexAttrib4fv = f; return retval;}
+	virtual glVertexAttribPointer_client_proc_t set_glVertexAttribPointer(glVertexAttribPointer_client_proc_t f) { glVertexAttribPointer_client_proc_t retval = glVertexAttribPointer; glVertexAttribPointer = f; return retval;}
+	virtual glViewport_client_proc_t set_glViewport(glViewport_client_proc_t f) { glViewport_client_proc_t retval = glViewport; glViewport = f; return retval;}
+	virtual glEGLImageTargetTexture2DOES_client_proc_t set_glEGLImageTargetTexture2DOES(glEGLImageTargetTexture2DOES_client_proc_t f) { glEGLImageTargetTexture2DOES_client_proc_t retval = glEGLImageTargetTexture2DOES; glEGLImageTargetTexture2DOES = f; return retval;}
+	virtual glEGLImageTargetRenderbufferStorageOES_client_proc_t set_glEGLImageTargetRenderbufferStorageOES(glEGLImageTargetRenderbufferStorageOES_client_proc_t f) { glEGLImageTargetRenderbufferStorageOES_client_proc_t retval = glEGLImageTargetRenderbufferStorageOES; glEGLImageTargetRenderbufferStorageOES = f; return retval;}
+	virtual glGetProgramBinaryOES_client_proc_t set_glGetProgramBinaryOES(glGetProgramBinaryOES_client_proc_t f) { glGetProgramBinaryOES_client_proc_t retval = glGetProgramBinaryOES; glGetProgramBinaryOES = f; return retval;}
+	virtual glProgramBinaryOES_client_proc_t set_glProgramBinaryOES(glProgramBinaryOES_client_proc_t f) { glProgramBinaryOES_client_proc_t retval = glProgramBinaryOES; glProgramBinaryOES = f; return retval;}
+	virtual glMapBufferOES_client_proc_t set_glMapBufferOES(glMapBufferOES_client_proc_t f) { glMapBufferOES_client_proc_t retval = glMapBufferOES; glMapBufferOES = f; return retval;}
+	virtual glUnmapBufferOES_client_proc_t set_glUnmapBufferOES(glUnmapBufferOES_client_proc_t f) { glUnmapBufferOES_client_proc_t retval = glUnmapBufferOES; glUnmapBufferOES = f; return retval;}
+	virtual glTexImage3DOES_client_proc_t set_glTexImage3DOES(glTexImage3DOES_client_proc_t f) { glTexImage3DOES_client_proc_t retval = glTexImage3DOES; glTexImage3DOES = f; return retval;}
+	virtual glTexSubImage3DOES_client_proc_t set_glTexSubImage3DOES(glTexSubImage3DOES_client_proc_t f) { glTexSubImage3DOES_client_proc_t retval = glTexSubImage3DOES; glTexSubImage3DOES = f; return retval;}
+	virtual glCopyTexSubImage3DOES_client_proc_t set_glCopyTexSubImage3DOES(glCopyTexSubImage3DOES_client_proc_t f) { glCopyTexSubImage3DOES_client_proc_t retval = glCopyTexSubImage3DOES; glCopyTexSubImage3DOES = f; return retval;}
+	virtual glCompressedTexImage3DOES_client_proc_t set_glCompressedTexImage3DOES(glCompressedTexImage3DOES_client_proc_t f) { glCompressedTexImage3DOES_client_proc_t retval = glCompressedTexImage3DOES; glCompressedTexImage3DOES = f; return retval;}
+	virtual glCompressedTexSubImage3DOES_client_proc_t set_glCompressedTexSubImage3DOES(glCompressedTexSubImage3DOES_client_proc_t f) { glCompressedTexSubImage3DOES_client_proc_t retval = glCompressedTexSubImage3DOES; glCompressedTexSubImage3DOES = f; return retval;}
+	virtual glFramebufferTexture3DOES_client_proc_t set_glFramebufferTexture3DOES(glFramebufferTexture3DOES_client_proc_t f) { glFramebufferTexture3DOES_client_proc_t retval = glFramebufferTexture3DOES; glFramebufferTexture3DOES = f; return retval;}
+	virtual glBindVertexArrayOES_client_proc_t set_glBindVertexArrayOES(glBindVertexArrayOES_client_proc_t f) { glBindVertexArrayOES_client_proc_t retval = glBindVertexArrayOES; glBindVertexArrayOES = f; return retval;}
+	virtual glDeleteVertexArraysOES_client_proc_t set_glDeleteVertexArraysOES(glDeleteVertexArraysOES_client_proc_t f) { glDeleteVertexArraysOES_client_proc_t retval = glDeleteVertexArraysOES; glDeleteVertexArraysOES = f; return retval;}
+	virtual glGenVertexArraysOES_client_proc_t set_glGenVertexArraysOES(glGenVertexArraysOES_client_proc_t f) { glGenVertexArraysOES_client_proc_t retval = glGenVertexArraysOES; glGenVertexArraysOES = f; return retval;}
+	virtual glIsVertexArrayOES_client_proc_t set_glIsVertexArrayOES(glIsVertexArrayOES_client_proc_t f) { glIsVertexArrayOES_client_proc_t retval = glIsVertexArrayOES; glIsVertexArrayOES = f; return retval;}
+	virtual glDiscardFramebufferEXT_client_proc_t set_glDiscardFramebufferEXT(glDiscardFramebufferEXT_client_proc_t f) { glDiscardFramebufferEXT_client_proc_t retval = glDiscardFramebufferEXT; glDiscardFramebufferEXT = f; return retval;}
+	virtual glMultiDrawArraysEXT_client_proc_t set_glMultiDrawArraysEXT(glMultiDrawArraysEXT_client_proc_t f) { glMultiDrawArraysEXT_client_proc_t retval = glMultiDrawArraysEXT; glMultiDrawArraysEXT = f; return retval;}
+	virtual glMultiDrawElementsEXT_client_proc_t set_glMultiDrawElementsEXT(glMultiDrawElementsEXT_client_proc_t f) { glMultiDrawElementsEXT_client_proc_t retval = glMultiDrawElementsEXT; glMultiDrawElementsEXT = f; return retval;}
+	virtual glGetPerfMonitorGroupsAMD_client_proc_t set_glGetPerfMonitorGroupsAMD(glGetPerfMonitorGroupsAMD_client_proc_t f) { glGetPerfMonitorGroupsAMD_client_proc_t retval = glGetPerfMonitorGroupsAMD; glGetPerfMonitorGroupsAMD = f; return retval;}
+	virtual glGetPerfMonitorCountersAMD_client_proc_t set_glGetPerfMonitorCountersAMD(glGetPerfMonitorCountersAMD_client_proc_t f) { glGetPerfMonitorCountersAMD_client_proc_t retval = glGetPerfMonitorCountersAMD; glGetPerfMonitorCountersAMD = f; return retval;}
+	virtual glGetPerfMonitorGroupStringAMD_client_proc_t set_glGetPerfMonitorGroupStringAMD(glGetPerfMonitorGroupStringAMD_client_proc_t f) { glGetPerfMonitorGroupStringAMD_client_proc_t retval = glGetPerfMonitorGroupStringAMD; glGetPerfMonitorGroupStringAMD = f; return retval;}
+	virtual glGetPerfMonitorCounterStringAMD_client_proc_t set_glGetPerfMonitorCounterStringAMD(glGetPerfMonitorCounterStringAMD_client_proc_t f) { glGetPerfMonitorCounterStringAMD_client_proc_t retval = glGetPerfMonitorCounterStringAMD; glGetPerfMonitorCounterStringAMD = f; return retval;}
+	virtual glGetPerfMonitorCounterInfoAMD_client_proc_t set_glGetPerfMonitorCounterInfoAMD(glGetPerfMonitorCounterInfoAMD_client_proc_t f) { glGetPerfMonitorCounterInfoAMD_client_proc_t retval = glGetPerfMonitorCounterInfoAMD; glGetPerfMonitorCounterInfoAMD = f; return retval;}
+	virtual glGenPerfMonitorsAMD_client_proc_t set_glGenPerfMonitorsAMD(glGenPerfMonitorsAMD_client_proc_t f) { glGenPerfMonitorsAMD_client_proc_t retval = glGenPerfMonitorsAMD; glGenPerfMonitorsAMD = f; return retval;}
+	virtual glDeletePerfMonitorsAMD_client_proc_t set_glDeletePerfMonitorsAMD(glDeletePerfMonitorsAMD_client_proc_t f) { glDeletePerfMonitorsAMD_client_proc_t retval = glDeletePerfMonitorsAMD; glDeletePerfMonitorsAMD = f; return retval;}
+	virtual glSelectPerfMonitorCountersAMD_client_proc_t set_glSelectPerfMonitorCountersAMD(glSelectPerfMonitorCountersAMD_client_proc_t f) { glSelectPerfMonitorCountersAMD_client_proc_t retval = glSelectPerfMonitorCountersAMD; glSelectPerfMonitorCountersAMD = f; return retval;}
+	virtual glBeginPerfMonitorAMD_client_proc_t set_glBeginPerfMonitorAMD(glBeginPerfMonitorAMD_client_proc_t f) { glBeginPerfMonitorAMD_client_proc_t retval = glBeginPerfMonitorAMD; glBeginPerfMonitorAMD = f; return retval;}
+	virtual glEndPerfMonitorAMD_client_proc_t set_glEndPerfMonitorAMD(glEndPerfMonitorAMD_client_proc_t f) { glEndPerfMonitorAMD_client_proc_t retval = glEndPerfMonitorAMD; glEndPerfMonitorAMD = f; return retval;}
+	virtual glGetPerfMonitorCounterDataAMD_client_proc_t set_glGetPerfMonitorCounterDataAMD(glGetPerfMonitorCounterDataAMD_client_proc_t f) { glGetPerfMonitorCounterDataAMD_client_proc_t retval = glGetPerfMonitorCounterDataAMD; glGetPerfMonitorCounterDataAMD = f; return retval;}
+	virtual glRenderbufferStorageMultisampleIMG_client_proc_t set_glRenderbufferStorageMultisampleIMG(glRenderbufferStorageMultisampleIMG_client_proc_t f) { glRenderbufferStorageMultisampleIMG_client_proc_t retval = glRenderbufferStorageMultisampleIMG; glRenderbufferStorageMultisampleIMG = f; return retval;}
+	virtual glFramebufferTexture2DMultisampleIMG_client_proc_t set_glFramebufferTexture2DMultisampleIMG(glFramebufferTexture2DMultisampleIMG_client_proc_t f) { glFramebufferTexture2DMultisampleIMG_client_proc_t retval = glFramebufferTexture2DMultisampleIMG; glFramebufferTexture2DMultisampleIMG = f; return retval;}
+	virtual glDeleteFencesNV_client_proc_t set_glDeleteFencesNV(glDeleteFencesNV_client_proc_t f) { glDeleteFencesNV_client_proc_t retval = glDeleteFencesNV; glDeleteFencesNV = f; return retval;}
+	virtual glGenFencesNV_client_proc_t set_glGenFencesNV(glGenFencesNV_client_proc_t f) { glGenFencesNV_client_proc_t retval = glGenFencesNV; glGenFencesNV = f; return retval;}
+	virtual glIsFenceNV_client_proc_t set_glIsFenceNV(glIsFenceNV_client_proc_t f) { glIsFenceNV_client_proc_t retval = glIsFenceNV; glIsFenceNV = f; return retval;}
+	virtual glTestFenceNV_client_proc_t set_glTestFenceNV(glTestFenceNV_client_proc_t f) { glTestFenceNV_client_proc_t retval = glTestFenceNV; glTestFenceNV = f; return retval;}
+	virtual glGetFenceivNV_client_proc_t set_glGetFenceivNV(glGetFenceivNV_client_proc_t f) { glGetFenceivNV_client_proc_t retval = glGetFenceivNV; glGetFenceivNV = f; return retval;}
+	virtual glFinishFenceNV_client_proc_t set_glFinishFenceNV(glFinishFenceNV_client_proc_t f) { glFinishFenceNV_client_proc_t retval = glFinishFenceNV; glFinishFenceNV = f; return retval;}
+	virtual glSetFenceNV_client_proc_t set_glSetFenceNV(glSetFenceNV_client_proc_t f) { glSetFenceNV_client_proc_t retval = glSetFenceNV; glSetFenceNV = f; return retval;}
+	virtual glCoverageMaskNV_client_proc_t set_glCoverageMaskNV(glCoverageMaskNV_client_proc_t f) { glCoverageMaskNV_client_proc_t retval = glCoverageMaskNV; glCoverageMaskNV = f; return retval;}
+	virtual glCoverageOperationNV_client_proc_t set_glCoverageOperationNV(glCoverageOperationNV_client_proc_t f) { glCoverageOperationNV_client_proc_t retval = glCoverageOperationNV; glCoverageOperationNV = f; return retval;}
+	virtual glGetDriverControlsQCOM_client_proc_t set_glGetDriverControlsQCOM(glGetDriverControlsQCOM_client_proc_t f) { glGetDriverControlsQCOM_client_proc_t retval = glGetDriverControlsQCOM; glGetDriverControlsQCOM = f; return retval;}
+	virtual glGetDriverControlStringQCOM_client_proc_t set_glGetDriverControlStringQCOM(glGetDriverControlStringQCOM_client_proc_t f) { glGetDriverControlStringQCOM_client_proc_t retval = glGetDriverControlStringQCOM; glGetDriverControlStringQCOM = f; return retval;}
+	virtual glEnableDriverControlQCOM_client_proc_t set_glEnableDriverControlQCOM(glEnableDriverControlQCOM_client_proc_t f) { glEnableDriverControlQCOM_client_proc_t retval = glEnableDriverControlQCOM; glEnableDriverControlQCOM = f; return retval;}
+	virtual glDisableDriverControlQCOM_client_proc_t set_glDisableDriverControlQCOM(glDisableDriverControlQCOM_client_proc_t f) { glDisableDriverControlQCOM_client_proc_t retval = glDisableDriverControlQCOM; glDisableDriverControlQCOM = f; return retval;}
+	virtual glExtGetTexturesQCOM_client_proc_t set_glExtGetTexturesQCOM(glExtGetTexturesQCOM_client_proc_t f) { glExtGetTexturesQCOM_client_proc_t retval = glExtGetTexturesQCOM; glExtGetTexturesQCOM = f; return retval;}
+	virtual glExtGetBuffersQCOM_client_proc_t set_glExtGetBuffersQCOM(glExtGetBuffersQCOM_client_proc_t f) { glExtGetBuffersQCOM_client_proc_t retval = glExtGetBuffersQCOM; glExtGetBuffersQCOM = f; return retval;}
+	virtual glExtGetRenderbuffersQCOM_client_proc_t set_glExtGetRenderbuffersQCOM(glExtGetRenderbuffersQCOM_client_proc_t f) { glExtGetRenderbuffersQCOM_client_proc_t retval = glExtGetRenderbuffersQCOM; glExtGetRenderbuffersQCOM = f; return retval;}
+	virtual glExtGetFramebuffersQCOM_client_proc_t set_glExtGetFramebuffersQCOM(glExtGetFramebuffersQCOM_client_proc_t f) { glExtGetFramebuffersQCOM_client_proc_t retval = glExtGetFramebuffersQCOM; glExtGetFramebuffersQCOM = f; return retval;}
+	virtual glExtGetTexLevelParameterivQCOM_client_proc_t set_glExtGetTexLevelParameterivQCOM(glExtGetTexLevelParameterivQCOM_client_proc_t f) { glExtGetTexLevelParameterivQCOM_client_proc_t retval = glExtGetTexLevelParameterivQCOM; glExtGetTexLevelParameterivQCOM = f; return retval;}
+	virtual glExtTexObjectStateOverrideiQCOM_client_proc_t set_glExtTexObjectStateOverrideiQCOM(glExtTexObjectStateOverrideiQCOM_client_proc_t f) { glExtTexObjectStateOverrideiQCOM_client_proc_t retval = glExtTexObjectStateOverrideiQCOM; glExtTexObjectStateOverrideiQCOM = f; return retval;}
+	virtual glExtGetTexSubImageQCOM_client_proc_t set_glExtGetTexSubImageQCOM(glExtGetTexSubImageQCOM_client_proc_t f) { glExtGetTexSubImageQCOM_client_proc_t retval = glExtGetTexSubImageQCOM; glExtGetTexSubImageQCOM = f; return retval;}
+	virtual glExtGetBufferPointervQCOM_client_proc_t set_glExtGetBufferPointervQCOM(glExtGetBufferPointervQCOM_client_proc_t f) { glExtGetBufferPointervQCOM_client_proc_t retval = glExtGetBufferPointervQCOM; glExtGetBufferPointervQCOM = f; return retval;}
+	virtual glExtGetShadersQCOM_client_proc_t set_glExtGetShadersQCOM(glExtGetShadersQCOM_client_proc_t f) { glExtGetShadersQCOM_client_proc_t retval = glExtGetShadersQCOM; glExtGetShadersQCOM = f; return retval;}
+	virtual glExtGetProgramsQCOM_client_proc_t set_glExtGetProgramsQCOM(glExtGetProgramsQCOM_client_proc_t f) { glExtGetProgramsQCOM_client_proc_t retval = glExtGetProgramsQCOM; glExtGetProgramsQCOM = f; return retval;}
+	virtual glExtIsProgramBinaryQCOM_client_proc_t set_glExtIsProgramBinaryQCOM(glExtIsProgramBinaryQCOM_client_proc_t f) { glExtIsProgramBinaryQCOM_client_proc_t retval = glExtIsProgramBinaryQCOM; glExtIsProgramBinaryQCOM = f; return retval;}
+	virtual glExtGetProgramBinarySourceQCOM_client_proc_t set_glExtGetProgramBinarySourceQCOM(glExtGetProgramBinarySourceQCOM_client_proc_t f) { glExtGetProgramBinarySourceQCOM_client_proc_t retval = glExtGetProgramBinarySourceQCOM; glExtGetProgramBinarySourceQCOM = f; return retval;}
+	virtual glStartTilingQCOM_client_proc_t set_glStartTilingQCOM(glStartTilingQCOM_client_proc_t f) { glStartTilingQCOM_client_proc_t retval = glStartTilingQCOM; glStartTilingQCOM = f; return retval;}
+	virtual glEndTilingQCOM_client_proc_t set_glEndTilingQCOM(glEndTilingQCOM_client_proc_t f) { glEndTilingQCOM_client_proc_t retval = glEndTilingQCOM; glEndTilingQCOM = f; return retval;}
+	virtual glVertexAttribPointerData_client_proc_t set_glVertexAttribPointerData(glVertexAttribPointerData_client_proc_t f) { glVertexAttribPointerData_client_proc_t retval = glVertexAttribPointerData; glVertexAttribPointerData = f; return retval;}
+	virtual glVertexAttribPointerOffset_client_proc_t set_glVertexAttribPointerOffset(glVertexAttribPointerOffset_client_proc_t f) { glVertexAttribPointerOffset_client_proc_t retval = glVertexAttribPointerOffset; glVertexAttribPointerOffset = f; return retval;}
+	virtual glDrawElementsOffset_client_proc_t set_glDrawElementsOffset(glDrawElementsOffset_client_proc_t f) { glDrawElementsOffset_client_proc_t retval = glDrawElementsOffset; glDrawElementsOffset = f; return retval;}
+	virtual glDrawElementsData_client_proc_t set_glDrawElementsData(glDrawElementsData_client_proc_t f) { glDrawElementsData_client_proc_t retval = glDrawElementsData; glDrawElementsData = f; return retval;}
+	virtual glGetCompressedTextureFormats_client_proc_t set_glGetCompressedTextureFormats(glGetCompressedTextureFormats_client_proc_t f) { glGetCompressedTextureFormats_client_proc_t retval = glGetCompressedTextureFormats; glGetCompressedTextureFormats = f; return retval;}
+	virtual glShaderString_client_proc_t set_glShaderString(glShaderString_client_proc_t f) { glShaderString_client_proc_t retval = glShaderString; glShaderString = f; return retval;}
+	virtual glFinishRoundTrip_client_proc_t set_glFinishRoundTrip(glFinishRoundTrip_client_proc_t f) { glFinishRoundTrip_client_proc_t retval = glFinishRoundTrip; glFinishRoundTrip = f; return retval;}
+	 virtual ~gl2_client_context_t() {}
+
+	typedef gl2_client_context_t *CONTEXT_ACCESSOR_TYPE(void);
+	static void setContextAccessor(CONTEXT_ACCESSOR_TYPE *f);
+	int initDispatchByName( void *(*getProc)(const char *name, void *userData), void *userData);
+	virtual void setError(unsigned int  error){};
+	virtual unsigned int getError(){ return 0; };
+};
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_client_proc.h b/tools/emulator/opengl/system/GLESv2_enc/gl2_client_proc.h
new file mode 100644
index 0000000..b8ff005
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_client_proc.h
@@ -0,0 +1,222 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __gl2_client_proc_t_h
+#define __gl2_client_proc_t_h
+
+
+
+#include "gl2_types.h"
+#ifndef gl2_APIENTRY
+#define gl2_APIENTRY 
+#endif
+typedef void (gl2_APIENTRY *glActiveTexture_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glAttachShader_client_proc_t) (void * ctx, GLuint, GLuint);
+typedef void (gl2_APIENTRY *glBindAttribLocation_client_proc_t) (void * ctx, GLuint, GLuint, const GLchar*);
+typedef void (gl2_APIENTRY *glBindBuffer_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glBindFramebuffer_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glBindRenderbuffer_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glBindTexture_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glBlendColor_client_proc_t) (void * ctx, GLclampf, GLclampf, GLclampf, GLclampf);
+typedef void (gl2_APIENTRY *glBlendEquation_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glBlendEquationSeparate_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef void (gl2_APIENTRY *glBlendFunc_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef void (gl2_APIENTRY *glBlendFuncSeparate_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLenum);
+typedef void (gl2_APIENTRY *glBufferData_client_proc_t) (void * ctx, GLenum, GLsizeiptr, const GLvoid*, GLenum);
+typedef void (gl2_APIENTRY *glBufferSubData_client_proc_t) (void * ctx, GLenum, GLintptr, GLsizeiptr, const GLvoid*);
+typedef GLenum (gl2_APIENTRY *glCheckFramebufferStatus_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glClear_client_proc_t) (void * ctx, GLbitfield);
+typedef void (gl2_APIENTRY *glClearColor_client_proc_t) (void * ctx, GLclampf, GLclampf, GLclampf, GLclampf);
+typedef void (gl2_APIENTRY *glClearDepthf_client_proc_t) (void * ctx, GLclampf);
+typedef void (gl2_APIENTRY *glClearStencil_client_proc_t) (void * ctx, GLint);
+typedef void (gl2_APIENTRY *glColorMask_client_proc_t) (void * ctx, GLboolean, GLboolean, GLboolean, GLboolean);
+typedef void (gl2_APIENTRY *glCompileShader_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glCompressedTexImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
+typedef void (gl2_APIENTRY *glCompressedTexSubImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
+typedef void (gl2_APIENTRY *glCopyTexImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
+typedef void (gl2_APIENTRY *glCopyTexSubImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+typedef GLuint (gl2_APIENTRY *glCreateProgram_client_proc_t) (void * ctx);
+typedef GLuint (gl2_APIENTRY *glCreateShader_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glCullFace_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glDeleteBuffers_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl2_APIENTRY *glDeleteFramebuffers_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl2_APIENTRY *glDeleteProgram_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glDeleteRenderbuffers_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl2_APIENTRY *glDeleteShader_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glDeleteTextures_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl2_APIENTRY *glDepthFunc_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glDepthMask_client_proc_t) (void * ctx, GLboolean);
+typedef void (gl2_APIENTRY *glDepthRangef_client_proc_t) (void * ctx, GLclampf, GLclampf);
+typedef void (gl2_APIENTRY *glDetachShader_client_proc_t) (void * ctx, GLuint, GLuint);
+typedef void (gl2_APIENTRY *glDisable_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glDisableVertexAttribArray_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glDrawArrays_client_proc_t) (void * ctx, GLenum, GLint, GLsizei);
+typedef void (gl2_APIENTRY *glDrawElements_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, const GLvoid*);
+typedef void (gl2_APIENTRY *glEnable_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glEnableVertexAttribArray_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glFinish_client_proc_t) (void * ctx);
+typedef void (gl2_APIENTRY *glFlush_client_proc_t) (void * ctx);
+typedef void (gl2_APIENTRY *glFramebufferRenderbuffer_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glFramebufferTexture2D_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint, GLint);
+typedef void (gl2_APIENTRY *glFrontFace_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glGenBuffers_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGenerateMipmap_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glGenFramebuffers_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGenRenderbuffers_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGenTextures_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGetActiveAttrib_client_proc_t) (void * ctx, GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
+typedef void (gl2_APIENTRY *glGetActiveUniform_client_proc_t) (void * ctx, GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
+typedef void (gl2_APIENTRY *glGetAttachedShaders_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLuint*);
+typedef int (gl2_APIENTRY *glGetAttribLocation_client_proc_t) (void * ctx, GLuint, const GLchar*);
+typedef void (gl2_APIENTRY *glGetBooleanv_client_proc_t) (void * ctx, GLenum, GLboolean*);
+typedef void (gl2_APIENTRY *glGetBufferParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef GLenum (gl2_APIENTRY *glGetError_client_proc_t) (void * ctx);
+typedef void (gl2_APIENTRY *glGetFloatv_client_proc_t) (void * ctx, GLenum, GLfloat*);
+typedef void (gl2_APIENTRY *glGetFramebufferAttachmentParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetIntegerv_client_proc_t) (void * ctx, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetProgramiv_client_proc_t) (void * ctx, GLuint, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetProgramInfoLog_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef void (gl2_APIENTRY *glGetRenderbufferParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetShaderiv_client_proc_t) (void * ctx, GLuint, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetShaderInfoLog_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef void (gl2_APIENTRY *glGetShaderPrecisionFormat_client_proc_t) (void * ctx, GLenum, GLenum, GLint*, GLint*);
+typedef void (gl2_APIENTRY *glGetShaderSource_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef const GLubyte* (gl2_APIENTRY *glGetString_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glGetTexParameterfv_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat*);
+typedef void (gl2_APIENTRY *glGetTexParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetUniformfv_client_proc_t) (void * ctx, GLuint, GLint, GLfloat*);
+typedef void (gl2_APIENTRY *glGetUniformiv_client_proc_t) (void * ctx, GLuint, GLint, GLint*);
+typedef int (gl2_APIENTRY *glGetUniformLocation_client_proc_t) (void * ctx, GLuint, const GLchar*);
+typedef void (gl2_APIENTRY *glGetVertexAttribfv_client_proc_t) (void * ctx, GLuint, GLenum, GLfloat*);
+typedef void (gl2_APIENTRY *glGetVertexAttribiv_client_proc_t) (void * ctx, GLuint, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glGetVertexAttribPointerv_client_proc_t) (void * ctx, GLuint, GLenum, GLvoid**);
+typedef void (gl2_APIENTRY *glHint_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef GLboolean (gl2_APIENTRY *glIsBuffer_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl2_APIENTRY *glIsEnabled_client_proc_t) (void * ctx, GLenum);
+typedef GLboolean (gl2_APIENTRY *glIsFramebuffer_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl2_APIENTRY *glIsProgram_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl2_APIENTRY *glIsRenderbuffer_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl2_APIENTRY *glIsShader_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl2_APIENTRY *glIsTexture_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glLineWidth_client_proc_t) (void * ctx, GLfloat);
+typedef void (gl2_APIENTRY *glLinkProgram_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glPixelStorei_client_proc_t) (void * ctx, GLenum, GLint);
+typedef void (gl2_APIENTRY *glPolygonOffset_client_proc_t) (void * ctx, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glReadPixels_client_proc_t) (void * ctx, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
+typedef void (gl2_APIENTRY *glReleaseShaderCompiler_client_proc_t) (void * ctx);
+typedef void (gl2_APIENTRY *glRenderbufferStorage_client_proc_t) (void * ctx, GLenum, GLenum, GLsizei, GLsizei);
+typedef void (gl2_APIENTRY *glSampleCoverage_client_proc_t) (void * ctx, GLclampf, GLboolean);
+typedef void (gl2_APIENTRY *glScissor_client_proc_t) (void * ctx, GLint, GLint, GLsizei, GLsizei);
+typedef void (gl2_APIENTRY *glShaderBinary_client_proc_t) (void * ctx, GLsizei, const GLuint*, GLenum, const GLvoid*, GLsizei);
+typedef void (gl2_APIENTRY *glShaderSource_client_proc_t) (void * ctx, GLuint, GLsizei, const GLchar**, const GLint*);
+typedef void (gl2_APIENTRY *glStencilFunc_client_proc_t) (void * ctx, GLenum, GLint, GLuint);
+typedef void (gl2_APIENTRY *glStencilFuncSeparate_client_proc_t) (void * ctx, GLenum, GLenum, GLint, GLuint);
+typedef void (gl2_APIENTRY *glStencilMask_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glStencilMaskSeparate_client_proc_t) (void * ctx, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glStencilOp_client_proc_t) (void * ctx, GLenum, GLenum, GLenum);
+typedef void (gl2_APIENTRY *glStencilOpSeparate_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLenum);
+typedef void (gl2_APIENTRY *glTexImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
+typedef void (gl2_APIENTRY *glTexParameterf_client_proc_t) (void * ctx, GLenum, GLenum, GLfloat);
+typedef void (gl2_APIENTRY *glTexParameterfv_client_proc_t) (void * ctx, GLenum, GLenum, const GLfloat*);
+typedef void (gl2_APIENTRY *glTexParameteri_client_proc_t) (void * ctx, GLenum, GLenum, GLint);
+typedef void (gl2_APIENTRY *glTexParameteriv_client_proc_t) (void * ctx, GLenum, GLenum, const GLint*);
+typedef void (gl2_APIENTRY *glTexSubImage2D_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
+typedef void (gl2_APIENTRY *glUniform1f_client_proc_t) (void * ctx, GLint, GLfloat);
+typedef void (gl2_APIENTRY *glUniform1fv_client_proc_t) (void * ctx, GLint, GLsizei, const GLfloat*);
+typedef void (gl2_APIENTRY *glUniform1i_client_proc_t) (void * ctx, GLint, GLint);
+typedef void (gl2_APIENTRY *glUniform1iv_client_proc_t) (void * ctx, GLint, GLsizei, const GLint*);
+typedef void (gl2_APIENTRY *glUniform2f_client_proc_t) (void * ctx, GLint, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glUniform2fv_client_proc_t) (void * ctx, GLint, GLsizei, const GLfloat*);
+typedef void (gl2_APIENTRY *glUniform2i_client_proc_t) (void * ctx, GLint, GLint, GLint);
+typedef void (gl2_APIENTRY *glUniform2iv_client_proc_t) (void * ctx, GLint, GLsizei, const GLint*);
+typedef void (gl2_APIENTRY *glUniform3f_client_proc_t) (void * ctx, GLint, GLfloat, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glUniform3fv_client_proc_t) (void * ctx, GLint, GLsizei, const GLfloat*);
+typedef void (gl2_APIENTRY *glUniform3i_client_proc_t) (void * ctx, GLint, GLint, GLint, GLint);
+typedef void (gl2_APIENTRY *glUniform3iv_client_proc_t) (void * ctx, GLint, GLsizei, const GLint*);
+typedef void (gl2_APIENTRY *glUniform4f_client_proc_t) (void * ctx, GLint, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glUniform4fv_client_proc_t) (void * ctx, GLint, GLsizei, const GLfloat*);
+typedef void (gl2_APIENTRY *glUniform4i_client_proc_t) (void * ctx, GLint, GLint, GLint, GLint, GLint);
+typedef void (gl2_APIENTRY *glUniform4iv_client_proc_t) (void * ctx, GLint, GLsizei, const GLint*);
+typedef void (gl2_APIENTRY *glUniformMatrix2fv_client_proc_t) (void * ctx, GLint, GLsizei, GLboolean, const GLfloat*);
+typedef void (gl2_APIENTRY *glUniformMatrix3fv_client_proc_t) (void * ctx, GLint, GLsizei, GLboolean, const GLfloat*);
+typedef void (gl2_APIENTRY *glUniformMatrix4fv_client_proc_t) (void * ctx, GLint, GLsizei, GLboolean, const GLfloat*);
+typedef void (gl2_APIENTRY *glUseProgram_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glValidateProgram_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glVertexAttrib1f_client_proc_t) (void * ctx, GLuint, GLfloat);
+typedef void (gl2_APIENTRY *glVertexAttrib1fv_client_proc_t) (void * ctx, GLuint, const GLfloat*);
+typedef void (gl2_APIENTRY *glVertexAttrib2f_client_proc_t) (void * ctx, GLuint, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glVertexAttrib2fv_client_proc_t) (void * ctx, GLuint, const GLfloat*);
+typedef void (gl2_APIENTRY *glVertexAttrib3f_client_proc_t) (void * ctx, GLuint, GLfloat, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glVertexAttrib3fv_client_proc_t) (void * ctx, GLuint, const GLfloat*);
+typedef void (gl2_APIENTRY *glVertexAttrib4f_client_proc_t) (void * ctx, GLuint, GLfloat, GLfloat, GLfloat, GLfloat);
+typedef void (gl2_APIENTRY *glVertexAttrib4fv_client_proc_t) (void * ctx, GLuint, const GLfloat*);
+typedef void (gl2_APIENTRY *glVertexAttribPointer_client_proc_t) (void * ctx, GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid*);
+typedef void (gl2_APIENTRY *glViewport_client_proc_t) (void * ctx, GLint, GLint, GLsizei, GLsizei);
+typedef void (gl2_APIENTRY *glEGLImageTargetTexture2DOES_client_proc_t) (void * ctx, GLenum, GLeglImageOES);
+typedef void (gl2_APIENTRY *glEGLImageTargetRenderbufferStorageOES_client_proc_t) (void * ctx, GLenum, GLeglImageOES);
+typedef void (gl2_APIENTRY *glGetProgramBinaryOES_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLenum*, GLvoid*);
+typedef void (gl2_APIENTRY *glProgramBinaryOES_client_proc_t) (void * ctx, GLuint, GLenum, const GLvoid*, GLint);
+typedef void* (gl2_APIENTRY *glMapBufferOES_client_proc_t) (void * ctx, GLenum, GLenum);
+typedef GLboolean (gl2_APIENTRY *glUnmapBufferOES_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glTexImage3DOES_client_proc_t) (void * ctx, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid*);
+typedef void (gl2_APIENTRY *glTexSubImage3DOES_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid*);
+typedef void (gl2_APIENTRY *glCopyTexSubImage3DOES_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
+typedef void (gl2_APIENTRY *glCompressedTexImage3DOES_client_proc_t) (void * ctx, GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid*);
+typedef void (gl2_APIENTRY *glCompressedTexSubImage3DOES_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid*);
+typedef void (gl2_APIENTRY *glFramebufferTexture3DOES_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint, GLint, GLint);
+typedef void (gl2_APIENTRY *glBindVertexArrayOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glDeleteVertexArraysOES_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl2_APIENTRY *glGenVertexArraysOES_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef GLboolean (gl2_APIENTRY *glIsVertexArrayOES_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glDiscardFramebufferEXT_client_proc_t) (void * ctx, GLenum, GLsizei, const GLenum*);
+typedef void (gl2_APIENTRY *glMultiDrawArraysEXT_client_proc_t) (void * ctx, GLenum, GLint*, GLsizei*, GLsizei);
+typedef void (gl2_APIENTRY *glMultiDrawElementsEXT_client_proc_t) (void * ctx, GLenum, const GLsizei*, GLenum, const GLvoid**, GLsizei);
+typedef void (gl2_APIENTRY *glGetPerfMonitorGroupsAMD_client_proc_t) (void * ctx, GLint*, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGetPerfMonitorCountersAMD_client_proc_t) (void * ctx, GLuint, GLint*, GLint*, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGetPerfMonitorGroupStringAMD_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef void (gl2_APIENTRY *glGetPerfMonitorCounterStringAMD_client_proc_t) (void * ctx, GLuint, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef void (gl2_APIENTRY *glGetPerfMonitorCounterInfoAMD_client_proc_t) (void * ctx, GLuint, GLuint, GLenum, GLvoid*);
+typedef void (gl2_APIENTRY *glGenPerfMonitorsAMD_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glDeletePerfMonitorsAMD_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glSelectPerfMonitorCountersAMD_client_proc_t) (void * ctx, GLuint, GLboolean, GLuint, GLint, GLuint*);
+typedef void (gl2_APIENTRY *glBeginPerfMonitorAMD_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glEndPerfMonitorAMD_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glGetPerfMonitorCounterDataAMD_client_proc_t) (void * ctx, GLuint, GLenum, GLsizei, GLuint*, GLint*);
+typedef void (gl2_APIENTRY *glRenderbufferStorageMultisampleIMG_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, GLsizei, GLsizei);
+typedef void (gl2_APIENTRY *glFramebufferTexture2DMultisampleIMG_client_proc_t) (void * ctx, GLenum, GLenum, GLenum, GLuint, GLint, GLsizei);
+typedef void (gl2_APIENTRY *glDeleteFencesNV_client_proc_t) (void * ctx, GLsizei, const GLuint*);
+typedef void (gl2_APIENTRY *glGenFencesNV_client_proc_t) (void * ctx, GLsizei, GLuint*);
+typedef GLboolean (gl2_APIENTRY *glIsFenceNV_client_proc_t) (void * ctx, GLuint);
+typedef GLboolean (gl2_APIENTRY *glTestFenceNV_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glGetFenceivNV_client_proc_t) (void * ctx, GLuint, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glFinishFenceNV_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glSetFenceNV_client_proc_t) (void * ctx, GLuint, GLenum);
+typedef void (gl2_APIENTRY *glCoverageMaskNV_client_proc_t) (void * ctx, GLboolean);
+typedef void (gl2_APIENTRY *glCoverageOperationNV_client_proc_t) (void * ctx, GLenum);
+typedef void (gl2_APIENTRY *glGetDriverControlsQCOM_client_proc_t) (void * ctx, GLint*, GLsizei, GLuint*);
+typedef void (gl2_APIENTRY *glGetDriverControlStringQCOM_client_proc_t) (void * ctx, GLuint, GLsizei, GLsizei*, GLchar*);
+typedef void (gl2_APIENTRY *glEnableDriverControlQCOM_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glDisableDriverControlQCOM_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glExtGetTexturesQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl2_APIENTRY *glExtGetBuffersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl2_APIENTRY *glExtGetRenderbuffersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl2_APIENTRY *glExtGetFramebuffersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl2_APIENTRY *glExtGetTexLevelParameterivQCOM_client_proc_t) (void * ctx, GLuint, GLenum, GLint, GLenum, GLint*);
+typedef void (gl2_APIENTRY *glExtTexObjectStateOverrideiQCOM_client_proc_t) (void * ctx, GLenum, GLenum, GLint);
+typedef void (gl2_APIENTRY *glExtGetTexSubImageQCOM_client_proc_t) (void * ctx, GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, GLvoid*);
+typedef void (gl2_APIENTRY *glExtGetBufferPointervQCOM_client_proc_t) (void * ctx, GLenum, GLvoidptr*);
+typedef void (gl2_APIENTRY *glExtGetShadersQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef void (gl2_APIENTRY *glExtGetProgramsQCOM_client_proc_t) (void * ctx, GLuint*, GLint, GLint*);
+typedef GLboolean (gl2_APIENTRY *glExtIsProgramBinaryQCOM_client_proc_t) (void * ctx, GLuint);
+typedef void (gl2_APIENTRY *glExtGetProgramBinarySourceQCOM_client_proc_t) (void * ctx, GLuint, GLenum, GLchar*, GLint*);
+typedef void (gl2_APIENTRY *glStartTilingQCOM_client_proc_t) (void * ctx, GLuint, GLuint, GLuint, GLuint, GLbitfield);
+typedef void (gl2_APIENTRY *glEndTilingQCOM_client_proc_t) (void * ctx, GLbitfield);
+typedef void (gl2_APIENTRY *glVertexAttribPointerData_client_proc_t) (void * ctx, GLuint, GLint, GLenum, GLboolean, GLsizei, void*, GLuint);
+typedef void (gl2_APIENTRY *glVertexAttribPointerOffset_client_proc_t) (void * ctx, GLuint, GLint, GLenum, GLboolean, GLsizei, GLuint);
+typedef void (gl2_APIENTRY *glDrawElementsOffset_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, GLuint);
+typedef void (gl2_APIENTRY *glDrawElementsData_client_proc_t) (void * ctx, GLenum, GLsizei, GLenum, void*, GLuint);
+typedef void (gl2_APIENTRY *glGetCompressedTextureFormats_client_proc_t) (void * ctx, int, GLint*);
+typedef void (gl2_APIENTRY *glShaderString_client_proc_t) (void * ctx, GLuint, const GLchar*, GLsizei);
+typedef int (gl2_APIENTRY *glFinishRoundTrip_client_proc_t) (void * ctx);
+
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_enc.cpp b/tools/emulator/opengl/system/GLESv2_enc/gl2_enc.cpp
new file mode 100644
index 0000000..46684e9
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_enc.cpp
@@ -0,0 +1,3130 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+
+#include <string.h>
+#include "gl2_opcodes.h"
+
+#include "gl2_enc.h"
+
+
+#include <stdio.h>
+static void enc_unsupported()
+{
+	ALOGE("Function is unsupported\n");
+}
+
+void glActiveTexture_enc(void *self , GLenum texture)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glActiveTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &texture, 4); ptr += 4;
+}
+
+void glAttachShader_enc(void *self , GLuint program, GLuint shader)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glAttachShader;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &shader, 4); ptr += 4;
+}
+
+void glBindAttribLocation_enc(void *self , GLuint program, GLuint index, const GLchar* name)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_name =  (strlen(name) + 1);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_name + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindAttribLocation;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &index, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_name; ptr += 4;
+	memcpy(ptr, name, __size_name);ptr += __size_name;
+}
+
+void glBindBuffer_enc(void *self , GLenum target, GLuint buffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &buffer, 4); ptr += 4;
+}
+
+void glBindFramebuffer_enc(void *self , GLenum target, GLuint framebuffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &framebuffer, 4); ptr += 4;
+}
+
+void glBindRenderbuffer_enc(void *self , GLenum target, GLuint renderbuffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &renderbuffer, 4); ptr += 4;
+}
+
+void glBindTexture_enc(void *self , GLenum target, GLuint texture)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &texture, 4); ptr += 4;
+}
+
+void glBlendColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendColor;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glBlendEquation_enc(void *self , GLenum mode)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendEquation;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glBlendEquationSeparate_enc(void *self , GLenum modeRGB, GLenum modeAlpha)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendEquationSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &modeRGB, 4); ptr += 4;
+		memcpy(ptr, &modeAlpha, 4); ptr += 4;
+}
+
+void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &sfactor, 4); ptr += 4;
+		memcpy(ptr, &dfactor, 4); ptr += 4;
+}
+
+void glBlendFuncSeparate_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBlendFuncSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &srcRGB, 4); ptr += 4;
+		memcpy(ptr, &dstRGB, 4); ptr += 4;
+		memcpy(ptr, &srcAlpha, 4); ptr += 4;
+		memcpy(ptr, &dstAlpha, 4); ptr += 4;
+}
+
+void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data = ((data != NULL) ?  size : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(8 + 4 + 4);
+	int tmp = OP_glBufferData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_data,4);
+	if (data != NULL) stream->writeFully(data, __size_data);
+	ptr = stream->alloc(4);
+		memcpy(ptr, &usage, 4); ptr += 4;
+}
+
+void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  size;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4);
+	int tmp = OP_glBufferSubData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_data,4);
+	stream->writeFully(data, __size_data);
+}
+
+GLenum glCheckFramebufferStatus_enc(void *self , GLenum target)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCheckFramebufferStatus;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+
+	GLenum retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glClear_enc(void *self , GLbitfield mask)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClear;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearColor;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 4); ptr += 4;
+		memcpy(ptr, &green, 4); ptr += 4;
+		memcpy(ptr, &blue, 4); ptr += 4;
+		memcpy(ptr, &alpha, 4); ptr += 4;
+}
+
+void glClearDepthf_enc(void *self , GLclampf depth)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearDepthf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &depth, 4); ptr += 4;
+}
+
+void glClearStencil_enc(void *self , GLint s)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glClearStencil;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &s, 4); ptr += 4;
+}
+
+void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 1 + 1 + 1 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glColorMask;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &red, 1); ptr += 1;
+		memcpy(ptr, &green, 1); ptr += 1;
+		memcpy(ptr, &blue, 1); ptr += 1;
+		memcpy(ptr, &alpha, 1); ptr += 1;
+}
+
+void glCompileShader_enc(void *self , GLuint shader)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCompileShader;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+}
+
+void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data = ((data != NULL) ?  imageSize : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glCompressedTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+		memcpy(ptr, &imageSize, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_data,4);
+	if (data != NULL) stream->writeFully(data, __size_data);
+}
+
+void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  imageSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glCompressedTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &imageSize, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_data,4);
+	stream->writeFully(data, __size_data);
+}
+
+void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCopyTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+}
+
+void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCopyTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+GLuint glCreateProgram_enc(void *self )
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCreateProgram;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+
+	GLuint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+GLuint glCreateShader_enc(void *self , GLenum type)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCreateShader;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &type, 4); ptr += 4;
+
+	GLuint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glCullFace_enc(void *self , GLenum mode)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCullFace;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffers; ptr += 4;
+	memcpy(ptr, buffers, __size_buffers);ptr += __size_buffers;
+}
+
+void glDeleteFramebuffers_enc(void *self , GLsizei n, const GLuint* framebuffers)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_framebuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteFramebuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
+	memcpy(ptr, framebuffers, __size_framebuffers);ptr += __size_framebuffers;
+}
+
+void glDeleteProgram_enc(void *self , GLuint program)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteProgram;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+}
+
+void glDeleteRenderbuffers_enc(void *self , GLsizei n, const GLuint* renderbuffers)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_renderbuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteRenderbuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
+	memcpy(ptr, renderbuffers, __size_renderbuffers);ptr += __size_renderbuffers;
+}
+
+void glDeleteShader_enc(void *self , GLuint shader)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteShader;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+}
+
+void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_textures =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_textures + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteTextures;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_textures; ptr += 4;
+	memcpy(ptr, textures, __size_textures);ptr += __size_textures;
+}
+
+void glDepthFunc_enc(void *self , GLenum func)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+}
+
+void glDepthMask_enc(void *self , GLboolean flag)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthMask;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &flag, 1); ptr += 1;
+}
+
+void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDepthRangef;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &zNear, 4); ptr += 4;
+		memcpy(ptr, &zFar, 4); ptr += 4;
+}
+
+void glDetachShader_enc(void *self , GLuint program, GLuint shader)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDetachShader;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &shader, 4); ptr += 4;
+}
+
+void glDisable_enc(void *self , GLenum cap)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDisable;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &cap, 4); ptr += 4;
+}
+
+void glDisableVertexAttribArray_enc(void *self , GLuint index)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDisableVertexAttribArray;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &index, 4); ptr += 4;
+}
+
+void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawArrays;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+		memcpy(ptr, &first, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+}
+
+void glEnable_enc(void *self , GLenum cap)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEnable;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &cap, 4); ptr += 4;
+}
+
+void glEnableVertexAttribArray_enc(void *self , GLuint index)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEnableVertexAttribArray;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &index, 4); ptr += 4;
+}
+
+void glFinish_enc(void *self )
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFinish;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glFlush_enc(void *self )
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFlush;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glFramebufferRenderbuffer_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFramebufferRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &renderbuffertarget, 4); ptr += 4;
+		memcpy(ptr, &renderbuffer, 4); ptr += 4;
+}
+
+void glFramebufferTexture2D_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFramebufferTexture2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &textarget, 4); ptr += 4;
+		memcpy(ptr, &texture, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+}
+
+void glFrontFace_enc(void *self , GLenum mode)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFrontFace;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenBuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffers; ptr += 4;
+	stream->readback(buffers, __size_buffers);
+}
+
+void glGenerateMipmap_enc(void *self , GLenum target)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenerateMipmap;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+}
+
+void glGenFramebuffers_enc(void *self , GLsizei n, GLuint* framebuffers)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_framebuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_framebuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenFramebuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_framebuffers; ptr += 4;
+	stream->readback(framebuffers, __size_framebuffers);
+}
+
+void glGenRenderbuffers_enc(void *self , GLsizei n, GLuint* renderbuffers)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_renderbuffers =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_renderbuffers + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenRenderbuffers;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_renderbuffers; ptr += 4;
+	stream->readback(renderbuffers, __size_renderbuffers);
+}
+
+void glGenTextures_enc(void *self , GLsizei n, GLuint* textures)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_textures =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_textures + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenTextures;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_textures; ptr += 4;
+	stream->readback(textures, __size_textures);
+}
+
+void glGetActiveAttrib_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_length = ((length != NULL) ?  (sizeof(GLsizei)) : 0);
+	const unsigned int __size_size =  (sizeof(GLint));
+	const unsigned int __size_type =  (sizeof(GLenum));
+	const unsigned int __size_name = ((name != NULL) ?  bufsize : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_length + __size_size + __size_type + __size_name + 4*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetActiveAttrib;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &index, 4); ptr += 4;
+		memcpy(ptr, &bufsize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_length; ptr += 4;
+	*(unsigned int *)(ptr) = __size_size; ptr += 4;
+	*(unsigned int *)(ptr) = __size_type; ptr += 4;
+	*(unsigned int *)(ptr) = __size_name; ptr += 4;
+	if (length != NULL) stream->readback(length, __size_length);
+	stream->readback(size, __size_size);
+	stream->readback(type, __size_type);
+	if (name != NULL) stream->readback(name, __size_name);
+}
+
+void glGetActiveUniform_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_length = ((length != NULL) ?  (sizeof(GLsizei)) : 0);
+	const unsigned int __size_size =  (sizeof(GLint));
+	const unsigned int __size_type =  (sizeof(GLenum));
+	const unsigned int __size_name = ((name != NULL) ?  bufsize : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_length + __size_size + __size_type + __size_name + 4*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetActiveUniform;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &index, 4); ptr += 4;
+		memcpy(ptr, &bufsize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_length; ptr += 4;
+	*(unsigned int *)(ptr) = __size_size; ptr += 4;
+	*(unsigned int *)(ptr) = __size_type; ptr += 4;
+	*(unsigned int *)(ptr) = __size_name; ptr += 4;
+	if (length != NULL) stream->readback(length, __size_length);
+	stream->readback(size, __size_size);
+	stream->readback(type, __size_type);
+	if (name != NULL) stream->readback(name, __size_name);
+}
+
+void glGetAttachedShaders_enc(void *self , GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_count = ((count != NULL) ?  (sizeof(GLsizei)) : 0);
+	const unsigned int __size_shaders =  (maxcount*sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_count + __size_shaders + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetAttachedShaders;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &maxcount, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_count; ptr += 4;
+	*(unsigned int *)(ptr) = __size_shaders; ptr += 4;
+	if (count != NULL) stream->readback(count, __size_count);
+	stream->readback(shaders, __size_shaders);
+}
+
+int glGetAttribLocation_enc(void *self , GLuint program, const GLchar* name)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_name =  (strlen(name) + 1);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_name + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetAttribLocation;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_name; ptr += 4;
+	memcpy(ptr, name, __size_name);ptr += __size_name;
+
+	int retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLboolean));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetBooleanv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetBufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+GLenum glGetError_enc(void *self )
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetError;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+
+	GLenum retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFloatv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetFramebufferAttachmentParameteriv_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetFramebufferAttachmentParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetIntegerv_enc(void *self , GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetIntegerv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetProgramiv_enc(void *self , GLuint program, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  sizeof(GLint);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetProgramiv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetProgramInfoLog_enc(void *self , GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_length =  sizeof(GLsizei);
+	const unsigned int __size_infolog =  bufsize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_length + __size_infolog + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetProgramInfoLog;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &bufsize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_length; ptr += 4;
+	*(unsigned int *)(ptr) = __size_infolog; ptr += 4;
+	stream->readback(length, __size_length);
+	stream->readback(infolog, __size_infolog);
+}
+
+void glGetRenderbufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  sizeof(GLint);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetRenderbufferParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetShaderiv_enc(void *self , GLuint shader, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  sizeof(GLint);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetShaderiv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetShaderInfoLog_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_length = ((length != NULL) ?  (sizeof(GLsizei)) : 0);
+	const unsigned int __size_infolog =  bufsize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_length + __size_infolog + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetShaderInfoLog;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+		memcpy(ptr, &bufsize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_length; ptr += 4;
+	*(unsigned int *)(ptr) = __size_infolog; ptr += 4;
+	if (length != NULL) stream->readback(length, __size_length);
+	stream->readback(infolog, __size_infolog);
+}
+
+void glGetShaderPrecisionFormat_enc(void *self , GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_range =  (2 * sizeof(GLint));
+	const unsigned int __size_precision =  (sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_range + __size_precision + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetShaderPrecisionFormat;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shadertype, 4); ptr += 4;
+		memcpy(ptr, &precisiontype, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_range; ptr += 4;
+	*(unsigned int *)(ptr) = __size_precision; ptr += 4;
+	stream->readback(range, __size_range);
+	stream->readback(precision, __size_precision);
+}
+
+void glGetShaderSource_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_length = ((length != NULL) ?  (sizeof(GLsizei)) : 0);
+	const unsigned int __size_source =  bufsize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_length + __size_source + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetShaderSource;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+		memcpy(ptr, &bufsize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_length; ptr += 4;
+	*(unsigned int *)(ptr) = __size_source; ptr += 4;
+	if (length != NULL) stream->readback(length, __size_length);
+	stream->readback(source, __size_source);
+}
+
+void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetUniformfv_enc(void *self , GLuint program, GLint location, GLfloat* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  glSizeof(uniformType(self, program, location));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetUniformfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &location, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetUniformiv_enc(void *self , GLuint program, GLint location, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  glSizeof(uniformType(self, program, location));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetUniformiv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+		memcpy(ptr, &location, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+int glGetUniformLocation_enc(void *self , GLuint program, const GLchar* name)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_name =  (strlen(name) + 1);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_name + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetUniformLocation;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_name; ptr += 4;
+	memcpy(ptr, name, __size_name);ptr += __size_name;
+
+	int retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void glGetVertexAttribfv_enc(void *self , GLuint index, GLenum pname, GLfloat* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetVertexAttribfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &index, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glGetVertexAttribiv_enc(void *self , GLuint index, GLenum pname, GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetVertexAttribiv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &index, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	stream->readback(params, __size_params);
+}
+
+void glHint_enc(void *self , GLenum target, GLenum mode)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glHint;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &mode, 4); ptr += 4;
+}
+
+GLboolean glIsBuffer_enc(void *self , GLuint buffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &buffer, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsEnabled_enc(void *self , GLenum cap)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsEnabled;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &cap, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsFramebuffer_enc(void *self , GLuint framebuffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsFramebuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &framebuffer, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsProgram_enc(void *self , GLuint program)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsProgram;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsRenderbuffer_enc(void *self , GLuint renderbuffer)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &renderbuffer, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsShader_enc(void *self , GLuint shader)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsShader;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+GLboolean glIsTexture_enc(void *self , GLuint texture)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &texture, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glLineWidth_enc(void *self , GLfloat width)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLineWidth;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &width, 4); ptr += 4;
+}
+
+void glLinkProgram_enc(void *self , GLuint program)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glLinkProgram;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+}
+
+void glPixelStorei_enc(void *self , GLenum pname, GLint param)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPixelStorei;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glPolygonOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &factor, 4); ptr += 4;
+		memcpy(ptr, &units, 4); ptr += 4;
+}
+
+void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  pixelDataSize(self, width, height, format, type, 1);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glReadPixels;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_pixels; ptr += 4;
+	stream->readback(pixels, __size_pixels);
+}
+
+void glReleaseShaderCompiler_enc(void *self )
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glReleaseShaderCompiler;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+}
+
+void glRenderbufferStorage_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glRenderbufferStorage;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 1;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glSampleCoverage;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &value, 4); ptr += 4;
+		memcpy(ptr, &invert, 1); ptr += 1;
+}
+
+void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glScissor;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilFunc;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &func, 4); ptr += 4;
+		memcpy(ptr, &ref, 4); ptr += 4;
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glStencilFuncSeparate_enc(void *self , GLenum face, GLenum func, GLint ref, GLuint mask)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilFuncSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &func, 4); ptr += 4;
+		memcpy(ptr, &ref, 4); ptr += 4;
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glStencilMask_enc(void *self , GLuint mask)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilMask;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glStencilMaskSeparate_enc(void *self , GLenum face, GLuint mask)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilMaskSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &mask, 4); ptr += 4;
+}
+
+void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilOp;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &fail, 4); ptr += 4;
+		memcpy(ptr, &zfail, 4); ptr += 4;
+		memcpy(ptr, &zpass, 4); ptr += 4;
+}
+
+void glStencilOpSeparate_enc(void *self , GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glStencilOpSeparate;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &face, 4); ptr += 4;
+		memcpy(ptr, &fail, 4); ptr += 4;
+		memcpy(ptr, &zfail, 4); ptr += 4;
+		memcpy(ptr, &zpass, 4); ptr += 4;
+}
+
+void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels = ((pixels != NULL) ?  pixelDataSize(self, width, height, format, type, 0) : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glTexImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	if (pixels != NULL) stream->writeFully(pixels, __size_pixels);
+}
+
+void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterf;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameterfv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameteri;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+		memcpy(ptr, &param, 4); ptr += 4;
+}
+
+void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_params =  (glUtilsParamSize(pname) * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_params + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glTexParameteriv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &pname, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_params; ptr += 4;
+	memcpy(ptr, params, __size_params);ptr += __size_params;
+}
+
+void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  pixelDataSize(self, width, height, format, type, 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glTexSubImage2D;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	stream->writeFully(pixels, __size_pixels);
+}
+
+void glUniform1f_enc(void *self , GLint location, GLfloat x)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform1f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+}
+
+void glUniform1fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (count * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform1fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform1i_enc(void *self , GLint location, GLint x)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform1i;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+}
+
+void glUniform1iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (count * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform1iv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform2f_enc(void *self , GLint location, GLfloat x, GLfloat y)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform2f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+}
+
+void glUniform2fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (count * 2 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform2fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform2i_enc(void *self , GLint location, GLint x, GLint y)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform2i;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+}
+
+void glUniform2iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (count * 2 * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform2iv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform3f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform3f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glUniform3fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (count * 3 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform3fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform3i_enc(void *self , GLint location, GLint x, GLint y, GLint z)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform3i;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glUniform3iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (3 * count * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform3iv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform4f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform4f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+		memcpy(ptr, &w, 4); ptr += 4;
+}
+
+void glUniform4fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (4 * count * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform4fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniform4i_enc(void *self , GLint location, GLint x, GLint y, GLint z, GLint w)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform4i;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+		memcpy(ptr, &w, 4); ptr += 4;
+}
+
+void glUniform4iv_enc(void *self , GLint location, GLsizei count, const GLint* v)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_v =  (4 * count * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_v + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniform4iv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_v; ptr += 4;
+	memcpy(ptr, v, __size_v);ptr += __size_v;
+}
+
+void glUniformMatrix2fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_value =  (count * 4 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 1 + __size_value + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniformMatrix2fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &transpose, 1); ptr += 1;
+	*(unsigned int *)(ptr) = __size_value; ptr += 4;
+	memcpy(ptr, value, __size_value);ptr += __size_value;
+}
+
+void glUniformMatrix3fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_value =  (count * 9 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 1 + __size_value + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniformMatrix3fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &transpose, 1); ptr += 1;
+	*(unsigned int *)(ptr) = __size_value; ptr += 4;
+	memcpy(ptr, value, __size_value);ptr += __size_value;
+}
+
+void glUniformMatrix4fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_value =  (count * 16 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 1 + __size_value + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUniformMatrix4fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &location, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &transpose, 1); ptr += 1;
+	*(unsigned int *)(ptr) = __size_value; ptr += 4;
+	memcpy(ptr, value, __size_value);ptr += __size_value;
+}
+
+void glUseProgram_enc(void *self , GLuint program)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUseProgram;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+}
+
+void glValidateProgram_enc(void *self , GLuint program)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glValidateProgram;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &program, 4); ptr += 4;
+}
+
+void glVertexAttrib1f_enc(void *self , GLuint indx, GLfloat x)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib1f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+}
+
+void glVertexAttrib1fv_enc(void *self , GLuint indx, const GLfloat* values)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_values =  (sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_values + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib1fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_values; ptr += 4;
+	memcpy(ptr, values, __size_values);ptr += __size_values;
+}
+
+void glVertexAttrib2f_enc(void *self , GLuint indx, GLfloat x, GLfloat y)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib2f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+}
+
+void glVertexAttrib2fv_enc(void *self , GLuint indx, const GLfloat* values)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_values =  (2 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_values + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib2fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_values; ptr += 4;
+	memcpy(ptr, values, __size_values);ptr += __size_values;
+}
+
+void glVertexAttrib3f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib3f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+}
+
+void glVertexAttrib3fv_enc(void *self , GLuint indx, const GLfloat* values)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_values =  (3 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_values + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib3fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_values; ptr += 4;
+	memcpy(ptr, values, __size_values);ptr += __size_values;
+}
+
+void glVertexAttrib4f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib4f;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &z, 4); ptr += 4;
+		memcpy(ptr, &w, 4); ptr += 4;
+}
+
+void glVertexAttrib4fv_enc(void *self , GLuint indx, const GLfloat* values)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_values =  (4 * sizeof(GLfloat));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_values + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttrib4fv;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_values; ptr += 4;
+	memcpy(ptr, values, __size_values);ptr += __size_values;
+}
+
+void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glViewport;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEGLImageTargetTexture2DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &image, 4); ptr += 4;
+}
+
+void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glEGLImageTargetRenderbufferStorageOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &image, 4); ptr += 4;
+}
+
+GLboolean glUnmapBufferOES_enc(void *self , GLenum target)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glUnmapBufferOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels = ((pixels != NULL) ?  pixelDataSize3D(self, width, height, depth, format, type, 0) : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glTexImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &depth, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	if (pixels != NULL) stream->writeFully(pixels, __size_pixels);
+}
+
+void glTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  pixelDataSize3D(self, width, height, depth, format, type, 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &zoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &depth, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	stream->writeFully(pixels, __size_pixels);
+}
+
+void glCopyTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glCopyTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &zoffset, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+}
+
+void glCompressedTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  imageSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glCompressedTexImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &internalformat, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &depth, 4); ptr += 4;
+		memcpy(ptr, &border, 4); ptr += 4;
+		memcpy(ptr, &imageSize, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_data,4);
+	stream->writeFully(data, __size_data);
+}
+
+void glCompressedTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  imageSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_data + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_glCompressedTexSubImage3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &xoffset, 4); ptr += 4;
+		memcpy(ptr, &yoffset, 4); ptr += 4;
+		memcpy(ptr, &zoffset, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &depth, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &imageSize, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_data,4);
+	stream->writeFully(data, __size_data);
+}
+
+void glFramebufferTexture3DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFramebufferTexture3DOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &attachment, 4); ptr += 4;
+		memcpy(ptr, &textarget, 4); ptr += 4;
+		memcpy(ptr, &texture, 4); ptr += 4;
+		memcpy(ptr, &level, 4); ptr += 4;
+		memcpy(ptr, &zoffset, 4); ptr += 4;
+}
+
+void glBindVertexArrayOES_enc(void *self , GLuint array)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glBindVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &array, 4); ptr += 4;
+}
+
+void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_arrays =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_arrays + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDeleteVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_arrays; ptr += 4;
+	memcpy(ptr, arrays, __size_arrays);ptr += __size_arrays;
+}
+
+void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_arrays =  (n * sizeof(GLuint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_arrays + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGenVertexArraysOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &n, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_arrays; ptr += 4;
+	stream->readback(arrays, __size_arrays);
+}
+
+GLboolean glIsVertexArrayOES_enc(void *self , GLuint array)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glIsVertexArrayOES;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &array, 4); ptr += 4;
+
+	GLboolean retval;
+	stream->readback(&retval, 1);
+	return retval;
+}
+
+void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_attachments =  (numAttachments * sizeof(GLenum));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + __size_attachments + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDiscardFramebufferEXT;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &target, 4); ptr += 4;
+		memcpy(ptr, &numAttachments, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_attachments; ptr += 4;
+	memcpy(ptr, attachments, __size_attachments);ptr += __size_attachments;
+}
+
+void glVertexAttribPointerData_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 1 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttribPointerData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &normalized, 1); ptr += 1;
+		memcpy(ptr, &stride, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	 glUtilsPackPointerData((unsigned char *)ptr, (unsigned char *)data, size, type, stride, datalen);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glVertexAttribPointerOffset_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 1 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glVertexAttribPointerOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &indx, 4); ptr += 4;
+		memcpy(ptr, &size, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &normalized, 1); ptr += 1;
+		memcpy(ptr, &stride, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawElementsOffset;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+		memcpy(ptr, &offset, 4); ptr += 4;
+}
+
+void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_data =  datalen;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + __size_data + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glDrawElementsData;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &mode, 4); ptr += 4;
+		memcpy(ptr, &count, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_data; ptr += 4;
+	memcpy(ptr, data, __size_data);ptr += __size_data;
+		memcpy(ptr, &datalen, 4); ptr += 4;
+}
+
+void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_formats =  (count * sizeof(GLint));
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_formats + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glGetCompressedTextureFormats;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &count, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_formats; ptr += 4;
+	stream->readback(formats, __size_formats);
+}
+
+void glShaderString_enc(void *self , GLuint shader, const GLchar* string, GLsizei len)
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_string =  len;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_string + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glShaderString;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &shader, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_string; ptr += 4;
+	memcpy(ptr, string, __size_string);ptr += __size_string;
+		memcpy(ptr, &len, 4); ptr += 4;
+}
+
+int glFinishRoundTrip_enc(void *self )
+{
+
+	gl2_encoder_context_t *ctx = (gl2_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 0;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_glFinishRoundTrip;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+
+	int retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+gl2_encoder_context_t::gl2_encoder_context_t(IOStream *stream)
+{
+	m_stream = stream;
+
+	set_glActiveTexture(glActiveTexture_enc);
+	set_glAttachShader(glAttachShader_enc);
+	set_glBindAttribLocation(glBindAttribLocation_enc);
+	set_glBindBuffer(glBindBuffer_enc);
+	set_glBindFramebuffer(glBindFramebuffer_enc);
+	set_glBindRenderbuffer(glBindRenderbuffer_enc);
+	set_glBindTexture(glBindTexture_enc);
+	set_glBlendColor(glBlendColor_enc);
+	set_glBlendEquation(glBlendEquation_enc);
+	set_glBlendEquationSeparate(glBlendEquationSeparate_enc);
+	set_glBlendFunc(glBlendFunc_enc);
+	set_glBlendFuncSeparate(glBlendFuncSeparate_enc);
+	set_glBufferData(glBufferData_enc);
+	set_glBufferSubData(glBufferSubData_enc);
+	set_glCheckFramebufferStatus(glCheckFramebufferStatus_enc);
+	set_glClear(glClear_enc);
+	set_glClearColor(glClearColor_enc);
+	set_glClearDepthf(glClearDepthf_enc);
+	set_glClearStencil(glClearStencil_enc);
+	set_glColorMask(glColorMask_enc);
+	set_glCompileShader(glCompileShader_enc);
+	set_glCompressedTexImage2D(glCompressedTexImage2D_enc);
+	set_glCompressedTexSubImage2D(glCompressedTexSubImage2D_enc);
+	set_glCopyTexImage2D(glCopyTexImage2D_enc);
+	set_glCopyTexSubImage2D(glCopyTexSubImage2D_enc);
+	set_glCreateProgram(glCreateProgram_enc);
+	set_glCreateShader(glCreateShader_enc);
+	set_glCullFace(glCullFace_enc);
+	set_glDeleteBuffers(glDeleteBuffers_enc);
+	set_glDeleteFramebuffers(glDeleteFramebuffers_enc);
+	set_glDeleteProgram(glDeleteProgram_enc);
+	set_glDeleteRenderbuffers(glDeleteRenderbuffers_enc);
+	set_glDeleteShader(glDeleteShader_enc);
+	set_glDeleteTextures(glDeleteTextures_enc);
+	set_glDepthFunc(glDepthFunc_enc);
+	set_glDepthMask(glDepthMask_enc);
+	set_glDepthRangef(glDepthRangef_enc);
+	set_glDetachShader(glDetachShader_enc);
+	set_glDisable(glDisable_enc);
+	set_glDisableVertexAttribArray(glDisableVertexAttribArray_enc);
+	set_glDrawArrays(glDrawArrays_enc);
+	set_glDrawElements((glDrawElements_client_proc_t)(enc_unsupported));
+	set_glEnable(glEnable_enc);
+	set_glEnableVertexAttribArray(glEnableVertexAttribArray_enc);
+	set_glFinish(glFinish_enc);
+	set_glFlush(glFlush_enc);
+	set_glFramebufferRenderbuffer(glFramebufferRenderbuffer_enc);
+	set_glFramebufferTexture2D(glFramebufferTexture2D_enc);
+	set_glFrontFace(glFrontFace_enc);
+	set_glGenBuffers(glGenBuffers_enc);
+	set_glGenerateMipmap(glGenerateMipmap_enc);
+	set_glGenFramebuffers(glGenFramebuffers_enc);
+	set_glGenRenderbuffers(glGenRenderbuffers_enc);
+	set_glGenTextures(glGenTextures_enc);
+	set_glGetActiveAttrib(glGetActiveAttrib_enc);
+	set_glGetActiveUniform(glGetActiveUniform_enc);
+	set_glGetAttachedShaders(glGetAttachedShaders_enc);
+	set_glGetAttribLocation(glGetAttribLocation_enc);
+	set_glGetBooleanv(glGetBooleanv_enc);
+	set_glGetBufferParameteriv(glGetBufferParameteriv_enc);
+	set_glGetError(glGetError_enc);
+	set_glGetFloatv(glGetFloatv_enc);
+	set_glGetFramebufferAttachmentParameteriv(glGetFramebufferAttachmentParameteriv_enc);
+	set_glGetIntegerv(glGetIntegerv_enc);
+	set_glGetProgramiv(glGetProgramiv_enc);
+	set_glGetProgramInfoLog(glGetProgramInfoLog_enc);
+	set_glGetRenderbufferParameteriv(glGetRenderbufferParameteriv_enc);
+	set_glGetShaderiv(glGetShaderiv_enc);
+	set_glGetShaderInfoLog(glGetShaderInfoLog_enc);
+	set_glGetShaderPrecisionFormat(glGetShaderPrecisionFormat_enc);
+	set_glGetShaderSource(glGetShaderSource_enc);
+	set_glGetString((glGetString_client_proc_t)(enc_unsupported));
+	set_glGetTexParameterfv(glGetTexParameterfv_enc);
+	set_glGetTexParameteriv(glGetTexParameteriv_enc);
+	set_glGetUniformfv(glGetUniformfv_enc);
+	set_glGetUniformiv(glGetUniformiv_enc);
+	set_glGetUniformLocation(glGetUniformLocation_enc);
+	set_glGetVertexAttribfv(glGetVertexAttribfv_enc);
+	set_glGetVertexAttribiv(glGetVertexAttribiv_enc);
+	set_glGetVertexAttribPointerv((glGetVertexAttribPointerv_client_proc_t)(enc_unsupported));
+	set_glHint(glHint_enc);
+	set_glIsBuffer(glIsBuffer_enc);
+	set_glIsEnabled(glIsEnabled_enc);
+	set_glIsFramebuffer(glIsFramebuffer_enc);
+	set_glIsProgram(glIsProgram_enc);
+	set_glIsRenderbuffer(glIsRenderbuffer_enc);
+	set_glIsShader(glIsShader_enc);
+	set_glIsTexture(glIsTexture_enc);
+	set_glLineWidth(glLineWidth_enc);
+	set_glLinkProgram(glLinkProgram_enc);
+	set_glPixelStorei(glPixelStorei_enc);
+	set_glPolygonOffset(glPolygonOffset_enc);
+	set_glReadPixels(glReadPixels_enc);
+	set_glReleaseShaderCompiler(glReleaseShaderCompiler_enc);
+	set_glRenderbufferStorage(glRenderbufferStorage_enc);
+	set_glSampleCoverage(glSampleCoverage_enc);
+	set_glScissor(glScissor_enc);
+	set_glShaderBinary((glShaderBinary_client_proc_t)(enc_unsupported));
+	set_glShaderSource((glShaderSource_client_proc_t)(enc_unsupported));
+	set_glStencilFunc(glStencilFunc_enc);
+	set_glStencilFuncSeparate(glStencilFuncSeparate_enc);
+	set_glStencilMask(glStencilMask_enc);
+	set_glStencilMaskSeparate(glStencilMaskSeparate_enc);
+	set_glStencilOp(glStencilOp_enc);
+	set_glStencilOpSeparate(glStencilOpSeparate_enc);
+	set_glTexImage2D(glTexImage2D_enc);
+	set_glTexParameterf(glTexParameterf_enc);
+	set_glTexParameterfv(glTexParameterfv_enc);
+	set_glTexParameteri(glTexParameteri_enc);
+	set_glTexParameteriv(glTexParameteriv_enc);
+	set_glTexSubImage2D(glTexSubImage2D_enc);
+	set_glUniform1f(glUniform1f_enc);
+	set_glUniform1fv(glUniform1fv_enc);
+	set_glUniform1i(glUniform1i_enc);
+	set_glUniform1iv(glUniform1iv_enc);
+	set_glUniform2f(glUniform2f_enc);
+	set_glUniform2fv(glUniform2fv_enc);
+	set_glUniform2i(glUniform2i_enc);
+	set_glUniform2iv(glUniform2iv_enc);
+	set_glUniform3f(glUniform3f_enc);
+	set_glUniform3fv(glUniform3fv_enc);
+	set_glUniform3i(glUniform3i_enc);
+	set_glUniform3iv(glUniform3iv_enc);
+	set_glUniform4f(glUniform4f_enc);
+	set_glUniform4fv(glUniform4fv_enc);
+	set_glUniform4i(glUniform4i_enc);
+	set_glUniform4iv(glUniform4iv_enc);
+	set_glUniformMatrix2fv(glUniformMatrix2fv_enc);
+	set_glUniformMatrix3fv(glUniformMatrix3fv_enc);
+	set_glUniformMatrix4fv(glUniformMatrix4fv_enc);
+	set_glUseProgram(glUseProgram_enc);
+	set_glValidateProgram(glValidateProgram_enc);
+	set_glVertexAttrib1f(glVertexAttrib1f_enc);
+	set_glVertexAttrib1fv(glVertexAttrib1fv_enc);
+	set_glVertexAttrib2f(glVertexAttrib2f_enc);
+	set_glVertexAttrib2fv(glVertexAttrib2fv_enc);
+	set_glVertexAttrib3f(glVertexAttrib3f_enc);
+	set_glVertexAttrib3fv(glVertexAttrib3fv_enc);
+	set_glVertexAttrib4f(glVertexAttrib4f_enc);
+	set_glVertexAttrib4fv(glVertexAttrib4fv_enc);
+	set_glVertexAttribPointer((glVertexAttribPointer_client_proc_t)(enc_unsupported));
+	set_glViewport(glViewport_enc);
+	set_glEGLImageTargetTexture2DOES(glEGLImageTargetTexture2DOES_enc);
+	set_glEGLImageTargetRenderbufferStorageOES(glEGLImageTargetRenderbufferStorageOES_enc);
+	set_glGetProgramBinaryOES((glGetProgramBinaryOES_client_proc_t)(enc_unsupported));
+	set_glProgramBinaryOES((glProgramBinaryOES_client_proc_t)(enc_unsupported));
+	set_glMapBufferOES((glMapBufferOES_client_proc_t)(enc_unsupported));
+	set_glUnmapBufferOES(glUnmapBufferOES_enc);
+	set_glTexImage3DOES(glTexImage3DOES_enc);
+	set_glTexSubImage3DOES(glTexSubImage3DOES_enc);
+	set_glCopyTexSubImage3DOES(glCopyTexSubImage3DOES_enc);
+	set_glCompressedTexImage3DOES(glCompressedTexImage3DOES_enc);
+	set_glCompressedTexSubImage3DOES(glCompressedTexSubImage3DOES_enc);
+	set_glFramebufferTexture3DOES(glFramebufferTexture3DOES_enc);
+	set_glBindVertexArrayOES(glBindVertexArrayOES_enc);
+	set_glDeleteVertexArraysOES(glDeleteVertexArraysOES_enc);
+	set_glGenVertexArraysOES(glGenVertexArraysOES_enc);
+	set_glIsVertexArrayOES(glIsVertexArrayOES_enc);
+	set_glDiscardFramebufferEXT(glDiscardFramebufferEXT_enc);
+	set_glMultiDrawArraysEXT((glMultiDrawArraysEXT_client_proc_t)(enc_unsupported));
+	set_glMultiDrawElementsEXT((glMultiDrawElementsEXT_client_proc_t)(enc_unsupported));
+	set_glGetPerfMonitorGroupsAMD((glGetPerfMonitorGroupsAMD_client_proc_t)(enc_unsupported));
+	set_glGetPerfMonitorCountersAMD((glGetPerfMonitorCountersAMD_client_proc_t)(enc_unsupported));
+	set_glGetPerfMonitorGroupStringAMD((glGetPerfMonitorGroupStringAMD_client_proc_t)(enc_unsupported));
+	set_glGetPerfMonitorCounterStringAMD((glGetPerfMonitorCounterStringAMD_client_proc_t)(enc_unsupported));
+	set_glGetPerfMonitorCounterInfoAMD((glGetPerfMonitorCounterInfoAMD_client_proc_t)(enc_unsupported));
+	set_glGenPerfMonitorsAMD((glGenPerfMonitorsAMD_client_proc_t)(enc_unsupported));
+	set_glDeletePerfMonitorsAMD((glDeletePerfMonitorsAMD_client_proc_t)(enc_unsupported));
+	set_glSelectPerfMonitorCountersAMD((glSelectPerfMonitorCountersAMD_client_proc_t)(enc_unsupported));
+	set_glBeginPerfMonitorAMD((glBeginPerfMonitorAMD_client_proc_t)(enc_unsupported));
+	set_glEndPerfMonitorAMD((glEndPerfMonitorAMD_client_proc_t)(enc_unsupported));
+	set_glGetPerfMonitorCounterDataAMD((glGetPerfMonitorCounterDataAMD_client_proc_t)(enc_unsupported));
+	set_glRenderbufferStorageMultisampleIMG((glRenderbufferStorageMultisampleIMG_client_proc_t)(enc_unsupported));
+	set_glFramebufferTexture2DMultisampleIMG((glFramebufferTexture2DMultisampleIMG_client_proc_t)(enc_unsupported));
+	set_glDeleteFencesNV((glDeleteFencesNV_client_proc_t)(enc_unsupported));
+	set_glGenFencesNV((glGenFencesNV_client_proc_t)(enc_unsupported));
+	set_glIsFenceNV((glIsFenceNV_client_proc_t)(enc_unsupported));
+	set_glTestFenceNV((glTestFenceNV_client_proc_t)(enc_unsupported));
+	set_glGetFenceivNV((glGetFenceivNV_client_proc_t)(enc_unsupported));
+	set_glFinishFenceNV((glFinishFenceNV_client_proc_t)(enc_unsupported));
+	set_glSetFenceNV((glSetFenceNV_client_proc_t)(enc_unsupported));
+	set_glCoverageMaskNV((glCoverageMaskNV_client_proc_t)(enc_unsupported));
+	set_glCoverageOperationNV((glCoverageOperationNV_client_proc_t)(enc_unsupported));
+	set_glGetDriverControlsQCOM((glGetDriverControlsQCOM_client_proc_t)(enc_unsupported));
+	set_glGetDriverControlStringQCOM((glGetDriverControlStringQCOM_client_proc_t)(enc_unsupported));
+	set_glEnableDriverControlQCOM((glEnableDriverControlQCOM_client_proc_t)(enc_unsupported));
+	set_glDisableDriverControlQCOM((glDisableDriverControlQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetTexturesQCOM((glExtGetTexturesQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetBuffersQCOM((glExtGetBuffersQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetRenderbuffersQCOM((glExtGetRenderbuffersQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetFramebuffersQCOM((glExtGetFramebuffersQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetTexLevelParameterivQCOM((glExtGetTexLevelParameterivQCOM_client_proc_t)(enc_unsupported));
+	set_glExtTexObjectStateOverrideiQCOM((glExtTexObjectStateOverrideiQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetTexSubImageQCOM((glExtGetTexSubImageQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetBufferPointervQCOM((glExtGetBufferPointervQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetShadersQCOM((glExtGetShadersQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetProgramsQCOM((glExtGetProgramsQCOM_client_proc_t)(enc_unsupported));
+	set_glExtIsProgramBinaryQCOM((glExtIsProgramBinaryQCOM_client_proc_t)(enc_unsupported));
+	set_glExtGetProgramBinarySourceQCOM((glExtGetProgramBinarySourceQCOM_client_proc_t)(enc_unsupported));
+	set_glStartTilingQCOM((glStartTilingQCOM_client_proc_t)(enc_unsupported));
+	set_glEndTilingQCOM((glEndTilingQCOM_client_proc_t)(enc_unsupported));
+	set_glVertexAttribPointerData(glVertexAttribPointerData_enc);
+	set_glVertexAttribPointerOffset(glVertexAttribPointerOffset_enc);
+	set_glDrawElementsOffset(glDrawElementsOffset_enc);
+	set_glDrawElementsData(glDrawElementsData_enc);
+	set_glGetCompressedTextureFormats(glGetCompressedTextureFormats_enc);
+	set_glShaderString(glShaderString_enc);
+	set_glFinishRoundTrip(glFinishRoundTrip_enc);
+}
+
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_enc.h b/tools/emulator/opengl/system/GLESv2_enc/gl2_enc.h
new file mode 100644
index 0000000..f422c11
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_enc.h
@@ -0,0 +1,234 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+#ifndef GUARD_gl2_encoder_context_t
+#define GUARD_gl2_encoder_context_t
+
+#include "IOStream.h"
+#include "gl2_client_context.h"
+
+
+#include <string.h>
+#include "glUtils.h"
+#include "GL2EncoderUtils.h"
+
+struct gl2_encoder_context_t : public gl2_client_context_t {
+
+	IOStream *m_stream;
+
+	gl2_encoder_context_t(IOStream *stream);
+
+
+};
+
+extern "C" {
+	void glActiveTexture_enc(void *self , GLenum texture);
+	void glAttachShader_enc(void *self , GLuint program, GLuint shader);
+	void glBindAttribLocation_enc(void *self , GLuint program, GLuint index, const GLchar* name);
+	void glBindBuffer_enc(void *self , GLenum target, GLuint buffer);
+	void glBindFramebuffer_enc(void *self , GLenum target, GLuint framebuffer);
+	void glBindRenderbuffer_enc(void *self , GLenum target, GLuint renderbuffer);
+	void glBindTexture_enc(void *self , GLenum target, GLuint texture);
+	void glBlendColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void glBlendEquation_enc(void *self , GLenum mode);
+	void glBlendEquationSeparate_enc(void *self , GLenum modeRGB, GLenum modeAlpha);
+	void glBlendFunc_enc(void *self , GLenum sfactor, GLenum dfactor);
+	void glBlendFuncSeparate_enc(void *self , GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+	void glBufferData_enc(void *self , GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+	void glBufferSubData_enc(void *self , GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+	GLenum glCheckFramebufferStatus_enc(void *self , GLenum target);
+	void glClear_enc(void *self , GLbitfield mask);
+	void glClearColor_enc(void *self , GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void glClearDepthf_enc(void *self , GLclampf depth);
+	void glClearStencil_enc(void *self , GLint s);
+	void glColorMask_enc(void *self , GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+	void glCompileShader_enc(void *self , GLuint shader);
+	void glCompressedTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+	void glCompressedTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+	void glCopyTexImage2D_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+	void glCopyTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	GLuint glCreateProgram_enc(void *self );
+	GLuint glCreateShader_enc(void *self , GLenum type);
+	void glCullFace_enc(void *self , GLenum mode);
+	void glDeleteBuffers_enc(void *self , GLsizei n, const GLuint* buffers);
+	void glDeleteFramebuffers_enc(void *self , GLsizei n, const GLuint* framebuffers);
+	void glDeleteProgram_enc(void *self , GLuint program);
+	void glDeleteRenderbuffers_enc(void *self , GLsizei n, const GLuint* renderbuffers);
+	void glDeleteShader_enc(void *self , GLuint shader);
+	void glDeleteTextures_enc(void *self , GLsizei n, const GLuint* textures);
+	void glDepthFunc_enc(void *self , GLenum func);
+	void glDepthMask_enc(void *self , GLboolean flag);
+	void glDepthRangef_enc(void *self , GLclampf zNear, GLclampf zFar);
+	void glDetachShader_enc(void *self , GLuint program, GLuint shader);
+	void glDisable_enc(void *self , GLenum cap);
+	void glDisableVertexAttribArray_enc(void *self , GLuint index);
+	void glDrawArrays_enc(void *self , GLenum mode, GLint first, GLsizei count);
+	void glDrawElements_enc(void *self , GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
+	void glEnable_enc(void *self , GLenum cap);
+	void glEnableVertexAttribArray_enc(void *self , GLuint index);
+	void glFinish_enc(void *self );
+	void glFlush_enc(void *self );
+	void glFramebufferRenderbuffer_enc(void *self , GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+	void glFramebufferTexture2D_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+	void glFrontFace_enc(void *self , GLenum mode);
+	void glGenBuffers_enc(void *self , GLsizei n, GLuint* buffers);
+	void glGenerateMipmap_enc(void *self , GLenum target);
+	void glGenFramebuffers_enc(void *self , GLsizei n, GLuint* framebuffers);
+	void glGenRenderbuffers_enc(void *self , GLsizei n, GLuint* renderbuffers);
+	void glGenTextures_enc(void *self , GLsizei n, GLuint* textures);
+	void glGetActiveAttrib_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+	void glGetActiveUniform_enc(void *self , GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+	void glGetAttachedShaders_enc(void *self , GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+	int glGetAttribLocation_enc(void *self , GLuint program, const GLchar* name);
+	void glGetBooleanv_enc(void *self , GLenum pname, GLboolean* params);
+	void glGetBufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params);
+	GLenum glGetError_enc(void *self );
+	void glGetFloatv_enc(void *self , GLenum pname, GLfloat* params);
+	void glGetFramebufferAttachmentParameteriv_enc(void *self , GLenum target, GLenum attachment, GLenum pname, GLint* params);
+	void glGetIntegerv_enc(void *self , GLenum pname, GLint* params);
+	void glGetProgramiv_enc(void *self , GLuint program, GLenum pname, GLint* params);
+	void glGetProgramInfoLog_enc(void *self , GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
+	void glGetRenderbufferParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params);
+	void glGetShaderiv_enc(void *self , GLuint shader, GLenum pname, GLint* params);
+	void glGetShaderInfoLog_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
+	void glGetShaderPrecisionFormat_enc(void *self , GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+	void glGetShaderSource_enc(void *self , GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
+	const GLubyte* glGetString_enc(void *self , GLenum name);
+	void glGetTexParameterfv_enc(void *self , GLenum target, GLenum pname, GLfloat* params);
+	void glGetTexParameteriv_enc(void *self , GLenum target, GLenum pname, GLint* params);
+	void glGetUniformfv_enc(void *self , GLuint program, GLint location, GLfloat* params);
+	void glGetUniformiv_enc(void *self , GLuint program, GLint location, GLint* params);
+	int glGetUniformLocation_enc(void *self , GLuint program, const GLchar* name);
+	void glGetVertexAttribfv_enc(void *self , GLuint index, GLenum pname, GLfloat* params);
+	void glGetVertexAttribiv_enc(void *self , GLuint index, GLenum pname, GLint* params);
+	void glGetVertexAttribPointerv_enc(void *self , GLuint index, GLenum pname, GLvoid** pointer);
+	void glHint_enc(void *self , GLenum target, GLenum mode);
+	GLboolean glIsBuffer_enc(void *self , GLuint buffer);
+	GLboolean glIsEnabled_enc(void *self , GLenum cap);
+	GLboolean glIsFramebuffer_enc(void *self , GLuint framebuffer);
+	GLboolean glIsProgram_enc(void *self , GLuint program);
+	GLboolean glIsRenderbuffer_enc(void *self , GLuint renderbuffer);
+	GLboolean glIsShader_enc(void *self , GLuint shader);
+	GLboolean glIsTexture_enc(void *self , GLuint texture);
+	void glLineWidth_enc(void *self , GLfloat width);
+	void glLinkProgram_enc(void *self , GLuint program);
+	void glPixelStorei_enc(void *self , GLenum pname, GLint param);
+	void glPolygonOffset_enc(void *self , GLfloat factor, GLfloat units);
+	void glReadPixels_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
+	void glReleaseShaderCompiler_enc(void *self );
+	void glRenderbufferStorage_enc(void *self , GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+	void glSampleCoverage_enc(void *self , GLclampf value, GLboolean invert);
+	void glScissor_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height);
+	void glShaderBinary_enc(void *self , GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
+	void glShaderSource_enc(void *self , GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
+	void glStencilFunc_enc(void *self , GLenum func, GLint ref, GLuint mask);
+	void glStencilFuncSeparate_enc(void *self , GLenum face, GLenum func, GLint ref, GLuint mask);
+	void glStencilMask_enc(void *self , GLuint mask);
+	void glStencilMaskSeparate_enc(void *self , GLenum face, GLuint mask);
+	void glStencilOp_enc(void *self , GLenum fail, GLenum zfail, GLenum zpass);
+	void glStencilOpSeparate_enc(void *self , GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+	void glTexImage2D_enc(void *self , GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTexParameterf_enc(void *self , GLenum target, GLenum pname, GLfloat param);
+	void glTexParameterfv_enc(void *self , GLenum target, GLenum pname, const GLfloat* params);
+	void glTexParameteri_enc(void *self , GLenum target, GLenum pname, GLint param);
+	void glTexParameteriv_enc(void *self , GLenum target, GLenum pname, const GLint* params);
+	void glTexSubImage2D_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
+	void glUniform1f_enc(void *self , GLint location, GLfloat x);
+	void glUniform1fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v);
+	void glUniform1i_enc(void *self , GLint location, GLint x);
+	void glUniform1iv_enc(void *self , GLint location, GLsizei count, const GLint* v);
+	void glUniform2f_enc(void *self , GLint location, GLfloat x, GLfloat y);
+	void glUniform2fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v);
+	void glUniform2i_enc(void *self , GLint location, GLint x, GLint y);
+	void glUniform2iv_enc(void *self , GLint location, GLsizei count, const GLint* v);
+	void glUniform3f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z);
+	void glUniform3fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v);
+	void glUniform3i_enc(void *self , GLint location, GLint x, GLint y, GLint z);
+	void glUniform3iv_enc(void *self , GLint location, GLsizei count, const GLint* v);
+	void glUniform4f_enc(void *self , GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void glUniform4fv_enc(void *self , GLint location, GLsizei count, const GLfloat* v);
+	void glUniform4i_enc(void *self , GLint location, GLint x, GLint y, GLint z, GLint w);
+	void glUniform4iv_enc(void *self , GLint location, GLsizei count, const GLint* v);
+	void glUniformMatrix2fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+	void glUniformMatrix3fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+	void glUniformMatrix4fv_enc(void *self , GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+	void glUseProgram_enc(void *self , GLuint program);
+	void glValidateProgram_enc(void *self , GLuint program);
+	void glVertexAttrib1f_enc(void *self , GLuint indx, GLfloat x);
+	void glVertexAttrib1fv_enc(void *self , GLuint indx, const GLfloat* values);
+	void glVertexAttrib2f_enc(void *self , GLuint indx, GLfloat x, GLfloat y);
+	void glVertexAttrib2fv_enc(void *self , GLuint indx, const GLfloat* values);
+	void glVertexAttrib3f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+	void glVertexAttrib3fv_enc(void *self , GLuint indx, const GLfloat* values);
+	void glVertexAttrib4f_enc(void *self , GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void glVertexAttrib4fv_enc(void *self , GLuint indx, const GLfloat* values);
+	void glVertexAttribPointer_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
+	void glViewport_enc(void *self , GLint x, GLint y, GLsizei width, GLsizei height);
+	void glEGLImageTargetTexture2DOES_enc(void *self , GLenum target, GLeglImageOES image);
+	void glEGLImageTargetRenderbufferStorageOES_enc(void *self , GLenum target, GLeglImageOES image);
+	void glGetProgramBinaryOES_enc(void *self , GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+	void glProgramBinaryOES_enc(void *self , GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length);
+	void* glMapBufferOES_enc(void *self , GLenum target, GLenum access);
+	GLboolean glUnmapBufferOES_enc(void *self , GLenum target);
+	void glTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
+	void glCopyTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	void glCompressedTexImage3DOES_enc(void *self , GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+	void glCompressedTexSubImage3DOES_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
+	void glFramebufferTexture3DOES_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+	void glBindVertexArrayOES_enc(void *self , GLuint array);
+	void glDeleteVertexArraysOES_enc(void *self , GLsizei n, const GLuint* arrays);
+	void glGenVertexArraysOES_enc(void *self , GLsizei n, GLuint* arrays);
+	GLboolean glIsVertexArrayOES_enc(void *self , GLuint array);
+	void glDiscardFramebufferEXT_enc(void *self , GLenum target, GLsizei numAttachments, const GLenum* attachments);
+	void glMultiDrawArraysEXT_enc(void *self , GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
+	void glMultiDrawElementsEXT_enc(void *self , GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount);
+	void glGetPerfMonitorGroupsAMD_enc(void *self , GLint* numGroups, GLsizei groupsSize, GLuint* groups);
+	void glGetPerfMonitorCountersAMD_enc(void *self , GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters);
+	void glGetPerfMonitorGroupStringAMD_enc(void *self , GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString);
+	void glGetPerfMonitorCounterStringAMD_enc(void *self , GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString);
+	void glGetPerfMonitorCounterInfoAMD_enc(void *self , GLuint group, GLuint counter, GLenum pname, GLvoid* data);
+	void glGenPerfMonitorsAMD_enc(void *self , GLsizei n, GLuint* monitors);
+	void glDeletePerfMonitorsAMD_enc(void *self , GLsizei n, GLuint* monitors);
+	void glSelectPerfMonitorCountersAMD_enc(void *self , GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList);
+	void glBeginPerfMonitorAMD_enc(void *self , GLuint monitor);
+	void glEndPerfMonitorAMD_enc(void *self , GLuint monitor);
+	void glGetPerfMonitorCounterDataAMD_enc(void *self , GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten);
+	void glRenderbufferStorageMultisampleIMG_enc(void *self , GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+	void glFramebufferTexture2DMultisampleIMG_enc(void *self , GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+	void glDeleteFencesNV_enc(void *self , GLsizei n, const GLuint* fences);
+	void glGenFencesNV_enc(void *self , GLsizei n, GLuint* fences);
+	GLboolean glIsFenceNV_enc(void *self , GLuint fence);
+	GLboolean glTestFenceNV_enc(void *self , GLuint fence);
+	void glGetFenceivNV_enc(void *self , GLuint fence, GLenum pname, GLint* params);
+	void glFinishFenceNV_enc(void *self , GLuint fence);
+	void glSetFenceNV_enc(void *self , GLuint fence, GLenum condition);
+	void glCoverageMaskNV_enc(void *self , GLboolean mask);
+	void glCoverageOperationNV_enc(void *self , GLenum operation);
+	void glGetDriverControlsQCOM_enc(void *self , GLint* num, GLsizei size, GLuint* driverControls);
+	void glGetDriverControlStringQCOM_enc(void *self , GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
+	void glEnableDriverControlQCOM_enc(void *self , GLuint driverControl);
+	void glDisableDriverControlQCOM_enc(void *self , GLuint driverControl);
+	void glExtGetTexturesQCOM_enc(void *self , GLuint* textures, GLint maxTextures, GLint* numTextures);
+	void glExtGetBuffersQCOM_enc(void *self , GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
+	void glExtGetRenderbuffersQCOM_enc(void *self , GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
+	void glExtGetFramebuffersQCOM_enc(void *self , GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
+	void glExtGetTexLevelParameterivQCOM_enc(void *self , GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
+	void glExtTexObjectStateOverrideiQCOM_enc(void *self , GLenum target, GLenum pname, GLint param);
+	void glExtGetTexSubImageQCOM_enc(void *self , GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels);
+	void glExtGetBufferPointervQCOM_enc(void *self , GLenum target, GLvoidptr* params);
+	void glExtGetShadersQCOM_enc(void *self , GLuint* shaders, GLint maxShaders, GLint* numShaders);
+	void glExtGetProgramsQCOM_enc(void *self , GLuint* programs, GLint maxPrograms, GLint* numPrograms);
+	GLboolean glExtIsProgramBinaryQCOM_enc(void *self , GLuint program);
+	void glExtGetProgramBinarySourceQCOM_enc(void *self , GLuint program, GLenum shadertype, GLchar* source, GLint* length);
+	void glStartTilingQCOM_enc(void *self , GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
+	void glEndTilingQCOM_enc(void *self , GLbitfield preserveMask);
+	void glVertexAttribPointerData_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen);
+	void glVertexAttribPointerOffset_enc(void *self , GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset);
+	void glDrawElementsOffset_enc(void *self , GLenum mode, GLsizei count, GLenum type, GLuint offset);
+	void glDrawElementsData_enc(void *self , GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
+	void glGetCompressedTextureFormats_enc(void *self , int count, GLint* formats);
+	void glShaderString_enc(void *self , GLuint shader, const GLchar* string, GLsizei len);
+	int glFinishRoundTrip_enc(void *self );
+};
+#endif
\ No newline at end of file
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_entry.cpp b/tools/emulator/opengl/system/GLESv2_enc/gl2_entry.cpp
new file mode 100644
index 0000000..f98fe75
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_entry.cpp
@@ -0,0 +1,1483 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#include <stdio.h>
+#include <stdlib.h>
+#include "gl2_client_context.h"
+
+#ifndef GL_TRUE
+extern "C" {
+	void glActiveTexture(GLenum texture);
+	void glAttachShader(GLuint program, GLuint shader);
+	void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name);
+	void glBindBuffer(GLenum target, GLuint buffer);
+	void glBindFramebuffer(GLenum target, GLuint framebuffer);
+	void glBindRenderbuffer(GLenum target, GLuint renderbuffer);
+	void glBindTexture(GLenum target, GLuint texture);
+	void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void glBlendEquation(GLenum mode);
+	void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
+	void glBlendFunc(GLenum sfactor, GLenum dfactor);
+	void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+	void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage);
+	void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
+	GLenum glCheckFramebufferStatus(GLenum target);
+	void glClear(GLbitfield mask);
+	void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+	void glClearDepthf(GLclampf depth);
+	void glClearStencil(GLint s);
+	void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+	void glCompileShader(GLuint shader);
+	void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data);
+	void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data);
+	void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+	void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	GLuint glCreateProgram();
+	GLuint glCreateShader(GLenum type);
+	void glCullFace(GLenum mode);
+	void glDeleteBuffers(GLsizei n, const GLuint* buffers);
+	void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers);
+	void glDeleteProgram(GLuint program);
+	void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers);
+	void glDeleteShader(GLuint shader);
+	void glDeleteTextures(GLsizei n, const GLuint* textures);
+	void glDepthFunc(GLenum func);
+	void glDepthMask(GLboolean flag);
+	void glDepthRangef(GLclampf zNear, GLclampf zFar);
+	void glDetachShader(GLuint program, GLuint shader);
+	void glDisable(GLenum cap);
+	void glDisableVertexAttribArray(GLuint index);
+	void glDrawArrays(GLenum mode, GLint first, GLsizei count);
+	void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices);
+	void glEnable(GLenum cap);
+	void glEnableVertexAttribArray(GLuint index);
+	void glFinish();
+	void glFlush();
+	void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+	void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+	void glFrontFace(GLenum mode);
+	void glGenBuffers(GLsizei n, GLuint* buffers);
+	void glGenerateMipmap(GLenum target);
+	void glGenFramebuffers(GLsizei n, GLuint* framebuffers);
+	void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers);
+	void glGenTextures(GLsizei n, GLuint* textures);
+	void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+	void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name);
+	void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
+	int glGetAttribLocation(GLuint program, const GLchar* name);
+	void glGetBooleanv(GLenum pname, GLboolean* params);
+	void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params);
+	GLenum glGetError();
+	void glGetFloatv(GLenum pname, GLfloat* params);
+	void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params);
+	void glGetIntegerv(GLenum pname, GLint* params);
+	void glGetProgramiv(GLuint program, GLenum pname, GLint* params);
+	void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog);
+	void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params);
+	void glGetShaderiv(GLuint shader, GLenum pname, GLint* params);
+	void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog);
+	void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
+	void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source);
+	const GLubyte* glGetString(GLenum name);
+	void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params);
+	void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params);
+	void glGetUniformfv(GLuint program, GLint location, GLfloat* params);
+	void glGetUniformiv(GLuint program, GLint location, GLint* params);
+	int glGetUniformLocation(GLuint program, const GLchar* name);
+	void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params);
+	void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params);
+	void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer);
+	void glHint(GLenum target, GLenum mode);
+	GLboolean glIsBuffer(GLuint buffer);
+	GLboolean glIsEnabled(GLenum cap);
+	GLboolean glIsFramebuffer(GLuint framebuffer);
+	GLboolean glIsProgram(GLuint program);
+	GLboolean glIsRenderbuffer(GLuint renderbuffer);
+	GLboolean glIsShader(GLuint shader);
+	GLboolean glIsTexture(GLuint texture);
+	void glLineWidth(GLfloat width);
+	void glLinkProgram(GLuint program);
+	void glPixelStorei(GLenum pname, GLint param);
+	void glPolygonOffset(GLfloat factor, GLfloat units);
+	void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
+	void glReleaseShaderCompiler();
+	void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+	void glSampleCoverage(GLclampf value, GLboolean invert);
+	void glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
+	void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
+	void glShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length);
+	void glStencilFunc(GLenum func, GLint ref, GLuint mask);
+	void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
+	void glStencilMask(GLuint mask);
+	void glStencilMaskSeparate(GLenum face, GLuint mask);
+	void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
+	void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
+	void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTexParameterf(GLenum target, GLenum pname, GLfloat param);
+	void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params);
+	void glTexParameteri(GLenum target, GLenum pname, GLint param);
+	void glTexParameteriv(GLenum target, GLenum pname, const GLint* params);
+	void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels);
+	void glUniform1f(GLint location, GLfloat x);
+	void glUniform1fv(GLint location, GLsizei count, const GLfloat* v);
+	void glUniform1i(GLint location, GLint x);
+	void glUniform1iv(GLint location, GLsizei count, const GLint* v);
+	void glUniform2f(GLint location, GLfloat x, GLfloat y);
+	void glUniform2fv(GLint location, GLsizei count, const GLfloat* v);
+	void glUniform2i(GLint location, GLint x, GLint y);
+	void glUniform2iv(GLint location, GLsizei count, const GLint* v);
+	void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z);
+	void glUniform3fv(GLint location, GLsizei count, const GLfloat* v);
+	void glUniform3i(GLint location, GLint x, GLint y, GLint z);
+	void glUniform3iv(GLint location, GLsizei count, const GLint* v);
+	void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void glUniform4fv(GLint location, GLsizei count, const GLfloat* v);
+	void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w);
+	void glUniform4iv(GLint location, GLsizei count, const GLint* v);
+	void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+	void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+	void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+	void glUseProgram(GLuint program);
+	void glValidateProgram(GLuint program);
+	void glVertexAttrib1f(GLuint indx, GLfloat x);
+	void glVertexAttrib1fv(GLuint indx, const GLfloat* values);
+	void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
+	void glVertexAttrib2fv(GLuint indx, const GLfloat* values);
+	void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
+	void glVertexAttrib3fv(GLuint indx, const GLfloat* values);
+	void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+	void glVertexAttrib4fv(GLuint indx, const GLfloat* values);
+	void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
+	void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
+	void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image);
+	void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
+	void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+	void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length);
+	void* glMapBufferOES(GLenum target, GLenum access);
+	GLboolean glUnmapBufferOES(GLenum target);
+	void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+	void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
+	void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+	void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+	void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
+	void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+	void glBindVertexArrayOES(GLuint array);
+	void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays);
+	void glGenVertexArraysOES(GLsizei n, GLuint* arrays);
+	GLboolean glIsVertexArrayOES(GLuint array);
+	void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments);
+	void glMultiDrawArraysEXT(GLenum mode, GLint* first, GLsizei* count, GLsizei primcount);
+	void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount);
+	void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups);
+	void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters);
+	void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString);
+	void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString);
+	void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data);
+	void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors);
+	void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors);
+	void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList);
+	void glBeginPerfMonitorAMD(GLuint monitor);
+	void glEndPerfMonitorAMD(GLuint monitor);
+	void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten);
+	void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+	void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+	void glDeleteFencesNV(GLsizei n, const GLuint* fences);
+	void glGenFencesNV(GLsizei n, GLuint* fences);
+	GLboolean glIsFenceNV(GLuint fence);
+	GLboolean glTestFenceNV(GLuint fence);
+	void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params);
+	void glFinishFenceNV(GLuint fence);
+	void glSetFenceNV(GLuint fence, GLenum condition);
+	void glCoverageMaskNV(GLboolean mask);
+	void glCoverageOperationNV(GLenum operation);
+	void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls);
+	void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString);
+	void glEnableDriverControlQCOM(GLuint driverControl);
+	void glDisableDriverControlQCOM(GLuint driverControl);
+	void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures);
+	void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers);
+	void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers);
+	void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers);
+	void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params);
+	void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param);
+	void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels);
+	void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params);
+	void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders);
+	void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms);
+	GLboolean glExtIsProgramBinaryQCOM(GLuint program);
+	void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length);
+	void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
+	void glEndTilingQCOM(GLbitfield preserveMask);
+	void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen);
+	void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset);
+	void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset);
+	void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen);
+	void glGetCompressedTextureFormats(int count, GLint* formats);
+	void glShaderString(GLuint shader, const GLchar* string, GLsizei len);
+	int glFinishRoundTrip();
+};
+
+#endif
+#ifndef GET_CONTEXT
+static gl2_client_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL;
+void gl2_client_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; }
+#define GET_CONTEXT gl2_client_context_t * ctx = getCurrentContext() 
+#endif
+
+void glActiveTexture(GLenum texture)
+{
+	GET_CONTEXT; 
+	 ctx->glActiveTexture(ctx, texture);
+}
+
+void glAttachShader(GLuint program, GLuint shader)
+{
+	GET_CONTEXT; 
+	 ctx->glAttachShader(ctx, program, shader);
+}
+
+void glBindAttribLocation(GLuint program, GLuint index, const GLchar* name)
+{
+	GET_CONTEXT; 
+	 ctx->glBindAttribLocation(ctx, program, index, name);
+}
+
+void glBindBuffer(GLenum target, GLuint buffer)
+{
+	GET_CONTEXT; 
+	 ctx->glBindBuffer(ctx, target, buffer);
+}
+
+void glBindFramebuffer(GLenum target, GLuint framebuffer)
+{
+	GET_CONTEXT; 
+	 ctx->glBindFramebuffer(ctx, target, framebuffer);
+}
+
+void glBindRenderbuffer(GLenum target, GLuint renderbuffer)
+{
+	GET_CONTEXT; 
+	 ctx->glBindRenderbuffer(ctx, target, renderbuffer);
+}
+
+void glBindTexture(GLenum target, GLuint texture)
+{
+	GET_CONTEXT; 
+	 ctx->glBindTexture(ctx, target, texture);
+}
+
+void glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendColor(ctx, red, green, blue, alpha);
+}
+
+void glBlendEquation(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendEquation(ctx, mode);
+}
+
+void glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendEquationSeparate(ctx, modeRGB, modeAlpha);
+}
+
+void glBlendFunc(GLenum sfactor, GLenum dfactor)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendFunc(ctx, sfactor, dfactor);
+}
+
+void glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+{
+	GET_CONTEXT; 
+	 ctx->glBlendFuncSeparate(ctx, srcRGB, dstRGB, srcAlpha, dstAlpha);
+}
+
+void glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage)
+{
+	GET_CONTEXT; 
+	 ctx->glBufferData(ctx, target, size, data, usage);
+}
+
+void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glBufferSubData(ctx, target, offset, size, data);
+}
+
+GLenum glCheckFramebufferStatus(GLenum target)
+{
+	GET_CONTEXT; 
+	 return ctx->glCheckFramebufferStatus(ctx, target);
+}
+
+void glClear(GLbitfield mask)
+{
+	GET_CONTEXT; 
+	 ctx->glClear(ctx, mask);
+}
+
+void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glClearColor(ctx, red, green, blue, alpha);
+}
+
+void glClearDepthf(GLclampf depth)
+{
+	GET_CONTEXT; 
+	 ctx->glClearDepthf(ctx, depth);
+}
+
+void glClearStencil(GLint s)
+{
+	GET_CONTEXT; 
+	 ctx->glClearStencil(ctx, s);
+}
+
+void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
+{
+	GET_CONTEXT; 
+	 ctx->glColorMask(ctx, red, green, blue, alpha);
+}
+
+void glCompileShader(GLuint shader)
+{
+	GET_CONTEXT; 
+	 ctx->glCompileShader(ctx, shader);
+}
+
+void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glCompressedTexImage2D(ctx, target, level, internalformat, width, height, border, imageSize, data);
+}
+
+void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glCompressedTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, imageSize, data);
+}
+
+void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
+{
+	GET_CONTEXT; 
+	 ctx->glCopyTexImage2D(ctx, target, level, internalformat, x, y, width, height, border);
+}
+
+void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glCopyTexSubImage2D(ctx, target, level, xoffset, yoffset, x, y, width, height);
+}
+
+GLuint glCreateProgram()
+{
+	GET_CONTEXT; 
+	 return ctx->glCreateProgram(ctx);
+}
+
+GLuint glCreateShader(GLenum type)
+{
+	GET_CONTEXT; 
+	 return ctx->glCreateShader(ctx, type);
+}
+
+void glCullFace(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glCullFace(ctx, mode);
+}
+
+void glDeleteBuffers(GLsizei n, const GLuint* buffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteBuffers(ctx, n, buffers);
+}
+
+void glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteFramebuffers(ctx, n, framebuffers);
+}
+
+void glDeleteProgram(GLuint program)
+{
+	GET_CONTEXT; 
+	 ctx->glDeleteProgram(ctx, program);
+}
+
+void glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteRenderbuffers(ctx, n, renderbuffers);
+}
+
+void glDeleteShader(GLuint shader)
+{
+	GET_CONTEXT; 
+	 ctx->glDeleteShader(ctx, shader);
+}
+
+void glDeleteTextures(GLsizei n, const GLuint* textures)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteTextures(ctx, n, textures);
+}
+
+void glDepthFunc(GLenum func)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthFunc(ctx, func);
+}
+
+void glDepthMask(GLboolean flag)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthMask(ctx, flag);
+}
+
+void glDepthRangef(GLclampf zNear, GLclampf zFar)
+{
+	GET_CONTEXT; 
+	 ctx->glDepthRangef(ctx, zNear, zFar);
+}
+
+void glDetachShader(GLuint program, GLuint shader)
+{
+	GET_CONTEXT; 
+	 ctx->glDetachShader(ctx, program, shader);
+}
+
+void glDisable(GLenum cap)
+{
+	GET_CONTEXT; 
+	 ctx->glDisable(ctx, cap);
+}
+
+void glDisableVertexAttribArray(GLuint index)
+{
+	GET_CONTEXT; 
+	 ctx->glDisableVertexAttribArray(ctx, index);
+}
+
+void glDrawArrays(GLenum mode, GLint first, GLsizei count)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawArrays(ctx, mode, first, count);
+}
+
+void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawElements(ctx, mode, count, type, indices);
+}
+
+void glEnable(GLenum cap)
+{
+	GET_CONTEXT; 
+	 ctx->glEnable(ctx, cap);
+}
+
+void glEnableVertexAttribArray(GLuint index)
+{
+	GET_CONTEXT; 
+	 ctx->glEnableVertexAttribArray(ctx, index);
+}
+
+void glFinish()
+{
+	GET_CONTEXT; 
+	 ctx->glFinish(ctx);
+}
+
+void glFlush()
+{
+	GET_CONTEXT; 
+	 ctx->glFlush(ctx);
+}
+
+void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferRenderbuffer(ctx, target, attachment, renderbuffertarget, renderbuffer);
+}
+
+void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferTexture2D(ctx, target, attachment, textarget, texture, level);
+}
+
+void glFrontFace(GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glFrontFace(ctx, mode);
+}
+
+void glGenBuffers(GLsizei n, GLuint* buffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenBuffers(ctx, n, buffers);
+}
+
+void glGenerateMipmap(GLenum target)
+{
+	GET_CONTEXT; 
+	 ctx->glGenerateMipmap(ctx, target);
+}
+
+void glGenFramebuffers(GLsizei n, GLuint* framebuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenFramebuffers(ctx, n, framebuffers);
+}
+
+void glGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenRenderbuffers(ctx, n, renderbuffers);
+}
+
+void glGenTextures(GLsizei n, GLuint* textures)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenTextures(ctx, n, textures);
+}
+
+void glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
+{
+	GET_CONTEXT; 
+	 ctx->glGetActiveAttrib(ctx, program, index, bufsize, length, size, type, name);
+}
+
+void glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name)
+{
+	GET_CONTEXT; 
+	 ctx->glGetActiveUniform(ctx, program, index, bufsize, length, size, type, name);
+}
+
+void glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+{
+	GET_CONTEXT; 
+	 ctx->glGetAttachedShaders(ctx, program, maxcount, count, shaders);
+}
+
+int glGetAttribLocation(GLuint program, const GLchar* name)
+{
+	GET_CONTEXT; 
+	 return ctx->glGetAttribLocation(ctx, program, name);
+}
+
+void glGetBooleanv(GLenum pname, GLboolean* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetBooleanv(ctx, pname, params);
+}
+
+void glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetBufferParameteriv(ctx, target, pname, params);
+}
+
+GLenum glGetError()
+{
+	GET_CONTEXT; 
+	 return ctx->glGetError(ctx);
+}
+
+void glGetFloatv(GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFloatv(ctx, pname, params);
+}
+
+void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFramebufferAttachmentParameteriv(ctx, target, attachment, pname, params);
+}
+
+void glGetIntegerv(GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetIntegerv(ctx, pname, params);
+}
+
+void glGetProgramiv(GLuint program, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetProgramiv(ctx, program, pname, params);
+}
+
+void glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog)
+{
+	GET_CONTEXT; 
+	 ctx->glGetProgramInfoLog(ctx, program, bufsize, length, infolog);
+}
+
+void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetRenderbufferParameteriv(ctx, target, pname, params);
+}
+
+void glGetShaderiv(GLuint shader, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetShaderiv(ctx, shader, pname, params);
+}
+
+void glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog)
+{
+	GET_CONTEXT; 
+	 ctx->glGetShaderInfoLog(ctx, shader, bufsize, length, infolog);
+}
+
+void glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+{
+	GET_CONTEXT; 
+	 ctx->glGetShaderPrecisionFormat(ctx, shadertype, precisiontype, range, precision);
+}
+
+void glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source)
+{
+	GET_CONTEXT; 
+	 ctx->glGetShaderSource(ctx, shader, bufsize, length, source);
+}
+
+const GLubyte* glGetString(GLenum name)
+{
+	GET_CONTEXT; 
+	 return ctx->glGetString(ctx, name);
+}
+
+void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexParameterfv(ctx, target, pname, params);
+}
+
+void glGetTexParameteriv(GLenum target, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetTexParameteriv(ctx, target, pname, params);
+}
+
+void glGetUniformfv(GLuint program, GLint location, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetUniformfv(ctx, program, location, params);
+}
+
+void glGetUniformiv(GLuint program, GLint location, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetUniformiv(ctx, program, location, params);
+}
+
+int glGetUniformLocation(GLuint program, const GLchar* name)
+{
+	GET_CONTEXT; 
+	 return ctx->glGetUniformLocation(ctx, program, name);
+}
+
+void glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetVertexAttribfv(ctx, index, pname, params);
+}
+
+void glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetVertexAttribiv(ctx, index, pname, params);
+}
+
+void glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer)
+{
+	GET_CONTEXT; 
+	 ctx->glGetVertexAttribPointerv(ctx, index, pname, pointer);
+}
+
+void glHint(GLenum target, GLenum mode)
+{
+	GET_CONTEXT; 
+	 ctx->glHint(ctx, target, mode);
+}
+
+GLboolean glIsBuffer(GLuint buffer)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsBuffer(ctx, buffer);
+}
+
+GLboolean glIsEnabled(GLenum cap)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsEnabled(ctx, cap);
+}
+
+GLboolean glIsFramebuffer(GLuint framebuffer)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsFramebuffer(ctx, framebuffer);
+}
+
+GLboolean glIsProgram(GLuint program)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsProgram(ctx, program);
+}
+
+GLboolean glIsRenderbuffer(GLuint renderbuffer)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsRenderbuffer(ctx, renderbuffer);
+}
+
+GLboolean glIsShader(GLuint shader)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsShader(ctx, shader);
+}
+
+GLboolean glIsTexture(GLuint texture)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsTexture(ctx, texture);
+}
+
+void glLineWidth(GLfloat width)
+{
+	GET_CONTEXT; 
+	 ctx->glLineWidth(ctx, width);
+}
+
+void glLinkProgram(GLuint program)
+{
+	GET_CONTEXT; 
+	 ctx->glLinkProgram(ctx, program);
+}
+
+void glPixelStorei(GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glPixelStorei(ctx, pname, param);
+}
+
+void glPolygonOffset(GLfloat factor, GLfloat units)
+{
+	GET_CONTEXT; 
+	 ctx->glPolygonOffset(ctx, factor, units);
+}
+
+void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glReadPixels(ctx, x, y, width, height, format, type, pixels);
+}
+
+void glReleaseShaderCompiler()
+{
+	GET_CONTEXT; 
+	 ctx->glReleaseShaderCompiler(ctx);
+}
+
+void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glRenderbufferStorage(ctx, target, internalformat, width, height);
+}
+
+void glSampleCoverage(GLclampf value, GLboolean invert)
+{
+	GET_CONTEXT; 
+	 ctx->glSampleCoverage(ctx, value, invert);
+}
+
+void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glScissor(ctx, x, y, width, height);
+}
+
+void glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length)
+{
+	GET_CONTEXT; 
+	 ctx->glShaderBinary(ctx, n, shaders, binaryformat, binary, length);
+}
+
+void glShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length)
+{
+	GET_CONTEXT; 
+	 ctx->glShaderSource(ctx, shader, count, string, length);
+}
+
+void glStencilFunc(GLenum func, GLint ref, GLuint mask)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilFunc(ctx, func, ref, mask);
+}
+
+void glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilFuncSeparate(ctx, face, func, ref, mask);
+}
+
+void glStencilMask(GLuint mask)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilMask(ctx, mask);
+}
+
+void glStencilMaskSeparate(GLenum face, GLuint mask)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilMaskSeparate(ctx, face, mask);
+}
+
+void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilOp(ctx, fail, zfail, zpass);
+}
+
+void glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+{
+	GET_CONTEXT; 
+	 ctx->glStencilOpSeparate(ctx, face, fail, zfail, zpass);
+}
+
+void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glTexImage2D(ctx, target, level, internalformat, width, height, border, format, type, pixels);
+}
+
+void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterf(ctx, target, pname, param);
+}
+
+void glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameterfv(ctx, target, pname, params);
+}
+
+void glTexParameteri(GLenum target, GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameteri(ctx, target, pname, param);
+}
+
+void glTexParameteriv(GLenum target, GLenum pname, const GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glTexParameteriv(ctx, target, pname, params);
+}
+
+void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glTexSubImage2D(ctx, target, level, xoffset, yoffset, width, height, format, type, pixels);
+}
+
+void glUniform1f(GLint location, GLfloat x)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform1f(ctx, location, x);
+}
+
+void glUniform1fv(GLint location, GLsizei count, const GLfloat* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform1fv(ctx, location, count, v);
+}
+
+void glUniform1i(GLint location, GLint x)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform1i(ctx, location, x);
+}
+
+void glUniform1iv(GLint location, GLsizei count, const GLint* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform1iv(ctx, location, count, v);
+}
+
+void glUniform2f(GLint location, GLfloat x, GLfloat y)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform2f(ctx, location, x, y);
+}
+
+void glUniform2fv(GLint location, GLsizei count, const GLfloat* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform2fv(ctx, location, count, v);
+}
+
+void glUniform2i(GLint location, GLint x, GLint y)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform2i(ctx, location, x, y);
+}
+
+void glUniform2iv(GLint location, GLsizei count, const GLint* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform2iv(ctx, location, count, v);
+}
+
+void glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform3f(ctx, location, x, y, z);
+}
+
+void glUniform3fv(GLint location, GLsizei count, const GLfloat* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform3fv(ctx, location, count, v);
+}
+
+void glUniform3i(GLint location, GLint x, GLint y, GLint z)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform3i(ctx, location, x, y, z);
+}
+
+void glUniform3iv(GLint location, GLsizei count, const GLint* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform3iv(ctx, location, count, v);
+}
+
+void glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform4f(ctx, location, x, y, z, w);
+}
+
+void glUniform4fv(GLint location, GLsizei count, const GLfloat* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform4fv(ctx, location, count, v);
+}
+
+void glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform4i(ctx, location, x, y, z, w);
+}
+
+void glUniform4iv(GLint location, GLsizei count, const GLint* v)
+{
+	GET_CONTEXT; 
+	 ctx->glUniform4iv(ctx, location, count, v);
+}
+
+void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+	GET_CONTEXT; 
+	 ctx->glUniformMatrix2fv(ctx, location, count, transpose, value);
+}
+
+void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+	GET_CONTEXT; 
+	 ctx->glUniformMatrix3fv(ctx, location, count, transpose, value);
+}
+
+void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+{
+	GET_CONTEXT; 
+	 ctx->glUniformMatrix4fv(ctx, location, count, transpose, value);
+}
+
+void glUseProgram(GLuint program)
+{
+	GET_CONTEXT; 
+	 ctx->glUseProgram(ctx, program);
+}
+
+void glValidateProgram(GLuint program)
+{
+	GET_CONTEXT; 
+	 ctx->glValidateProgram(ctx, program);
+}
+
+void glVertexAttrib1f(GLuint indx, GLfloat x)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib1f(ctx, indx, x);
+}
+
+void glVertexAttrib1fv(GLuint indx, const GLfloat* values)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib1fv(ctx, indx, values);
+}
+
+void glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib2f(ctx, indx, x, y);
+}
+
+void glVertexAttrib2fv(GLuint indx, const GLfloat* values)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib2fv(ctx, indx, values);
+}
+
+void glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib3f(ctx, indx, x, y, z);
+}
+
+void glVertexAttrib3fv(GLuint indx, const GLfloat* values)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib3fv(ctx, indx, values);
+}
+
+void glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib4f(ctx, indx, x, y, z, w);
+}
+
+void glVertexAttrib4fv(GLuint indx, const GLfloat* values)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttrib4fv(ctx, indx, values);
+}
+
+void glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttribPointer(ctx, indx, size, type, normalized, stride, ptr);
+}
+
+void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glViewport(ctx, x, y, width, height);
+}
+
+void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
+{
+	GET_CONTEXT; 
+	 ctx->glEGLImageTargetTexture2DOES(ctx, target, image);
+}
+
+void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
+{
+	GET_CONTEXT; 
+	 ctx->glEGLImageTargetRenderbufferStorageOES(ctx, target, image);
+}
+
+void glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary)
+{
+	GET_CONTEXT; 
+	 ctx->glGetProgramBinaryOES(ctx, program, bufSize, length, binaryFormat, binary);
+}
+
+void glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLint length)
+{
+	GET_CONTEXT; 
+	 ctx->glProgramBinaryOES(ctx, program, binaryFormat, binary, length);
+}
+
+void* glMapBufferOES(GLenum target, GLenum access)
+{
+	GET_CONTEXT; 
+	 return ctx->glMapBufferOES(ctx, target, access);
+}
+
+GLboolean glUnmapBufferOES(GLenum target)
+{
+	GET_CONTEXT; 
+	 return ctx->glUnmapBufferOES(ctx, target);
+}
+
+void glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, format, type, pixels);
+}
+
+void glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->glTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+}
+
+void glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glCopyTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, x, y, width, height);
+}
+
+void glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glCompressedTexImage3DOES(ctx, target, level, internalformat, width, height, depth, border, imageSize, data);
+}
+
+void glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glCompressedTexSubImage3DOES(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+}
+
+void glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferTexture3DOES(ctx, target, attachment, textarget, texture, level, zoffset);
+}
+
+void glBindVertexArrayOES(GLuint array)
+{
+	GET_CONTEXT; 
+	 ctx->glBindVertexArrayOES(ctx, array);
+}
+
+void glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glDeleteVertexArraysOES(ctx, n, arrays);
+}
+
+void glGenVertexArraysOES(GLsizei n, GLuint* arrays)
+{
+	GET_CONTEXT; 
+	 if(n<0){ ctx->setError(GL_INVALID_VALUE); return; }
+	 ctx->glGenVertexArraysOES(ctx, n, arrays);
+}
+
+GLboolean glIsVertexArrayOES(GLuint array)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsVertexArrayOES(ctx, array);
+}
+
+void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum* attachments)
+{
+	GET_CONTEXT; 
+	 ctx->glDiscardFramebufferEXT(ctx, target, numAttachments, attachments);
+}
+
+void glMultiDrawArraysEXT(GLenum mode, GLint* first, GLsizei* count, GLsizei primcount)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiDrawArraysEXT(ctx, mode, first, count, primcount);
+}
+
+void glMultiDrawElementsEXT(GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount)
+{
+	GET_CONTEXT; 
+	 ctx->glMultiDrawElementsEXT(ctx, mode, count, type, indices, primcount);
+}
+
+void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPerfMonitorGroupsAMD(ctx, numGroups, groupsSize, groups);
+}
+
+void glGetPerfMonitorCountersAMD(GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPerfMonitorCountersAMD(ctx, group, numCounters, maxActiveCounters, counterSize, counters);
+}
+
+void glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei* length, GLchar* groupString)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPerfMonitorGroupStringAMD(ctx, group, bufSize, length, groupString);
+}
+
+void glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, GLchar* counterString)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPerfMonitorCounterStringAMD(ctx, group, counter, bufSize, length, counterString);
+}
+
+void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid* data)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPerfMonitorCounterInfoAMD(ctx, group, counter, pname, data);
+}
+
+void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors)
+{
+	GET_CONTEXT; 
+	 ctx->glGenPerfMonitorsAMD(ctx, n, monitors);
+}
+
+void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors)
+{
+	GET_CONTEXT; 
+	 ctx->glDeletePerfMonitorsAMD(ctx, n, monitors);
+}
+
+void glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList)
+{
+	GET_CONTEXT; 
+	 ctx->glSelectPerfMonitorCountersAMD(ctx, monitor, enable, group, numCounters, countersList);
+}
+
+void glBeginPerfMonitorAMD(GLuint monitor)
+{
+	GET_CONTEXT; 
+	 ctx->glBeginPerfMonitorAMD(ctx, monitor);
+}
+
+void glEndPerfMonitorAMD(GLuint monitor)
+{
+	GET_CONTEXT; 
+	 ctx->glEndPerfMonitorAMD(ctx, monitor);
+}
+
+void glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten)
+{
+	GET_CONTEXT; 
+	 ctx->glGetPerfMonitorCounterDataAMD(ctx, monitor, pname, dataSize, data, bytesWritten);
+}
+
+void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
+{
+	GET_CONTEXT; 
+	 ctx->glRenderbufferStorageMultisampleIMG(ctx, target, samples, internalformat, width, height);
+}
+
+void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
+{
+	GET_CONTEXT; 
+	 ctx->glFramebufferTexture2DMultisampleIMG(ctx, target, attachment, textarget, texture, level, samples);
+}
+
+void glDeleteFencesNV(GLsizei n, const GLuint* fences)
+{
+	GET_CONTEXT; 
+	 ctx->glDeleteFencesNV(ctx, n, fences);
+}
+
+void glGenFencesNV(GLsizei n, GLuint* fences)
+{
+	GET_CONTEXT; 
+	 ctx->glGenFencesNV(ctx, n, fences);
+}
+
+GLboolean glIsFenceNV(GLuint fence)
+{
+	GET_CONTEXT; 
+	 return ctx->glIsFenceNV(ctx, fence);
+}
+
+GLboolean glTestFenceNV(GLuint fence)
+{
+	GET_CONTEXT; 
+	 return ctx->glTestFenceNV(ctx, fence);
+}
+
+void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glGetFenceivNV(ctx, fence, pname, params);
+}
+
+void glFinishFenceNV(GLuint fence)
+{
+	GET_CONTEXT; 
+	 ctx->glFinishFenceNV(ctx, fence);
+}
+
+void glSetFenceNV(GLuint fence, GLenum condition)
+{
+	GET_CONTEXT; 
+	 ctx->glSetFenceNV(ctx, fence, condition);
+}
+
+void glCoverageMaskNV(GLboolean mask)
+{
+	GET_CONTEXT; 
+	 ctx->glCoverageMaskNV(ctx, mask);
+}
+
+void glCoverageOperationNV(GLenum operation)
+{
+	GET_CONTEXT; 
+	 ctx->glCoverageOperationNV(ctx, operation);
+}
+
+void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls)
+{
+	GET_CONTEXT; 
+	 ctx->glGetDriverControlsQCOM(ctx, num, size, driverControls);
+}
+
+void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei* length, GLchar* driverControlString)
+{
+	GET_CONTEXT; 
+	 ctx->glGetDriverControlStringQCOM(ctx, driverControl, bufSize, length, driverControlString);
+}
+
+void glEnableDriverControlQCOM(GLuint driverControl)
+{
+	GET_CONTEXT; 
+	 ctx->glEnableDriverControlQCOM(ctx, driverControl);
+}
+
+void glDisableDriverControlQCOM(GLuint driverControl)
+{
+	GET_CONTEXT; 
+	 ctx->glDisableDriverControlQCOM(ctx, driverControl);
+}
+
+void glExtGetTexturesQCOM(GLuint* textures, GLint maxTextures, GLint* numTextures)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetTexturesQCOM(ctx, textures, maxTextures, numTextures);
+}
+
+void glExtGetBuffersQCOM(GLuint* buffers, GLint maxBuffers, GLint* numBuffers)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetBuffersQCOM(ctx, buffers, maxBuffers, numBuffers);
+}
+
+void glExtGetRenderbuffersQCOM(GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetRenderbuffersQCOM(ctx, renderbuffers, maxRenderbuffers, numRenderbuffers);
+}
+
+void glExtGetFramebuffersQCOM(GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetFramebuffersQCOM(ctx, framebuffers, maxFramebuffers, numFramebuffers);
+}
+
+void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetTexLevelParameterivQCOM(ctx, texture, face, level, pname, params);
+}
+
+void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
+{
+	GET_CONTEXT; 
+	 ctx->glExtTexObjectStateOverrideiQCOM(ctx, target, pname, param);
+}
+
+void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid* texels)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetTexSubImageQCOM(ctx, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
+}
+
+void glExtGetBufferPointervQCOM(GLenum target, GLvoidptr* params)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetBufferPointervQCOM(ctx, target, params);
+}
+
+void glExtGetShadersQCOM(GLuint* shaders, GLint maxShaders, GLint* numShaders)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetShadersQCOM(ctx, shaders, maxShaders, numShaders);
+}
+
+void glExtGetProgramsQCOM(GLuint* programs, GLint maxPrograms, GLint* numPrograms)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetProgramsQCOM(ctx, programs, maxPrograms, numPrograms);
+}
+
+GLboolean glExtIsProgramBinaryQCOM(GLuint program)
+{
+	GET_CONTEXT; 
+	 return ctx->glExtIsProgramBinaryQCOM(ctx, program);
+}
+
+void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar* source, GLint* length)
+{
+	GET_CONTEXT; 
+	 ctx->glExtGetProgramBinarySourceQCOM(ctx, program, shadertype, source, length);
+}
+
+void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
+{
+	GET_CONTEXT; 
+	 ctx->glStartTilingQCOM(ctx, x, y, width, height, preserveMask);
+}
+
+void glEndTilingQCOM(GLbitfield preserveMask)
+{
+	GET_CONTEXT; 
+	 ctx->glEndTilingQCOM(ctx, preserveMask);
+}
+
+void glVertexAttribPointerData(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttribPointerData(ctx, indx, size, type, normalized, stride, data, datalen);
+}
+
+void glVertexAttribPointerOffset(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glVertexAttribPointerOffset(ctx, indx, size, type, normalized, stride, offset);
+}
+
+void glDrawElementsOffset(GLenum mode, GLsizei count, GLenum type, GLuint offset)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawElementsOffset(ctx, mode, count, type, offset);
+}
+
+void glDrawElementsData(GLenum mode, GLsizei count, GLenum type, void* data, GLuint datalen)
+{
+	GET_CONTEXT; 
+	 ctx->glDrawElementsData(ctx, mode, count, type, data, datalen);
+}
+
+void glGetCompressedTextureFormats(int count, GLint* formats)
+{
+	GET_CONTEXT; 
+	 ctx->glGetCompressedTextureFormats(ctx, count, formats);
+}
+
+void glShaderString(GLuint shader, const GLchar* string, GLsizei len)
+{
+	GET_CONTEXT; 
+	 ctx->glShaderString(ctx, shader, string, len);
+}
+
+int glFinishRoundTrip()
+{
+	GET_CONTEXT; 
+	 return ctx->glFinishRoundTrip(ctx);
+}
+
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_ftable.h b/tools/emulator/opengl/system/GLESv2_enc/gl2_ftable.h
new file mode 100644
index 0000000..4cbda78
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_ftable.h
@@ -0,0 +1,216 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __gl2_client_ftable_t_h
+#define __gl2_client_ftable_t_h
+
+
+static struct _gl2_funcs_by_name {
+	const char *name;
+	void *proc;
+} gl2_funcs_by_name[] = {
+	{"glActiveTexture", (void*)glActiveTexture},
+	{"glAttachShader", (void*)glAttachShader},
+	{"glBindAttribLocation", (void*)glBindAttribLocation},
+	{"glBindBuffer", (void*)glBindBuffer},
+	{"glBindFramebuffer", (void*)glBindFramebuffer},
+	{"glBindRenderbuffer", (void*)glBindRenderbuffer},
+	{"glBindTexture", (void*)glBindTexture},
+	{"glBlendColor", (void*)glBlendColor},
+	{"glBlendEquation", (void*)glBlendEquation},
+	{"glBlendEquationSeparate", (void*)glBlendEquationSeparate},
+	{"glBlendFunc", (void*)glBlendFunc},
+	{"glBlendFuncSeparate", (void*)glBlendFuncSeparate},
+	{"glBufferData", (void*)glBufferData},
+	{"glBufferSubData", (void*)glBufferSubData},
+	{"glCheckFramebufferStatus", (void*)glCheckFramebufferStatus},
+	{"glClear", (void*)glClear},
+	{"glClearColor", (void*)glClearColor},
+	{"glClearDepthf", (void*)glClearDepthf},
+	{"glClearStencil", (void*)glClearStencil},
+	{"glColorMask", (void*)glColorMask},
+	{"glCompileShader", (void*)glCompileShader},
+	{"glCompressedTexImage2D", (void*)glCompressedTexImage2D},
+	{"glCompressedTexSubImage2D", (void*)glCompressedTexSubImage2D},
+	{"glCopyTexImage2D", (void*)glCopyTexImage2D},
+	{"glCopyTexSubImage2D", (void*)glCopyTexSubImage2D},
+	{"glCreateProgram", (void*)glCreateProgram},
+	{"glCreateShader", (void*)glCreateShader},
+	{"glCullFace", (void*)glCullFace},
+	{"glDeleteBuffers", (void*)glDeleteBuffers},
+	{"glDeleteFramebuffers", (void*)glDeleteFramebuffers},
+	{"glDeleteProgram", (void*)glDeleteProgram},
+	{"glDeleteRenderbuffers", (void*)glDeleteRenderbuffers},
+	{"glDeleteShader", (void*)glDeleteShader},
+	{"glDeleteTextures", (void*)glDeleteTextures},
+	{"glDepthFunc", (void*)glDepthFunc},
+	{"glDepthMask", (void*)glDepthMask},
+	{"glDepthRangef", (void*)glDepthRangef},
+	{"glDetachShader", (void*)glDetachShader},
+	{"glDisable", (void*)glDisable},
+	{"glDisableVertexAttribArray", (void*)glDisableVertexAttribArray},
+	{"glDrawArrays", (void*)glDrawArrays},
+	{"glDrawElements", (void*)glDrawElements},
+	{"glEnable", (void*)glEnable},
+	{"glEnableVertexAttribArray", (void*)glEnableVertexAttribArray},
+	{"glFinish", (void*)glFinish},
+	{"glFlush", (void*)glFlush},
+	{"glFramebufferRenderbuffer", (void*)glFramebufferRenderbuffer},
+	{"glFramebufferTexture2D", (void*)glFramebufferTexture2D},
+	{"glFrontFace", (void*)glFrontFace},
+	{"glGenBuffers", (void*)glGenBuffers},
+	{"glGenerateMipmap", (void*)glGenerateMipmap},
+	{"glGenFramebuffers", (void*)glGenFramebuffers},
+	{"glGenRenderbuffers", (void*)glGenRenderbuffers},
+	{"glGenTextures", (void*)glGenTextures},
+	{"glGetActiveAttrib", (void*)glGetActiveAttrib},
+	{"glGetActiveUniform", (void*)glGetActiveUniform},
+	{"glGetAttachedShaders", (void*)glGetAttachedShaders},
+	{"glGetAttribLocation", (void*)glGetAttribLocation},
+	{"glGetBooleanv", (void*)glGetBooleanv},
+	{"glGetBufferParameteriv", (void*)glGetBufferParameteriv},
+	{"glGetError", (void*)glGetError},
+	{"glGetFloatv", (void*)glGetFloatv},
+	{"glGetFramebufferAttachmentParameteriv", (void*)glGetFramebufferAttachmentParameteriv},
+	{"glGetIntegerv", (void*)glGetIntegerv},
+	{"glGetProgramiv", (void*)glGetProgramiv},
+	{"glGetProgramInfoLog", (void*)glGetProgramInfoLog},
+	{"glGetRenderbufferParameteriv", (void*)glGetRenderbufferParameteriv},
+	{"glGetShaderiv", (void*)glGetShaderiv},
+	{"glGetShaderInfoLog", (void*)glGetShaderInfoLog},
+	{"glGetShaderPrecisionFormat", (void*)glGetShaderPrecisionFormat},
+	{"glGetShaderSource", (void*)glGetShaderSource},
+	{"glGetString", (void*)glGetString},
+	{"glGetTexParameterfv", (void*)glGetTexParameterfv},
+	{"glGetTexParameteriv", (void*)glGetTexParameteriv},
+	{"glGetUniformfv", (void*)glGetUniformfv},
+	{"glGetUniformiv", (void*)glGetUniformiv},
+	{"glGetUniformLocation", (void*)glGetUniformLocation},
+	{"glGetVertexAttribfv", (void*)glGetVertexAttribfv},
+	{"glGetVertexAttribiv", (void*)glGetVertexAttribiv},
+	{"glGetVertexAttribPointerv", (void*)glGetVertexAttribPointerv},
+	{"glHint", (void*)glHint},
+	{"glIsBuffer", (void*)glIsBuffer},
+	{"glIsEnabled", (void*)glIsEnabled},
+	{"glIsFramebuffer", (void*)glIsFramebuffer},
+	{"glIsProgram", (void*)glIsProgram},
+	{"glIsRenderbuffer", (void*)glIsRenderbuffer},
+	{"glIsShader", (void*)glIsShader},
+	{"glIsTexture", (void*)glIsTexture},
+	{"glLineWidth", (void*)glLineWidth},
+	{"glLinkProgram", (void*)glLinkProgram},
+	{"glPixelStorei", (void*)glPixelStorei},
+	{"glPolygonOffset", (void*)glPolygonOffset},
+	{"glReadPixels", (void*)glReadPixels},
+	{"glReleaseShaderCompiler", (void*)glReleaseShaderCompiler},
+	{"glRenderbufferStorage", (void*)glRenderbufferStorage},
+	{"glSampleCoverage", (void*)glSampleCoverage},
+	{"glScissor", (void*)glScissor},
+	{"glShaderBinary", (void*)glShaderBinary},
+	{"glShaderSource", (void*)glShaderSource},
+	{"glStencilFunc", (void*)glStencilFunc},
+	{"glStencilFuncSeparate", (void*)glStencilFuncSeparate},
+	{"glStencilMask", (void*)glStencilMask},
+	{"glStencilMaskSeparate", (void*)glStencilMaskSeparate},
+	{"glStencilOp", (void*)glStencilOp},
+	{"glStencilOpSeparate", (void*)glStencilOpSeparate},
+	{"glTexImage2D", (void*)glTexImage2D},
+	{"glTexParameterf", (void*)glTexParameterf},
+	{"glTexParameterfv", (void*)glTexParameterfv},
+	{"glTexParameteri", (void*)glTexParameteri},
+	{"glTexParameteriv", (void*)glTexParameteriv},
+	{"glTexSubImage2D", (void*)glTexSubImage2D},
+	{"glUniform1f", (void*)glUniform1f},
+	{"glUniform1fv", (void*)glUniform1fv},
+	{"glUniform1i", (void*)glUniform1i},
+	{"glUniform1iv", (void*)glUniform1iv},
+	{"glUniform2f", (void*)glUniform2f},
+	{"glUniform2fv", (void*)glUniform2fv},
+	{"glUniform2i", (void*)glUniform2i},
+	{"glUniform2iv", (void*)glUniform2iv},
+	{"glUniform3f", (void*)glUniform3f},
+	{"glUniform3fv", (void*)glUniform3fv},
+	{"glUniform3i", (void*)glUniform3i},
+	{"glUniform3iv", (void*)glUniform3iv},
+	{"glUniform4f", (void*)glUniform4f},
+	{"glUniform4fv", (void*)glUniform4fv},
+	{"glUniform4i", (void*)glUniform4i},
+	{"glUniform4iv", (void*)glUniform4iv},
+	{"glUniformMatrix2fv", (void*)glUniformMatrix2fv},
+	{"glUniformMatrix3fv", (void*)glUniformMatrix3fv},
+	{"glUniformMatrix4fv", (void*)glUniformMatrix4fv},
+	{"glUseProgram", (void*)glUseProgram},
+	{"glValidateProgram", (void*)glValidateProgram},
+	{"glVertexAttrib1f", (void*)glVertexAttrib1f},
+	{"glVertexAttrib1fv", (void*)glVertexAttrib1fv},
+	{"glVertexAttrib2f", (void*)glVertexAttrib2f},
+	{"glVertexAttrib2fv", (void*)glVertexAttrib2fv},
+	{"glVertexAttrib3f", (void*)glVertexAttrib3f},
+	{"glVertexAttrib3fv", (void*)glVertexAttrib3fv},
+	{"glVertexAttrib4f", (void*)glVertexAttrib4f},
+	{"glVertexAttrib4fv", (void*)glVertexAttrib4fv},
+	{"glVertexAttribPointer", (void*)glVertexAttribPointer},
+	{"glViewport", (void*)glViewport},
+	{"glEGLImageTargetTexture2DOES", (void*)glEGLImageTargetTexture2DOES},
+	{"glEGLImageTargetRenderbufferStorageOES", (void*)glEGLImageTargetRenderbufferStorageOES},
+	{"glGetProgramBinaryOES", (void*)glGetProgramBinaryOES},
+	{"glProgramBinaryOES", (void*)glProgramBinaryOES},
+	{"glMapBufferOES", (void*)glMapBufferOES},
+	{"glUnmapBufferOES", (void*)glUnmapBufferOES},
+	{"glTexImage3DOES", (void*)glTexImage3DOES},
+	{"glTexSubImage3DOES", (void*)glTexSubImage3DOES},
+	{"glCopyTexSubImage3DOES", (void*)glCopyTexSubImage3DOES},
+	{"glCompressedTexImage3DOES", (void*)glCompressedTexImage3DOES},
+	{"glCompressedTexSubImage3DOES", (void*)glCompressedTexSubImage3DOES},
+	{"glFramebufferTexture3DOES", (void*)glFramebufferTexture3DOES},
+	{"glBindVertexArrayOES", (void*)glBindVertexArrayOES},
+	{"glDeleteVertexArraysOES", (void*)glDeleteVertexArraysOES},
+	{"glGenVertexArraysOES", (void*)glGenVertexArraysOES},
+	{"glIsVertexArrayOES", (void*)glIsVertexArrayOES},
+	{"glDiscardFramebufferEXT", (void*)glDiscardFramebufferEXT},
+	{"glMultiDrawArraysEXT", (void*)glMultiDrawArraysEXT},
+	{"glMultiDrawElementsEXT", (void*)glMultiDrawElementsEXT},
+	{"glGetPerfMonitorGroupsAMD", (void*)glGetPerfMonitorGroupsAMD},
+	{"glGetPerfMonitorCountersAMD", (void*)glGetPerfMonitorCountersAMD},
+	{"glGetPerfMonitorGroupStringAMD", (void*)glGetPerfMonitorGroupStringAMD},
+	{"glGetPerfMonitorCounterStringAMD", (void*)glGetPerfMonitorCounterStringAMD},
+	{"glGetPerfMonitorCounterInfoAMD", (void*)glGetPerfMonitorCounterInfoAMD},
+	{"glGenPerfMonitorsAMD", (void*)glGenPerfMonitorsAMD},
+	{"glDeletePerfMonitorsAMD", (void*)glDeletePerfMonitorsAMD},
+	{"glSelectPerfMonitorCountersAMD", (void*)glSelectPerfMonitorCountersAMD},
+	{"glBeginPerfMonitorAMD", (void*)glBeginPerfMonitorAMD},
+	{"glEndPerfMonitorAMD", (void*)glEndPerfMonitorAMD},
+	{"glGetPerfMonitorCounterDataAMD", (void*)glGetPerfMonitorCounterDataAMD},
+	{"glRenderbufferStorageMultisampleIMG", (void*)glRenderbufferStorageMultisampleIMG},
+	{"glFramebufferTexture2DMultisampleIMG", (void*)glFramebufferTexture2DMultisampleIMG},
+	{"glDeleteFencesNV", (void*)glDeleteFencesNV},
+	{"glGenFencesNV", (void*)glGenFencesNV},
+	{"glIsFenceNV", (void*)glIsFenceNV},
+	{"glTestFenceNV", (void*)glTestFenceNV},
+	{"glGetFenceivNV", (void*)glGetFenceivNV},
+	{"glFinishFenceNV", (void*)glFinishFenceNV},
+	{"glSetFenceNV", (void*)glSetFenceNV},
+	{"glCoverageMaskNV", (void*)glCoverageMaskNV},
+	{"glCoverageOperationNV", (void*)glCoverageOperationNV},
+	{"glGetDriverControlsQCOM", (void*)glGetDriverControlsQCOM},
+	{"glGetDriverControlStringQCOM", (void*)glGetDriverControlStringQCOM},
+	{"glEnableDriverControlQCOM", (void*)glEnableDriverControlQCOM},
+	{"glDisableDriverControlQCOM", (void*)glDisableDriverControlQCOM},
+	{"glExtGetTexturesQCOM", (void*)glExtGetTexturesQCOM},
+	{"glExtGetBuffersQCOM", (void*)glExtGetBuffersQCOM},
+	{"glExtGetRenderbuffersQCOM", (void*)glExtGetRenderbuffersQCOM},
+	{"glExtGetFramebuffersQCOM", (void*)glExtGetFramebuffersQCOM},
+	{"glExtGetTexLevelParameterivQCOM", (void*)glExtGetTexLevelParameterivQCOM},
+	{"glExtTexObjectStateOverrideiQCOM", (void*)glExtTexObjectStateOverrideiQCOM},
+	{"glExtGetTexSubImageQCOM", (void*)glExtGetTexSubImageQCOM},
+	{"glExtGetBufferPointervQCOM", (void*)glExtGetBufferPointervQCOM},
+	{"glExtGetShadersQCOM", (void*)glExtGetShadersQCOM},
+	{"glExtGetProgramsQCOM", (void*)glExtGetProgramsQCOM},
+	{"glExtIsProgramBinaryQCOM", (void*)glExtIsProgramBinaryQCOM},
+	{"glExtGetProgramBinarySourceQCOM", (void*)glExtGetProgramBinarySourceQCOM},
+	{"glStartTilingQCOM", (void*)glStartTilingQCOM},
+	{"glEndTilingQCOM", (void*)glEndTilingQCOM},
+};
+static int gl2_num_funcs = sizeof(gl2_funcs_by_name) / sizeof(struct _gl2_funcs_by_name);
+
+
+#endif
diff --git a/tools/emulator/opengl/system/GLESv2_enc/gl2_opcodes.h b/tools/emulator/opengl/system/GLESv2_enc/gl2_opcodes.h
new file mode 100644
index 0000000..5e7857f
--- /dev/null
+++ b/tools/emulator/opengl/system/GLESv2_enc/gl2_opcodes.h
@@ -0,0 +1,217 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __GUARD_gl2_opcodes_h_
+#define __GUARD_gl2_opcodes_h_
+
+#define OP_glActiveTexture 					2048
+#define OP_glAttachShader 					2049
+#define OP_glBindAttribLocation 					2050
+#define OP_glBindBuffer 					2051
+#define OP_glBindFramebuffer 					2052
+#define OP_glBindRenderbuffer 					2053
+#define OP_glBindTexture 					2054
+#define OP_glBlendColor 					2055
+#define OP_glBlendEquation 					2056
+#define OP_glBlendEquationSeparate 					2057
+#define OP_glBlendFunc 					2058
+#define OP_glBlendFuncSeparate 					2059
+#define OP_glBufferData 					2060
+#define OP_glBufferSubData 					2061
+#define OP_glCheckFramebufferStatus 					2062
+#define OP_glClear 					2063
+#define OP_glClearColor 					2064
+#define OP_glClearDepthf 					2065
+#define OP_glClearStencil 					2066
+#define OP_glColorMask 					2067
+#define OP_glCompileShader 					2068
+#define OP_glCompressedTexImage2D 					2069
+#define OP_glCompressedTexSubImage2D 					2070
+#define OP_glCopyTexImage2D 					2071
+#define OP_glCopyTexSubImage2D 					2072
+#define OP_glCreateProgram 					2073
+#define OP_glCreateShader 					2074
+#define OP_glCullFace 					2075
+#define OP_glDeleteBuffers 					2076
+#define OP_glDeleteFramebuffers 					2077
+#define OP_glDeleteProgram 					2078
+#define OP_glDeleteRenderbuffers 					2079
+#define OP_glDeleteShader 					2080
+#define OP_glDeleteTextures 					2081
+#define OP_glDepthFunc 					2082
+#define OP_glDepthMask 					2083
+#define OP_glDepthRangef 					2084
+#define OP_glDetachShader 					2085
+#define OP_glDisable 					2086
+#define OP_glDisableVertexAttribArray 					2087
+#define OP_glDrawArrays 					2088
+#define OP_glDrawElements 					2089
+#define OP_glEnable 					2090
+#define OP_glEnableVertexAttribArray 					2091
+#define OP_glFinish 					2092
+#define OP_glFlush 					2093
+#define OP_glFramebufferRenderbuffer 					2094
+#define OP_glFramebufferTexture2D 					2095
+#define OP_glFrontFace 					2096
+#define OP_glGenBuffers 					2097
+#define OP_glGenerateMipmap 					2098
+#define OP_glGenFramebuffers 					2099
+#define OP_glGenRenderbuffers 					2100
+#define OP_glGenTextures 					2101
+#define OP_glGetActiveAttrib 					2102
+#define OP_glGetActiveUniform 					2103
+#define OP_glGetAttachedShaders 					2104
+#define OP_glGetAttribLocation 					2105
+#define OP_glGetBooleanv 					2106
+#define OP_glGetBufferParameteriv 					2107
+#define OP_glGetError 					2108
+#define OP_glGetFloatv 					2109
+#define OP_glGetFramebufferAttachmentParameteriv 					2110
+#define OP_glGetIntegerv 					2111
+#define OP_glGetProgramiv 					2112
+#define OP_glGetProgramInfoLog 					2113
+#define OP_glGetRenderbufferParameteriv 					2114
+#define OP_glGetShaderiv 					2115
+#define OP_glGetShaderInfoLog 					2116
+#define OP_glGetShaderPrecisionFormat 					2117
+#define OP_glGetShaderSource 					2118
+#define OP_glGetString 					2119
+#define OP_glGetTexParameterfv 					2120
+#define OP_glGetTexParameteriv 					2121
+#define OP_glGetUniformfv 					2122
+#define OP_glGetUniformiv 					2123
+#define OP_glGetUniformLocation 					2124
+#define OP_glGetVertexAttribfv 					2125
+#define OP_glGetVertexAttribiv 					2126
+#define OP_glGetVertexAttribPointerv 					2127
+#define OP_glHint 					2128
+#define OP_glIsBuffer 					2129
+#define OP_glIsEnabled 					2130
+#define OP_glIsFramebuffer 					2131
+#define OP_glIsProgram 					2132
+#define OP_glIsRenderbuffer 					2133
+#define OP_glIsShader 					2134
+#define OP_glIsTexture 					2135
+#define OP_glLineWidth 					2136
+#define OP_glLinkProgram 					2137
+#define OP_glPixelStorei 					2138
+#define OP_glPolygonOffset 					2139
+#define OP_glReadPixels 					2140
+#define OP_glReleaseShaderCompiler 					2141
+#define OP_glRenderbufferStorage 					2142
+#define OP_glSampleCoverage 					2143
+#define OP_glScissor 					2144
+#define OP_glShaderBinary 					2145
+#define OP_glShaderSource 					2146
+#define OP_glStencilFunc 					2147
+#define OP_glStencilFuncSeparate 					2148
+#define OP_glStencilMask 					2149
+#define OP_glStencilMaskSeparate 					2150
+#define OP_glStencilOp 					2151
+#define OP_glStencilOpSeparate 					2152
+#define OP_glTexImage2D 					2153
+#define OP_glTexParameterf 					2154
+#define OP_glTexParameterfv 					2155
+#define OP_glTexParameteri 					2156
+#define OP_glTexParameteriv 					2157
+#define OP_glTexSubImage2D 					2158
+#define OP_glUniform1f 					2159
+#define OP_glUniform1fv 					2160
+#define OP_glUniform1i 					2161
+#define OP_glUniform1iv 					2162
+#define OP_glUniform2f 					2163
+#define OP_glUniform2fv 					2164
+#define OP_glUniform2i 					2165
+#define OP_glUniform2iv 					2166
+#define OP_glUniform3f 					2167
+#define OP_glUniform3fv 					2168
+#define OP_glUniform3i 					2169
+#define OP_glUniform3iv 					2170
+#define OP_glUniform4f 					2171
+#define OP_glUniform4fv 					2172
+#define OP_glUniform4i 					2173
+#define OP_glUniform4iv 					2174
+#define OP_glUniformMatrix2fv 					2175
+#define OP_glUniformMatrix3fv 					2176
+#define OP_glUniformMatrix4fv 					2177
+#define OP_glUseProgram 					2178
+#define OP_glValidateProgram 					2179
+#define OP_glVertexAttrib1f 					2180
+#define OP_glVertexAttrib1fv 					2181
+#define OP_glVertexAttrib2f 					2182
+#define OP_glVertexAttrib2fv 					2183
+#define OP_glVertexAttrib3f 					2184
+#define OP_glVertexAttrib3fv 					2185
+#define OP_glVertexAttrib4f 					2186
+#define OP_glVertexAttrib4fv 					2187
+#define OP_glVertexAttribPointer 					2188
+#define OP_glViewport 					2189
+#define OP_glEGLImageTargetTexture2DOES 					2190
+#define OP_glEGLImageTargetRenderbufferStorageOES 					2191
+#define OP_glGetProgramBinaryOES 					2192
+#define OP_glProgramBinaryOES 					2193
+#define OP_glMapBufferOES 					2194
+#define OP_glUnmapBufferOES 					2195
+#define OP_glTexImage3DOES 					2196
+#define OP_glTexSubImage3DOES 					2197
+#define OP_glCopyTexSubImage3DOES 					2198
+#define OP_glCompressedTexImage3DOES 					2199
+#define OP_glCompressedTexSubImage3DOES 					2200
+#define OP_glFramebufferTexture3DOES 					2201
+#define OP_glBindVertexArrayOES 					2202
+#define OP_glDeleteVertexArraysOES 					2203
+#define OP_glGenVertexArraysOES 					2204
+#define OP_glIsVertexArrayOES 					2205
+#define OP_glDiscardFramebufferEXT 					2206
+#define OP_glMultiDrawArraysEXT 					2207
+#define OP_glMultiDrawElementsEXT 					2208
+#define OP_glGetPerfMonitorGroupsAMD 					2209
+#define OP_glGetPerfMonitorCountersAMD 					2210
+#define OP_glGetPerfMonitorGroupStringAMD 					2211
+#define OP_glGetPerfMonitorCounterStringAMD 					2212
+#define OP_glGetPerfMonitorCounterInfoAMD 					2213
+#define OP_glGenPerfMonitorsAMD 					2214
+#define OP_glDeletePerfMonitorsAMD 					2215
+#define OP_glSelectPerfMonitorCountersAMD 					2216
+#define OP_glBeginPerfMonitorAMD 					2217
+#define OP_glEndPerfMonitorAMD 					2218
+#define OP_glGetPerfMonitorCounterDataAMD 					2219
+#define OP_glRenderbufferStorageMultisampleIMG 					2220
+#define OP_glFramebufferTexture2DMultisampleIMG 					2221
+#define OP_glDeleteFencesNV 					2222
+#define OP_glGenFencesNV 					2223
+#define OP_glIsFenceNV 					2224
+#define OP_glTestFenceNV 					2225
+#define OP_glGetFenceivNV 					2226
+#define OP_glFinishFenceNV 					2227
+#define OP_glSetFenceNV 					2228
+#define OP_glCoverageMaskNV 					2229
+#define OP_glCoverageOperationNV 					2230
+#define OP_glGetDriverControlsQCOM 					2231
+#define OP_glGetDriverControlStringQCOM 					2232
+#define OP_glEnableDriverControlQCOM 					2233
+#define OP_glDisableDriverControlQCOM 					2234
+#define OP_glExtGetTexturesQCOM 					2235
+#define OP_glExtGetBuffersQCOM 					2236
+#define OP_glExtGetRenderbuffersQCOM 					2237
+#define OP_glExtGetFramebuffersQCOM 					2238
+#define OP_glExtGetTexLevelParameterivQCOM 					2239
+#define OP_glExtTexObjectStateOverrideiQCOM 					2240
+#define OP_glExtGetTexSubImageQCOM 					2241
+#define OP_glExtGetBufferPointervQCOM 					2242
+#define OP_glExtGetShadersQCOM 					2243
+#define OP_glExtGetProgramsQCOM 					2244
+#define OP_glExtIsProgramBinaryQCOM 					2245
+#define OP_glExtGetProgramBinarySourceQCOM 					2246
+#define OP_glStartTilingQCOM 					2247
+#define OP_glEndTilingQCOM 					2248
+#define OP_glVertexAttribPointerData 					2249
+#define OP_glVertexAttribPointerOffset 					2250
+#define OP_glDrawElementsOffset 					2251
+#define OP_glDrawElementsData 					2252
+#define OP_glGetCompressedTextureFormats 					2253
+#define OP_glShaderString 					2254
+#define OP_glFinishRoundTrip 					2255
+#define OP_last 					2256
+
+
+#endif
diff --git a/tools/emulator/opengl/system/OpenglSystemCommon/EGLClientIface.h b/tools/emulator/opengl/system/OpenglSystemCommon/EGLClientIface.h
index 1089340..3c8cb55 100644
--- a/tools/emulator/opengl/system/OpenglSystemCommon/EGLClientIface.h
+++ b/tools/emulator/opengl/system/OpenglSystemCommon/EGLClientIface.h
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #ifndef _SYSTEM_COMMON_EGL_CLIENT_IFACE_H
 #define _SYSTEM_COMMON_EGL_CLIENT_IFACE_H
 
diff --git a/tools/emulator/opengl/system/OpenglSystemCommon/HostConnection.cpp b/tools/emulator/opengl/system/OpenglSystemCommon/HostConnection.cpp
index 3355d9f..940f5ae 100644
--- a/tools/emulator/opengl/system/OpenglSystemCommon/HostConnection.cpp
+++ b/tools/emulator/opengl/system/OpenglSystemCommon/HostConnection.cpp
@@ -63,12 +63,12 @@
         if (useQemuPipe) {
             QemuPipeStream *stream = new QemuPipeStream(STREAM_BUFFER_SIZE);
             if (!stream) {
-                LOGE("Failed to create QemuPipeStream for host connection!!!\n");
+                ALOGE("Failed to create QemuPipeStream for host connection!!!\n");
                 delete con;
                 return NULL;
             }
             if (stream->connect() < 0) {
-                LOGE("Failed to connect to host (QemuPipeStream)!!!\n");
+                ALOGE("Failed to connect to host (QemuPipeStream)!!!\n");
                 delete stream;
                 delete con;
                 return NULL;
@@ -79,13 +79,13 @@
         {
             TcpStream *stream = new TcpStream(STREAM_BUFFER_SIZE);
             if (!stream) {
-                LOGE("Failed to create TcpStream for host connection!!!\n");
+                ALOGE("Failed to create TcpStream for host connection!!!\n");
                 delete con;
                 return NULL;
             }
 
             if (stream->connect("10.0.2.2", STREAM_PORT_NUM) < 0) {
-                LOGE("Failed to connect to host (TcpStream)!!!\n");
+                ALOGE("Failed to connect to host (TcpStream)!!!\n");
                 delete stream;
                 delete con;
                 return NULL;
@@ -99,7 +99,7 @@
         *pClientFlags = 0;
         con->m_stream->commitBuffer(sizeof(unsigned int));
 
-        LOGD("HostConnection::get() New Host Connection established %p, tid %d\n", con, gettid());
+        ALOGD("HostConnection::get() New Host Connection established %p, tid %d\n", con, gettid());
         tinfo->hostConn = con;
     }
 
diff --git a/tools/emulator/opengl/system/OpenglSystemCommon/gralloc_cb.h b/tools/emulator/opengl/system/OpenglSystemCommon/gralloc_cb.h
index 530e004..e879409 100644
--- a/tools/emulator/opengl/system/OpenglSystemCommon/gralloc_cb.h
+++ b/tools/emulator/opengl/system/OpenglSystemCommon/gralloc_cb.h
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #ifndef __GRALLOC_CB_H__
 #define __GRALLOC_CB_H__
 
diff --git a/tools/emulator/opengl/system/egl/Android.mk b/tools/emulator/opengl/system/egl/Android.mk
index 867773f..cf55b48 100644
--- a/tools/emulator/opengl/system/egl/Android.mk
+++ b/tools/emulator/opengl/system/egl/Android.mk
@@ -26,7 +26,7 @@
 # Other builds are device-specific and will provide their own
 # version of this file to point to the appropriate HW EGL libraries.
 #
-ifneq (,$(filter full full_x86 sdk sdk_x86,$(TARGET_PRODUCT)))
+ifneq (,$(filter full full_x86 full_mips sdk sdk_x86 sdk_mips google_sdk google_sdk_x86 google_sdk_mips,$(TARGET_PRODUCT)))
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := egl.cfg
@@ -37,6 +37,6 @@
 LOCAL_MODULE_CLASS := ETC
 
 include $(BUILD_PREBUILT)
-endif # TARGET_PRODUCT in 'full sdk full_x86 sdk_x86)
+endif # TARGET_PRODUCT in 'full full_x86 full_mips sdk sdk_x86 sdk_mips google_sdk google_sdk_x86 google_sdk_mips')
 
 endif # BUILD_EMULATOR_OPENGL_DRIVER != false
diff --git a/tools/emulator/opengl/system/egl/egl.cfg b/tools/emulator/opengl/system/egl/egl.cfg
index 951a2e8..9d3f2dc 100644
--- a/tools/emulator/opengl/system/egl/egl.cfg
+++ b/tools/emulator/opengl/system/egl/egl.cfg
@@ -1,2 +1 @@
-0 1 emulation
-0 0 android
+0 0 emulation
diff --git a/tools/emulator/opengl/system/egl/egl.cpp b/tools/emulator/opengl/system/egl/egl.cpp
index 93f8681..ee195ac 100644
--- a/tools/emulator/opengl/system/egl/egl.cpp
+++ b/tools/emulator/opengl/system/egl/egl.cpp
@@ -13,6 +13,7 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
+
 #include "HostConnection.h"
 #include "ThreadInfo.h"
 #include "eglDisplay.h"
@@ -29,7 +30,7 @@
 #include "GL2Encoder.h"
 #endif
 
-#include <private/ui/android_natives_priv.h>
+#include <system/window.h>
 
 template<typename T>
 static T setErrorFunc(GLint error, T returnValue) {
@@ -65,12 +66,12 @@
 
 #define setErrorReturn(error, retVal)     \
     {                                                \
-        LOGE("tid %d: %s(%d): error 0x%x (%s)", gettid(), __FUNCTION__, __LINE__, error, eglStrError(error));     \
+        ALOGE("tid %d: %s(%d): error 0x%x (%s)", gettid(), __FUNCTION__, __LINE__, error, eglStrError(error));     \
         return setErrorFunc(error, retVal);            \
     }
 
 #define RETURN_ERROR(ret,err)           \
-    LOGE("tid %d: %s(%d): error 0x%x (%s)", gettid(), __FUNCTION__, __LINE__, err, eglStrError(err));    \
+    ALOGE("tid %d: %s(%d): error 0x%x (%s)", gettid(), __FUNCTION__, __LINE__, err, eglStrError(err));    \
     getEGLThreadInfo()->eglError = err;    \
     return ret;
 
@@ -107,12 +108,12 @@
 #define DEFINE_AND_VALIDATE_HOST_CONNECTION(ret) \
     HostConnection *hostCon = HostConnection::get(); \
     if (!hostCon) { \
-        LOGE("egl: Failed to get host connection\n"); \
+        ALOGE("egl: Failed to get host connection\n"); \
         return ret; \
     } \
     renderControl_encoder_context_t *rcEnc = hostCon->rcEncoder(); \
     if (!rcEnc) { \
-        LOGE("egl: Failed to get renderControl encoder context\n"); \
+        ALOGE("egl: Failed to get renderControl encoder context\n"); \
         return ret; \
     }
 
@@ -124,8 +125,6 @@
 #define VALIDATE_SURFACE_RETURN(surface, ret)    \
     if (surface != EGL_NO_SURFACE) {    \
         egl_surface_t* s( static_cast<egl_surface_t*>(surface) );    \
-        if (!s->isValid())    \
-            setErrorReturn(EGL_BAD_SURFACE, EGL_FALSE);    \
         if (s->dpy != (EGLDisplay)&s_display)    \
             setErrorReturn(EGL_BAD_DISPLAY, EGL_FALSE);    \
     }
@@ -175,48 +174,39 @@
     egl_surface_t(EGLDisplay dpy, EGLConfig config, EGLint surfaceType);
     virtual     ~egl_surface_t();
 
-    virtual     EGLBoolean         rcCreate() = 0;
-    virtual     EGLBoolean         rcDestroy() = 0;
+    virtual     void        setSwapInterval(int interval) = 0;
+    virtual     EGLBoolean  swapBuffers() = 0;
 
-    virtual     EGLBoolean  connect() { return EGL_TRUE; }
-    virtual     void        disconnect() {}
-    virtual     EGLBoolean     swapBuffers() { return EGL_TRUE; }
-    virtual     EGLint        getSwapBehavior() const;
+    EGLint      getSwapBehavior() const;
+    uint32_t    getRcSurface()   { return rcSurface; }
+    EGLint      getSurfaceType() { return surfaceType; }
 
-    void         setRcSurface(uint32_t handle){ rcSurface = handle; }
-    uint32_t     getRcSurface(){ return rcSurface; }
-
-    virtual     EGLBoolean    isValid(){ return valid; }
-    EGLint        getSurfaceType(){ return surfaceType; }
-
-    void        setWidth(EGLint w){ width = w; }
     EGLint      getWidth(){ return width; }
-    void         setHeight(EGLint h){ height = h; }
     EGLint      getHeight(){ return height; }
-    void        setTextureFormat(EGLint _texFormat){ texFormat = _texFormat; }
-    EGLint        getTextureFormat(){ return texFormat; }
-    void         setTextureTarget(EGLint _texTarget){ texTarget = _texTarget; }
-    EGLint        getTextureTarget(){ return texTarget; }
+    void        setTextureFormat(EGLint _texFormat) { texFormat = _texFormat; }
+    EGLint      getTextureFormat() { return texFormat; }
+    void        setTextureTarget(EGLint _texTarget) { texTarget = _texTarget; }
+    EGLint      getTextureTarget() { return texTarget; }
 
 private:
     //
     //Surface attributes
     //
-    EGLint     width;
-    EGLint     height;
-    EGLint    texFormat;
-    EGLint    texTarget;
+    EGLint      width;
+    EGLint      height;
+    EGLint      texFormat;
+    EGLint      texTarget;
 
 protected:
-    EGLint        surfaceType;
-    EGLBoolean    valid;
-    uint32_t     rcSurface; //handle to surface created via remote control
+    void        setWidth(EGLint w)  { width = w;  }
+    void        setHeight(EGLint h) { height = h; }
 
-
+    EGLint      surfaceType;
+    uint32_t    rcSurface; //handle to surface created via remote control
 };
 
 egl_surface_t::egl_surface_t(EGLDisplay dpy, EGLConfig config, EGLint surfaceType)
-    : dpy(dpy), config(config), surfaceType(surfaceType), valid(EGL_FALSE), rcSurface(0)
+    : dpy(dpy), config(config), surfaceType(surfaceType), rcSurface(0)
 {
     width = 0;
     height = 0;
@@ -225,7 +215,7 @@
 }
 
 EGLint egl_surface_t::getSwapBehavior() const {
-        return EGL_BUFFER_PRESERVED;
+    return EGL_BUFFER_PRESERVED;
 }
 
 egl_surface_t::~egl_surface_t()
@@ -236,31 +226,29 @@
 // egl_window_surface_t
 
 struct egl_window_surface_t : public egl_surface_t {
-
-    egl_window_surface_t(
+    static egl_window_surface_t* create(
             EGLDisplay dpy, EGLConfig config, EGLint surfType,
             ANativeWindow* window);
 
-    ~egl_window_surface_t();
+    virtual ~egl_window_surface_t();
 
-    virtual     EGLBoolean     rcCreate();
-    virtual     EGLBoolean     rcDestroy();
-
-    virtual     EGLBoolean  connect();
-    virtual     void        disconnect();
-    virtual     EGLBoolean  swapBuffers();
+    virtual void       setSwapInterval(int interval);
+    virtual EGLBoolean swapBuffers();
 
 private:
-    ANativeWindow*     nativeWindow;
-    android_native_buffer_t*   buffer;
+    egl_window_surface_t(
+            EGLDisplay dpy, EGLConfig config, EGLint surfType,
+            ANativeWindow* window);
+    EGLBoolean init();
 
+    ANativeWindow*              nativeWindow;
+    android_native_buffer_t*    buffer;
 };
 
-
 egl_window_surface_t::egl_window_surface_t (
-            EGLDisplay dpy, EGLConfig config, EGLint surfType,
-            ANativeWindow* window)
-    : egl_surface_t(dpy, config, surfType),
+        EGLDisplay dpy, EGLConfig config, EGLint surfType,
+        ANativeWindow* window)
+:   egl_surface_t(dpy, config, surfType),
     nativeWindow(window),
     buffer(NULL)
 {
@@ -273,82 +261,70 @@
     setHeight(h);
 }
 
-egl_window_surface_t::~egl_window_surface_t() {
-    nativeWindow->common.decRef(&nativeWindow->common);
-}
-
-EGLBoolean egl_window_surface_t::rcCreate()
+EGLBoolean egl_window_surface_t::init()
 {
-    DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
-    rcSurface = rcEnc->rcCreateWindowSurface(rcEnc, (uint32_t)config, getWidth(), getHeight());
-    if (!rcSurface) {
-        LOGE("rcCreateWindowSurface returned 0");
-        return EGL_FALSE;
-    }
-    valid = EGL_TRUE;
-    return EGL_TRUE;
-}
-
-EGLBoolean egl_window_surface_t::rcDestroy()
-{
-    if (!rcSurface) {
-        LOGE("rcDestroy called on invalid rcSurface");
-        return EGL_FALSE;
-    }
-
-    DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
-    rcEnc->rcDestroyWindowSurface(rcEnc, rcSurface);
-    rcSurface = 0;
-
-    return EGL_TRUE;
-}
-
-EGLBoolean egl_window_surface_t::connect()
-{
-    // dequeue a buffer
     if (nativeWindow->dequeueBuffer(nativeWindow, &buffer) != NO_ERROR) {
         setErrorReturn(EGL_BAD_ALLOC, EGL_FALSE);
     }
-
-    // lock the buffer
     nativeWindow->lockBuffer(nativeWindow, buffer);
 
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
-    rcEnc->rcSetWindowColorBuffer(rcEnc, rcSurface, ((cb_handle_t *)(buffer->handle))->hostHandle);
+    rcSurface = rcEnc->rcCreateWindowSurface(rcEnc, (uint32_t)config,
+            getWidth(), getHeight());
+    if (!rcSurface) {
+        ALOGE("rcCreateWindowSurface returned 0");
+        return EGL_FALSE;
+    }
+    rcEnc->rcSetWindowColorBuffer(rcEnc, rcSurface,
+            ((cb_handle_t*)(buffer->handle))->hostHandle);
 
     return EGL_TRUE;
 }
 
-void egl_window_surface_t::disconnect()
+egl_window_surface_t* egl_window_surface_t::create(
+        EGLDisplay dpy, EGLConfig config, EGLint surfType,
+        ANativeWindow* window)
 {
-    if (buffer) {
-        nativeWindow->queueBuffer(nativeWindow, buffer);
-        buffer = 0;
+    egl_window_surface_t* wnd = new egl_window_surface_t(
+            dpy, config, surfType, window);
+    if (wnd && !wnd->init()) {
+        delete wnd;
+        wnd = NULL;
     }
+    return wnd;
+}
+
+egl_window_surface_t::~egl_window_surface_t() {
+    DEFINE_HOST_CONNECTION;
+    if (rcSurface && rcEnc) {
+        rcEnc->rcDestroyWindowSurface(rcEnc, rcSurface);
+    }
+    if (buffer) {
+        nativeWindow->cancelBuffer(nativeWindow, buffer);
+    }
+    nativeWindow->common.decRef(&nativeWindow->common);
+}
+
+void egl_window_surface_t::setSwapInterval(int interval)
+{
+    nativeWindow->setSwapInterval(nativeWindow, interval);
 }
 
 EGLBoolean egl_window_surface_t::swapBuffers()
 {
-    if (!buffer) {
-        setErrorReturn(EGL_BAD_ACCESS, EGL_FALSE);
-    }
-
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
 
     rcEnc->rcFlushWindowColorBuffer(rcEnc, rcSurface);
 
-    //post the back buffer
     nativeWindow->queueBuffer(nativeWindow, buffer);
-
-    // dequeue a new buffer
     if (nativeWindow->dequeueBuffer(nativeWindow, &buffer)) {
+        buffer = NULL;
         setErrorReturn(EGL_BAD_ALLOC, EGL_FALSE);
     }
-
-    // lock the buffer
     nativeWindow->lockBuffer(nativeWindow, buffer);
 
-    rcEnc->rcSetWindowColorBuffer(rcEnc, rcSurface, ((cb_handle_t *)(buffer->handle))->hostHandle);
+    rcEnc->rcSetWindowColorBuffer(rcEnc, rcSurface,
+            ((cb_handle_t *)(buffer->handle))->hostHandle);
 
     return EGL_TRUE;
 }
@@ -357,29 +333,28 @@
 //egl_pbuffer_surface_t
 
 struct egl_pbuffer_surface_t : public egl_surface_t {
-
-    GLenum    format;
-
-    egl_pbuffer_surface_t(
-            EGLDisplay dpy, EGLConfig config, EGLint surfType,
-            int32_t w, int32_t h, GLenum format);
+    static egl_pbuffer_surface_t* create(EGLDisplay dpy, EGLConfig config,
+            EGLint surfType, int32_t w, int32_t h, GLenum pixelFormat);
 
     virtual ~egl_pbuffer_surface_t();
-    virtual     EGLBoolean     rcCreate();
-    virtual     EGLBoolean     rcDestroy();
 
-    virtual     EGLBoolean    connect();
+    virtual void       setSwapInterval(int interval) {}
+    virtual EGLBoolean swapBuffers() { return EGL_TRUE; }
 
-    uint32_t    getRcColorBuffer(){ return rcColorBuffer; }
-    void         setRcColorBuffer(uint32_t colorBuffer){ rcColorBuffer = colorBuffer; }
+    uint32_t getRcColorBuffer() { return rcColorBuffer; }
+
 private:
+    egl_pbuffer_surface_t(EGLDisplay dpy, EGLConfig config, EGLint surfType,
+            int32_t w, int32_t h);
+    EGLBoolean init(GLenum format);
+
     uint32_t rcColorBuffer;
 };
 
-egl_pbuffer_surface_t::egl_pbuffer_surface_t(
-        EGLDisplay dpy, EGLConfig config, EGLint surfType,
-        int32_t w, int32_t h, GLenum pixelFormat)
-    : egl_surface_t(dpy, config, surfType), format(pixelFormat)
+egl_pbuffer_surface_t::egl_pbuffer_surface_t(EGLDisplay dpy, EGLConfig config,
+        EGLint surfType, int32_t w, int32_t h)
+:   egl_surface_t(dpy, config, surfType),
+    rcColorBuffer(0)
 {
     setWidth(w);
     setHeight(h);
@@ -387,50 +362,49 @@
 
 egl_pbuffer_surface_t::~egl_pbuffer_surface_t()
 {
-    rcColorBuffer = 0;
+    DEFINE_HOST_CONNECTION;
+    if (rcEnc) {
+        if (rcColorBuffer) rcEnc->rcCloseColorBuffer(rcEnc, rcColorBuffer);
+        if (rcSurface)     rcEnc->rcDestroyWindowSurface(rcEnc, rcSurface);
+    }
 }
 
-EGLBoolean egl_pbuffer_surface_t::rcCreate()
+EGLBoolean egl_pbuffer_surface_t::init(GLenum pixelFormat)
 {
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
-    rcSurface = rcEnc->rcCreateWindowSurface(rcEnc, (uint32_t)config, getWidth(), getHeight());
+
+    rcSurface = rcEnc->rcCreateWindowSurface(rcEnc, (uint32_t)config,
+            getWidth(), getHeight());
     if (!rcSurface) {
-        LOGE("rcCreateWindowSurface returned 0");
+        ALOGE("rcCreateWindowSurface returned 0");
         return EGL_FALSE;
     }
-    rcColorBuffer = rcEnc->rcCreateColorBuffer(rcEnc, getWidth(), getHeight(), format);
+
+    rcColorBuffer = rcEnc->rcCreateColorBuffer(rcEnc, getWidth(), getHeight(),
+            pixelFormat);
     if (!rcColorBuffer) {
-        LOGE("rcCreateColorBuffer returned 0");
+        ALOGE("rcCreateColorBuffer returned 0");
         return EGL_FALSE;
     }
 
-    valid = EGL_TRUE;
-    return EGL_TRUE;
-}
-
-EGLBoolean egl_pbuffer_surface_t::rcDestroy()
-{
-    if ((!rcSurface)||(!rcColorBuffer)) {
-        LOGE("destroyRc called on invalid rcSurface");
-        return EGL_FALSE;
-    }
-
-    DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
-    rcEnc->rcDestroyWindowSurface(rcEnc, rcSurface);
-    rcEnc->rcDestroyColorBuffer(rcEnc, rcColorBuffer);
-    rcSurface = 0;
-
-    return EGL_TRUE;
-}
-
-EGLBoolean egl_pbuffer_surface_t::connect()
-{
-    DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
     rcEnc->rcSetWindowColorBuffer(rcEnc, rcSurface, rcColorBuffer);
 
     return EGL_TRUE;
 }
 
+egl_pbuffer_surface_t* egl_pbuffer_surface_t::create(EGLDisplay dpy,
+        EGLConfig config, EGLint surfType, int32_t w, int32_t h,
+        GLenum pixelFormat)
+{
+    egl_pbuffer_surface_t* pb = new egl_pbuffer_surface_t(dpy, config, surfType,
+            w, h);
+    if (pb && !pb->init(pixelFormat)) {
+        delete pb;
+        pb = NULL;
+    }
+    return pb;
+}
+
 static const char *getGLString(int glEnum)
 {
     EGLThreadInfo *tInfo = getEGLThreadInfo();
@@ -653,12 +627,9 @@
         setErrorReturn(EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE);
     }
 
-    egl_surface_t* surface;
-    surface = new egl_window_surface_t(&s_display, config, surfaceType, static_cast<ANativeWindow*>(win));
-    if (!surface)
-        setErrorReturn(EGL_BAD_ALLOC, EGL_NO_SURFACE);
-    if (!surface->rcCreate()) {
-        delete surface;
+    egl_surface_t* surface = egl_window_surface_t::create(
+            &s_display, config, surfaceType, static_cast<ANativeWindow*>(win));
+    if (!surface) {
         setErrorReturn(EGL_BAD_ALLOC, EGL_NO_SURFACE);
     }
 
@@ -710,11 +681,9 @@
     if (s_display.getConfigGLPixelFormat(config, &pixelFormat) == EGL_FALSE)
         setErrorReturn(EGL_BAD_MATCH, EGL_NO_SURFACE);
 
-    egl_surface_t* surface = new egl_pbuffer_surface_t(dpy, config, surfaceType, w, h, pixelFormat);
-    if (!surface)
-        setErrorReturn(EGL_BAD_ALLOC, EGL_NO_SURFACE);
-    if (!surface->rcCreate()) {
-        delete surface;
+    egl_surface_t* surface = egl_pbuffer_surface_t::create(dpy, config,
+            surfaceType, w, h, pixelFormat);
+    if (!surface) {
         setErrorReturn(EGL_BAD_ALLOC, EGL_NO_SURFACE);
     }
 
@@ -740,10 +709,7 @@
     VALIDATE_DISPLAY_INIT(dpy, EGL_FALSE);
     VALIDATE_SURFACE_RETURN(eglSurface, EGL_FALSE);
 
-    egl_surface_t* surface( static_cast<egl_surface_t*>(eglSurface) );
-
-    surface->disconnect();
-    surface->rcDestroy();
+    egl_surface_t* surface(static_cast<egl_surface_t*>(eglSurface));
     delete surface;
 
     return EGL_TRUE;
@@ -782,7 +748,7 @@
             break;
         //TODO: complete other attributes
         default:
-            LOGE("eglQuerySurface %x  EGL_BAD_ATTRIBUTE", attribute);
+            ALOGE("eglQuerySurface %x  EGL_BAD_ATTRIBUTE", attribute);
             ret = setErrorFunc(EGL_BAD_ATTRIBUTE, EGL_FALSE);
             break;
     }
@@ -819,14 +785,14 @@
 EGLSurface eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
 {
     //TODO
-    LOGW("%s not implemented", __FUNCTION__);
+    ALOGW("%s not implemented", __FUNCTION__);
     return 0;
 }
 
 EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
 {
     //TODO
-    LOGW("%s not implemented", __FUNCTION__);
+    ALOGW("%s not implemented", __FUNCTION__);
     return 0;
 }
 
@@ -864,16 +830,27 @@
 EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
 {
     //TODO
-    LOGW("%s not implemented", __FUNCTION__);
+    ALOGW("%s not implemented", __FUNCTION__);
     return 0;
 }
 
 EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval)
 {
     VALIDATE_DISPLAY_INIT(dpy, EGL_FALSE);
-
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
+
+    EGLContext_t* ctx = getEGLThreadInfo()->currentContext;
+    if (!ctx) {
+        setErrorReturn(EGL_BAD_CONTEXT, EGL_FALSE);
+    }
+    if (!ctx->draw) {
+        setErrorReturn(EGL_BAD_SURFACE, EGL_FALSE);
+    }
+    egl_surface_t* draw(static_cast<egl_surface_t*>(ctx->draw));
+    draw->setSwapInterval(interval);
+
     rcEnc->rcFBSetSwapInterval(rcEnc, interval); //TODO: implement on the host
+
     return EGL_TRUE;
 }
 
@@ -900,7 +877,7 @@
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_NO_CONTEXT);
     uint32_t rcContext = rcEnc->rcCreateContext(rcEnc, (uint32_t)config, rcShareCtx, version);
     if (!rcContext) {
-        LOGE("rcCreateContext returned 0");
+        ALOGE("rcCreateContext returned 0");
         setErrorReturn(EGL_BAD_ALLOC, EGL_NO_CONTEXT);
     }
 
@@ -972,18 +949,10 @@
 
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
     if (rcEnc->rcMakeCurrent(rcEnc, ctxHandle, drawHandle, readHandle) == EGL_FALSE) {
-        LOGE("rcMakeCurrent returned EGL_FALSE");
+        ALOGE("rcMakeCurrent returned EGL_FALSE");
         setErrorReturn(EGL_BAD_CONTEXT, EGL_FALSE);
     }
 
-    //
-    // Disconnect from the previous drawable
-    //
-    if (tInfo->currentContext && tInfo->currentContext->draw) {
-        egl_surface_t * prevDrawSurf = static_cast<egl_surface_t *>(tInfo->currentContext->draw);
-        prevDrawSurf->disconnect();
-    }
-
     //Now make the local bind
     if (context) {
         context->draw = draw;
@@ -1036,10 +1005,6 @@
         }
     }
 
-    //connect the color buffer
-    if (drawSurf)
-        drawSurf->connect();
-
     return EGL_TRUE;
 }
 
@@ -1098,7 +1063,7 @@
                 *value = EGL_BACK_BUFFER; //single buffer not supported
             break;
         default:
-            LOGE("eglQueryContext %x  EGL_BAD_ATTRIBUTE", attribute);
+            ALOGE("eglQueryContext %x  EGL_BAD_ATTRIBUTE", attribute);
             setErrorReturn(EGL_BAD_ATTRIBUTE, EGL_FALSE);
             break;
     }
@@ -1137,8 +1102,6 @@
     DEFINE_AND_VALIDATE_HOST_CONNECTION(EGL_FALSE);
 
     egl_surface_t* d = static_cast<egl_surface_t*>(eglSurface);
-    if (!d->isValid())
-        setErrorReturn(EGL_BAD_SURFACE, EGL_FALSE);
     if (d->dpy != dpy)
         setErrorReturn(EGL_BAD_DISPLAY, EGL_FALSE);
 
@@ -1218,32 +1181,74 @@
     return EGL_TRUE;
 }
 
-EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
+#define FENCE_SYNC_HANDLE (EGLSyncKHR)0xFE4CE
+
+EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type,
+        const EGLint *attrib_list)
 {
-    //TODO later
-    return 0;
+    // TODO: This implementation could be faster. We should require the host EGL
+    // to support KHR_fence_sync, or at least pipe the fence command to the host
+    // and wait for it (probably involving a glFinish on the host) in
+    // eglClientWaitSyncKHR.
+
+    VALIDATE_DISPLAY(dpy, EGL_NO_SYNC_KHR);
+
+    if (type != EGL_SYNC_FENCE_KHR ||
+            (attrib_list != NULL && attrib_list[0] != EGL_NONE)) {
+        setErrorReturn(EGL_BAD_ATTRIBUTE, EGL_NO_SYNC_KHR);
+    }
+
+    EGLThreadInfo *tInfo = getEGLThreadInfo();
+    if (!tInfo || !tInfo->currentContext) {
+        setErrorReturn(EGL_BAD_MATCH, EGL_NO_SYNC_KHR);
+    }
+
+    if (tInfo->currentContext->version == 2) {
+        s_display.gles2_iface()->finish();
+    } else {
+        s_display.gles_iface()->finish();
+    }
+
+    return FENCE_SYNC_HANDLE;
 }
 
 EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
 {
-    //TODO later
-    return 0;
+    if (sync != FENCE_SYNC_HANDLE) {
+        setErrorReturn(EGL_BAD_PARAMETER, EGL_FALSE);
+    }
+
+    return EGL_TRUE;
 }
 
-EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
+EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags,
+        EGLTimeKHR timeout)
 {
-    //TODO
-    return 0;
+    if (sync != FENCE_SYNC_HANDLE) {
+        setErrorReturn(EGL_BAD_PARAMETER, EGL_FALSE);
+    }
+
+    return EGL_CONDITION_SATISFIED_KHR;
 }
 
-EGLBoolean eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
+EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync,
+        EGLint attribute, EGLint *value)
 {
-    //TODO later
-    return 0;
-}
+    if (sync != FENCE_SYNC_HANDLE) {
+        setErrorReturn(EGL_BAD_PARAMETER, EGL_FALSE);
+    }
 
-EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
-{
-    //TODO later
-    return 0;
+    switch (attribute) {
+    case EGL_SYNC_TYPE_KHR:
+        *value = EGL_SYNC_FENCE_KHR;
+        return EGL_TRUE;
+    case EGL_SYNC_STATUS_KHR:
+        *value = EGL_SIGNALED_KHR;
+        return EGL_TRUE;
+    case EGL_SYNC_CONDITION_KHR:
+        *value = EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR;
+        return EGL_TRUE;
+    default:
+        setErrorReturn(EGL_BAD_ATTRIBUTE, EGL_FALSE);
+    }
 }
diff --git a/tools/emulator/opengl/system/egl/eglDisplay.cpp b/tools/emulator/opengl/system/egl/eglDisplay.cpp
index 7beeb8e..bcb0d4b 100644
--- a/tools/emulator/opengl/system/egl/eglDisplay.cpp
+++ b/tools/emulator/opengl/system/egl/eglDisplay.cpp
@@ -24,7 +24,8 @@
 // list of extensions supported by this EGL implementation
 //  NOTE that each extension name should be suffixed with space
 static const char systemStaticEGLExtensions[] =
-            "EGL_ANDROID_image_native_buffer ";
+            "EGL_ANDROID_image_native_buffer "
+            "EGL_KHR_fence_sync ";
 
 // list of extensions supported by this EGL implementation only if supported
 // on the host implementation.
@@ -88,7 +89,7 @@
                                          &s_gles_lib);
         if (!m_gles_iface) {
             pthread_mutex_unlock(&m_lock);
-            LOGE("Failed to load gles1 iface");
+            ALOGE("Failed to load gles1 iface");
             return false;
         }
 
@@ -106,7 +107,7 @@
         HostConnection *hcon = HostConnection::get();
         if (!hcon) {
             pthread_mutex_unlock(&m_lock);
-            LOGE("Failed to establish connection with the host\n");
+            ALOGE("Failed to establish connection with the host\n");
             return false;
         }
 
@@ -116,7 +117,7 @@
         renderControl_encoder_context_t *rcEnc = hcon->rcEncoder();
         if (!rcEnc) {
             pthread_mutex_unlock(&m_lock);
-            LOGE("Failed to get renderControl encoder instance");
+            ALOGE("Failed to get renderControl encoder instance");
             return false;
         }
 
@@ -228,13 +229,13 @@
 {
     void *lib = dlopen(libName, RTLD_NOW);
     if (!lib) {
-        LOGE("Failed to dlopen %s", libName);
+        ALOGE("Failed to dlopen %s", libName);
         return NULL;
     }
 
     init_emul_gles_t init_gles_func = (init_emul_gles_t)dlsym(lib,"init_emul_gles");
     if (!init_gles_func) {
-        LOGE("Failed to find init_emul_gles");
+        ALOGE("Failed to find init_emul_gles");
         dlclose((void*)lib);
         return NULL;
     }
@@ -385,7 +386,7 @@
         return m_extensionString;
     }
     else {
-        LOGE("[%s] Unknown name %d\n", __FUNCTION__, name);
+        ALOGE("[%s] Unknown name %d\n", __FUNCTION__, name);
         return NULL;
     }
 }
@@ -397,7 +398,7 @@
 {
     if (attribIdx == ATTRIBUTE_NONE)
     {
-        LOGE("[%s] Bad attribute idx\n", __FUNCTION__);
+        ALOGE("[%s] Bad attribute idx\n", __FUNCTION__);
         return EGL_FALSE;
     }
     *value = *(m_configs + (int)config*m_numConfigAttribs + attribIdx);
@@ -430,7 +431,7 @@
 {
     if (attribIdx == ATTRIBUTE_NONE)
     {
-        LOGE("[%s] Bad attribute idx\n", __FUNCTION__);
+        ALOGE("[%s] Bad attribute idx\n", __FUNCTION__);
         return EGL_FALSE;
     }
     *(m_configs + (int)config*m_numConfigAttribs + attribIdx) = value;
@@ -456,7 +457,7 @@
         getAttribValue(config, m_attribs.valueFor(EGL_GREEN_SIZE), &greenSize) &&
         getAttribValue(config, m_attribs.valueFor(EGL_ALPHA_SIZE), &alphaSize)) )
     {
-        LOGE("Couldn't find value for one of the pixel format attributes");
+        ALOGE("Couldn't find value for one of the pixel format attributes");
         return EGL_FALSE;
     }
 
@@ -480,7 +481,7 @@
         getAttribValue(config, m_attribs.valueFor(EGL_GREEN_SIZE), &greenSize) &&
         getAttribValue(config, m_attribs.valueFor(EGL_ALPHA_SIZE), &alphaSize)) )
     {
-        LOGE("Couldn't find value for one of the pixel format attributes");
+        ALOGE("Couldn't find value for one of the pixel format attributes");
         return EGL_FALSE;
     }
 
diff --git a/tools/emulator/opengl/system/egl/egl_ftable.h b/tools/emulator/opengl/system/egl/egl_ftable.h
index b21da72..16d130c 100644
--- a/tools/emulator/opengl/system/egl/egl_ftable.h
+++ b/tools/emulator/opengl/system/egl/egl_ftable.h
@@ -58,7 +58,6 @@
     {"eglCreateSyncKHR", (void *)eglCreateSyncKHR},
     {"eglDestroySyncKHR", (void *)eglDestroySyncKHR},
     {"eglClientWaitSyncKHR", (void *)eglClientWaitSyncKHR},
-    {"eglSignalSyncKHR", (void *)eglSignalSyncKHR},
     {"eglGetSyncAttribKHR", (void *)eglGetSyncAttribKHR}
 };
 
diff --git a/tools/emulator/opengl/system/gralloc/gralloc.cpp b/tools/emulator/opengl/system/gralloc/gralloc.cpp
index b27eaa3..4334835 100644
--- a/tools/emulator/opengl/system/gralloc/gralloc.cpp
+++ b/tools/emulator/opengl/system/gralloc/gralloc.cpp
@@ -35,13 +35,13 @@
 #define DEBUG  0
 
 #if DEBUG >= 1
-#  define D(...)   LOGD(__VA_ARGS__)
+#  define D(...)   ALOGD(__VA_ARGS__)
 #else
 #  define D(...)   ((void)0)
 #endif
 
 #if DEBUG >= 2
-#  define DD(...)  LOGD(__VA_ARGS__)
+#  define DD(...)  ALOGD(__VA_ARGS__)
 #else
 #  define DD(...)  ((void)0)
 #endif
@@ -113,12 +113,12 @@
 #define DEFINE_AND_VALIDATE_HOST_CONNECTION \
     HostConnection *hostCon = HostConnection::get(); \
     if (!hostCon) { \
-        LOGE("gralloc: Failed to get host connection\n"); \
+        ALOGE("gralloc: Failed to get host connection\n"); \
         return -EIO; \
     } \
     renderControl_encoder_context_t *rcEnc = hostCon->rcEncoder(); \
     if (!rcEnc) { \
-        LOGE("gralloc: Failed to get renderControl encoder context\n"); \
+        ALOGE("gralloc: Failed to get renderControl encoder context\n"); \
         return -EIO; \
     }
 
@@ -144,13 +144,16 @@
     if (hw_write && sw_write) {
         return -EINVAL;
     }
+    bool sw_read = (0 != (usage & GRALLOC_USAGE_SW_READ_MASK));
 
     int ashmem_size = 0;
-    *pStride = 0;
+    int stride = w;
+
     GLenum glFormat = 0;
     GLenum glType = 0;
 
     int bpp = 0;
+    int align = 1;
     switch (format) {
         case HAL_PIXEL_FORMAT_RGBA_8888:
         case HAL_PIXEL_FORMAT_RGBX_8888:
@@ -179,7 +182,16 @@
             glFormat = GL_RGBA4_OES;
             glType = GL_UNSIGNED_SHORT_4_4_4_4;
             break;
-
+        case HAL_PIXEL_FORMAT_RAW_SENSOR:
+            bpp = 2;
+            align = 16*bpp;
+            if (! (sw_read && sw_write) ) {
+                // Raw sensor data cannot be used by HW
+                return -EINVAL;
+            }
+            glFormat = GL_LUMINANCE;
+            glType = GL_UNSIGNED_SHORT;
+            break;
         default:
             return -EINVAL;
     }
@@ -189,15 +201,16 @@
         ashmem_size += sizeof(uint32_t);
     }
 
-    if (usage & (GRALLOC_USAGE_SW_READ_MASK | GRALLOC_USAGE_SW_WRITE_MASK)) {
+    if (sw_read || sw_write) {
         // keep space for image on guest memory if SW access is needed
-        int align = 1;
+
         size_t bpr = (w*bpp + (align-1)) & ~(align-1);
         ashmem_size += (bpr * h);
-        *pStride = bpr / bpp;
+        stride = bpr / bpp;
     }
 
-    D("gralloc_alloc ashmem_size=%d, tid %d\n", ashmem_size, gettid());
+    D("gralloc_alloc ashmem_size=%d, stride=%d, tid %d\n", ashmem_size, stride,
+            gettid());
 
     //
     // Allocate space in ashmem if needed
@@ -209,7 +222,8 @@
 
         fd = ashmem_create_region("gralloc-buffer", ashmem_size);
         if (fd < 0) {
-            LOGE("gralloc_alloc failed to create ashmem region: %s\n", strerror(errno));
+            ALOGE("gralloc_alloc failed to create ashmem region: %s\n",
+                    strerror(errno));
             return -errno;
         }
     }
@@ -265,6 +279,7 @@
     pthread_mutex_unlock(&grdev->lock);
 
     *pHandle = cb;
+    *pStride = stride;
     return 0;
 }
 
@@ -279,8 +294,8 @@
 
     if (cb->hostHandle != 0) {
         DEFINE_AND_VALIDATE_HOST_CONNECTION;
-        D("Destroying host ColorBuffer 0x%x\n", cb->hostHandle);
-        rcEnc->rcDestroyColorBuffer(rcEnc, cb->hostHandle);
+        D("Closing host ColorBuffer 0x%x\n", cb->hostHandle);
+        rcEnc->rcCloseColorBuffer(rcEnc, cb->hostHandle);
     }
 
     //
@@ -440,6 +455,12 @@
         return -EINVAL;
     }
 
+    if (cb->hostHandle != 0) {
+        DEFINE_AND_VALIDATE_HOST_CONNECTION;
+        D("Opening host ColorBuffer 0x%x\n", cb->hostHandle);
+        rcEnc->rcOpenColorBuffer(rcEnc, cb->hostHandle);
+    }
+
     //
     // if the color buffer has ashmem region and it is not mapped in this
     // process map it now.
@@ -471,6 +492,12 @@
         return -EINVAL;
     }
 
+    if (cb->hostHandle != 0) {
+        DEFINE_AND_VALIDATE_HOST_CONNECTION;
+        D("Closing host ColorBuffer 0x%x\n", cb->hostHandle);
+        rcEnc->rcCloseColorBuffer(rcEnc, cb->hostHandle);
+    }
+
     //
     // unmap ashmem region if it was previously mapped in this process
     // (through register_buffer)
@@ -503,7 +530,7 @@
     private_module_t *gr = (private_module_t *)module;
     cb_handle_t *cb = (cb_handle_t *)handle;
     if (!gr || !cb_handle_t::validate(cb)) {
-        LOGE("gralloc_lock bad handle\n");
+        ALOGE("gralloc_lock bad handle\n");
         return -EINVAL;
     }
 
@@ -522,7 +549,7 @@
          (!sw_read && !sw_write) ||
          (sw_read && !sw_read_allowed) ||
          (sw_write && !sw_write_allowed) ) {
-        LOGE("gralloc_lock usage mismatch usage=0x%x cb->usage=0x%x\n", usage, cb->usage);
+        ALOGE("gralloc_lock usage mismatch usage=0x%x cb->usage=0x%x\n", usage, cb->usage);
         return -EINVAL;
     }
 
@@ -559,17 +586,18 @@
         if (hostSyncStatus < 0) {
             // host failed the color buffer sync - probably since it was already
             // locked for write access. fail the lock.
-            LOGE("gralloc_lock cacheFlush failed postCount=%d sw_read=%d\n",
+            ALOGE("gralloc_lock cacheFlush failed postCount=%d sw_read=%d\n",
                  postCount, sw_read);
             return -EBUSY;
         }
 
-        //
-        // is virtual address required ?
-        //
-        if (sw_read || sw_write) {
-            *vaddr = cpu_addr;
-        }
+    }
+
+    //
+    // is virtual address required ?
+    //
+    if (sw_read || sw_write) {
+        *vaddr = cpu_addr;
     }
 
     if (sw_write) {
@@ -669,7 +697,7 @@
         // return error if connection with host can not be established
         HostConnection *hostCon = HostConnection::get();
         if (!hostCon) {
-            LOGE("gralloc: failed to get host connection while opening %s\n", name);
+            ALOGE("gralloc: failed to get host connection while opening %s\n", name);
             return -EIO;
         }
 
@@ -805,7 +833,7 @@
     if (atoi(prop) > 0) {
         return;
     }
-    LOGD("Emulator without GPU emulation detected.");
+    ALOGD("Emulator without GPU emulation detected.");
     module = dlopen("/system/lib/hw/gralloc.default.so", RTLD_LAZY|RTLD_LOCAL);
     if (module != NULL) {
         sFallback = reinterpret_cast<gralloc_module_t*>(dlsym(module, HAL_MODULE_INFO_SYM_AS_STR));
@@ -814,6 +842,6 @@
         }
     }
     if (sFallback == NULL) {
-        LOGE("Could not find software fallback module!?");
+        ALOGE("Could not find software fallback module!?");
     }
 }
diff --git a/tools/emulator/opengl/system/renderControl_enc/Android.mk b/tools/emulator/opengl/system/renderControl_enc/Android.mk
index 96f15a2..5792440 100644
--- a/tools/emulator/opengl/system/renderControl_enc/Android.mk
+++ b/tools/emulator/opengl/system/renderControl_enc/Android.mk
@@ -1,7 +1,12 @@
 LOCAL_PATH := $(call my-dir)
 
 $(call emugl-begin-shared-library,lib_renderControl_enc)
-$(call emugl-gen-encoder,$(LOCAL_PATH),renderControl)
+
+LOCAL_SRC_FILES := \
+    renderControl_client_context.cpp \
+    renderControl_enc.cpp \
+    renderControl_entry.cpp
+
 $(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
 $(call emugl-import,libOpenglCodecCommon)
 $(call emugl-end-module)
diff --git a/tools/emulator/opengl/system/renderControl_enc/README b/tools/emulator/opengl/system/renderControl_enc/README
index df870f6..2ee1a57 100644
--- a/tools/emulator/opengl/system/renderControl_enc/README
+++ b/tools/emulator/opengl/system/renderControl_enc/README
@@ -76,13 +76,19 @@
        be specified as a render target for a window surface through 
        rcSetWindowColorBuffer or to be displayed on the framebuffer window
        through rcFBPost.
-       The function returns a handle to the colorBuffer object.
+       The function returns a handle to the colorBuffer object, with an initial
+       reference count of 1.
 
-void rcDestroyColorBuffer(uint32_t colorbuffer);
-       destroyes a colorBuffer object.
+void rcOpenColorBuffer(uint32_t colorbuffer);
+       Adds an additional reference to the colorbuffer, typically from a
+       different Android process than the one which created it.
+
+void rcCloseColorBuffer(uint32_t colorbuffer);
+       Removes a reference to the colorbuffer. When the reference count drops
+       to zero the colorbuffer is automatically destroyed.
 
 void rcFlushWindowColorBuffer(uint32_t windowSurface, uint32_t colorBuffer);
-	   This flushes the current window color buffer
+       This flushes the current window color buffer
 
 void rcSetWindowColorBuffer(uint32_t windowSurface, uint32_t colorBuffer);
        This set the target color buffer for a windowSurface, when set the
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl.in b/tools/emulator/opengl/system/renderControl_enc/renderControl.in
index 18ce8a4..8281fd9 100644
--- a/tools/emulator/opengl/system/renderControl_enc/renderControl.in
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl.in
@@ -11,7 +11,8 @@
 GL_ENTRY(uint32_t, rcCreateWindowSurface, uint32_t config, uint32_t width, uint32_t height)
 GL_ENTRY(void, rcDestroyWindowSurface, uint32_t windowSurface)
 GL_ENTRY(uint32_t, rcCreateColorBuffer, uint32_t width, uint32_t height, GLenum internalFormat)
-GL_ENTRY(void, rcDestroyColorBuffer, uint32_t colorbuffer)
+GL_ENTRY(void, rcOpenColorBuffer, uint32_t colorbuffer)
+GL_ENTRY(void, rcCloseColorBuffer, uint32_t colorbuffer)
 GL_ENTRY(void, rcSetWindowColorBuffer, uint32_t windowSurface, uint32_t colorBuffer)
 GL_ENTRY(int, rcFlushWindowColorBuffer, uint32_t windowSurface)
 GL_ENTRY(EGLint, rcMakeCurrent, uint32_t context, uint32_t drawSurf, uint32_t readSurf)
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_client_context.cpp b/tools/emulator/opengl/system/renderControl_enc/renderControl_client_context.cpp
new file mode 100644
index 0000000..9488248
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_client_context.cpp
@@ -0,0 +1,42 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+
+#include <string.h>
+#include "renderControl_client_context.h"
+
+
+#include <stdio.h>
+
+int renderControl_client_context_t::initDispatchByName(void *(*getProc)(const char *, void *userData), void *userData)
+{
+	void *ptr;
+
+	ptr = getProc("rcGetRendererVersion", userData); set_rcGetRendererVersion((rcGetRendererVersion_client_proc_t)ptr);
+	ptr = getProc("rcGetEGLVersion", userData); set_rcGetEGLVersion((rcGetEGLVersion_client_proc_t)ptr);
+	ptr = getProc("rcQueryEGLString", userData); set_rcQueryEGLString((rcQueryEGLString_client_proc_t)ptr);
+	ptr = getProc("rcGetGLString", userData); set_rcGetGLString((rcGetGLString_client_proc_t)ptr);
+	ptr = getProc("rcGetNumConfigs", userData); set_rcGetNumConfigs((rcGetNumConfigs_client_proc_t)ptr);
+	ptr = getProc("rcGetConfigs", userData); set_rcGetConfigs((rcGetConfigs_client_proc_t)ptr);
+	ptr = getProc("rcChooseConfig", userData); set_rcChooseConfig((rcChooseConfig_client_proc_t)ptr);
+	ptr = getProc("rcGetFBParam", userData); set_rcGetFBParam((rcGetFBParam_client_proc_t)ptr);
+	ptr = getProc("rcCreateContext", userData); set_rcCreateContext((rcCreateContext_client_proc_t)ptr);
+	ptr = getProc("rcDestroyContext", userData); set_rcDestroyContext((rcDestroyContext_client_proc_t)ptr);
+	ptr = getProc("rcCreateWindowSurface", userData); set_rcCreateWindowSurface((rcCreateWindowSurface_client_proc_t)ptr);
+	ptr = getProc("rcDestroyWindowSurface", userData); set_rcDestroyWindowSurface((rcDestroyWindowSurface_client_proc_t)ptr);
+	ptr = getProc("rcCreateColorBuffer", userData); set_rcCreateColorBuffer((rcCreateColorBuffer_client_proc_t)ptr);
+	ptr = getProc("rcOpenColorBuffer", userData); set_rcOpenColorBuffer((rcOpenColorBuffer_client_proc_t)ptr);
+	ptr = getProc("rcCloseColorBuffer", userData); set_rcCloseColorBuffer((rcCloseColorBuffer_client_proc_t)ptr);
+	ptr = getProc("rcSetWindowColorBuffer", userData); set_rcSetWindowColorBuffer((rcSetWindowColorBuffer_client_proc_t)ptr);
+	ptr = getProc("rcFlushWindowColorBuffer", userData); set_rcFlushWindowColorBuffer((rcFlushWindowColorBuffer_client_proc_t)ptr);
+	ptr = getProc("rcMakeCurrent", userData); set_rcMakeCurrent((rcMakeCurrent_client_proc_t)ptr);
+	ptr = getProc("rcFBPost", userData); set_rcFBPost((rcFBPost_client_proc_t)ptr);
+	ptr = getProc("rcFBSetSwapInterval", userData); set_rcFBSetSwapInterval((rcFBSetSwapInterval_client_proc_t)ptr);
+	ptr = getProc("rcBindTexture", userData); set_rcBindTexture((rcBindTexture_client_proc_t)ptr);
+	ptr = getProc("rcBindRenderbuffer", userData); set_rcBindRenderbuffer((rcBindRenderbuffer_client_proc_t)ptr);
+	ptr = getProc("rcColorBufferCacheFlush", userData); set_rcColorBufferCacheFlush((rcColorBufferCacheFlush_client_proc_t)ptr);
+	ptr = getProc("rcReadColorBuffer", userData); set_rcReadColorBuffer((rcReadColorBuffer_client_proc_t)ptr);
+	ptr = getProc("rcUpdateColorBuffer", userData); set_rcUpdateColorBuffer((rcUpdateColorBuffer_client_proc_t)ptr);
+	return 0;
+}
+
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_client_context.h b/tools/emulator/opengl/system/renderControl_enc/renderControl_client_context.h
new file mode 100644
index 0000000..ed2b1fb
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_client_context.h
@@ -0,0 +1,71 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __renderControl_client_context_t_h
+#define __renderControl_client_context_t_h
+
+#include "renderControl_client_proc.h"
+
+
+struct renderControl_client_context_t {
+
+	rcGetRendererVersion_client_proc_t rcGetRendererVersion;
+	rcGetEGLVersion_client_proc_t rcGetEGLVersion;
+	rcQueryEGLString_client_proc_t rcQueryEGLString;
+	rcGetGLString_client_proc_t rcGetGLString;
+	rcGetNumConfigs_client_proc_t rcGetNumConfigs;
+	rcGetConfigs_client_proc_t rcGetConfigs;
+	rcChooseConfig_client_proc_t rcChooseConfig;
+	rcGetFBParam_client_proc_t rcGetFBParam;
+	rcCreateContext_client_proc_t rcCreateContext;
+	rcDestroyContext_client_proc_t rcDestroyContext;
+	rcCreateWindowSurface_client_proc_t rcCreateWindowSurface;
+	rcDestroyWindowSurface_client_proc_t rcDestroyWindowSurface;
+	rcCreateColorBuffer_client_proc_t rcCreateColorBuffer;
+	rcOpenColorBuffer_client_proc_t rcOpenColorBuffer;
+	rcCloseColorBuffer_client_proc_t rcCloseColorBuffer;
+	rcSetWindowColorBuffer_client_proc_t rcSetWindowColorBuffer;
+	rcFlushWindowColorBuffer_client_proc_t rcFlushWindowColorBuffer;
+	rcMakeCurrent_client_proc_t rcMakeCurrent;
+	rcFBPost_client_proc_t rcFBPost;
+	rcFBSetSwapInterval_client_proc_t rcFBSetSwapInterval;
+	rcBindTexture_client_proc_t rcBindTexture;
+	rcBindRenderbuffer_client_proc_t rcBindRenderbuffer;
+	rcColorBufferCacheFlush_client_proc_t rcColorBufferCacheFlush;
+	rcReadColorBuffer_client_proc_t rcReadColorBuffer;
+	rcUpdateColorBuffer_client_proc_t rcUpdateColorBuffer;
+	//Accessors 
+	virtual rcGetRendererVersion_client_proc_t set_rcGetRendererVersion(rcGetRendererVersion_client_proc_t f) { rcGetRendererVersion_client_proc_t retval = rcGetRendererVersion; rcGetRendererVersion = f; return retval;}
+	virtual rcGetEGLVersion_client_proc_t set_rcGetEGLVersion(rcGetEGLVersion_client_proc_t f) { rcGetEGLVersion_client_proc_t retval = rcGetEGLVersion; rcGetEGLVersion = f; return retval;}
+	virtual rcQueryEGLString_client_proc_t set_rcQueryEGLString(rcQueryEGLString_client_proc_t f) { rcQueryEGLString_client_proc_t retval = rcQueryEGLString; rcQueryEGLString = f; return retval;}
+	virtual rcGetGLString_client_proc_t set_rcGetGLString(rcGetGLString_client_proc_t f) { rcGetGLString_client_proc_t retval = rcGetGLString; rcGetGLString = f; return retval;}
+	virtual rcGetNumConfigs_client_proc_t set_rcGetNumConfigs(rcGetNumConfigs_client_proc_t f) { rcGetNumConfigs_client_proc_t retval = rcGetNumConfigs; rcGetNumConfigs = f; return retval;}
+	virtual rcGetConfigs_client_proc_t set_rcGetConfigs(rcGetConfigs_client_proc_t f) { rcGetConfigs_client_proc_t retval = rcGetConfigs; rcGetConfigs = f; return retval;}
+	virtual rcChooseConfig_client_proc_t set_rcChooseConfig(rcChooseConfig_client_proc_t f) { rcChooseConfig_client_proc_t retval = rcChooseConfig; rcChooseConfig = f; return retval;}
+	virtual rcGetFBParam_client_proc_t set_rcGetFBParam(rcGetFBParam_client_proc_t f) { rcGetFBParam_client_proc_t retval = rcGetFBParam; rcGetFBParam = f; return retval;}
+	virtual rcCreateContext_client_proc_t set_rcCreateContext(rcCreateContext_client_proc_t f) { rcCreateContext_client_proc_t retval = rcCreateContext; rcCreateContext = f; return retval;}
+	virtual rcDestroyContext_client_proc_t set_rcDestroyContext(rcDestroyContext_client_proc_t f) { rcDestroyContext_client_proc_t retval = rcDestroyContext; rcDestroyContext = f; return retval;}
+	virtual rcCreateWindowSurface_client_proc_t set_rcCreateWindowSurface(rcCreateWindowSurface_client_proc_t f) { rcCreateWindowSurface_client_proc_t retval = rcCreateWindowSurface; rcCreateWindowSurface = f; return retval;}
+	virtual rcDestroyWindowSurface_client_proc_t set_rcDestroyWindowSurface(rcDestroyWindowSurface_client_proc_t f) { rcDestroyWindowSurface_client_proc_t retval = rcDestroyWindowSurface; rcDestroyWindowSurface = f; return retval;}
+	virtual rcCreateColorBuffer_client_proc_t set_rcCreateColorBuffer(rcCreateColorBuffer_client_proc_t f) { rcCreateColorBuffer_client_proc_t retval = rcCreateColorBuffer; rcCreateColorBuffer = f; return retval;}
+	virtual rcOpenColorBuffer_client_proc_t set_rcOpenColorBuffer(rcOpenColorBuffer_client_proc_t f) { rcOpenColorBuffer_client_proc_t retval = rcOpenColorBuffer; rcOpenColorBuffer = f; return retval;}
+	virtual rcCloseColorBuffer_client_proc_t set_rcCloseColorBuffer(rcCloseColorBuffer_client_proc_t f) { rcCloseColorBuffer_client_proc_t retval = rcCloseColorBuffer; rcCloseColorBuffer = f; return retval;}
+	virtual rcSetWindowColorBuffer_client_proc_t set_rcSetWindowColorBuffer(rcSetWindowColorBuffer_client_proc_t f) { rcSetWindowColorBuffer_client_proc_t retval = rcSetWindowColorBuffer; rcSetWindowColorBuffer = f; return retval;}
+	virtual rcFlushWindowColorBuffer_client_proc_t set_rcFlushWindowColorBuffer(rcFlushWindowColorBuffer_client_proc_t f) { rcFlushWindowColorBuffer_client_proc_t retval = rcFlushWindowColorBuffer; rcFlushWindowColorBuffer = f; return retval;}
+	virtual rcMakeCurrent_client_proc_t set_rcMakeCurrent(rcMakeCurrent_client_proc_t f) { rcMakeCurrent_client_proc_t retval = rcMakeCurrent; rcMakeCurrent = f; return retval;}
+	virtual rcFBPost_client_proc_t set_rcFBPost(rcFBPost_client_proc_t f) { rcFBPost_client_proc_t retval = rcFBPost; rcFBPost = f; return retval;}
+	virtual rcFBSetSwapInterval_client_proc_t set_rcFBSetSwapInterval(rcFBSetSwapInterval_client_proc_t f) { rcFBSetSwapInterval_client_proc_t retval = rcFBSetSwapInterval; rcFBSetSwapInterval = f; return retval;}
+	virtual rcBindTexture_client_proc_t set_rcBindTexture(rcBindTexture_client_proc_t f) { rcBindTexture_client_proc_t retval = rcBindTexture; rcBindTexture = f; return retval;}
+	virtual rcBindRenderbuffer_client_proc_t set_rcBindRenderbuffer(rcBindRenderbuffer_client_proc_t f) { rcBindRenderbuffer_client_proc_t retval = rcBindRenderbuffer; rcBindRenderbuffer = f; return retval;}
+	virtual rcColorBufferCacheFlush_client_proc_t set_rcColorBufferCacheFlush(rcColorBufferCacheFlush_client_proc_t f) { rcColorBufferCacheFlush_client_proc_t retval = rcColorBufferCacheFlush; rcColorBufferCacheFlush = f; return retval;}
+	virtual rcReadColorBuffer_client_proc_t set_rcReadColorBuffer(rcReadColorBuffer_client_proc_t f) { rcReadColorBuffer_client_proc_t retval = rcReadColorBuffer; rcReadColorBuffer = f; return retval;}
+	virtual rcUpdateColorBuffer_client_proc_t set_rcUpdateColorBuffer(rcUpdateColorBuffer_client_proc_t f) { rcUpdateColorBuffer_client_proc_t retval = rcUpdateColorBuffer; rcUpdateColorBuffer = f; return retval;}
+	 virtual ~renderControl_client_context_t() {}
+
+	typedef renderControl_client_context_t *CONTEXT_ACCESSOR_TYPE(void);
+	static void setContextAccessor(CONTEXT_ACCESSOR_TYPE *f);
+	int initDispatchByName( void *(*getProc)(const char *name, void *userData), void *userData);
+	virtual void setError(unsigned int  error){};
+	virtual unsigned int getError(){ return 0; };
+};
+
+#endif
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_client_proc.h b/tools/emulator/opengl/system/renderControl_enc/renderControl_client_proc.h
new file mode 100644
index 0000000..3e00290
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_client_proc.h
@@ -0,0 +1,39 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __renderControl_client_proc_t_h
+#define __renderControl_client_proc_t_h
+
+
+
+#include "renderControl_types.h"
+#ifndef renderControl_APIENTRY
+#define renderControl_APIENTRY 
+#endif
+typedef GLint (renderControl_APIENTRY *rcGetRendererVersion_client_proc_t) (void * ctx);
+typedef EGLint (renderControl_APIENTRY *rcGetEGLVersion_client_proc_t) (void * ctx, EGLint*, EGLint*);
+typedef EGLint (renderControl_APIENTRY *rcQueryEGLString_client_proc_t) (void * ctx, EGLenum, void*, EGLint);
+typedef EGLint (renderControl_APIENTRY *rcGetGLString_client_proc_t) (void * ctx, EGLenum, void*, EGLint);
+typedef EGLint (renderControl_APIENTRY *rcGetNumConfigs_client_proc_t) (void * ctx, uint32_t*);
+typedef EGLint (renderControl_APIENTRY *rcGetConfigs_client_proc_t) (void * ctx, uint32_t, GLuint*);
+typedef EGLint (renderControl_APIENTRY *rcChooseConfig_client_proc_t) (void * ctx, EGLint*, uint32_t, uint32_t*, uint32_t);
+typedef EGLint (renderControl_APIENTRY *rcGetFBParam_client_proc_t) (void * ctx, EGLint);
+typedef uint32_t (renderControl_APIENTRY *rcCreateContext_client_proc_t) (void * ctx, uint32_t, uint32_t, uint32_t);
+typedef void (renderControl_APIENTRY *rcDestroyContext_client_proc_t) (void * ctx, uint32_t);
+typedef uint32_t (renderControl_APIENTRY *rcCreateWindowSurface_client_proc_t) (void * ctx, uint32_t, uint32_t, uint32_t);
+typedef void (renderControl_APIENTRY *rcDestroyWindowSurface_client_proc_t) (void * ctx, uint32_t);
+typedef uint32_t (renderControl_APIENTRY *rcCreateColorBuffer_client_proc_t) (void * ctx, uint32_t, uint32_t, GLenum);
+typedef void (renderControl_APIENTRY *rcOpenColorBuffer_client_proc_t) (void * ctx, uint32_t);
+typedef void (renderControl_APIENTRY *rcCloseColorBuffer_client_proc_t) (void * ctx, uint32_t);
+typedef void (renderControl_APIENTRY *rcSetWindowColorBuffer_client_proc_t) (void * ctx, uint32_t, uint32_t);
+typedef int (renderControl_APIENTRY *rcFlushWindowColorBuffer_client_proc_t) (void * ctx, uint32_t);
+typedef EGLint (renderControl_APIENTRY *rcMakeCurrent_client_proc_t) (void * ctx, uint32_t, uint32_t, uint32_t);
+typedef void (renderControl_APIENTRY *rcFBPost_client_proc_t) (void * ctx, uint32_t);
+typedef void (renderControl_APIENTRY *rcFBSetSwapInterval_client_proc_t) (void * ctx, EGLint);
+typedef void (renderControl_APIENTRY *rcBindTexture_client_proc_t) (void * ctx, uint32_t);
+typedef void (renderControl_APIENTRY *rcBindRenderbuffer_client_proc_t) (void * ctx, uint32_t);
+typedef EGLint (renderControl_APIENTRY *rcColorBufferCacheFlush_client_proc_t) (void * ctx, uint32_t, EGLint, int);
+typedef void (renderControl_APIENTRY *rcReadColorBuffer_client_proc_t) (void * ctx, uint32_t, GLint, GLint, GLint, GLint, GLenum, GLenum, void*);
+typedef int (renderControl_APIENTRY *rcUpdateColorBuffer_client_proc_t) (void * ctx, uint32_t, GLint, GLint, GLint, GLint, GLenum, GLenum, void*);
+
+
+#endif
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_enc.cpp b/tools/emulator/opengl/system/renderControl_enc/renderControl_enc.cpp
new file mode 100644
index 0000000..94e256a
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_enc.cpp
@@ -0,0 +1,536 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+
+#include <string.h>
+#include "renderControl_opcodes.h"
+
+#include "renderControl_enc.h"
+
+
+#include <stdio.h>
+static void enc_unsupported()
+{
+	ALOGE("Function is unsupported\n");
+}
+
+GLint rcGetRendererVersion_enc(void *self )
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcGetRendererVersion;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+
+	GLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcGetEGLVersion_enc(void *self , EGLint* major, EGLint* minor)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_major =  sizeof(EGLint);
+	const unsigned int __size_minor =  sizeof(EGLint);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_major + __size_minor + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcGetEGLVersion;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_major; ptr += 4;
+	*(unsigned int *)(ptr) = __size_minor; ptr += 4;
+	stream->readback(major, __size_major);
+	stream->readback(minor, __size_minor);
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcQueryEGLString_enc(void *self , EGLenum name, void* buffer, EGLint bufferSize)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffer =  bufferSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffer + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcQueryEGLString;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &name, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffer; ptr += 4;
+		memcpy(ptr, &bufferSize, 4); ptr += 4;
+	stream->readback(buffer, __size_buffer);
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcGetGLString_enc(void *self , EGLenum name, void* buffer, EGLint bufferSize)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffer =  bufferSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffer + 4 + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcGetGLString;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &name, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffer; ptr += 4;
+		memcpy(ptr, &bufferSize, 4); ptr += 4;
+	stream->readback(buffer, __size_buffer);
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcGetNumConfigs_enc(void *self , uint32_t* numAttribs)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_numAttribs =  sizeof(uint32_t);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_numAttribs + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcGetNumConfigs;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_numAttribs; ptr += 4;
+	stream->readback(numAttribs, __size_numAttribs);
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcGetConfigs_enc(void *self , uint32_t bufSize, GLuint* buffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_buffer =  bufSize;
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + __size_buffer + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcGetConfigs;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &bufSize, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_buffer; ptr += 4;
+	stream->readback(buffer, __size_buffer);
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcChooseConfig_enc(void *self , EGLint* attribs, uint32_t attribs_size, uint32_t* configs, uint32_t configs_size)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_attribs =  attribs_size;
+	const unsigned int __size_configs = ((configs != NULL) ?  configs_size*sizeof(uint32_t) : 0);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + __size_attribs + 4 + __size_configs + 4 + 2*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcChooseConfig;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+	*(unsigned int *)(ptr) = __size_attribs; ptr += 4;
+	memcpy(ptr, attribs, __size_attribs);ptr += __size_attribs;
+		memcpy(ptr, &attribs_size, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_configs; ptr += 4;
+		memcpy(ptr, &configs_size, 4); ptr += 4;
+	if (configs != NULL) stream->readback(configs, __size_configs);
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcGetFBParam_enc(void *self , EGLint param)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcGetFBParam;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &param, 4); ptr += 4;
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+uint32_t rcCreateContext_enc(void *self , uint32_t config, uint32_t share, uint32_t glVersion)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcCreateContext;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &config, 4); ptr += 4;
+		memcpy(ptr, &share, 4); ptr += 4;
+		memcpy(ptr, &glVersion, 4); ptr += 4;
+
+	uint32_t retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void rcDestroyContext_enc(void *self , uint32_t context)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcDestroyContext;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &context, 4); ptr += 4;
+}
+
+uint32_t rcCreateWindowSurface_enc(void *self , uint32_t config, uint32_t width, uint32_t height)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcCreateWindowSurface;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &config, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+
+	uint32_t retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void rcDestroyWindowSurface_enc(void *self , uint32_t windowSurface)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcDestroyWindowSurface;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &windowSurface, 4); ptr += 4;
+}
+
+uint32_t rcCreateColorBuffer_enc(void *self , uint32_t width, uint32_t height, GLenum internalFormat)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcCreateColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &internalFormat, 4); ptr += 4;
+
+	uint32_t retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void rcOpenColorBuffer_enc(void *self , uint32_t colorbuffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcOpenColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorbuffer, 4); ptr += 4;
+}
+
+void rcCloseColorBuffer_enc(void *self , uint32_t colorbuffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcCloseColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorbuffer, 4); ptr += 4;
+}
+
+void rcSetWindowColorBuffer_enc(void *self , uint32_t windowSurface, uint32_t colorBuffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcSetWindowColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &windowSurface, 4); ptr += 4;
+		memcpy(ptr, &colorBuffer, 4); ptr += 4;
+}
+
+int rcFlushWindowColorBuffer_enc(void *self , uint32_t windowSurface)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcFlushWindowColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &windowSurface, 4); ptr += 4;
+
+	int retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+EGLint rcMakeCurrent_enc(void *self , uint32_t context, uint32_t drawSurf, uint32_t readSurf)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcMakeCurrent;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &context, 4); ptr += 4;
+		memcpy(ptr, &drawSurf, 4); ptr += 4;
+		memcpy(ptr, &readSurf, 4); ptr += 4;
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void rcFBPost_enc(void *self , uint32_t colorBuffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcFBPost;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorBuffer, 4); ptr += 4;
+}
+
+void rcFBSetSwapInterval_enc(void *self , EGLint interval)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcFBSetSwapInterval;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &interval, 4); ptr += 4;
+}
+
+void rcBindTexture_enc(void *self , uint32_t colorBuffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcBindTexture;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorBuffer, 4); ptr += 4;
+}
+
+void rcBindRenderbuffer_enc(void *self , uint32_t colorBuffer)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcBindRenderbuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorBuffer, 4); ptr += 4;
+}
+
+EGLint rcColorBufferCacheFlush_enc(void *self , uint32_t colorbuffer, EGLint postCount, int forRead)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcColorBufferCacheFlush;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorbuffer, 4); ptr += 4;
+		memcpy(ptr, &postCount, 4); ptr += 4;
+		memcpy(ptr, &forRead, 4); ptr += 4;
+
+	EGLint retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+void rcReadColorBuffer_enc(void *self , uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  (((glUtilsPixelBitSize(format, type) * width) >> 3) * height);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(packetSize);
+	int tmp = OP_rcReadColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorbuffer, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	*(unsigned int *)(ptr) = __size_pixels; ptr += 4;
+	stream->readback(pixels, __size_pixels);
+}
+
+int rcUpdateColorBuffer_enc(void *self , uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels)
+{
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+
+	const unsigned int __size_pixels =  (((glUtilsPixelBitSize(format, type) * width) >> 3) * height);
+	 unsigned char *ptr;
+	 const size_t packetSize = 8 + 4 + 4 + 4 + 4 + 4 + 4 + 4 + __size_pixels + 1*4;
+	ptr = stream->alloc(8 + 4 + 4 + 4 + 4 + 4 + 4 + 4);
+	int tmp = OP_rcUpdateColorBuffer;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &packetSize, 4);  ptr += 4;
+
+		memcpy(ptr, &colorbuffer, 4); ptr += 4;
+		memcpy(ptr, &x, 4); ptr += 4;
+		memcpy(ptr, &y, 4); ptr += 4;
+		memcpy(ptr, &width, 4); ptr += 4;
+		memcpy(ptr, &height, 4); ptr += 4;
+		memcpy(ptr, &format, 4); ptr += 4;
+		memcpy(ptr, &type, 4); ptr += 4;
+	stream->flush();
+	stream->writeFully(&__size_pixels,4);
+	stream->writeFully(pixels, __size_pixels);
+
+	int retval;
+	stream->readback(&retval, 4);
+	return retval;
+}
+
+renderControl_encoder_context_t::renderControl_encoder_context_t(IOStream *stream)
+{
+	m_stream = stream;
+
+	set_rcGetRendererVersion(rcGetRendererVersion_enc);
+	set_rcGetEGLVersion(rcGetEGLVersion_enc);
+	set_rcQueryEGLString(rcQueryEGLString_enc);
+	set_rcGetGLString(rcGetGLString_enc);
+	set_rcGetNumConfigs(rcGetNumConfigs_enc);
+	set_rcGetConfigs(rcGetConfigs_enc);
+	set_rcChooseConfig(rcChooseConfig_enc);
+	set_rcGetFBParam(rcGetFBParam_enc);
+	set_rcCreateContext(rcCreateContext_enc);
+	set_rcDestroyContext(rcDestroyContext_enc);
+	set_rcCreateWindowSurface(rcCreateWindowSurface_enc);
+	set_rcDestroyWindowSurface(rcDestroyWindowSurface_enc);
+	set_rcCreateColorBuffer(rcCreateColorBuffer_enc);
+	set_rcOpenColorBuffer(rcOpenColorBuffer_enc);
+	set_rcCloseColorBuffer(rcCloseColorBuffer_enc);
+	set_rcSetWindowColorBuffer(rcSetWindowColorBuffer_enc);
+	set_rcFlushWindowColorBuffer(rcFlushWindowColorBuffer_enc);
+	set_rcMakeCurrent(rcMakeCurrent_enc);
+	set_rcFBPost(rcFBPost_enc);
+	set_rcFBSetSwapInterval(rcFBSetSwapInterval_enc);
+	set_rcBindTexture(rcBindTexture_enc);
+	set_rcBindRenderbuffer(rcBindRenderbuffer_enc);
+	set_rcColorBufferCacheFlush(rcColorBufferCacheFlush_enc);
+	set_rcReadColorBuffer(rcReadColorBuffer_enc);
+	set_rcUpdateColorBuffer(rcUpdateColorBuffer_enc);
+}
+
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_enc.h b/tools/emulator/opengl/system/renderControl_enc/renderControl_enc.h
new file mode 100644
index 0000000..712eeb9
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_enc.h
@@ -0,0 +1,51 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+
+#ifndef GUARD_renderControl_encoder_context_t
+#define GUARD_renderControl_encoder_context_t
+
+#include "IOStream.h"
+#include "renderControl_client_context.h"
+
+
+#include <stdint.h>
+#include <EGL/egl.h>
+#include "glUtils.h"
+
+struct renderControl_encoder_context_t : public renderControl_client_context_t {
+
+	IOStream *m_stream;
+
+	renderControl_encoder_context_t(IOStream *stream);
+
+
+};
+
+extern "C" {
+	GLint rcGetRendererVersion_enc(void *self );
+	EGLint rcGetEGLVersion_enc(void *self , EGLint* major, EGLint* minor);
+	EGLint rcQueryEGLString_enc(void *self , EGLenum name, void* buffer, EGLint bufferSize);
+	EGLint rcGetGLString_enc(void *self , EGLenum name, void* buffer, EGLint bufferSize);
+	EGLint rcGetNumConfigs_enc(void *self , uint32_t* numAttribs);
+	EGLint rcGetConfigs_enc(void *self , uint32_t bufSize, GLuint* buffer);
+	EGLint rcChooseConfig_enc(void *self , EGLint* attribs, uint32_t attribs_size, uint32_t* configs, uint32_t configs_size);
+	EGLint rcGetFBParam_enc(void *self , EGLint param);
+	uint32_t rcCreateContext_enc(void *self , uint32_t config, uint32_t share, uint32_t glVersion);
+	void rcDestroyContext_enc(void *self , uint32_t context);
+	uint32_t rcCreateWindowSurface_enc(void *self , uint32_t config, uint32_t width, uint32_t height);
+	void rcDestroyWindowSurface_enc(void *self , uint32_t windowSurface);
+	uint32_t rcCreateColorBuffer_enc(void *self , uint32_t width, uint32_t height, GLenum internalFormat);
+	void rcOpenColorBuffer_enc(void *self , uint32_t colorbuffer);
+	void rcCloseColorBuffer_enc(void *self , uint32_t colorbuffer);
+	void rcSetWindowColorBuffer_enc(void *self , uint32_t windowSurface, uint32_t colorBuffer);
+	int rcFlushWindowColorBuffer_enc(void *self , uint32_t windowSurface);
+	EGLint rcMakeCurrent_enc(void *self , uint32_t context, uint32_t drawSurf, uint32_t readSurf);
+	void rcFBPost_enc(void *self , uint32_t colorBuffer);
+	void rcFBSetSwapInterval_enc(void *self , EGLint interval);
+	void rcBindTexture_enc(void *self , uint32_t colorBuffer);
+	void rcBindRenderbuffer_enc(void *self , uint32_t colorBuffer);
+	EGLint rcColorBufferCacheFlush_enc(void *self , uint32_t colorbuffer, EGLint postCount, int forRead);
+	void rcReadColorBuffer_enc(void *self , uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels);
+	int rcUpdateColorBuffer_enc(void *self , uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels);
+};
+#endif
\ No newline at end of file
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_entry.cpp b/tools/emulator/opengl/system/renderControl_enc/renderControl_entry.cpp
new file mode 100644
index 0000000..9a0bba9
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_entry.cpp
@@ -0,0 +1,192 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#include <stdio.h>
+#include <stdlib.h>
+#include "renderControl_client_context.h"
+
+#ifndef GL_TRUE
+extern "C" {
+	GLint rcGetRendererVersion();
+	EGLint rcGetEGLVersion(EGLint* major, EGLint* minor);
+	EGLint rcQueryEGLString(EGLenum name, void* buffer, EGLint bufferSize);
+	EGLint rcGetGLString(EGLenum name, void* buffer, EGLint bufferSize);
+	EGLint rcGetNumConfigs(uint32_t* numAttribs);
+	EGLint rcGetConfigs(uint32_t bufSize, GLuint* buffer);
+	EGLint rcChooseConfig(EGLint* attribs, uint32_t attribs_size, uint32_t* configs, uint32_t configs_size);
+	EGLint rcGetFBParam(EGLint param);
+	uint32_t rcCreateContext(uint32_t config, uint32_t share, uint32_t glVersion);
+	void rcDestroyContext(uint32_t context);
+	uint32_t rcCreateWindowSurface(uint32_t config, uint32_t width, uint32_t height);
+	void rcDestroyWindowSurface(uint32_t windowSurface);
+	uint32_t rcCreateColorBuffer(uint32_t width, uint32_t height, GLenum internalFormat);
+	void rcOpenColorBuffer(uint32_t colorbuffer);
+	void rcCloseColorBuffer(uint32_t colorbuffer);
+	void rcSetWindowColorBuffer(uint32_t windowSurface, uint32_t colorBuffer);
+	int rcFlushWindowColorBuffer(uint32_t windowSurface);
+	EGLint rcMakeCurrent(uint32_t context, uint32_t drawSurf, uint32_t readSurf);
+	void rcFBPost(uint32_t colorBuffer);
+	void rcFBSetSwapInterval(EGLint interval);
+	void rcBindTexture(uint32_t colorBuffer);
+	void rcBindRenderbuffer(uint32_t colorBuffer);
+	EGLint rcColorBufferCacheFlush(uint32_t colorbuffer, EGLint postCount, int forRead);
+	void rcReadColorBuffer(uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels);
+	int rcUpdateColorBuffer(uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels);
+};
+
+#endif
+#ifndef GET_CONTEXT
+static renderControl_client_context_t::CONTEXT_ACCESSOR_TYPE *getCurrentContext = NULL;
+void renderControl_client_context_t::setContextAccessor(CONTEXT_ACCESSOR_TYPE *f) { getCurrentContext = f; }
+#define GET_CONTEXT renderControl_client_context_t * ctx = getCurrentContext() 
+#endif
+
+GLint rcGetRendererVersion()
+{
+	GET_CONTEXT; 
+	 return ctx->rcGetRendererVersion(ctx);
+}
+
+EGLint rcGetEGLVersion(EGLint* major, EGLint* minor)
+{
+	GET_CONTEXT; 
+	 return ctx->rcGetEGLVersion(ctx, major, minor);
+}
+
+EGLint rcQueryEGLString(EGLenum name, void* buffer, EGLint bufferSize)
+{
+	GET_CONTEXT; 
+	 return ctx->rcQueryEGLString(ctx, name, buffer, bufferSize);
+}
+
+EGLint rcGetGLString(EGLenum name, void* buffer, EGLint bufferSize)
+{
+	GET_CONTEXT; 
+	 return ctx->rcGetGLString(ctx, name, buffer, bufferSize);
+}
+
+EGLint rcGetNumConfigs(uint32_t* numAttribs)
+{
+	GET_CONTEXT; 
+	 return ctx->rcGetNumConfigs(ctx, numAttribs);
+}
+
+EGLint rcGetConfigs(uint32_t bufSize, GLuint* buffer)
+{
+	GET_CONTEXT; 
+	 return ctx->rcGetConfigs(ctx, bufSize, buffer);
+}
+
+EGLint rcChooseConfig(EGLint* attribs, uint32_t attribs_size, uint32_t* configs, uint32_t configs_size)
+{
+	GET_CONTEXT; 
+	 return ctx->rcChooseConfig(ctx, attribs, attribs_size, configs, configs_size);
+}
+
+EGLint rcGetFBParam(EGLint param)
+{
+	GET_CONTEXT; 
+	 return ctx->rcGetFBParam(ctx, param);
+}
+
+uint32_t rcCreateContext(uint32_t config, uint32_t share, uint32_t glVersion)
+{
+	GET_CONTEXT; 
+	 return ctx->rcCreateContext(ctx, config, share, glVersion);
+}
+
+void rcDestroyContext(uint32_t context)
+{
+	GET_CONTEXT; 
+	 ctx->rcDestroyContext(ctx, context);
+}
+
+uint32_t rcCreateWindowSurface(uint32_t config, uint32_t width, uint32_t height)
+{
+	GET_CONTEXT; 
+	 return ctx->rcCreateWindowSurface(ctx, config, width, height);
+}
+
+void rcDestroyWindowSurface(uint32_t windowSurface)
+{
+	GET_CONTEXT; 
+	 ctx->rcDestroyWindowSurface(ctx, windowSurface);
+}
+
+uint32_t rcCreateColorBuffer(uint32_t width, uint32_t height, GLenum internalFormat)
+{
+	GET_CONTEXT; 
+	 return ctx->rcCreateColorBuffer(ctx, width, height, internalFormat);
+}
+
+void rcOpenColorBuffer(uint32_t colorbuffer)
+{
+	GET_CONTEXT; 
+	 ctx->rcOpenColorBuffer(ctx, colorbuffer);
+}
+
+void rcCloseColorBuffer(uint32_t colorbuffer)
+{
+	GET_CONTEXT; 
+	 ctx->rcCloseColorBuffer(ctx, colorbuffer);
+}
+
+void rcSetWindowColorBuffer(uint32_t windowSurface, uint32_t colorBuffer)
+{
+	GET_CONTEXT; 
+	 ctx->rcSetWindowColorBuffer(ctx, windowSurface, colorBuffer);
+}
+
+int rcFlushWindowColorBuffer(uint32_t windowSurface)
+{
+	GET_CONTEXT; 
+	 return ctx->rcFlushWindowColorBuffer(ctx, windowSurface);
+}
+
+EGLint rcMakeCurrent(uint32_t context, uint32_t drawSurf, uint32_t readSurf)
+{
+	GET_CONTEXT; 
+	 return ctx->rcMakeCurrent(ctx, context, drawSurf, readSurf);
+}
+
+void rcFBPost(uint32_t colorBuffer)
+{
+	GET_CONTEXT; 
+	 ctx->rcFBPost(ctx, colorBuffer);
+}
+
+void rcFBSetSwapInterval(EGLint interval)
+{
+	GET_CONTEXT; 
+	 ctx->rcFBSetSwapInterval(ctx, interval);
+}
+
+void rcBindTexture(uint32_t colorBuffer)
+{
+	GET_CONTEXT; 
+	 ctx->rcBindTexture(ctx, colorBuffer);
+}
+
+void rcBindRenderbuffer(uint32_t colorBuffer)
+{
+	GET_CONTEXT; 
+	 ctx->rcBindRenderbuffer(ctx, colorBuffer);
+}
+
+EGLint rcColorBufferCacheFlush(uint32_t colorbuffer, EGLint postCount, int forRead)
+{
+	GET_CONTEXT; 
+	 return ctx->rcColorBufferCacheFlush(ctx, colorbuffer, postCount, forRead);
+}
+
+void rcReadColorBuffer(uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels)
+{
+	GET_CONTEXT; 
+	 ctx->rcReadColorBuffer(ctx, colorbuffer, x, y, width, height, format, type, pixels);
+}
+
+int rcUpdateColorBuffer(uint32_t colorbuffer, GLint x, GLint y, GLint width, GLint height, GLenum format, GLenum type, void* pixels)
+{
+	GET_CONTEXT; 
+	 return ctx->rcUpdateColorBuffer(ctx, colorbuffer, x, y, width, height, format, type, pixels);
+}
+
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_ftable.h b/tools/emulator/opengl/system/renderControl_enc/renderControl_ftable.h
new file mode 100644
index 0000000..1e9e2f9
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_ftable.h
@@ -0,0 +1,40 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __renderControl_client_ftable_t_h
+#define __renderControl_client_ftable_t_h
+
+
+static struct _renderControl_funcs_by_name {
+	const char *name;
+	void *proc;
+} renderControl_funcs_by_name[] = {
+	{"rcGetRendererVersion", (void*)rcGetRendererVersion},
+	{"rcGetEGLVersion", (void*)rcGetEGLVersion},
+	{"rcQueryEGLString", (void*)rcQueryEGLString},
+	{"rcGetGLString", (void*)rcGetGLString},
+	{"rcGetNumConfigs", (void*)rcGetNumConfigs},
+	{"rcGetConfigs", (void*)rcGetConfigs},
+	{"rcChooseConfig", (void*)rcChooseConfig},
+	{"rcGetFBParam", (void*)rcGetFBParam},
+	{"rcCreateContext", (void*)rcCreateContext},
+	{"rcDestroyContext", (void*)rcDestroyContext},
+	{"rcCreateWindowSurface", (void*)rcCreateWindowSurface},
+	{"rcDestroyWindowSurface", (void*)rcDestroyWindowSurface},
+	{"rcCreateColorBuffer", (void*)rcCreateColorBuffer},
+	{"rcOpenColorBuffer", (void*)rcOpenColorBuffer},
+	{"rcCloseColorBuffer", (void*)rcCloseColorBuffer},
+	{"rcSetWindowColorBuffer", (void*)rcSetWindowColorBuffer},
+	{"rcFlushWindowColorBuffer", (void*)rcFlushWindowColorBuffer},
+	{"rcMakeCurrent", (void*)rcMakeCurrent},
+	{"rcFBPost", (void*)rcFBPost},
+	{"rcFBSetSwapInterval", (void*)rcFBSetSwapInterval},
+	{"rcBindTexture", (void*)rcBindTexture},
+	{"rcBindRenderbuffer", (void*)rcBindRenderbuffer},
+	{"rcColorBufferCacheFlush", (void*)rcColorBufferCacheFlush},
+	{"rcReadColorBuffer", (void*)rcReadColorBuffer},
+	{"rcUpdateColorBuffer", (void*)rcUpdateColorBuffer},
+};
+static int renderControl_num_funcs = sizeof(renderControl_funcs_by_name) / sizeof(struct _renderControl_funcs_by_name);
+
+
+#endif
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_opcodes.h b/tools/emulator/opengl/system/renderControl_enc/renderControl_opcodes.h
new file mode 100644
index 0000000..b44f5d0
--- /dev/null
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_opcodes.h
@@ -0,0 +1,34 @@
+// Generated Code - DO NOT EDIT !!
+// generated by 'emugen'
+#ifndef __GUARD_renderControl_opcodes_h_
+#define __GUARD_renderControl_opcodes_h_
+
+#define OP_rcGetRendererVersion 					10000
+#define OP_rcGetEGLVersion 					10001
+#define OP_rcQueryEGLString 					10002
+#define OP_rcGetGLString 					10003
+#define OP_rcGetNumConfigs 					10004
+#define OP_rcGetConfigs 					10005
+#define OP_rcChooseConfig 					10006
+#define OP_rcGetFBParam 					10007
+#define OP_rcCreateContext 					10008
+#define OP_rcDestroyContext 					10009
+#define OP_rcCreateWindowSurface 					10010
+#define OP_rcDestroyWindowSurface 					10011
+#define OP_rcCreateColorBuffer 					10012
+#define OP_rcOpenColorBuffer 					10013
+#define OP_rcCloseColorBuffer 					10014
+#define OP_rcSetWindowColorBuffer 					10015
+#define OP_rcFlushWindowColorBuffer 					10016
+#define OP_rcMakeCurrent 					10017
+#define OP_rcFBPost 					10018
+#define OP_rcFBSetSwapInterval 					10019
+#define OP_rcBindTexture 					10020
+#define OP_rcBindRenderbuffer 					10021
+#define OP_rcColorBufferCacheFlush 					10022
+#define OP_rcReadColorBuffer 					10023
+#define OP_rcUpdateColorBuffer 					10024
+#define OP_last 					10025
+
+
+#endif
diff --git a/tools/emulator/opengl/system/renderControl_enc/renderControl_types.h b/tools/emulator/opengl/system/renderControl_enc/renderControl_types.h
index cb8e416..da215bb 100644
--- a/tools/emulator/opengl/system/renderControl_enc/renderControl_types.h
+++ b/tools/emulator/opengl/system/renderControl_enc/renderControl_types.h
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include <stdint.h>
 #include <EGL/egl.h>
 #include "glUtils.h"
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk b/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk
deleted file mode 100644
index 19d8794..0000000
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/Android.mk
+++ /dev/null
@@ -1,16 +0,0 @@
-ifeq ($(HOST_OS),linux)
-
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,libEGL_host_wrapper)
-
-LOCAL_SRC_FILES :=  \
-        egl.cpp \
-        egl_dispatch.cpp
-
-$(call emugl-export,LDLIBS,-ldl -pthread)
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-$(call emugl-end-module)
-
-endif # HOST_OS == linux
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/egl.cpp b/tools/emulator/opengl/tests/EGL_host_wrapper/egl.cpp
deleted file mode 100644
index 6fa27ac..0000000
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/egl.cpp
+++ /dev/null
@@ -1,277 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "egl_dispatch.h"
-#include "egl_ftable.h"
-#include <pthread.h>
-
-#define EGL_LIB "ANDROID_EGL_LIB"
-
-static struct egl_dispatch *s_dispatch = NULL;
-static pthread_once_t eglDispatchInitialized = PTHREAD_ONCE_INIT;
-
-void initEglDispatch()
-{
-    //
-    // Load back-end EGL implementation library
-    //
-    char *eglLib = (char *) "libEGL.so";
-    if (getenv(EGL_LIB) != NULL) {
-        eglLib = getenv(EGL_LIB);
-    }
-
-    s_dispatch = loadEGL(eglLib);
-    if (!s_dispatch) {
-        fprintf(stderr,"FATAL ERROR: Could not load EGL lib [%s]\n", eglLib);
-        exit(-1);
-    }
-}
-
-static struct egl_dispatch *getDispatch()
-{
-    pthread_once(&eglDispatchInitialized, initEglDispatch);
-    return s_dispatch;
-}
-
-__eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname)
-{
-     for (int i=0; i<egl_num_funcs; i++) {
-         if (!strcmp(egl_funcs_by_name[i].name, procname)) {
-             return (__eglMustCastToProperFunctionPointerType)egl_funcs_by_name[i].proc;
-         }
-     }
-
-     return getDispatch()->eglGetProcAddress(procname);
-}
-
-////////////////  Path through functions //////////
-
-EGLint eglGetError()
-{
-     return getDispatch()->eglGetError();
-}
-
-EGLDisplay eglGetDisplay(EGLNativeDisplayType display_id)
-{
-    return getDispatch()->eglGetDisplay(display_id);
-}
-
-EGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
-{
-     return getDispatch()->eglInitialize(dpy, major, minor);
-}
-
-EGLBoolean eglTerminate(EGLDisplay dpy)
-{
-     return getDispatch()->eglTerminate(dpy);
-}
-
-const char* eglQueryString(EGLDisplay dpy, EGLint name)
-{
-     return getDispatch()->eglQueryString(dpy, name);
-}
-
-EGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)
-{
-     return getDispatch()->eglGetConfigs(dpy, configs, config_size, num_config);
-}
-
-EGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)
-{
-     return getDispatch()->eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);
-}
-
-EGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)
-{
-     return getDispatch()->eglGetConfigAttrib(dpy, config, attribute, value);
-}
-
-EGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreateWindowSurface(dpy, config, win, attrib_list);
-}
-
-EGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreatePbufferSurface(dpy, config, attrib_list);
-}
-
-EGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);
-}
-
-EGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface)
-{
-     return getDispatch()->eglDestroySurface(dpy, surface);
-}
-
-EGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)
-{
-     return getDispatch()->eglQuerySurface(dpy, surface, attribute, value);
-}
-
-EGLBoolean eglBindAPI(EGLenum api)
-{
-     return getDispatch()->eglBindAPI(api);
-}
-
-EGLenum eglQueryAPI()
-{
-     return getDispatch()->eglQueryAPI();
-}
-
-EGLBoolean eglWaitClient()
-{
-     return getDispatch()->eglWaitClient();
-}
-
-EGLBoolean eglReleaseThread()
-{
-     return getDispatch()->eglReleaseThread();
-}
-
-EGLSurface eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);
-}
-
-EGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)
-{
-     return getDispatch()->eglSurfaceAttrib(dpy, surface, attribute, value);
-}
-
-EGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
-{
-     return getDispatch()->eglBindTexImage(dpy, surface, buffer);
-}
-
-EGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)
-{
-     return getDispatch()->eglReleaseTexImage(dpy, surface, buffer);
-}
-
-EGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval)
-{
-     return getDispatch()->eglSwapInterval(dpy, interval);
-}
-
-EGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreateContext(dpy, config, share_context, attrib_list);
-}
-
-EGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx)
-{
-     return getDispatch()->eglDestroyContext(dpy, ctx);
-}
-
-EGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
-{
-     return getDispatch()->eglMakeCurrent(dpy, draw, read, ctx);
-}
-
-EGLContext eglGetCurrentContext()
-{
-     return getDispatch()->eglGetCurrentContext();
-}
-
-EGLSurface eglGetCurrentSurface(EGLint readdraw)
-{
-     return getDispatch()->eglGetCurrentSurface(readdraw);
-}
-
-EGLDisplay eglGetCurrentDisplay()
-{
-     return getDispatch()->eglGetCurrentDisplay();
-}
-
-EGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)
-{
-     return getDispatch()->eglQueryContext(dpy, ctx, attribute, value);
-}
-
-EGLBoolean eglWaitGL()
-{
-     return getDispatch()->eglWaitGL();
-}
-
-EGLBoolean eglWaitNative(EGLint engine)
-{
-     return getDispatch()->eglWaitNative(engine);
-}
-
-EGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)
-{
-     return getDispatch()->eglSwapBuffers(dpy, surface);
-}
-
-EGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)
-{
-     return getDispatch()->eglCopyBuffers(dpy, surface, target);
-}
-
-EGLBoolean eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list)
-{
-     return getDispatch()->eglLockSurfaceKHR(display, surface, attrib_list);
-}
-
-EGLBoolean eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface)
-{
-     return getDispatch()->eglUnlockSurfaceKHR(display, surface);
-}
-
-EGLImageKHR eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);
-}
-
-EGLBoolean eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)
-{
-     return getDispatch()->eglDestroyImageKHR(dpy, image);
-}
-
-EGLSyncKHR eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)
-{
-     return getDispatch()->eglCreateSyncKHR(dpy, type, attrib_list);
-}
-
-EGLBoolean eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)
-{
-     return getDispatch()->eglDestroySyncKHR(dpy, sync);
-}
-
-EGLint eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout)
-{
-     return getDispatch()->eglClientWaitSyncKHR(dpy, sync, flags, timeout);
-}
-
-EGLBoolean eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)
-{
-     return getDispatch()->eglSignalSyncKHR(dpy, sync, mode);
-}
-
-EGLBoolean eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value)
-{
-     return getDispatch()->eglGetSyncAttribKHR(dpy, sync, attribute, value);
-}
-
-EGLBoolean eglSetSwapRectangleANDROID(EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height)
-{
-     return getDispatch()->eglSetSwapRectangleANDROID(dpy, draw, left, top, width, height);
-}
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp b/tools/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp
deleted file mode 100644
index a9b8214..0000000
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <stdio.h>
-#include <dlfcn.h>
-#include "egl_dispatch.h"
-
-
-egl_dispatch *loadEGL(const char *p_eglPath)
-{
-    void *libEGL = dlopen(p_eglPath, RTLD_NOW);
-    if (!libEGL) {
-        return NULL;
-    }
-
-    egl_dispatch *disp = new egl_dispatch;
-
-    void *ptr;
-    ptr = dlsym(libEGL,"eglGetError"); disp->set_eglGetError((eglGetError_t)ptr);
-    ptr = dlsym(libEGL,"eglGetDisplay"); disp->set_eglGetDisplay((eglGetDisplay_t)ptr);
-    ptr = dlsym(libEGL,"eglInitialize"); disp->set_eglInitialize((eglInitialize_t)ptr);
-    ptr = dlsym(libEGL,"eglTerminate"); disp->set_eglTerminate((eglTerminate_t)ptr);
-    ptr = dlsym(libEGL,"eglQueryString"); disp->set_eglQueryString((eglQueryString_t)ptr);
-    ptr = dlsym(libEGL,"eglGetConfigs"); disp->set_eglGetConfigs((eglGetConfigs_t)ptr);
-    ptr = dlsym(libEGL,"eglChooseConfig"); disp->set_eglChooseConfig((eglChooseConfig_t)ptr);
-    ptr = dlsym(libEGL,"eglGetConfigAttrib"); disp->set_eglGetConfigAttrib((eglGetConfigAttrib_t)ptr);
-    ptr = dlsym(libEGL,"eglCreateWindowSurface"); disp->set_eglCreateWindowSurface((eglCreateWindowSurface_t)ptr);
-    ptr = dlsym(libEGL,"eglCreatePbufferSurface"); disp->set_eglCreatePbufferSurface((eglCreatePbufferSurface_t)ptr);
-    ptr = dlsym(libEGL,"eglCreatePixmapSurface"); disp->set_eglCreatePixmapSurface((eglCreatePixmapSurface_t)ptr);
-    ptr = dlsym(libEGL,"eglDestroySurface"); disp->set_eglDestroySurface((eglDestroySurface_t)ptr);
-    ptr = dlsym(libEGL,"eglQuerySurface"); disp->set_eglQuerySurface((eglQuerySurface_t)ptr);
-    ptr = dlsym(libEGL,"eglBindAPI"); disp->set_eglBindAPI((eglBindAPI_t)ptr);
-    ptr = dlsym(libEGL,"eglQueryAPI"); disp->set_eglQueryAPI((eglQueryAPI_t)ptr);
-    ptr = dlsym(libEGL,"eglWaitClient"); disp->set_eglWaitClient((eglWaitClient_t)ptr);
-    ptr = dlsym(libEGL,"eglReleaseThread"); disp->set_eglReleaseThread((eglReleaseThread_t)ptr);
-    ptr = dlsym(libEGL,"eglCreatePbufferFromClientBuffer"); disp->set_eglCreatePbufferFromClientBuffer((eglCreatePbufferFromClientBuffer_t)ptr);
-    ptr = dlsym(libEGL,"eglSurfaceAttrib"); disp->set_eglSurfaceAttrib((eglSurfaceAttrib_t)ptr);
-    ptr = dlsym(libEGL,"eglBindTexImage"); disp->set_eglBindTexImage((eglBindTexImage_t)ptr);
-    ptr = dlsym(libEGL,"eglReleaseTexImage"); disp->set_eglReleaseTexImage((eglReleaseTexImage_t)ptr);
-    ptr = dlsym(libEGL,"eglSwapInterval"); disp->set_eglSwapInterval((eglSwapInterval_t)ptr);
-    ptr = dlsym(libEGL,"eglCreateContext"); disp->set_eglCreateContext((eglCreateContext_t)ptr);
-    ptr = dlsym(libEGL,"eglDestroyContext"); disp->set_eglDestroyContext((eglDestroyContext_t)ptr);
-    ptr = dlsym(libEGL,"eglMakeCurrent"); disp->set_eglMakeCurrent((eglMakeCurrent_t)ptr);
-    ptr = dlsym(libEGL,"eglGetCurrentContext"); disp->set_eglGetCurrentContext((eglGetCurrentContext_t)ptr);
-    ptr = dlsym(libEGL,"eglGetCurrentSurface"); disp->set_eglGetCurrentSurface((eglGetCurrentSurface_t)ptr);
-    ptr = dlsym(libEGL,"eglGetCurrentDisplay"); disp->set_eglGetCurrentDisplay((eglGetCurrentDisplay_t)ptr);
-    ptr = dlsym(libEGL,"eglQueryContext"); disp->set_eglQueryContext((eglQueryContext_t)ptr);
-    ptr = dlsym(libEGL,"eglWaitGL"); disp->set_eglWaitGL((eglWaitGL_t)ptr);
-    ptr = dlsym(libEGL,"eglWaitNative"); disp->set_eglWaitNative((eglWaitNative_t)ptr);
-    ptr = dlsym(libEGL,"eglSwapBuffers"); disp->set_eglSwapBuffers((eglSwapBuffers_t)ptr);
-    ptr = dlsym(libEGL,"eglCopyBuffers"); disp->set_eglCopyBuffers((eglCopyBuffers_t)ptr);
-    ptr = dlsym(libEGL,"eglGetProcAddress"); disp->set_eglGetProcAddress((eglGetProcAddress_t)ptr);
-    ptr = dlsym(libEGL,"eglLockSurfaceKHR"); disp->set_eglLockSurfaceKHR((eglLockSurfaceKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglUnlockSurfaceKHR"); disp->set_eglUnlockSurfaceKHR((eglUnlockSurfaceKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglCreateImageKHR"); disp->set_eglCreateImageKHR((eglCreateImageKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglDestroyImageKHR"); disp->set_eglDestroyImageKHR((eglDestroyImageKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglCreateSyncKHR"); disp->set_eglCreateSyncKHR((eglCreateSyncKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglDestroySyncKHR"); disp->set_eglDestroySyncKHR((eglDestroySyncKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglClientWaitSyncKHR"); disp->set_eglClientWaitSyncKHR((eglClientWaitSyncKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglSignalSyncKHR"); disp->set_eglSignalSyncKHR((eglSignalSyncKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglGetSyncAttribKHR"); disp->set_eglGetSyncAttribKHR((eglGetSyncAttribKHR_t)ptr);
-    ptr = dlsym(libEGL,"eglSetSwapRectangleANDROID"); disp->set_eglSetSwapRectangleANDROID((eglSetSwapRectangleANDROID_t)ptr);
-
-    return disp;
-}
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h b/tools/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h
deleted file mode 100644
index e5f67c9..0000000
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_dispatch.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _EGL_DISPATCH_H
-#define _EGL_DISPATCH_H
-
-#include "egl_proc.h"
-
-struct egl_dispatch {
-    eglGetError_t eglGetError;
-    eglGetDisplay_t eglGetDisplay;
-    eglInitialize_t eglInitialize;
-    eglTerminate_t eglTerminate;
-    eglQueryString_t eglQueryString;
-    eglGetConfigs_t eglGetConfigs;
-    eglChooseConfig_t eglChooseConfig;
-    eglGetConfigAttrib_t eglGetConfigAttrib;
-    eglCreateWindowSurface_t eglCreateWindowSurface;
-    eglCreatePbufferSurface_t eglCreatePbufferSurface;
-    eglCreatePixmapSurface_t eglCreatePixmapSurface;
-    eglDestroySurface_t eglDestroySurface;
-    eglQuerySurface_t eglQuerySurface;
-    eglBindAPI_t eglBindAPI;
-    eglQueryAPI_t eglQueryAPI;
-    eglWaitClient_t eglWaitClient;
-    eglReleaseThread_t eglReleaseThread;
-    eglCreatePbufferFromClientBuffer_t eglCreatePbufferFromClientBuffer;
-    eglSurfaceAttrib_t eglSurfaceAttrib;
-    eglBindTexImage_t eglBindTexImage;
-    eglReleaseTexImage_t eglReleaseTexImage;
-    eglSwapInterval_t eglSwapInterval;
-    eglCreateContext_t eglCreateContext;
-    eglDestroyContext_t eglDestroyContext;
-    eglMakeCurrent_t eglMakeCurrent;
-    eglGetCurrentContext_t eglGetCurrentContext;
-    eglGetCurrentSurface_t eglGetCurrentSurface;
-    eglGetCurrentDisplay_t eglGetCurrentDisplay;
-    eglQueryContext_t eglQueryContext;
-    eglWaitGL_t eglWaitGL;
-    eglWaitNative_t eglWaitNative;
-    eglSwapBuffers_t eglSwapBuffers;
-    eglCopyBuffers_t eglCopyBuffers;
-    eglGetProcAddress_t eglGetProcAddress;
-    eglLockSurfaceKHR_t eglLockSurfaceKHR;
-    eglUnlockSurfaceKHR_t eglUnlockSurfaceKHR;
-    eglCreateImageKHR_t eglCreateImageKHR;
-    eglDestroyImageKHR_t eglDestroyImageKHR;
-    eglCreateSyncKHR_t eglCreateSyncKHR;
-    eglDestroySyncKHR_t eglDestroySyncKHR;
-    eglClientWaitSyncKHR_t eglClientWaitSyncKHR;
-    eglSignalSyncKHR_t eglSignalSyncKHR;
-    eglGetSyncAttribKHR_t eglGetSyncAttribKHR;
-    eglSetSwapRectangleANDROID_t eglSetSwapRectangleANDROID;
-    //Accessors
-    eglGetError_t set_eglGetError(eglGetError_t f) { eglGetError_t retval = eglGetError; eglGetError = f; return retval;}
-    eglGetDisplay_t set_eglGetDisplay(eglGetDisplay_t f) { eglGetDisplay_t retval = eglGetDisplay; eglGetDisplay = f; return retval;}
-    eglInitialize_t set_eglInitialize(eglInitialize_t f) { eglInitialize_t retval = eglInitialize; eglInitialize = f; return retval;}
-    eglTerminate_t set_eglTerminate(eglTerminate_t f) { eglTerminate_t retval = eglTerminate; eglTerminate = f; return retval;}
-    eglQueryString_t set_eglQueryString(eglQueryString_t f) { eglQueryString_t retval = eglQueryString; eglQueryString = f; return retval;}
-    eglGetConfigs_t set_eglGetConfigs(eglGetConfigs_t f) { eglGetConfigs_t retval = eglGetConfigs; eglGetConfigs = f; return retval;}
-    eglChooseConfig_t set_eglChooseConfig(eglChooseConfig_t f) { eglChooseConfig_t retval = eglChooseConfig; eglChooseConfig = f; return retval;}
-    eglGetConfigAttrib_t set_eglGetConfigAttrib(eglGetConfigAttrib_t f) { eglGetConfigAttrib_t retval = eglGetConfigAttrib; eglGetConfigAttrib = f; return retval;}
-    eglCreateWindowSurface_t set_eglCreateWindowSurface(eglCreateWindowSurface_t f) { eglCreateWindowSurface_t retval = eglCreateWindowSurface; eglCreateWindowSurface = f; return retval;}
-    eglCreatePbufferSurface_t set_eglCreatePbufferSurface(eglCreatePbufferSurface_t f) { eglCreatePbufferSurface_t retval = eglCreatePbufferSurface; eglCreatePbufferSurface = f; return retval;}
-    eglCreatePixmapSurface_t set_eglCreatePixmapSurface(eglCreatePixmapSurface_t f) { eglCreatePixmapSurface_t retval = eglCreatePixmapSurface; eglCreatePixmapSurface = f; return retval;}
-    eglDestroySurface_t set_eglDestroySurface(eglDestroySurface_t f) { eglDestroySurface_t retval = eglDestroySurface; eglDestroySurface = f; return retval;}
-    eglQuerySurface_t set_eglQuerySurface(eglQuerySurface_t f) { eglQuerySurface_t retval = eglQuerySurface; eglQuerySurface = f; return retval;}
-    eglBindAPI_t set_eglBindAPI(eglBindAPI_t f) { eglBindAPI_t retval = eglBindAPI; eglBindAPI = f; return retval;}
-    eglQueryAPI_t set_eglQueryAPI(eglQueryAPI_t f) { eglQueryAPI_t retval = eglQueryAPI; eglQueryAPI = f; return retval;}
-    eglWaitClient_t set_eglWaitClient(eglWaitClient_t f) { eglWaitClient_t retval = eglWaitClient; eglWaitClient = f; return retval;}
-    eglReleaseThread_t set_eglReleaseThread(eglReleaseThread_t f) { eglReleaseThread_t retval = eglReleaseThread; eglReleaseThread = f; return retval;}
-    eglCreatePbufferFromClientBuffer_t set_eglCreatePbufferFromClientBuffer(eglCreatePbufferFromClientBuffer_t f) { eglCreatePbufferFromClientBuffer_t retval = eglCreatePbufferFromClientBuffer; eglCreatePbufferFromClientBuffer = f; return retval;}
-    eglSurfaceAttrib_t set_eglSurfaceAttrib(eglSurfaceAttrib_t f) { eglSurfaceAttrib_t retval = eglSurfaceAttrib; eglSurfaceAttrib = f; return retval;}
-    eglBindTexImage_t set_eglBindTexImage(eglBindTexImage_t f) { eglBindTexImage_t retval = eglBindTexImage; eglBindTexImage = f; return retval;}
-    eglReleaseTexImage_t set_eglReleaseTexImage(eglReleaseTexImage_t f) { eglReleaseTexImage_t retval = eglReleaseTexImage; eglReleaseTexImage = f; return retval;}
-    eglSwapInterval_t set_eglSwapInterval(eglSwapInterval_t f) { eglSwapInterval_t retval = eglSwapInterval; eglSwapInterval = f; return retval;}
-    eglCreateContext_t set_eglCreateContext(eglCreateContext_t f) { eglCreateContext_t retval = eglCreateContext; eglCreateContext = f; return retval;}
-    eglDestroyContext_t set_eglDestroyContext(eglDestroyContext_t f) { eglDestroyContext_t retval = eglDestroyContext; eglDestroyContext = f; return retval;}
-    eglMakeCurrent_t set_eglMakeCurrent(eglMakeCurrent_t f) { eglMakeCurrent_t retval = eglMakeCurrent; eglMakeCurrent = f; return retval;}
-    eglGetCurrentContext_t set_eglGetCurrentContext(eglGetCurrentContext_t f) { eglGetCurrentContext_t retval = eglGetCurrentContext; eglGetCurrentContext = f; return retval;}
-    eglGetCurrentSurface_t set_eglGetCurrentSurface(eglGetCurrentSurface_t f) { eglGetCurrentSurface_t retval = eglGetCurrentSurface; eglGetCurrentSurface = f; return retval;}
-    eglGetCurrentDisplay_t set_eglGetCurrentDisplay(eglGetCurrentDisplay_t f) { eglGetCurrentDisplay_t retval = eglGetCurrentDisplay; eglGetCurrentDisplay = f; return retval;}
-    eglQueryContext_t set_eglQueryContext(eglQueryContext_t f) { eglQueryContext_t retval = eglQueryContext; eglQueryContext = f; return retval;}
-    eglWaitGL_t set_eglWaitGL(eglWaitGL_t f) { eglWaitGL_t retval = eglWaitGL; eglWaitGL = f; return retval;}
-    eglWaitNative_t set_eglWaitNative(eglWaitNative_t f) { eglWaitNative_t retval = eglWaitNative; eglWaitNative = f; return retval;}
-    eglSwapBuffers_t set_eglSwapBuffers(eglSwapBuffers_t f) { eglSwapBuffers_t retval = eglSwapBuffers; eglSwapBuffers = f; return retval;}
-    eglCopyBuffers_t set_eglCopyBuffers(eglCopyBuffers_t f) { eglCopyBuffers_t retval = eglCopyBuffers; eglCopyBuffers = f; return retval;}
-    eglGetProcAddress_t set_eglGetProcAddress(eglGetProcAddress_t f) { eglGetProcAddress_t retval = eglGetProcAddress; eglGetProcAddress = f; return retval;}
-    eglLockSurfaceKHR_t set_eglLockSurfaceKHR(eglLockSurfaceKHR_t f) { eglLockSurfaceKHR_t retval = eglLockSurfaceKHR; eglLockSurfaceKHR = f; return retval;}
-    eglUnlockSurfaceKHR_t set_eglUnlockSurfaceKHR(eglUnlockSurfaceKHR_t f) { eglUnlockSurfaceKHR_t retval = eglUnlockSurfaceKHR; eglUnlockSurfaceKHR = f; return retval;}
-    eglCreateImageKHR_t set_eglCreateImageKHR(eglCreateImageKHR_t f) { eglCreateImageKHR_t retval = eglCreateImageKHR; eglCreateImageKHR = f; return retval;}
-    eglDestroyImageKHR_t set_eglDestroyImageKHR(eglDestroyImageKHR_t f) { eglDestroyImageKHR_t retval = eglDestroyImageKHR; eglDestroyImageKHR = f; return retval;}
-    eglCreateSyncKHR_t set_eglCreateSyncKHR(eglCreateSyncKHR_t f) { eglCreateSyncKHR_t retval = eglCreateSyncKHR; eglCreateSyncKHR = f; return retval;}
-    eglDestroySyncKHR_t set_eglDestroySyncKHR(eglDestroySyncKHR_t f) { eglDestroySyncKHR_t retval = eglDestroySyncKHR; eglDestroySyncKHR = f; return retval;}
-    eglClientWaitSyncKHR_t set_eglClientWaitSyncKHR(eglClientWaitSyncKHR_t f) { eglClientWaitSyncKHR_t retval = eglClientWaitSyncKHR; eglClientWaitSyncKHR = f; return retval;}
-    eglSignalSyncKHR_t set_eglSignalSyncKHR(eglSignalSyncKHR_t f) { eglSignalSyncKHR_t retval = eglSignalSyncKHR; eglSignalSyncKHR = f; return retval;}
-    eglGetSyncAttribKHR_t set_eglGetSyncAttribKHR(eglGetSyncAttribKHR_t f) { eglGetSyncAttribKHR_t retval = eglGetSyncAttribKHR; eglGetSyncAttribKHR = f; return retval;}
-    eglSetSwapRectangleANDROID_t set_eglSetSwapRectangleANDROID(eglSetSwapRectangleANDROID_t f) { eglSetSwapRectangleANDROID_t retval = eglSetSwapRectangleANDROID; eglSetSwapRectangleANDROID = f; return retval;}
-};
-
-egl_dispatch *loadEGL(const char *p_eglPath);
-
-#endif
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h b/tools/emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h
deleted file mode 100644
index ee40585..0000000
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_ftable.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-static struct _egl_funcs_by_name {
-    const char *name;
-    void *proc;
-} egl_funcs_by_name[] = {
-    {"eglGetError", (void *)eglGetError},
-    {"eglGetDisplay", (void *)eglGetDisplay},
-    {"eglInitialize", (void *)eglInitialize},
-    {"eglTerminate", (void *)eglTerminate},
-    {"eglQueryString", (void *)eglQueryString},
-    {"eglGetConfigs", (void *)eglGetConfigs},
-    {"eglChooseConfig", (void *)eglChooseConfig},
-    {"eglGetConfigAttrib", (void *)eglGetConfigAttrib},
-    {"eglCreateWindowSurface", (void *)eglCreateWindowSurface},
-    {"eglCreatePbufferSurface", (void *)eglCreatePbufferSurface},
-    {"eglCreatePixmapSurface", (void *)eglCreatePixmapSurface},
-    {"eglDestroySurface", (void *)eglDestroySurface},
-    {"eglQuerySurface", (void *)eglQuerySurface},
-    {"eglBindAPI", (void *)eglBindAPI},
-    {"eglQueryAPI", (void *)eglQueryAPI},
-    {"eglWaitClient", (void *)eglWaitClient},
-    {"eglReleaseThread", (void *)eglReleaseThread},
-    {"eglCreatePbufferFromClientBuffer", (void *)eglCreatePbufferFromClientBuffer},
-    {"eglSurfaceAttrib", (void *)eglSurfaceAttrib},
-    {"eglBindTexImage", (void *)eglBindTexImage},
-    {"eglReleaseTexImage", (void *)eglReleaseTexImage},
-    {"eglSwapInterval", (void *)eglSwapInterval},
-    {"eglCreateContext", (void *)eglCreateContext},
-    {"eglDestroyContext", (void *)eglDestroyContext},
-    {"eglMakeCurrent", (void *)eglMakeCurrent},
-    {"eglGetCurrentContext", (void *)eglGetCurrentContext},
-    {"eglGetCurrentSurface", (void *)eglGetCurrentSurface},
-    {"eglGetCurrentDisplay", (void *)eglGetCurrentDisplay},
-    {"eglQueryContext", (void *)eglQueryContext},
-    {"eglWaitGL", (void *)eglWaitGL},
-    {"eglWaitNative", (void *)eglWaitNative},
-    {"eglSwapBuffers", (void *)eglSwapBuffers},
-    {"eglCopyBuffers", (void *)eglCopyBuffers},
-    {"eglGetProcAddress", (void *)eglGetProcAddress},
-    {"eglLockSurfaceKHR", (void *)eglLockSurfaceKHR},
-    {"eglUnlockSurfaceKHR", (void *)eglUnlockSurfaceKHR},
-    {"eglCreateImageKHR", (void *)eglCreateImageKHR},
-    {"eglDestroyImageKHR", (void *)eglDestroyImageKHR},
-    {"eglCreateSyncKHR", (void *)eglCreateSyncKHR},
-    {"eglDestroySyncKHR", (void *)eglDestroySyncKHR},
-    {"eglClientWaitSyncKHR", (void *)eglClientWaitSyncKHR},
-    {"eglSignalSyncKHR", (void *)eglSignalSyncKHR},
-    {"eglGetSyncAttribKHR", (void *)eglGetSyncAttribKHR},
-    {"eglSetSwapRectangleANDROID", (void *)eglSetSwapRectangleANDROID}
-};
-
-static int egl_num_funcs = sizeof(egl_funcs_by_name) / sizeof(struct _egl_funcs_by_name);
diff --git a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_proc.h b/tools/emulator/opengl/tests/EGL_host_wrapper/egl_proc.h
deleted file mode 100644
index 140c030..0000000
--- a/tools/emulator/opengl/tests/EGL_host_wrapper/egl_proc.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _EGL_PROC_H
-#define _EGL_PROC_H
-
-#include <EGL/egl.h>
-#define EGL_EGLEXT_PROTOTYPES
-#include <EGL/eglext.h>
-
-typedef EGLint (* eglGetError_t) ();
-typedef EGLDisplay (* eglGetDisplay_t) (EGLNativeDisplayType);
-typedef EGLBoolean (* eglInitialize_t) (EGLDisplay, EGLint*, EGLint*);
-typedef EGLBoolean (* eglTerminate_t) (EGLDisplay);
-typedef char* (* eglQueryString_t) (EGLDisplay, EGLint);
-typedef EGLBoolean (* eglGetConfigs_t) (EGLDisplay, EGLConfig*, EGLint, EGLint*);
-typedef EGLBoolean (* eglChooseConfig_t) (EGLDisplay, const EGLint*, EGLConfig*, EGLint, EGLint*);
-typedef EGLBoolean (* eglGetConfigAttrib_t) (EGLDisplay, EGLConfig, EGLint, EGLint*);
-typedef EGLSurface (* eglCreateWindowSurface_t) (EGLDisplay, EGLConfig, EGLNativeWindowType, const EGLint*);
-typedef EGLSurface (* eglCreatePbufferSurface_t) (EGLDisplay, EGLConfig, const EGLint*);
-typedef EGLSurface (* eglCreatePixmapSurface_t) (EGLDisplay, EGLConfig, EGLNativePixmapType, const EGLint*);
-typedef EGLBoolean (* eglDestroySurface_t) (EGLDisplay, EGLSurface);
-typedef EGLBoolean (* eglQuerySurface_t) (EGLDisplay, EGLSurface, EGLint, EGLint*);
-typedef EGLBoolean (* eglBindAPI_t) (EGLenum);
-typedef EGLenum (* eglQueryAPI_t) ();
-typedef EGLBoolean (* eglWaitClient_t) ();
-typedef EGLBoolean (* eglReleaseThread_t) ();
-typedef EGLSurface (* eglCreatePbufferFromClientBuffer_t) (EGLDisplay, EGLenum, EGLClientBuffer, EGLConfig, const EGLint*);
-typedef EGLBoolean (* eglSurfaceAttrib_t) (EGLDisplay, EGLSurface, EGLint, EGLint);
-typedef EGLBoolean (* eglBindTexImage_t) (EGLDisplay, EGLSurface, EGLint);
-typedef EGLBoolean (* eglReleaseTexImage_t) (EGLDisplay, EGLSurface, EGLint);
-typedef EGLBoolean (* eglSwapInterval_t) (EGLDisplay, EGLint);
-typedef EGLContext (* eglCreateContext_t) (EGLDisplay, EGLConfig, EGLContext, const EGLint*);
-typedef EGLBoolean (* eglDestroyContext_t) (EGLDisplay, EGLContext);
-typedef EGLBoolean (* eglMakeCurrent_t) (EGLDisplay, EGLSurface, EGLSurface, EGLContext);
-typedef EGLContext (* eglGetCurrentContext_t) ();
-typedef EGLSurface (* eglGetCurrentSurface_t) (EGLint);
-typedef EGLDisplay (* eglGetCurrentDisplay_t) ();
-typedef EGLBoolean (* eglQueryContext_t) (EGLDisplay, EGLContext, EGLint, EGLint*);
-typedef EGLBoolean (* eglWaitGL_t) ();
-typedef EGLBoolean (* eglWaitNative_t) (EGLint);
-typedef EGLBoolean (* eglSwapBuffers_t) (EGLDisplay, EGLSurface);
-typedef EGLBoolean (* eglCopyBuffers_t) (EGLDisplay, EGLSurface, EGLNativePixmapType);
-typedef __eglMustCastToProperFunctionPointerType (* eglGetProcAddress_t) (const char*);
-typedef EGLBoolean (* eglLockSurfaceKHR_t) (EGLDisplay, EGLSurface, const EGLint*);
-typedef EGLBoolean (* eglUnlockSurfaceKHR_t) (EGLDisplay, EGLSurface);
-typedef EGLImageKHR (* eglCreateImageKHR_t) (EGLDisplay, EGLContext, EGLenum, EGLClientBuffer, const EGLint*);
-typedef EGLBoolean (* eglDestroyImageKHR_t) (EGLDisplay, EGLImageKHR image);
-typedef EGLSyncKHR (* eglCreateSyncKHR_t) (EGLDisplay, EGLenum, const EGLint*);
-typedef EGLBoolean (* eglDestroySyncKHR_t) (EGLDisplay, EGLSyncKHR sync);
-typedef EGLint (* eglClientWaitSyncKHR_t) (EGLDisplay, EGLSyncKHR, EGLint, EGLTimeKHR timeout);
-typedef EGLBoolean (* eglSignalSyncKHR_t) (EGLDisplay, EGLSyncKHR, EGLenum);
-typedef EGLBoolean (* eglGetSyncAttribKHR_t) (EGLDisplay, EGLSyncKHR, EGLint, EGLint*);
-typedef EGLBoolean (* eglSetSwapRectangleANDROID_t) (EGLDisplay, EGLSurface, EGLint, EGLint, EGLint, EGLint);
-
-#endif // of  _EGL_PROC_H
diff --git a/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk b/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk
deleted file mode 100644
index 52a1c8e..0000000
--- a/tools/emulator/opengl/tests/emulator_test_renderer/Android.mk
+++ /dev/null
@@ -1,22 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-$(call emugl-begin-host-executable,emulator_test_renderer)
-$(call emugl-import,libOpenglRender event_injector)
-
-LOCAL_SRC_FILES := main.cpp
-
-PREBUILT := $(HOST_PREBUILT_TAG)
-LOCAL_SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
-LOCAL_SDL_CFLAGS := $(shell $(LOCAL_SDL_CONFIG) --cflags)
-LOCAL_SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(LOCAL_SDL_CONFIG) --static-libs))
-
-LOCAL_CFLAGS += $(LOCAL_SDL_CFLAGS) -g -O0
-LOCAL_LDLIBS += $(LOCAL_SDL_LDLIBS)
-
-ifeq ($(HOST_OS),windows)
-LOCAL_LDLIBS += -lws2_32
-endif
-
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/emulator_test_renderer/main.cpp b/tools/emulator/opengl/tests/emulator_test_renderer/main.cpp
deleted file mode 100644
index 06abce7..0000000
--- a/tools/emulator/opengl/tests/emulator_test_renderer/main.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-#undef HAVE_MALLOC_H
-#include <SDL.h>
-#include <SDL_syswm.h>
-#include <stdio.h>
-#include <string.h>
-#include "libOpenglRender/render_api.h"
-#include <EventInjector.h>
-
-static int convert_keysym(int sym); // forward
-
-#ifdef __linux__
-#include <X11/Xlib.h>
-#endif
-#ifdef _WIN32
-
-#include <winsock2.h>
-int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
-#else
-int main(int argc, char *argv[])
-#endif
-{
-    int portNum = 22468;
-    int winWidth = 320;
-    int winHeight = 480;
-    int width, height;
-    int mouseDown = 0;
-    const char* env = getenv("ANDROID_WINDOW_SIZE");
-    FBNativeWindowType windowId = NULL;
-    EventInjector* injector;
-    int consolePort = 5554;
-
-    if (env && sscanf(env, "%dx%d", &width, &height) == 2) {
-        winWidth = width;
-        winHeight = height;
-    }
-
-#ifdef __linux__
-    // some OpenGL implementations may call X functions
-    // it is safer to synchronize all X calls made by all the
-    // rendering threads. (although the calls we do are locked
-    // in the FrameBuffer singleton object).
-    XInitThreads();
-#endif
-
-    //
-    // Inialize SDL window
-    //
-    if (SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO)) {
-        fprintf(stderr,"SDL init failed: %s\n", SDL_GetError());
-        return -1;
-    }
-
-    SDL_Surface *surface = SDL_SetVideoMode(winWidth, winHeight, 32, SDL_SWSURFACE);
-    if (surface == NULL) {
-        fprintf(stderr,"Failed to set video mode: %s\n", SDL_GetError());
-        return -1;
-    }
-
-    SDL_SysWMinfo  wminfo;
-    memset(&wminfo, 0, sizeof(wminfo));
-    SDL_GetWMInfo(&wminfo);
-#ifdef _WIN32
-    windowId = wminfo.window;
-    WSADATA  wsaData;
-    int      rc = WSAStartup( MAKEWORD(2,2), &wsaData);
-    if (rc != 0) {
-            printf( "could not initialize Winsock\n" );
-    }
-#elif __linux__
-    windowId = wminfo.info.x11.window;
-#elif __APPLE__
-    windowId = wminfo.nsWindowPtr;
-#endif
-
-    printf("initializing renderer process\n");
-
-    //
-    // initialize OpenGL renderer to render in our window
-    //
-    bool inited = initOpenGLRenderer(winWidth, winHeight, portNum);
-    if (!inited) {
-        return -1;
-    }
-    printf("renderer process started\n");
-
-    float zRot = 0.0f;
-    inited = createOpenGLSubwindow(windowId, 0, 0,
-                                   winWidth, winHeight, zRot);
-    if (!inited) {
-        printf("failed to create OpenGL subwindow\n");
-        stopOpenGLRenderer();
-        return -1;
-    }
-    int subwinWidth = winWidth;
-    int subwinHeight = winHeight;
-
-    injector = new EventInjector(consolePort);
-
-    // Just wait until the window is closed
-    SDL_Event ev;
-
-    for (;;) {
-        injector->wait(1000/15);
-        injector->poll();
-
-        while (SDL_PollEvent(&ev)) {
-            switch (ev.type) {
-            case SDL_MOUSEBUTTONDOWN:
-                if (!mouseDown) {
-                    injector->sendMouseDown(ev.button.x, ev.button.y);
-                    mouseDown = 1;
-                }
-                break;
-            case SDL_MOUSEBUTTONUP:
-                if (mouseDown) {
-                    injector->sendMouseUp(ev.button.x,ev.button.y);
-                    mouseDown = 0;
-                }
-                break;
-            case SDL_MOUSEMOTION:
-                if (mouseDown)
-                    injector->sendMouseMotion(ev.button.x,ev.button.y);
-                break;
-
-            case SDL_KEYDOWN:
-#ifdef __APPLE__
-                /* special code to deal with Command-Q properly */
-                if (ev.key.keysym.sym == SDLK_q &&
-                    ev.key.keysym.mod & KMOD_META) {
-                  goto EXIT;
-                }
-#endif
-                injector->sendKeyDown(convert_keysym(ev.key.keysym.sym));
-
-                if (ev.key.keysym.sym == SDLK_KP_MINUS) {
-                    subwinWidth /= 2;
-                    subwinHeight /= 2;
-                    
-                    bool stat = destroyOpenGLSubwindow();
-                    printf("destroy subwin returned %d\n", stat);
-                    stat = createOpenGLSubwindow(windowId,
-                                                (winWidth - subwinWidth) / 2,
-                                                (winHeight - subwinHeight) / 2,
-                                                subwinWidth, subwinHeight, 
-                                                zRot);
-                    printf("create subwin returned %d\n", stat);
-                }
-                else if (ev.key.keysym.sym == SDLK_KP_PLUS) {
-                    subwinWidth *= 2;
-                    subwinHeight *= 2;
-
-                    bool stat = destroyOpenGLSubwindow();
-                    printf("destroy subwin returned %d\n", stat);
-                    stat = createOpenGLSubwindow(windowId,
-                                                (winWidth - subwinWidth) / 2,
-                                                (winHeight - subwinHeight) / 2,
-                                                subwinWidth, subwinHeight, 
-                                                zRot);
-                    printf("create subwin returned %d\n", stat);
-                }
-                else if (ev.key.keysym.sym == SDLK_KP_MULTIPLY) {
-                    zRot += 10.0f;
-                    setOpenGLDisplayRotation(zRot);
-                }
-                else if (ev.key.keysym.sym == SDLK_KP_ENTER) {
-                    repaintOpenGLDisplay();
-                }
-                break;
-            case SDL_KEYUP:
-                injector->sendKeyUp(convert_keysym(ev.key.keysym.sym));
-                break;
-            case SDL_QUIT:
-                goto EXIT;
-            }
-        }
-    }
-EXIT:
-    //
-    // stop the renderer
-    //
-    printf("stopping the renderer process\n");
-    stopOpenGLRenderer();
-
-    return 0;
-}
-
-static int convert_keysym(int sym)
-{
-#define  EE(x,y)   SDLK_##x, EventInjector::KEY_##y,
-    static const int keymap[] = {
-        EE(LEFT,LEFT)
-        EE(RIGHT,RIGHT)
-        EE(DOWN,DOWN)
-        EE(UP,UP)
-        EE(RETURN,ENTER)
-        EE(F1,SOFT1)
-        EE(ESCAPE,BACK)
-        EE(HOME,HOME)
-        -1
-    };
-    int nn;
-    for (nn = 0; keymap[nn] >= 0; nn += 2) {
-        if (keymap[nn] == sym)
-            return keymap[nn+1];
-    }
-    return sym;
-}
diff --git a/tools/emulator/opengl/tests/event_injector/Android.mk b/tools/emulator/opengl/tests/event_injector/Android.mk
deleted file mode 100644
index 26eb476..0000000
--- a/tools/emulator/opengl/tests/event_injector/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-static-library,event_injector)
-
-LOCAL_SRC_FILES := \
-    EventInjector.cpp \
-    sockets.c \
-    emulator-console.c \
-    iolooper-select.c
-
-$(call emugl-export,C_INCLUDES,$(LOCAL_PATH))
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/event_injector/EventInjector.cpp b/tools/emulator/opengl/tests/event_injector/EventInjector.cpp
deleted file mode 100644
index 6dade6e..0000000
--- a/tools/emulator/opengl/tests/event_injector/EventInjector.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "EventInjector.h"
-#include "emulator-console.h"
-
-#define PRIVATE  EventInjectorPrivate
-
-class PRIVATE
-{
-public:
-    IoLooper*         mLooper;
-    EmulatorConsole*  mConsole;
-
-    EventInjectorPrivate(int port) {
-        mLooper = iolooper_new();
-        mConsole = emulatorConsole_new(port, mLooper);
-    }
-};
-
-EventInjector::EventInjector(int consolePort)
-{
-    mPrivate = new PRIVATE(consolePort);
-}
-
-EventInjector::~EventInjector()
-{
-    delete mPrivate;
-}
-
-void EventInjector::wait(int timeout_ms)
-{
-    iolooper_wait(mPrivate->mLooper, timeout_ms);
-}
-
-void EventInjector::poll(void)
-{
-    emulatorConsole_poll(mPrivate->mConsole);
-}
-
-void EventInjector::sendMouseDown( int x, int y )
-{
-    emulatorConsole_sendMouseDown(mPrivate->mConsole, x, y);
-}
-
-void EventInjector::sendMouseUp( int x, int y )
-{
-    emulatorConsole_sendMouseUp(mPrivate->mConsole, x, y);
-}
-
-void EventInjector::sendMouseMotion( int x, int y )
-{
-    emulatorConsole_sendMouseMotion(mPrivate->mConsole, x, y);
-}
-
-void EventInjector::sendKeyDown( int keycode )
-{
-    emulatorConsole_sendKey(mPrivate->mConsole, keycode, 1);
-}
-
-void EventInjector::sendKeyUp( int keycode )
-{
-    emulatorConsole_sendKey(mPrivate->mConsole, keycode, 0);
-}
diff --git a/tools/emulator/opengl/tests/event_injector/EventInjector.h b/tools/emulator/opengl/tests/event_injector/EventInjector.h
deleted file mode 100644
index a8fded7..0000000
--- a/tools/emulator/opengl/tests/event_injector/EventInjector.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-/* Event redirector is used to inject user events from a GL window
- * into the emulated program.
- */
-#ifndef EVENT_INJECTOR_H
-#define EVENT_INJECTOR_H
-
-class EventInjectorPrivate;
-
-class EventInjector
-{
-public:
-    EventInjector(int consolePort);
-    virtual ~EventInjector();
-
-    void wait( int timeout_ms );
-    void poll( void );
-
-    void sendMouseDown( int x, int y );
-    void sendMouseUp( int x, int y );
-    void sendMouseMotion( int x, int y );
-    void sendKeyDown( int keycode );
-    void sendKeyUp( int keycode );
-
-    /* Keycode values expected by the Linux kernel, and the emulator */
-    enum {
-        KEY_BACK = 158,
-        KEY_HOME = 102,
-        KEY_SOFT1 = 229,
-        KEY_LEFT = 105,
-        KEY_UP   = 103,
-        KEY_DOWN =  108,
-        KEY_RIGHT = 106,
-        KEY_VOLUMEUP = 115,
-        KEY_VOLUMEDOWN = 114,
-        KEY_SEND = 231,
-        KEY_END = 107,
-        KEY_ENTER = 28,
-    };
-
-private:
-    EventInjectorPrivate* mPrivate;
-};
-
-#endif /* EVENT_INJECTOR_H */
diff --git a/tools/emulator/opengl/tests/event_injector/emulator-console.c b/tools/emulator/opengl/tests/event_injector/emulator-console.c
deleted file mode 100644
index a8c49b2..0000000
--- a/tools/emulator/opengl/tests/event_injector/emulator-console.c
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "emulator-console.h"
-#include "sockets.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#define DEBUG  0
-#if DEBUG >= 1
-#  define D(...)  printf(__VA_ARGS__), printf("\n")
-#else
-#  define D(...)  ((void)0)
-#endif
-#if DEBUG >= 2
-#  define DD(...)  printf(__VA_ARGS__), printf("\n")
-#else
-#  define DD(...)  ((void)0)
-#endif
-
-#define ANEW0(p)  (p) = calloc(sizeof(*(p)), 1)
-
-enum {
-    STATE_CONNECTING = 0,
-    STATE_CONNECTED,
-    STATE_WAITING,
-    STATE_ERROR = 2
-};
-
-typedef struct Msg {
-    const char*   data;  // pointer to data
-    int           size;  // size of data
-    int           sent;  // already sent (so sent..size remain in buffer).
-    struct Msg*  next;  // next message in queue.
-} Msg;
-
-static Msg*
-msg_alloc( const char* data, int  datalen )
-{
-    Msg*  msg;
-
-    msg = malloc(sizeof(*msg) + datalen);
-    msg->data = (const char*)(msg + 1);
-    msg->size = datalen;
-    msg->sent = 0;
-    memcpy((char*)msg->data, data, datalen);
-    msg->next = NULL;
-
-    return msg;
-}
-
-static void
-msg_free( Msg*  msg )
-{
-    free(msg);
-}
-
-struct EmulatorConsole {
-    int        fd;
-    IoLooper*  looper;
-    int        state;
-    Msg*       out_msg;
-    SockAddress address;
-    int64_t     waitUntil;
-};
-
-/* Read as much from the input as possible, ignoring it.
- */
-static int
-emulatorConsole_eatInput( EmulatorConsole* con )
-{
-    for (;;) {
-        char temp[64];
-        int ret = socket_recv(con->fd, temp, sizeof temp);
-        if (ret < 0) {
-            if (errno == EAGAIN || errno == EWOULDBLOCK) {
-                return 0;
-            }
-            return -1;
-        }
-        if (ret == 0) {
-            return -1;
-        }
-        DD("Console received: '%.*s'", ret, temp);
-    }
-}
-
-static int
-emulatorConsole_sendOutput( EmulatorConsole* con )
-{
-    if (con->state != STATE_CONNECTED) {
-        errno = EINVAL;
-        return -1;
-    }
-
-    while (con->out_msg != NULL) {
-        Msg* msg = con->out_msg;
-        int  ret;
-
-        ret = socket_send(con->fd,
-                          msg->data + msg->sent,
-                          msg->size - msg->sent);
-        if (ret > 0) {
-            DD("Console sent: '%.*s'", ret, msg->data + msg->sent);
-
-            msg->sent += ret;
-            if (msg->sent == msg->size) {
-                con->out_msg = msg->next;
-                msg_free(msg);
-            }
-            continue;
-        }
-        if (ret < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
-            return 0;
-        }
-        con->state = STATE_ERROR;
-        D("Console error when sending: %s", strerror(errno));
-        return -1;
-    }
-    iolooper_del_write(con->looper, con->fd);
-    return 0;
-}
-
-static void
-emulatorConsole_completeConnect(EmulatorConsole* con)
-{
-    D("Console connected!");
-    iolooper_add_read(con->looper, con->fd);
-    iolooper_del_write(con->looper, con->fd);
-    con->state = STATE_CONNECTED;
-    if (con->out_msg != NULL) {
-        iolooper_add_write(con->looper, con->fd);
-        emulatorConsole_sendOutput(con);
-    }
-}
-
-static void
-emulatorConsole_retry(EmulatorConsole* con)
-{
-    /* Not possible yet, wait one second */
-    D("Could not connect to emulator, waiting 1 second: %s", errno_str);
-    con->state = STATE_WAITING;
-    con->waitUntil = iolooper_now() + 5000;
-}
-
-static void
-emulatorConsole_connect(EmulatorConsole* con)
-{
-    D("Trying to connect!");
-    if (con->fd < 0) {
-        con->fd = socket_create_inet( SOCKET_STREAM );
-        if (con->fd < 0) {
-    	    D("ERROR: Could not create socket: %s", errno_str);
-	    con->state = STATE_ERROR;
-	    return;
-        }
-        socket_set_nonblock(con->fd);
-    }
-    con->state = STATE_CONNECTING;
-    if (socket_connect(con->fd, &con->address) < 0) {
-        if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINPROGRESS) {
-            iolooper_add_write(con->looper, con->fd);
-        } else {
-            emulatorConsole_retry(con);
-        }
-        return;
-    }
-
-    emulatorConsole_completeConnect(con);
-}
-
-static void
-emulatorConsole_reset( EmulatorConsole* con )
-{
-    D("Resetting console connection");
-    while (con->out_msg) {
-        Msg* msg = con->out_msg;
-        con->out_msg = msg->next;
-        msg_free(msg);
-    }
-    iolooper_del_read(con->looper, con->fd);
-    iolooper_del_write(con->looper, con->fd);
-    socket_close(con->fd);
-    con->fd = -1;
-    emulatorConsole_connect(con);
-}
-
-/* Create a new EmulatorConsole object to connect asynchronously to
- * a given emulator port. Note that this should always succeeds since
- * the connection is asynchronous.
- */
-EmulatorConsole*
-emulatorConsole_new(int port, IoLooper* looper)
-{
-    EmulatorConsole*  con;
-    SockAddress  addr;
-
-    ANEW0(con);
-    con->looper = looper;
-    con->fd     = -1;
-    sock_address_init_inet(&con->address, SOCK_ADDRESS_INET_LOOPBACK, port);
-
-    emulatorConsole_connect(con);
-    return con;
-}
-
-int
-emulatorConsole_poll( EmulatorConsole*  con )
-{
-    int ret;
-
-    if (con->state == STATE_WAITING) {
-        if (iolooper_now() >= con->waitUntil)
-            emulatorConsole_connect(con);
-        return 0;
-    }
-
-    if (!iolooper_is_read(con->looper, con->fd) &&
-        !iolooper_is_write(con->looper, con->fd))
-    {
-        return 0;
-    }
-
-LOOP:
-    switch (con->state) {
-        case STATE_ERROR:
-            return -1;
-
-        case STATE_CONNECTING:
-            // read socket error to determine success / error.
-            if (socket_get_error(con->fd) != 0) {
-                emulatorConsole_retry(con);
-            } else {
-                emulatorConsole_completeConnect(con);
-            }
-            return 0;
-
-        case STATE_CONNECTED:
-            /* ignore input, if any */
-            if (iolooper_is_read(con->looper, con->fd)) {
-                if (emulatorConsole_eatInput(con) < 0) {
-                    goto SET_ERROR;
-                }
-            }
-            /* send outgoing data, if any */
-            if (iolooper_is_write(con->looper, con->fd)) {
-                if (emulatorConsole_sendOutput(con) < 0) {
-                    goto SET_ERROR;
-                }
-            }
-            return 0;
-
-	default:
-	    D("UNSUPPORTED STATE!");
-            break;
-    }
-
-SET_ERROR:
-    D("Console ERROR!: %s\n", errno_str);
-    con->state = STATE_ERROR;
-    emulatorConsole_reset(con);
-    return -1;
-}
-
-/* Send a message to the console asynchronously. Any answer will be
- * ignored. */
-void
-emulatorConsole_send( EmulatorConsole*  con, const char* command )
-{
-    int  cmdlen = strlen(command);
-    Msg* msg;
-    Msg** plast;
-
-    if (cmdlen == 0)
-        return;
-
-    /* Append new message at end of outgoing list */
-    msg = msg_alloc(command, cmdlen);
-    plast = &con->out_msg;
-    while (*plast) {
-        plast = &(*plast)->next;
-    }
-    *plast = msg;
-    if (con->out_msg == msg) {
-        iolooper_add_write(con->looper, con->fd);
-    }
-    emulatorConsole_sendOutput(con);
-}
-
-
-void
-emulatorConsole_sendMouseDown( EmulatorConsole* con, int x, int y )
-{
-    char temp[128];
-
-    D("sendMouseDown(%d,%d)", x, y);
-    snprintf(temp, sizeof temp,
-             "event send 3:0:%d 3:1:%d 1:330:1 0:0:0\r\n",
-             x, y);
-    emulatorConsole_send(con, temp);
-}
-
-void
-emulatorConsole_sendMouseMotion( EmulatorConsole* con, int x, int y )
-{
-    /* Same as mouse down */
-    emulatorConsole_sendMouseDown(con, x, y);
-}
-
-void
-emulatorConsole_sendMouseUp( EmulatorConsole* con, int x, int y )
-{
-    char temp[128];
-
-    D("sendMouseUp(%d,%d)", x, y);
-    snprintf(temp, sizeof temp,
-             "event send 3:0:%d 3:1:%d 1:330:0 0:0:0\r\n",
-             x, y);
-    emulatorConsole_send(con, temp);
-}
-
-#define EE(x,y)  if (keycode == x) return y;
-
-void
-emulatorConsole_sendKey( EmulatorConsole* con, int keycode, int down )
-{
-    char temp[128];
-
-    snprintf(temp, sizeof temp,
-             "event send EV_KEY:%d:%d 0:0:0\r\n", keycode, down);
-    emulatorConsole_send(con, temp);
-}
diff --git a/tools/emulator/opengl/tests/event_injector/emulator-console.h b/tools/emulator/opengl/tests/event_injector/emulator-console.h
deleted file mode 100644
index 19e9687..0000000
--- a/tools/emulator/opengl/tests/event_injector/emulator-console.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef ANDROID_EMULATOR_CONSOLE_H
-#define ANDROID_EMULATOR_CONSOLE_H
-
-#include "iolooper.h"
-#include "sockets.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct EmulatorConsole  EmulatorConsole;
-
-/* Create a new EmulatorConsole object to connect asynchronously to
- * a given emulator port. Note that this always succeeds since the
- * connection is asynchronous.
- */
-EmulatorConsole* emulatorConsole_new(int port, IoLooper* looper);
-
-/* Call this after an iolooper_poll() or iolooper_wait() to check
- * the status of the console's socket and act upon it.
- *
- * Returns 0 on success, or -1 on error (which indicates disconnection!)
- */
-int  emulatorConsole_poll( EmulatorConsole*  console );
-
-/* Send a message to the console asynchronously. Any answer will be
- * ignored. */
-void emulatorConsole_send( EmulatorConsole*  console, const char* command );
-
-void emulatorConsole_sendMouseDown( EmulatorConsole* con, int x, int y );
-void emulatorConsole_sendMouseMotion( EmulatorConsole* con, int x, int y );
-void emulatorConsole_sendMouseUp( EmulatorConsole* con, int x, int y );
-
-void emulatorConsole_sendKey( EmulatorConsole* con, int keycode, int down );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ANDROID_EMULATOR_CONSOLE_H */
diff --git a/tools/emulator/opengl/tests/event_injector/iolooper-select.c b/tools/emulator/opengl/tests/event_injector/iolooper-select.c
deleted file mode 100644
index c5fc7c2..0000000
--- a/tools/emulator/opengl/tests/event_injector/iolooper-select.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <errno.h>
-#include <stdlib.h>
-#include "iolooper.h"
-#include "sockets.h"
-
-/* An implementation of iolooper.h based on Unix select() */
-#ifdef _WIN32
-#  include <winsock2.h>
-#  include <time.h>
-#else
-#  include <sys/types.h>
-#  include <sys/select.h>
-#  include <sys/time.h>
-#endif
-
-struct IoLooper {
-    fd_set   reads[1];
-    fd_set   writes[1];
-    fd_set   reads_result[1];
-    fd_set   writes_result[1];
-    int      max_fd;
-    int      max_fd_valid;
-};
-
-IoLooper*
-iolooper_new(void)
-{
-    IoLooper*  iol = malloc(sizeof(*iol));
-    iolooper_reset(iol);
-    return iol;
-}
-
-void
-iolooper_free( IoLooper*  iol )
-{
-    free(iol);
-}
-
-void
-iolooper_reset( IoLooper*  iol )
-{
-    FD_ZERO(iol->reads);
-    FD_ZERO(iol->writes);
-    iol->max_fd = -1;
-    iol->max_fd_valid = 1;
-}
-
-static void
-iolooper_add_fd( IoLooper*  iol, int fd )
-{
-    if (iol->max_fd_valid && fd > iol->max_fd) {
-        iol->max_fd = fd;
-    }
-}
-
-static void
-iolooper_del_fd( IoLooper*  iol, int fd )
-{
-    if (iol->max_fd_valid && fd == iol->max_fd)
-        iol->max_fd_valid = 0;
-}
-
-void
-iolooper_modify( IoLooper* iol, int fd, int oldflags, int newflags )
-{
-    if (fd < 0)
-        return;
-
-    int changed = oldflags ^ newflags;
-
-    if ((changed & IOLOOPER_READ) != 0) {
-        if ((newflags & IOLOOPER_READ) != 0)
-            iolooper_add_read(iol, fd);
-        else
-            iolooper_del_read(iol, fd);
-    }
-    if ((changed & IOLOOPER_WRITE) != 0) {
-        if ((newflags & IOLOOPER_WRITE) != 0)
-            iolooper_add_write(iol, fd);
-        else
-            iolooper_del_write(iol, fd);
-    }
-}
-
-
-static int
-iolooper_fd_count( IoLooper*  iol )
-{
-    int  max_fd = iol->max_fd;
-    int  fd;
-
-    if (iol->max_fd_valid)
-        return max_fd + 1;
-
-    /* recompute max fd */
-    for (fd = 0; fd < FD_SETSIZE; fd++) {
-        if (!FD_ISSET(fd, iol->reads) && !FD_ISSET(fd, iol->writes))
-            continue;
-
-        max_fd = fd;
-    }
-    iol->max_fd       = max_fd;
-    iol->max_fd_valid = 1;
-
-    return max_fd + 1;
-}
-
-void
-iolooper_add_read( IoLooper*  iol, int  fd )
-{
-    if (fd >= 0) {
-        iolooper_add_fd(iol, fd);
-        FD_SET(fd, iol->reads);
-    }
-}
-
-void
-iolooper_add_write( IoLooper*  iol, int  fd )
-{
-    if (fd >= 0) {
-        iolooper_add_fd(iol, fd);
-        FD_SET(fd, iol->writes);
-    }
-}
-
-void
-iolooper_del_read( IoLooper*  iol, int  fd )
-{
-    if (fd >= 0) {
-        iolooper_del_fd(iol, fd);
-        FD_CLR(fd, iol->reads);
-    }
-}
-
-void
-iolooper_del_write( IoLooper*  iol, int  fd )
-{
-    if (fd >= 0) {
-        iolooper_del_fd(iol, fd);
-        FD_CLR(fd, iol->writes);
-    }
-}
-
-int
-iolooper_poll( IoLooper*  iol )
-{
-    int     count = iolooper_fd_count(iol);
-    int     ret;
-    fd_set  errs;
-
-    if (count == 0)
-        return 0;
-
-    FD_ZERO(&errs);
-
-    do {
-        struct timeval  tv;
-
-        tv.tv_sec = tv.tv_usec = 0;
-
-        iol->reads_result[0]  = iol->reads[0];
-        iol->writes_result[0] = iol->writes[0];
-
-        ret = select( count, iol->reads_result, iol->writes_result, &errs, &tv);
-    } while (ret < 0 && errno == EINTR);
-
-    return ret;
-}
-
-int
-iolooper_wait( IoLooper*  iol, int64_t  duration )
-{
-    int     count = iolooper_fd_count(iol);
-    int     ret;
-    fd_set  errs;
-    struct timeval tm0, *tm = NULL;
-
-    if (count == 0)
-        return 0;
-
-    if (duration < 0)
-        tm = NULL;
-    else {
-        tm = &tm0;
-        tm->tv_sec  = duration / 1000;
-        tm->tv_usec = (duration - 1000*tm->tv_sec) * 1000;
-    }
-
-    FD_ZERO(&errs);
-
-    do {
-        iol->reads_result[0]  = iol->reads[0];
-        iol->writes_result[0] = iol->writes[0];
-
-        ret = select( count, iol->reads_result, iol->writes_result, &errs, tm);
-        if (ret == 0) {
-            // Indicates timeout
-            errno = ETIMEDOUT;
-        }
-    } while (ret < 0 && errno == EINTR);
-
-    return ret;
-}
-
-
-int
-iolooper_is_read( IoLooper*  iol, int  fd )
-{
-    return FD_ISSET(fd, iol->reads_result);
-}
-
-int
-iolooper_is_write( IoLooper*  iol, int  fd )
-{
-    return FD_ISSET(fd, iol->writes_result);
-}
-
-int
-iolooper_has_operations( IoLooper* iol )
-{
-    return iolooper_fd_count(iol) > 0;
-}
-
-int64_t
-iolooper_now(void)
-{
-#ifdef _WIN32
-    FILETIME now;
-    int64_t now_100ns;
-
-    GetSystemTimeAsFileTime(&now);
-
-    /* Get the time as hundreds of nanosecond intervals since
-       12:00 AM January 1t 1601 UTC. We don't really need
-       to compute the value relative to the Posix epoch */
-    now_100ns = ((int64_t)now.dwHighDateTime << 32) | now.dwLowDateTime;
-
-    /* 100 ns == 0.1 us == 0.0001 ms */
-    return now_100ns / 10000LL;
-
-#else /* !_WIN32 */
-    struct timeval time_now;
-    return gettimeofday(&time_now, NULL) ? -1 : (int64_t)time_now.tv_sec * 1000LL +
-                                                time_now.tv_usec / 1000;
-#endif /* !_WIN32 */
-}
-
-int
-iolooper_wait_absolute(IoLooper* iol, int64_t deadline)
-{
-    int64_t timeout = deadline - iolooper_now();
-
-    /* If the deadline has passed, set the timeout to 0, this allows us
-     * to poll the file descriptor nonetheless */
-    if (timeout < 0)
-        timeout = 0;
-
-    return iolooper_wait(iol, timeout);
-}
diff --git a/tools/emulator/opengl/tests/event_injector/iolooper.h b/tools/emulator/opengl/tests/event_injector/iolooper.h
deleted file mode 100644
index 4aa3db7..0000000
--- a/tools/emulator/opengl/tests/event_injector/iolooper.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef IOLOOPER_H
-#define IOLOOPER_H
-
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* An IOLooper is an abstraction for select() */
-
-typedef struct IoLooper  IoLooper;
-
-IoLooper*  iolooper_new(void);
-void       iolooper_free( IoLooper*  iol );
-void       iolooper_reset( IoLooper*  iol );
-
-void       iolooper_add_read( IoLooper*  iol, int  fd );
-void       iolooper_add_write( IoLooper*  iol, int  fd );
-void       iolooper_del_read( IoLooper*  iol, int  fd );
-void       iolooper_del_write( IoLooper*  iol, int  fd );
-
-enum {
-    IOLOOPER_READ = (1<<0),
-    IOLOOPER_WRITE = (1<<1),
-};
-void       iolooper_modify( IoLooper*  iol, int fd, int oldflags, int newflags);
-
-int        iolooper_poll( IoLooper*  iol );
-/* Wrapper around select()
- * Return:
- *  > 0 in case an I/O has occurred, or < 0 on error, or 0 on timeout with
- *  errno set to ETIMEDOUT.
- */
-int        iolooper_wait( IoLooper*  iol, int64_t  duration );
-
-int        iolooper_is_read( IoLooper*  iol, int  fd );
-int        iolooper_is_write( IoLooper*  iol, int  fd );
-/* Returns 1 if this IoLooper has one or more file descriptor to interact with */
-int        iolooper_has_operations( IoLooper*  iol );
-/* Gets current time in milliseconds.
- * Return:
- *  Number of milliseconds corresponded to the current time on success, or -1
- *  on failure.
- */
-int64_t    iolooper_now(void);
-/* Waits for an I/O to occur before specific absolute time.
- * This routine should be used (instead of iolooper_wait) in cases when multiple
- * sequential I/O should be completed within given time interval. For instance,
- * consider the scenario, when "server" does two sequential writes, and "client"
- * now has to read data transferred with these two distinct writes. It might be
- * wasteful to do two reads, each with the same (large) timeout. Instead, it
- * would be better to assign a deadline for both reads before the first read,
- * and call iolooper_wait_absoulte with the same deadline value:
- *  int64_t deadline = iolooper_now() + TIMEOUT;
- *  if (iolooper_wait_absoulte(iol, deadline)) {
- *      // Process first buffer.
- *      (iolooper_wait_absoulte(iol, deadline)) {
- *          // Process second read
- *      }
- *  }
- * Param:
- *  iol IoLooper instance for an I/O.
- *  deadline Deadline (absoulte time in milliseconds) before which an I/O should
- *      occur.
- * Return:
- *  Number of I/O descriptors set in iol, if an I/O has occurred, 0 if no I/O
- *  occurred before the deadline, or -1 on error.
- */
-int iolooper_wait_absolute(IoLooper* iol, int64_t deadline);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* IOLOOPER_H */
diff --git a/tools/emulator/opengl/tests/event_injector/sockets.c b/tools/emulator/opengl/tests/event_injector/sockets.c
deleted file mode 100644
index a2cc334..0000000
--- a/tools/emulator/opengl/tests/event_injector/sockets.c
+++ /dev/null
@@ -1,1554 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-#ifdef __linux__ /* Recent versions of glibc only define EAI_NODATA, which is an
-                    extension to the POSIX standard, if _GNU_SOURCE is defined. */
-#  define _GNU_SOURCE 1
-#endif
-
-#include "sockets.h"
-#include <fcntl.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-//#include "android/utils/path.h"
-//#include "android/utils/debug.h"
-//#include "android/utils/misc.h"
-//#include "android/utils/system.h"
-
-#define  D(...) ((void)0)
-
-#ifdef _WIN32
-#  define xxWIN32_LEAN_AND_MEAN
-#  define _WIN32_WINNT 0x501
-#  include <windows.h>
-#  include <winsock2.h>
-#  include <ws2tcpip.h>
-#else /* !_WIN32 */
-#  include <sys/ioctl.h>
-#  include <sys/socket.h>
-#  include <netinet/in.h>
-#  include <netinet/tcp.h>
-#  include <netdb.h>
-#  if HAVE_UNIX_SOCKETS
-#    include <sys/un.h>
-#    ifndef UNIX_PATH_MAX
-#      define  UNIX_PATH_MAX  (sizeof(((struct sockaddr_un*)0)->sun_path)-1)
-#    endif
-#  endif
-#endif /* !_WIN32 */
-
-#define MIN(x,y) ({ typeof(x)  _x = (x); typeof(y)  _y = (y); _x <= _y ? _x : _y; })
-#define AFREE(p)              free(p)
-#define AARRAY_NEW(p,count)   (p) = malloc(sizeof(*(p))*(count))
-#define AARRAY_NEW0(p,count)  (p) = calloc(sizeof(*(p)),(count))
-
-/* QSOCKET_CALL is used to deal with the fact that EINTR happens pretty
- * easily in QEMU since we use SIGALRM to implement periodic timers
- */
-#ifdef _WIN32
-#  define  QSOCKET_CALL(_ret,_cmd)   \
-    do { _ret = (_cmd); } while ( _ret < 0 && WSAGetLastError() == WSAEINTR )
-#else
-#  define  QSOCKET_CALL(_ret,_cmd)   \
-    do { \
-        errno = 0; \
-        do { _ret = (_cmd); } while ( _ret < 0 && errno == EINTR ); \
-    } while (0);
-#endif
-
-#ifdef _WIN32
-
-#include <errno.h>
-
-static int  winsock_error;
-
-#define  WINSOCK_ERRORS_LIST \
-    EE(WSA_INVALID_HANDLE,EINVAL,"invalid handle") \
-    EE(WSA_NOT_ENOUGH_MEMORY,ENOMEM,"not enough memory") \
-    EE(WSA_INVALID_PARAMETER,EINVAL,"invalid parameter") \
-    EE(WSAEINTR,EINTR,"interrupted function call") \
-    EE(WSAEALREADY,EALREADY,"operation already in progress") \
-    EE(WSAEBADF,EBADF,"bad file descriptor") \
-    EE(WSAEACCES,EACCES,"permission denied") \
-    EE(WSAEFAULT,EFAULT,"bad address") \
-    EE(WSAEINVAL,EINVAL,"invalid argument") \
-    EE(WSAEMFILE,EMFILE,"too many opened files") \
-    EE(WSAEWOULDBLOCK,EWOULDBLOCK,"resource temporarily unavailable") \
-    EE(WSAEINPROGRESS,EINPROGRESS,"operation now in progress") \
-    EE(WSAEALREADY,EAGAIN,"operation already in progress") \
-    EE(WSAENOTSOCK,EBADF,"socket operation not on socket") \
-    EE(WSAEDESTADDRREQ,EDESTADDRREQ,"destination address required") \
-    EE(WSAEMSGSIZE,EMSGSIZE,"message too long") \
-    EE(WSAEPROTOTYPE,EPROTOTYPE,"wrong protocol type for socket") \
-    EE(WSAENOPROTOOPT,ENOPROTOOPT,"bad protocol option") \
-    EE(WSAEADDRINUSE,EADDRINUSE,"address already in use") \
-    EE(WSAEADDRNOTAVAIL,EADDRNOTAVAIL,"cannot assign requested address") \
-    EE(WSAENETDOWN,ENETDOWN,"network is down") \
-    EE(WSAENETUNREACH,ENETUNREACH,"network unreachable") \
-    EE(WSAENETRESET,ENETRESET,"network dropped connection on reset") \
-    EE(WSAECONNABORTED,ECONNABORTED,"software caused connection abort") \
-    EE(WSAECONNRESET,ECONNRESET,"connection reset by peer") \
-    EE(WSAENOBUFS,ENOBUFS,"no buffer space available") \
-    EE(WSAEISCONN,EISCONN,"socket is already connected") \
-    EE(WSAENOTCONN,ENOTCONN,"socket is not connected") \
-    EE(WSAESHUTDOWN,ESHUTDOWN,"cannot send after socket shutdown") \
-    EE(WSAETOOMANYREFS,ETOOMANYREFS,"too many references") \
-    EE(WSAETIMEDOUT,ETIMEDOUT,"connection timed out") \
-    EE(WSAECONNREFUSED,ECONNREFUSED,"connection refused") \
-    EE(WSAELOOP,ELOOP,"cannot translate name") \
-    EE(WSAENAMETOOLONG,ENAMETOOLONG,"name too long") \
-    EE(WSAEHOSTDOWN,EHOSTDOWN,"host is down") \
-    EE(WSAEHOSTUNREACH,EHOSTUNREACH,"no route to host") \
-
-typedef struct {
-    int          winsock;
-    int          unix;
-    const char*  string;
-} WinsockError;
-
-static const WinsockError  _winsock_errors[] = {
-#define  EE(w,u,s)   { w, u, s },
-    WINSOCK_ERRORS_LIST
-#undef   EE
-    { -1, -1, NULL }
-};
-
-/* this function reads the latest winsock error code and updates
- * errno to a matching value. It also returns the new value of
- * errno.
- */
-static int
-_fix_errno( void )
-{
-    const WinsockError*  werr = _winsock_errors;
-    int                  unix = EINVAL;  /* generic error code */
-
-    winsock_error = WSAGetLastError();
-
-    for ( ; werr->string != NULL; werr++ ) {
-        if (werr->winsock == winsock_error) {
-            unix = werr->unix;
-            break;
-        }
-    }
-    errno = unix;
-    return -1;
-}
-
-static int
-_set_errno( int  code )
-{
-    winsock_error = -1;
-    errno         = code;
-    return -1;
-}
-
-/* this function returns a string describing the latest Winsock error */
-const char*
-_errno_str(void)
-{
-    const WinsockError*  werr   = _winsock_errors;
-    const char*          result = NULL;
-
-    for ( ; werr->string; werr++ ) {
-        if (werr->winsock == winsock_error) {
-            result = werr->string;
-            break;
-        }
-    }
-
-    if (result == NULL) {
-        result = "Unknown socket error";
-    }
-    return result;
-}
-#else
-static int
-_fix_errno( void )
-{
-    return -1;
-}
-
-static int
-_set_errno( int  code )
-{
-    errno = code;
-    return -1;
-}
-#endif
-
-/* socket types */
-
-static int
-socket_family_to_bsd( SocketFamily  family )
-{
-    switch (family) {
-    case SOCKET_INET: return AF_INET;
-    case SOCKET_IN6:  return AF_INET6;
-#if HAVE_UNIX_SOCKETS
-    case SOCKET_UNIX: return AF_LOCAL;
-#endif
-    default: return -1;
-    }
-}
-
-static int
-socket_type_to_bsd( SocketType  type )
-{
-    switch (type) {
-        case SOCKET_DGRAM:  return SOCK_DGRAM;
-        case SOCKET_STREAM: return SOCK_STREAM;
-        default: return 0;
-    }
-}
-
-static SocketType
-socket_type_from_bsd( int  type )
-{
-    switch (type) {
-        case SOCK_DGRAM:  return SOCKET_DGRAM;
-        case SOCK_STREAM: return SOCKET_STREAM;
-        default:          return (SocketType) SOCKET_UNSPEC;
-    }
-}
-
-#if 0
-static int
-socket_type_check( SocketType  type )
-{
-    return (type == SOCKET_DGRAM || type == SOCKET_STREAM);
-}
-#endif
-
-typedef union {
-    struct sockaddr     sa[1];
-    struct sockaddr_in  in[1];
-#if HAVE_IN6_SOCKETS
-    struct sockaddr_in6 in6[1];
-#endif
-#if HAVE_UNIX_SOCKETS
-    struct sockaddr_un  un[1];
-#endif
-} sockaddr_storage;
-
-/* socket addresses */
-
-void
-sock_address_init_inet( SockAddress*  a, uint32_t  ip, uint16_t  port )
-{
-    a->family         = SOCKET_INET;
-    a->u.inet.port    = port;
-    a->u.inet.address = ip;
-}
-
-void
-sock_address_init_in6 ( SockAddress*  a, const uint8_t*  ip6[16], uint16_t  port )
-{
-    a->family = SOCKET_IN6;
-    a->u.in6.port = port;
-    memcpy( a->u.in6.address, ip6, sizeof(a->u.in6.address) );
-}
-
-void
-sock_address_init_unix( SockAddress*  a, const char*  path )
-{
-    a->family       = SOCKET_UNIX;
-    a->u._unix.path  = strdup(path ? path : "");
-    a->u._unix.owner = 1;
-}
-
-void  sock_address_done( SockAddress*  a )
-{
-    if (a->family == SOCKET_UNIX && a->u._unix.owner) {
-        a->u._unix.owner = 0;
-        free((char*)a->u._unix.path);
-    }
-}
-
-static char*
-format_char( char*  buf, char*  end, int  c )
-{
-    if (buf < end) {
-        if (buf+1 == end) {
-            *buf++ = 0;
-        } else {
-            *buf++ = (char) c;
-            *buf    = 0;
-        }
-    }
-    return buf;
-}
-
-static char*
-format_str( char*  buf, char*  end, const char*  str )
-{
-    int  len   = strlen(str);
-    int  avail = end - buf;
-
-    if (len > avail)
-        len = avail;
-
-    memcpy( buf, str, len );
-    buf += len;
-
-    if (buf == end)
-        buf[-1] = 0;
-    else
-        buf[0] = 0;
-
-    return buf;
-}
-
-static char*
-format_unsigned( char*  buf, char*  end, unsigned  val )
-{
-    char  temp[16];
-    int   nn;
-
-    for ( nn = 0; val != 0; nn++ ) {
-        int  rem = val % 10;
-        temp[nn] = '0'+rem;
-        val /= 10;
-    }
-
-    if (nn == 0)
-        temp[nn++] = '0';
-
-    while (nn > 0)
-        buf = format_char(buf, end, temp[--nn]);
-
-    return buf;
-}
-
-static char*
-format_hex( char*  buf, char*  end, unsigned  val, int  ndigits )
-{
-    int   shift = 4*ndigits;
-    static const char   hex[16] = "0123456789abcdef";
-
-    while (shift >= 0) {
-        buf = format_char(buf, end, hex[(val >> shift) & 15]);
-        shift -= 4;
-    }
-    return buf;
-}
-
-static char*
-format_ip4( char*  buf, char*  end, uint32_t  ip )
-{
-    buf = format_unsigned( buf, end, (unsigned)(ip >> 24) );
-    buf = format_char( buf, end, '.');
-    buf = format_unsigned( buf, end, (unsigned)((ip >> 16) & 255));
-    buf = format_char( buf, end, '.');
-    buf = format_unsigned( buf, end, (unsigned)((ip >> 8) & 255));
-    buf = format_char( buf, end, '.');
-    buf = format_unsigned( buf, end, (unsigned)(ip & 255));
-    return buf;
-}
-
-static char*
-format_ip6( char*  buf, char*  end, const uint8_t*  ip6 )
-{
-    int  nn;
-    for (nn = 0; nn < 8; nn++) {
-        int  val = (ip6[0] << 16) | ip6[1];
-        ip6 += 2;
-        if (nn > 0)
-            buf = format_char(buf, end, ':');
-        if (val == 0)
-            continue;
-        buf  = format_hex(buf, end, val, 4);
-    }
-    return buf;
-}
-
-const char*
-sock_address_to_string( const SockAddress*  a )
-{
-    static char buf0[PATH_MAX];
-    char *buf = buf0, *end = buf + sizeof(buf0);
-
-    switch (a->family) {
-    case SOCKET_INET:
-        buf = format_ip4( buf, end, a->u.inet.address );
-        buf = format_char( buf, end, ':' );
-        buf = format_unsigned( buf, end, (unsigned) a->u.inet.port );
-        break;
-
-    case SOCKET_IN6:
-        buf = format_ip6( buf, end, a->u.in6.address );
-        buf = format_char( buf, end, ':' );
-        buf = format_unsigned( buf, end, (unsigned) a->u.in6.port );
-        break;
-
-    case SOCKET_UNIX:
-        buf = format_str( buf, end, a->u._unix.path );
-        break;
-
-    default:
-        return NULL;
-    }
-
-    return buf0;
-}
-
-int
-sock_address_equal( const SockAddress*  a, const SockAddress*  b )
-{
-    if (a->family != b->family)
-        return 0;
-
-    switch (a->family) {
-    case SOCKET_INET:
-        return (a->u.inet.address == b->u.inet.address &&
-                a->u.inet.port    == b->u.inet.port);
-
-    case SOCKET_IN6:
-        return (!memcmp(a->u.in6.address, b->u.in6.address, 16) &&
-                a->u.in6.port == b->u.in6.port);
-
-    case SOCKET_UNIX:
-        return (!strcmp(a->u._unix.path, b->u._unix.path));
-
-    default:
-        return 0;
-    }
-}
-
-int
-sock_address_get_port( const SockAddress*  a )
-{
-    switch (a->family) {
-    case SOCKET_INET:
-        return a->u.inet.port;
-    case SOCKET_IN6:
-        return a->u.in6.port;
-    default:
-        return -1;
-    }
-}
-
-void
-sock_address_set_port( SockAddress*  a, uint16_t  port )
-{
-    switch (a->family) {
-    case SOCKET_INET:
-        a->u.inet.port = port;
-        break;
-    case SOCKET_IN6:
-        a->u.in6.port = port;
-        break;
-    default:
-        ;
-    }
-}
-
-const char*
-sock_address_get_path( const SockAddress*  a )
-{
-    if (a->family == SOCKET_UNIX)
-        return a->u._unix.path;
-    else
-        return NULL;
-}
-
-int
-sock_address_get_ip( const SockAddress*  a )
-{
-    if (a->family == SOCKET_INET)
-        return a->u.inet.address;
-
-    return -1;
-}
-
-#if 0
-char*
-bufprint_sock_address( char*  p, char*  end, const SockAddress*  a )
-{
-    switch (a->family) {
-    case SOCKET_INET:
-        {
-            uint32_t  ip = a->u.inet.address;
-
-            return bufprint( p, end, "%d.%d.%d.%d:%d",
-                         (ip >> 24) & 255, (ip >> 16) & 255,
-                         (ip >> 8) & 255, ip & 255,
-                         a->u.inet.port );
-        }
-    case SOCKET_IN6:
-        {
-            int             nn     = 0;
-            const char*     column = "";
-            const uint8_t*  tab    = a->u.in6.address;
-            for (nn = 0; nn < 16; nn += 2) {
-                p = bufprint(p, end, "%s%04x", column, (tab[n] << 8) | tab[n+1]);
-                column = ":";
-            }
-            return bufprint(p, end, ":%d", a->u.in6.port);
-        }
-    case SOCKET_UNIX:
-        {
-            return bufprint(p, end, "%s", a->u._unix.path);
-        }
-    default:
-        return p;
-    }
-}
-#endif
-
-static int
-sock_address_to_bsd( const SockAddress*  a, sockaddr_storage*  paddress, socklen_t  *psize )
-{
-    switch (a->family) {
-    case SOCKET_INET:
-        {
-            struct sockaddr_in*  dst = paddress->in;
-
-            *psize = sizeof(*dst);
-
-            memset( paddress, 0, *psize );
-
-            dst->sin_family      = AF_INET;
-            dst->sin_port        = htons(a->u.inet.port);
-            dst->sin_addr.s_addr = htonl(a->u.inet.address);
-        }
-        break;
-
-#if HAVE_IN6_SOCKETS
-    case SOCKET_IN6:
-        {
-            struct sockaddr_in6*  dst = paddress->in6;
-
-            *psize = sizeof(*dst);
-
-            memset( paddress, 0, *psize );
-
-            dst->sin6_family = AF_INET6;
-            dst->sin6_port   = htons(a->u.in6.port);
-            memcpy( dst->sin6_addr.s6_addr, a->u.in6.address, 16 );
-        }
-        break;
-#endif /* HAVE_IN6_SOCKETS */
-
-#if HAVE_UNIX_SOCKETS
-    case SOCKET_UNIX:
-        {
-            int                  slen = strlen(a->u._unix.path);
-            struct sockaddr_un*  dst = paddress->un;
-
-            if (slen >= (int)UNIX_PATH_MAX)
-                return -1;
-
-            memset( dst, 0, sizeof(*dst) );
-
-            dst->sun_family = AF_LOCAL;
-            memcpy( dst->sun_path, a->u._unix.path, slen );
-            dst->sun_path[slen] = 0;
-
-            *psize = (char*)&dst->sun_path[slen+1] - (char*)dst;
-        }
-        break;
-#endif /* HAVE_UNIX_SOCKETS */
-
-    default:
-        return _set_errno(EINVAL);
-    }
-
-    return 0;
-}
-
-static int
-sock_address_from_bsd( SockAddress*  a, const void*  from, size_t  fromlen )
-{
-    switch (((struct sockaddr *)from)->sa_family) {
-    case AF_INET:
-        {
-           const struct sockaddr_in*  src = from;
-
-            if (fromlen < sizeof(*src))
-                return _set_errno(EINVAL);
-
-            a->family         = SOCKET_INET;
-            a->u.inet.port    = ntohs(src->sin_port);
-            a->u.inet.address = ntohl(src->sin_addr.s_addr);
-        }
-        break;
-
-#ifdef HAVE_IN6_SOCKETS
-    case AF_INET6:
-        {
-            const struct sockaddr_in6*  src = from;
-
-            if (fromlen < sizeof(*src))
-                return _set_errno(EINVAL);
-
-            a->family     = SOCKET_IN6;
-            a->u.in6.port = ntohs(src->sin6_port);
-            memcpy(a->u.in6.address, src->sin6_addr.s6_addr, 16);
-        }
-        break;
-#endif
-
-#ifdef HAVE_UNIX_SOCKETS
-    case AF_LOCAL:
-        {
-            const struct sockaddr_un*  src = from;
-            char*                end;
-
-            if (fromlen < sizeof(*src))
-                return _set_errno(EINVAL);
-
-            /* check that the path is zero-terminated */
-            end = memchr(src->sun_path, 0, UNIX_PATH_MAX);
-            if (end == NULL)
-                return _set_errno(EINVAL);
-
-            a->family = SOCKET_UNIX;
-            a->u._unix.owner = 1;
-            a->u._unix.path  = strdup(src->sun_path);
-        }
-        break;
-#endif
-
-    default:
-        return _set_errno(EINVAL);
-    }
-    return 0;
-}
-
-
-int
-sock_address_init_resolve( SockAddress*  a, const char*  hostname, uint16_t  port, int  preferIn6 )
-{
-    struct addrinfo   hints[1];
-    struct addrinfo*  res;
-    int                ret;
-
-    memset(hints, 0, sizeof(hints));
-    hints->ai_family   = preferIn6 ? AF_INET6 : AF_UNSPEC;
-
-    ret = getaddrinfo(hostname, NULL, hints, &res);
-    if (ret != 0) {
-        int  err;
-
-        switch (ret) {
-        case EAI_AGAIN:  /* server is down */
-        case EAI_FAIL:   /* server is sick */
-            err = EHOSTDOWN;
-            break;
-
-#ifdef EAI_NODATA
-        case EAI_NODATA:
-#endif
-        case EAI_NONAME:
-            err = ENOENT;
-            break;
-
-        case EAI_MEMORY:
-            err = ENOMEM;
-            break;
-
-        default:
-            err = EINVAL;
-        }
-        return _set_errno(err);
-    }
-
-    /* Parse the returned list of addresses. */
-    {
-        struct addrinfo*  res_ipv4 = NULL;
-        struct addrinfo*  res_ipv6 = NULL;
-        struct addrinfo*  r;
-
-       /* If preferIn6 is false, we stop on the first IPv4 address,
-        * otherwise, we stop on the first IPv6 one
-        */
-        for (r = res; r != NULL; r = r->ai_next) {
-            if (r->ai_family == AF_INET && res_ipv4 == NULL) {
-                res_ipv4 = r;
-                if (!preferIn6)
-                    break;
-            }
-            else if (r->ai_family == AF_INET6 && res_ipv6 == NULL) {
-                res_ipv6 = r;
-                if (preferIn6)
-                    break;
-            }
-        }
-
-        /* Select the best address in 'r', which will be NULL
-         * if there is no corresponding address.
-         */
-        if (preferIn6) {
-            r = res_ipv6;
-            if (r == NULL)
-                r = res_ipv4;
-        } else {
-            r = res_ipv4;
-            if (r == NULL)
-                r = res_ipv6;
-        }
-
-        if (r == NULL) {
-            ret = _set_errno(ENOENT);
-            goto Exit;
-        }
-
-        /* Convert to a SockAddress */
-        ret = sock_address_from_bsd( a, r->ai_addr, r->ai_addrlen );
-        if (ret < 0)
-            goto Exit;
-    }
-
-    /* need to set the port */
-    switch (a->family) {
-    case SOCKET_INET: a->u.inet.port = port; break;
-    case SOCKET_IN6:  a->u.in6.port  = port; break;
-    default: ;
-    }
-
-Exit:
-    freeaddrinfo(res);
-    return ret;
-}
-
-/* The Winsock headers for mingw lack some definitions */
-#ifndef AI_ADDRCONFIG
-#  define  AI_ADDRCONFIG  0
-#endif
-
-SockAddress**
-sock_address_list_create( const char*  hostname,
-                          const char*  port,
-                          unsigned     flags )
-{
-    SockAddress**    list = NULL;
-    SockAddress*     addr;
-    int              nn, count, ret;
-    struct addrinfo  ai, *res, *e;
-
-    memset(&ai, 0, sizeof(ai));
-    ai.ai_flags   |= AI_ADDRCONFIG;
-    ai.ai_family   = PF_UNSPEC;
-
-    if (flags & SOCKET_LIST_FORCE_INET)
-        ai.ai_family = PF_INET;
-    else if (flags & SOCKET_LIST_FORCE_IN6)
-        ai.ai_family = PF_INET6;
-
-    if (flags & SOCKET_LIST_PASSIVE)
-        ai.ai_flags |= AI_PASSIVE;
-    else
-        ai.ai_flags |= AI_CANONNAME;
-
-    if (flags & SOCKET_LIST_DGRAM)
-        ai.ai_socktype = SOCK_DGRAM;
-
-    while (1) {
-        struct addrinfo  hints = ai;
-
-        ret = getaddrinfo(hostname, port, &hints, &res);
-        if (ret == 0)
-            break;
-
-        switch (ret) {
-#ifdef EAI_ADDRFAMILY
-        case EAI_ADDRFAMILY:
-#endif
-        case EAI_NODATA:
-            _set_errno(ENOENT);
-            break;
-        case EAI_FAMILY:
-            _set_errno(EAFNOSUPPORT);
-            break;
-        case EAI_AGAIN:
-            _set_errno(EAGAIN);
-            break;
-#ifdef EAI_SYSTEM
-        case EAI_SYSTEM:
-            if (errno == EINTR)
-                continue;
-            break;
-#endif
-        default:
-            _set_errno(EINVAL);
-        }
-        return NULL;
-    }
-
-    /* allocate result list */
-    for (count = 0, e = res; e != NULL; e = e->ai_next)
-        count += 1;
-
-    AARRAY_NEW(list, count+1);
-    AARRAY_NEW(addr, count);
-
-    for (nn = 0, e = res; e != NULL; e = e->ai_next) {
-
-        ret = sock_address_from_bsd(addr, e->ai_addr, e->ai_addrlen);
-        if (ret < 0)
-            continue;
-
-        list[nn++] = addr++;
-    }
-    list[nn] = NULL;
-    freeaddrinfo(res);
-    return list;
-}
-
-SockAddress**
-sock_address_list_create2(const char* host_and_port, unsigned flags )
-{
-    char host_name[512];
-    const char* actual_host_name = "localhost";
-    // Parse host and port name.
-    const char* port_name = strchr(host_and_port, ':');
-    if (port_name != NULL) {
-        int to_copy = MIN((int)sizeof(host_name)-1, port_name - host_and_port);
-        if (to_copy != 0) {
-            memcpy(host_name, host_and_port, to_copy);
-            host_name[to_copy] = '\0';
-            actual_host_name = host_name;
-            port_name++;
-        } else {
-            return NULL;
-        }
-    } else {
-        port_name = host_and_port;
-    }
-    // Make sure that port_name is not empty.
-    if (port_name[0] == '\0') {
-        return NULL;
-    }
-    return sock_address_list_create(actual_host_name, port_name, flags);
-}
-
-void
-sock_address_list_free( SockAddress**  list )
-{
-    int  nn;
-    SockAddress*  addr;
-
-    if (list == NULL)
-        return;
-
-    addr = list[0];
-    for (nn = 0; list[nn] != NULL; nn++) {
-        sock_address_done(list[nn]);
-        list[nn] = NULL;
-    }
-    AFREE(addr);
-    AFREE(list);
-}
-
-int
-sock_address_get_numeric_info( SockAddress*  a,
-                               char*         host,
-                               size_t        hostlen,
-                               char*         serv,
-                               size_t        servlen )
-{
-    struct sockaddr*  saddr;
-    socklen_t         slen;
-    int               ret;
-
-    switch (a->family) {
-    case SOCKET_INET:
-        saddr = (struct sockaddr*) &a->u.inet.address;
-        slen  = sizeof(a->u.inet.address);
-        break;
-
-#if HAVE_IN6_SOCKET
-    case SOCKET_IN6:
-        saddr = (struct sockaddr*) &a->u.in6.address;
-        slen  = sizeof(a->u.in6.address);
-        break;
-#endif
-    default:
-        return _set_errno(EINVAL);
-    }
-
-    ret = getnameinfo( saddr, slen, host, hostlen, serv, servlen,
-                       NI_NUMERICHOST | NI_NUMERICSERV );
-
-    switch (ret) {
-    case 0:
-        break;
-    case EAI_AGAIN:
-        ret = EAGAIN;
-        break;
-    default:
-        ret = EINVAL;
-    }
-    return ret;
-}
-
-int
-socket_create( SocketFamily  family, SocketType  type )
-{
-    int   ret;
-    int   sfamily = socket_family_to_bsd(family);
-    int   stype   = socket_type_to_bsd(type);
-
-    if (sfamily < 0 || stype < 0) {
-        return _set_errno(EINVAL);
-    }
-
-    QSOCKET_CALL(ret, socket(sfamily, stype, 0));
-    if (ret < 0)
-        return _fix_errno();
-
-    return ret;
-}
-
-
-int
-socket_create_inet( SocketType  type )
-{
-    return socket_create( SOCKET_INET, type );
-}
-
-#if HAVE_IN6_SOCKETS
-int
-socket_create_in6 ( SocketType  type )
-{
-    return socket_create( SOCKET_IN6, type );
-}
-#endif
-
-#if HAVE_UNIX_SOCKETS
-int
-socket_create_unix( SocketType  type )
-{
-    return socket_create( SOCKET_UNIX, type );
-}
-#endif
-
-int  socket_can_read(int  fd)
-{
-#ifdef _WIN32
-    unsigned long  opt;
-
-    if (ioctlsocket(fd, FIONREAD, &opt) < 0)
-        return 0;
-
-    return opt;
-#else
-    int  opt;
-
-    if (ioctl(fd, FIONREAD, &opt) < 0)
-        return 0;
-
-    return opt;
-#endif
-}
-
-#define   SOCKET_CALL(cmd)  \
-    int  ret; \
-    QSOCKET_CALL(ret, (cmd)); \
-    if (ret < 0) \
-        return _fix_errno(); \
-    return ret; \
-
-int
-socket_send(int  fd, const void*  buf, int  buflen)
-{
-    SOCKET_CALL(send(fd, buf, buflen, 0))
-}
-
-int
-socket_send_oob( int  fd, const void*  buf, int  buflen )
-{
-    SOCKET_CALL(send(fd, buf, buflen, MSG_OOB));
-}
-
-int
-socket_sendto(int  fd, const void*  buf, int  buflen, const SockAddress*  to)
-{
-    sockaddr_storage  sa;
-    socklen_t         salen;
-
-    if (sock_address_to_bsd(to, &sa, &salen) < 0)
-        return -1;
-
-    SOCKET_CALL(sendto(fd, buf, buflen, 0, sa.sa, salen));
-}
-
-int
-socket_recv(int  fd, void*  buf, int  len)
-{
-    SOCKET_CALL(recv(fd, buf, len, 0));
-}
-
-int
-socket_recvfrom(int  fd, void*  buf, int  len, SockAddress*  from)
-{
-    sockaddr_storage  sa;
-    socklen_t         salen = sizeof(sa);
-    int               ret;
-
-    QSOCKET_CALL(ret,recvfrom(fd,buf,len,0,sa.sa,&salen));
-    if (ret < 0)
-        return _fix_errno();
-
-    if (sock_address_from_bsd(from, &sa, salen) < 0)
-        return -1;
-
-    return ret;
-}
-
-int
-socket_connect( int  fd, const SockAddress*  address )
-{
-    sockaddr_storage  addr;
-    socklen_t         addrlen;
-
-    if (sock_address_to_bsd(address, &addr, &addrlen) < 0)
-        return -1;
-
-    SOCKET_CALL(connect(fd,addr.sa,addrlen));
-}
-
-int
-socket_bind( int  fd, const SockAddress*  address )
-{
-    sockaddr_storage  addr;
-    socklen_t         addrlen;
-
-    if (sock_address_to_bsd(address, &addr, &addrlen) < 0)
-        return -1;
-
-    SOCKET_CALL(bind(fd, addr.sa, addrlen));
-}
-
-int
-socket_get_address( int  fd, SockAddress*  address )
-{
-    sockaddr_storage  addr;
-    socklen_t         addrlen = sizeof(addr);
-    int               ret;
-
-    QSOCKET_CALL(ret, getsockname(fd, addr.sa, &addrlen));
-    if (ret < 0)
-        return _fix_errno();
-
-    return sock_address_from_bsd(address, &addr, addrlen);
-}
-
-int
-socket_get_peer_address( int  fd, SockAddress*  address )
-{
-    sockaddr_storage  addr;
-    socklen_t         addrlen = sizeof(addr);
-    int               ret;
-
-    QSOCKET_CALL(ret, getpeername(fd, addr.sa, &addrlen));
-    if (ret < 0)
-        return _fix_errno();
-
-    return sock_address_from_bsd(address, &addr, addrlen);
-}
-
-int
-socket_listen( int  fd, int  backlog )
-{
-    SOCKET_CALL(listen(fd, backlog));
-}
-
-int
-socket_accept( int  fd, SockAddress*  address )
-{
-    sockaddr_storage  addr;
-    socklen_t         addrlen = sizeof(addr);
-    int               ret;
-
-    QSOCKET_CALL(ret, accept(fd, addr.sa, &addrlen));
-    if (ret < 0)
-        return _fix_errno();
-
-    if (address) {
-        if (sock_address_from_bsd(address, &addr, addrlen) < 0) {
-            socket_close(ret);
-            return -1;
-        }
-    }
-    return ret;
-}
-
-static int
-socket_getoption(int  fd, int  domain, int  option, int  defaut)
-{
-    int  ret;
-    while (1) {
-#ifdef _WIN32
-        DWORD opt = (DWORD)-1;
-#else
-        int  opt  = -1;
-#endif
-        socklen_t  optlen = sizeof(opt);
-        ret = getsockopt(fd, domain, option, (char*)&opt, &optlen);
-        if (ret == 0)
-            return (int)opt;
-        if (errno != EINTR)
-            return defaut;
-    }
-#undef OPT_CAST
-}
-
-
-SocketType socket_get_type(int fd)
-{
-    int   so_type = socket_getoption(fd, SOL_SOCKET, SO_TYPE, -1);
-    return socket_type_from_bsd(so_type);
-}
-
-int socket_set_nonblock(int fd)
-{
-#ifdef _WIN32
-    unsigned long opt = 1;
-    return ioctlsocket(fd, FIONBIO, &opt);
-#else
-    int   flags = fcntl(fd, F_GETFL);
-    return fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-#endif
-}
-
-int socket_set_blocking(int fd)
-{
-#ifdef _WIN32
-    unsigned long opt = 0;
-    return ioctlsocket(fd, FIONBIO, &opt);
-#else
-    int   flags = fcntl(fd, F_GETFL);
-    return fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);
-#endif
-}
-
-static int
-socket_setoption(int  fd, int  domain, int  option, int  _flag)
-{
-#ifdef _WIN32
-    DWORD  flag = (DWORD) _flag;
-#else
-    int    flag = _flag;
-#endif
-    return setsockopt( fd, domain, option, (const char*)&flag, sizeof(flag) );
-}
-
-int socket_set_xreuseaddr(int  fd)
-{
-#ifdef _WIN32
-   /* on Windows, SO_REUSEADDR is used to indicate that several programs can
-    * bind to the same port. this is completely different from the Unix
-    * semantics. instead of SO_EXCLUSIVEADDR to ensure that explicitely prevent
-    * this.
-    */
-    return socket_setoption(fd, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, 1);
-#else
-    return socket_setoption(fd, SOL_SOCKET, SO_REUSEADDR, 1);
-#endif
-}
-
-
-int socket_set_oobinline(int  fd)
-{
-    return socket_setoption(fd, SOL_SOCKET, SO_OOBINLINE, 1);
-}
-
-
-int  socket_set_nodelay(int  fd)
-{
-    return socket_setoption(fd, IPPROTO_TCP, TCP_NODELAY, 1);
-}
-
-int socket_set_ipv6only(int  fd)
-{
-/* IPV6_ONLY is only supported since Vista on Windows,
- * and the Mingw headers lack its definition anyway.
- */
-#if defined(_WIN32) && !defined(IPV6_V6ONLY)
-	return 0;
-#else
-    return socket_setoption(fd, IPPROTO_IPV6, IPV6_V6ONLY, 1);
-#endif
-}
-
-
-int socket_get_error(int fd)
-{
-    return socket_getoption(fd, SOL_SOCKET, SO_ERROR, -1);
-}
-
-#ifdef _WIN32
-#include <stdlib.h>
-
-static void socket_cleanup(void)
-{
-    WSACleanup();
-}
-
-int socket_init(void)
-{
-    WSADATA Data;
-    int ret, err;
-
-    ret = WSAStartup(MAKEWORD(2,2), &Data);
-    if (ret != 0) {
-        err = WSAGetLastError();
-        return -1;
-    }
-    atexit(socket_cleanup);
-    return 0;
-}
-
-#else /* !_WIN32 */
-
-int socket_init(void)
-{
-   return 0;   /* nothing to do on Unix */
-}
-
-#endif /* !_WIN32 */
-
-#ifdef _WIN32
-
-void
-socket_close( int  fd )
-{
-    int  old_errno = errno;
-
-    shutdown( fd, SD_BOTH );
-    /* we want to drain the socket before closing it */
-    //qemu_set_fd_handler( fd, socket_close_handler, NULL, (void*)fd );
-    closesocket(fd);
-
-    errno = old_errno;
-}
-
-#else /* !_WIN32 */
-
-#include <unistd.h>
-
-void
-socket_close( int  fd )
-{
-    int  old_errno = errno;
-
-    shutdown( fd, SHUT_RDWR );
-    close( fd );
-
-    errno = old_errno;
-}
-
-#endif /* !_WIN32 */
-
-
-static int
-socket_bind_server( int  s, const SockAddress*  to, SocketType  type )
-{
-    socket_set_xreuseaddr(s);
-
-    if (socket_bind(s, to) < 0) {
-        D("could not bind server socket address %s: %s",
-          sock_address_to_string(to), errno_str);
-        goto FAIL;
-    }
-
-    if (type == SOCKET_STREAM) {
-        if (socket_listen(s, 4) < 0) {
-            D("could not listen server socket %s: %s",
-              sock_address_to_string(to), errno_str);
-            goto FAIL;
-        }
-    }
-    return  s;
-
-FAIL:
-    socket_close(s);
-    return -1;
-}
-
-
-static int
-socket_connect_client( int  s, const SockAddress*  to )
-{
-    if (socket_connect(s, to) < 0) {
-        D( "could not connect client socket to %s: %s\n",
-           sock_address_to_string(to), errno_str );
-        socket_close(s);
-        return -1;
-    }
-
-    socket_set_nonblock( s );
-    return s;
-}
-
-
-static int
-socket_in_server( int  address, int  port, SocketType  type )
-{
-    SockAddress  addr;
-    int          s;
-
-    sock_address_init_inet( &addr, address, port );
-    s = socket_create_inet( type );
-    if (s < 0)
-        return -1;
-
-    return socket_bind_server( s, &addr, type );
-}
-
-
-static int
-socket_in_client( SockAddress*  to, SocketType  type )
-{
-    int  s;
-
-    s = socket_create_inet( type );
-    if (s < 0) return -1;
-
-    return socket_connect_client( s, to );
-}
-
-
-int
-socket_loopback_server( int  port, SocketType  type )
-{
-    return socket_in_server( SOCK_ADDRESS_INET_LOOPBACK, port, type );
-}
-
-int
-socket_loopback_client( int  port, SocketType  type )
-{
-    SockAddress  addr;
-
-    sock_address_init_inet( &addr, SOCK_ADDRESS_INET_LOOPBACK, port );
-    return socket_in_client( &addr, type );
-}
-
-
-int
-socket_network_client( const char*  host, int  port, SocketType  type )
-{
-    SockAddress  addr;
-
-    if (sock_address_init_resolve( &addr, host, port, 0) < 0)
-        return -1;
-
-    return socket_in_client( &addr, type );
-}
-
-
-int
-socket_anyaddr_server( int  port, SocketType  type )
-{
-    return socket_in_server( SOCK_ADDRESS_INET_ANY, port, type );
-}
-
-int
-socket_accept_any( int  server_fd )
-{
-    int  fd;
-
-    QSOCKET_CALL(fd, accept( server_fd, NULL, 0 ));
-    if (fd < 0) {
-        D( "could not accept client connection from fd %d: %s",
-           server_fd, errno_str );
-        return -1;
-    }
-
-    /* set to non-blocking */
-    socket_set_nonblock( fd );
-    return fd;
-}
-
-
-#if HAVE_UNIX_SOCKETS
-
-int
-socket_unix_server( const char*  name, SocketType  type )
-{
-    SockAddress   addr;
-    int           s, ret;
-
-    s = socket_create_unix( type );
-    if (s < 0)
-        return -1;
-
-    sock_address_init_unix( &addr, name );
-
-    do {
-        ret = unlink( name );
-    } while (ret < 0 && errno == EINTR);
-
-    ret = socket_bind_server( s, &addr, type );
-
-    sock_address_done( &addr );
-    return ret;
-}
-
-int
-socket_unix_client( const char*  name, SocketType  type )
-{
-    SockAddress   addr;
-    int           s, ret;
-
-    s = socket_create_unix(type);
-    if (s < 0)
-        return -1;
-
-    sock_address_init_unix( &addr, name );
-
-    ret =  socket_connect_client( s, &addr );
-
-    sock_address_done( &addr );
-    return ret;
-}
-
-#endif /* HAVE_UNIX_SOCKETS */
-
-
-
-int
-socket_pair(int *fd1, int *fd2)
-{
-#ifndef _WIN32
-    int   fds[2];
-    int   ret = socketpair(AF_UNIX, SOCK_STREAM, 0, fds);
-
-    if (!ret) {
-        socket_set_nonblock(fds[0]);
-        socket_set_nonblock(fds[1]);
-        *fd1 = fds[0];
-        *fd2 = fds[1];
-    }
-    return ret;
-#else /* _WIN32 */
-    /* on Windows, select() only works with network sockets, which
-     * means we absolutely cannot use Win32 PIPEs to implement
-     * socket pairs with the current event loop implementation.
-     * We're going to do like Cygwin: create a random pair
-     * of localhost TCP sockets and connect them together
-     */
-    int                 s0, s1, s2, port;
-    struct sockaddr_in  sockin;
-    socklen_t           len;
-
-    /* first, create the 'server' socket.
-     * a port number of 0 means 'any port between 1024 and 5000.
-     * see Winsock bind() documentation for details */
-    s0 = socket_loopback_server( 0, SOCK_STREAM );
-    if (s0 < 0)
-        return -1;
-
-    /* now connect a client socket to it, we first need to
-     * extract the server socket's port number */
-    len = sizeof sockin;
-    if (getsockname(s0, (struct sockaddr*) &sockin, &len) < 0) {
-        closesocket (s0);
-        return -1;
-    }
-
-    port = ntohs(sockin.sin_port);
-    s2   = socket_loopback_client( port, SOCK_STREAM );
-    if (s2 < 0) {
-        closesocket(s0);
-        return -1;
-    }
-
-    /* we need to accept the connection on the server socket
-     * this will create the second socket for the pair
-     */
-    len = sizeof sockin;
-    s1  = accept(s0, (struct sockaddr*) &sockin, &len);
-    if (s1 == INVALID_SOCKET) {
-        closesocket (s0);
-        closesocket (s2);
-        return -1;
-    }
-    socket_set_nonblock(s1);
-
-    /* close server socket */
-    closesocket(s0);
-    *fd1 = s1;
-    *fd2 = s2;
-    return 0;
-#endif /* _WIN32 */
-}
-
-
-
-int
-socket_mcast_inet_add_membership( int  s, uint32_t  ip )
-{
-    struct ip_mreq imr;
-
-    imr.imr_multiaddr.s_addr = htonl(ip);
-    imr.imr_interface.s_addr = htonl(INADDR_ANY);
-
-    if ( setsockopt( s, IPPROTO_IP, IP_ADD_MEMBERSHIP,
-                     (const char *)&imr,
-                     sizeof(struct ip_mreq)) < 0 )
-    {
-        return _fix_errno();
-    }
-    return 0;
-}
-
-int
-socket_mcast_inet_drop_membership( int  s, uint32_t  ip )
-{
-    struct ip_mreq imr;
-
-    imr.imr_multiaddr.s_addr = htonl(ip);
-    imr.imr_interface.s_addr = htonl(INADDR_ANY);
-
-    if ( setsockopt( s, IPPROTO_IP, IP_DROP_MEMBERSHIP,
-                     (const char *)&imr,
-                     sizeof(struct ip_mreq)) < 0 )
-    {
-        return _fix_errno();
-    }
-    return 0;
-}
-
-int
-socket_mcast_inet_set_loop( int  s, int  enabled )
-{
-    return socket_setoption( s, IPPROTO_IP, IP_MULTICAST_LOOP, !!enabled );
-}
-
-int
-socket_mcast_inet_set_ttl( int  s, int  ttl )
-{
-    return socket_setoption( s, IPPROTO_IP, IP_MULTICAST_TTL, ttl );
-}
-
-
-char*
-host_name( void )
-{
-    static char buf[256];  /* 255 is the max host name length supported by DNS */
-    int         ret;
-
-    QSOCKET_CALL(ret, gethostname(buf, sizeof(buf)));
-
-    if (ret < 0)
-        return "localhost";
-    else
-        return buf;
-}
diff --git a/tools/emulator/opengl/tests/event_injector/sockets.h b/tools/emulator/opengl/tests/event_injector/sockets.h
deleted file mode 100644
index ea48c5f..0000000
--- a/tools/emulator/opengl/tests/event_injector/sockets.h
+++ /dev/null
@@ -1,432 +0,0 @@
-/*
-* Copyright (C) 2011 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.
-*/
-/* headers to use the BSD sockets */
-#ifndef ANDROID_SOCKET_H
-#define ANDROID_SOCKET_H
-
-#include <stddef.h>
-#include <stdint.h>
-#include <errno.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* we're going to hide the implementation details of sockets behind
- * a simple wrapper interface declared here.
- *
- * all socket operations set the global 'errno' variable on error.
- * this is unlike Winsock which instead modifies another internal
- * variable accessed through WSAGetLastError() and WSASetLastError()
- */
-
-/* the wrapper will convert any Winsock error message into an errno
- * code for you. There are however a few standard Unix error codes
- * that are not defined by the MS C library headers, so we add them
- * here. We use the official Winsock error codes, which are documented
- * even though we don't want to include the Winsock headers
- */
-#ifdef _WIN32
-#  ifndef EINTR
-#    define EINTR        10004
-#  endif
-#  ifndef EAGAIN
-#    define EAGAIN       10035
-#  endif
-#  ifndef EWOULDBLOCK
-#    define EWOULDBLOCK  EAGAIN
-#  endif
-#  ifndef EINPROGRESS
-#    define EINPROGRESS  10036
-#  endif
-#  ifndef EALREADY
-#    define EALREADY     10037
-#  endif
-#  ifndef EDESTADDRREQ
-#    define EDESTADDRREQ 10039
-#  endif
-#  ifndef EMSGSIZE
-#    define EMSGSIZE     10040
-#  endif
-#  ifndef EPROTOTYPE
-#    define EPROTOTYPE   10041
-#  endif
-#  ifndef ENOPROTOOPT
-#    define ENOPROTOOPT  10042
-#  endif
-#  ifndef EAFNOSUPPORT
-#    define EAFNOSUPPORT 10047
-#  endif
-#  ifndef EADDRINUSE
-#    define EADDRINUSE   10048
-#  endif
-#  ifndef EADDRNOTAVAIL
-#    define EADDRNOTAVAIL 10049
-#  endif
-#  ifndef ENETDOWN
-#    define ENETDOWN     10050
-#  endif
-#  ifndef ENETUNREACH
-#    define ENETUNREACH  10051
-#  endif
-#  ifndef ENETRESET
-#    define ENETRESET    10052
-#  endif
-#  ifndef ECONNABORTED
-#    define ECONNABORTED 10053
-#  endif
-#  ifndef ECONNRESET
-#    define ECONNRESET   10054
-#  endif
-#  ifndef ENOBUFS
-#    define ENOBUFS      10055
-#  endif
-#  ifndef EISCONN
-#    define EISCONN      10056
-#  endif
-#  ifndef ENOTCONN
-#    define ENOTCONN     10057
-#  endif
-#  ifndef ESHUTDOWN
-#    define ESHUTDOWN     10058
-#  endif
-#  ifndef ETOOMANYREFS
-#    define ETOOMANYREFS  10059
-#  endif
-#  ifndef ETIMEDOUT
-#    define ETIMEDOUT     10060
-#  endif
-#  ifndef ECONNREFUSED
-#    define ECONNREFUSED  10061
-#  endif
-#  ifndef ELOOP
-#    define ELOOP         10062
-#  endif
-#  ifndef EHOSTDOWN
-#    define EHOSTDOWN     10064
-#  endif
-#  ifndef EHOSTUNREACH
-#    define EHOSTUNREACH  10065
-#  endif
-#endif /* _WIN32 */
-
-/* Define 'errno_str' as a handy macro to return the string
- * corresponding to a given errno code. On Unix, this is
- * equivalent to strerror(errno), but on Windows, this will
- * take care of Winsock-originated errors as well.
- */
-#ifdef _WIN32
-  extern const char*  _errno_str(void);
-#  define  errno_str   _errno_str()
-#else
-#  define  errno_str   strerror(errno)
-#endif
-
-/* always enable IPv6 sockets for now.
- * the QEMU internal router is not capable of
- * supporting them, but we plan to replace it
- * with something better in the future.
- */
-#define  HAVE_IN6_SOCKETS   1
-
-/* Unix sockets are not available on Win32 */
-#ifndef _WIN32
-#  define  HAVE_UNIX_SOCKETS  1
-#endif
-
-/* initialize the socket sub-system. this must be called before
- * using any of the declarations below.
- */
-int  socket_init( void );
-
-/* return the name of the current host */
-char*  host_name( void );
-
-/* supported socket types */
-typedef enum {
-    SOCKET_DGRAM = 0,
-    SOCKET_STREAM
-} SocketType;
-
-/* supported socket families */
-typedef enum {
-    SOCKET_UNSPEC,
-    SOCKET_INET,
-    SOCKET_IN6,
-    SOCKET_UNIX
-} SocketFamily;
-
-/* Generic socket address structure. Note that for Unix
- * sockets, the path is stored in a heap-allocated block,
- * unless the 'owner' field is cleared. If this is the case,
- */
-typedef struct {
-    SocketFamily  family;
-    union {
-        struct {
-            uint16_t   port;
-            uint32_t   address;
-        } inet;
-        struct {
-            uint16_t   port;
-            uint8_t    address[16];
-        } in6;
-        struct {
-            int          owner;
-            const char*  path;
-        } _unix;
-    } u;
-} SockAddress;
-
-#define  SOCK_ADDRESS_INET_ANY       0x00000000
-#define  SOCK_ADDRESS_INET_LOOPBACK  0x7f000001
-
-/* initialize a new IPv4 socket address, the IP address and port are
- * in host endianess.
- */
-void  sock_address_init_inet( SockAddress*  a, uint32_t  ip, uint16_t  port );
-
-/* Initialize an IPv6 socket address, the address is in network order
- * and the port in host endianess.
- */
-#if HAVE_IN6_SOCKETS
-void  sock_address_init_in6 ( SockAddress*  a, const uint8_t*  ip6[16], uint16_t  port );
-#endif
-
-/* Intialize a Unix socket address, this will copy the 'path' string into the
- * heap. You need to call sock_address_done() to release the copy
- */
-#if HAVE_UNIX_SOCKETS
-void  sock_address_init_unix( SockAddress*  a, const char*  path );
-#endif
-
-/* Finalize a socket address, only needed for now for Unix addresses */
-void  sock_address_done( SockAddress*  a );
-
-int   sock_address_equal( const SockAddress*  a, const SockAddress*  b );
-
-/* return a static string describing the address */
-const char*  sock_address_to_string( const SockAddress*  a );
-
-static __inline__
-SocketFamily  sock_address_get_family( const SockAddress*  a )
-{
-    return a->family;
-}
-
-/* return the port number of a given socket address, or -1 if it's a Unix one */
-int   sock_address_get_port( const SockAddress*  a );
-
-/* set the port number of a given socket address, don't do anything for Unix ones */
-void  sock_address_set_port( SockAddress*  a, uint16_t  port );
-
-/* return the path of a given Unix socket, returns NULL for non-Unix ones */
-const char*  sock_address_get_path( const SockAddress*  a );
-
-/* return the inet address, or -1 if it's not SOCKET_INET */
-int   sock_address_get_ip( const SockAddress*  a );
-
-/* bufprint a socket address into a human-readable string */
-char* bufprint_sock_address( char*  p, char*  end, const SockAddress*  a );
-
-/* resolve a hostname or decimal IPv4/IPv6 address into a socket address.
- * returns 0 on success, or -1 on failure. Note that the values or errno
- * set by this function are the following:
- *
- *   EINVAL    : invalid argument
- *   EHOSTDOWN : could not reach DNS server
- *   ENOENT    : no host with this name, or host doesn't have any IP address
- *   ENOMEM    : not enough memory to perform request
- */
-int   sock_address_init_resolve( SockAddress*  a,
-                                 const char*   hostname,
-                                 uint16_t      port,
-                                 int           preferIn6 );
-
-int  sock_address_get_numeric_info( SockAddress*  a,
-                                    char*         host,
-                                    size_t        hostlen,
-                                    char*         serv,
-                                    size_t        servlen );
-
-/* Support for listing all socket addresses of a given host */
-enum {
-    SOCKET_LIST_PASSIVE    = (1 << 0),
-    SOCKET_LIST_FORCE_INET = (1 << 1),
-    SOCKET_LIST_FORCE_IN6  = (1 << 2),
-    SOCKET_LIST_DGRAM      = (1 << 3),
-};
-
-/* resolve a host and service/port name into a list of SockAddress objects.
- * returns a NULL-terminated array of SockAddress pointers on success,
- * or NULL in case of failure, with the value of errno set to one of the
- * following:
- *
- *    EINVAL    : invalid argument
- *    EHOSTDOWN : could not reach DNS server
- *    ENOENT    : no host with this name, or host doesn't have IP address
- *    ENOMEM    : not enough memory to perform request
- *
- * other system-level errors can also be set depending on the host sockets
- * implementation.
- *
- * This function loops on EINTR so the caller shouldn't have to check for it.
- */
-SockAddress**  sock_address_list_create( const char*  hostname,
-                                         const char*  port,
-                                         unsigned     flags );
-
-/* resolve a string containing host and port name into a list of SockAddress
- * objects. Parameter host_and_port should be in format [host:]port, where
- * 'host' addresses the machine and must be resolvable into an IP address, and
- * 'port' is a decimal numeric value for the port. 'host' is optional, and if
- * ommited, localhost will be used.
- * returns a NULL-terminated array of SockAddress pointers on success,
- * or NULL in case of failure, with the value of errno set to one of the
- * following:
- *
- *    EINVAL    : invalid argument
- *    EHOSTDOWN : could not reach DNS server
- *    ENOENT    : no host with this name, or host doesn't have IP address
- *    ENOMEM    : not enough memory to perform request
- *
- * other system-level errors can also be set depending on the host sockets
- * implementation.
- *
- * This function loops on EINTR so the caller shouldn't have to check for it.
- */
-SockAddress**  sock_address_list_create2(const char*  host_and_port,
-                                         unsigned     flags );
-
-void sock_address_list_free( SockAddress**  list );
-
-/* create a new socket, return the socket number of -1 on failure */
-int  socket_create( SocketFamily  family, SocketType  type );
-
-/* create a new socket intended for IPv4 communication. returns the socket number,
- * or -1 on failure.
- */
-int   socket_create_inet( SocketType  type );
-
-/* create a new socket intended for IPv6 communication. returns the socket number,
- * or -1 on failure.
- */
-#if HAVE_IN6_SOCKETS
-int   socket_create_in6 ( SocketType  type );
-#endif
-
-/* create a unix/local domain socket. returns the socket number,
- * or -1 on failure.
- */
-#if HAVE_UNIX_SOCKETS
-int   socket_create_unix( SocketType  type );
-#endif
-
-/* return the type of a given socket */
-SocketType  socket_get_type(int  fd);
-
-/* set SO_REUSEADDR on Unix, SO_EXCLUSIVEADDR on Windows */
-int  socket_set_xreuseaddr(int  fd);
-
-/* set socket in non-blocking mode */
-int  socket_set_nonblock(int fd);
-
-/* set socket in blocking mode */
-int  socket_set_blocking(int fd);
-
-/* disable the TCP Nagle algorithm for lower latency */
-int  socket_set_nodelay(int fd);
-
-/* send OOB data inline for this socket */
-int  socket_set_oobinline(int  fd);
-
-/* force listening to IPv6 interfaces only */
-int  socket_set_ipv6only(int  fd);
-
-/* retrieve last socket error code */
-int  socket_get_error(int  fd);
-
-/* close an opened socket. Note that this is unlike the Unix 'close' because:
- * - it will properly shutdown the socket in the background
- * - it does not modify errno
- */
-void  socket_close( int  fd );
-
-/* the following functions are equivalent to the BSD sockets ones
- */
-int   socket_recv    ( int  fd, void*  buf, int  buflen );
-int   socket_recvfrom( int  fd, void*  buf, int  buflen, SockAddress*  from );
-
-int   socket_send  ( int  fd, const void*  buf, int  buflen );
-int   socket_send_oob( int  fd, const void*  buf, int  buflen );
-int   socket_sendto( int  fd, const void*  buf, int  buflen, const SockAddress*  to );
-
-int   socket_connect( int  fd, const SockAddress*  address );
-int   socket_bind( int  fd, const SockAddress*  address );
-int   socket_get_address( int  fd, SockAddress*  address );
-int   socket_get_peer_address( int  fd, SockAddress*  address );
-int   socket_listen( int  fd, int  backlog );
-int   socket_accept( int  fd, SockAddress*  address );
-
-/* returns the number of bytes that can be read from a socket */
-int   socket_can_read( int  fd );
-
-/* this call creates a pair of non-blocking sockets connected
- * to each other. this is equivalent to calling the Unix function:
- * socketpair(AF_LOCAL,SOCK_STREAM,0,&fds)
- *
- * on Windows, this will use a pair of TCP loopback sockets instead
- * returns 0 on success, -1 on error.
- */
-int  socket_pair(int  *fd1, int *fd2);
-
-/* create a server socket listening on the host's loopback interface */
-int  socket_loopback_server( int  port, SocketType  type );
-
-/* connect to a port on the host's loopback interface */
-int  socket_loopback_client( int  port, SocketType  type );
-
-/* create a server socket listening to a Unix domain path */
-#if HAVE_UNIX_SOCKETS
-int  socket_unix_server( const char*  name, SocketType  type );
-#endif
-
-/* create a Unix sockets and connects it to a Unix server */
-#if HAVE_UNIX_SOCKETS
-int  socket_unix_client( const char*  name, SocketType  type );
-#endif
-
-/* create an IPv4 client socket and connect it to a given host */
-int  socket_network_client( const char*  host, int  port, SocketType  type );
-
-/* create an IPv4 socket and binds it to a given port of the host's interface */
-int  socket_anyaddr_server( int  port, SocketType  type );
-
-/* accept a connection from the host's any interface, return the new socket
- * descriptor or -1 */
-int  socket_accept_any( int  server_fd );
-
-
-int  socket_mcast_inet_add_membership( int  s, uint32_t  ip );
-int  socket_mcast_inet_drop_membership( int  s, uint32_t  ip );
-int  socket_mcast_inet_set_loop( int  s, int  enabled );
-int  socket_mcast_inet_set_ttl( int  s, int  ttl );
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ANDROID_SOCKET_H */
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk b/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk
index f7c8fed..f5254b7 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/Android.mk
@@ -48,7 +48,7 @@
 # Other builds are device-specific and will provide their own
 # version of this file to point to the appropriate HW EGL libraries.
 #
-ifneq (,$(filter full full_x86 sdk sdk_x86,$(TARGET_PRODUCT)))
+ifneq (,$(filter full full_x86 full_mips sdk sdk_x86 sdk_mips,$(TARGET_PRODUCT)))
 ifeq (,$(BUILD_EMULATOR_OPENGL_DRIVER))
 include $(CLEAR_VARS)
 
@@ -61,7 +61,7 @@
 
 include $(BUILD_PREBUILT)
 endif # building 'real' driver BUILD_EMULATOR_OPENGL_DRIVER
-endif # TARGET_PRODUCT in 'full sdk full_x86 sdk_x86'
+endif # TARGET_PRODUCT in 'full sdk full_x86 sdk_x86 full_mips sdk_mips'
 
 #### gles_emul.cfg ####
 include $(CLEAR_VARS)
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/ApiInitializer.h b/tools/emulator/opengl/tests/gles_android_wrapper/ApiInitializer.h
index 7dc5006..793c735 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/ApiInitializer.h
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/ApiInitializer.h
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #ifndef _API_INITIALIZER_H_
 #define _API_INITIALIZER_H_
 #include <stdlib.h>
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/ServerConnection.cpp b/tools/emulator/opengl/tests/gles_android_wrapper/ServerConnection.cpp
index 1204264..ff4e390 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/ServerConnection.cpp
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/ServerConnection.cpp
@@ -83,7 +83,7 @@
         QemuPipeStream*  pipeStream = new QemuPipeStream(bufsize);
 
         if (pipeStream->connect() < 0) {
-            LOGE("couldn't connect to host server\n");
+            ALOGE("couldn't connect to host server\n");
             delete pipeStream;
             return -1;
         }
@@ -102,7 +102,7 @@
         }
 
         if (tcpStream->connect(hostname, CODEC_SERVER_PORT) < 0) {
-            LOGE("couldn't connect to %s\n", hostname);
+            ALOGE("couldn't connect to %s\n", hostname);
             free(hostname);
             delete tcpStream;
             return -1;
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/egl.cpp b/tools/emulator/opengl/tests/gles_android_wrapper/egl.cpp
index 1ee2b6a..1e2e456 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/egl.cpp
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/egl.cpp
@@ -58,7 +58,7 @@
 {
     void *driverLib = dlopen(driverLibName, RTLD_NOW | RTLD_LOCAL);
     if (driverLib == NULL) {
-        LOGE("failed to load %s : %s\n", driverLibName, dlerror());
+        ALOGE("failed to load %s : %s\n", driverLibName, dlerror());
         return -1;
     }
 
@@ -66,13 +66,13 @@
     createFcn_t createFcn;
     createFcn = (createFcn_t) dlsym(driverLib, "createFromLib");
     if (createFcn == NULL) {
-        LOGE("failed to load createFromLib constructor function\n");
+        ALOGE("failed to load createFromLib constructor function\n");
         return -1;
     }
 
     void *implLib = dlopen(implLibName, RTLD_NOW | RTLD_LOCAL);
     if (implLib == NULL) {
-        LOGE("couldn't open %s", implLibName);
+        ALOGE("couldn't open %s", implLibName);
         return -2;
     }
     *dispatchTable = createFcn(implLib, accessor);
@@ -85,7 +85,7 @@
 
     // XXX - we do not dlclose the driver library, so its not initialized when
     // later loaded by android - is this required?
-    LOGD("loading %s into %s complete\n", implLibName, driverLibName);
+    ALOGD("loading %s into %s complete\n", implLibName, driverLibName);
     return 0;
 
 }
@@ -112,20 +112,20 @@
             // we need to obtain our process name from the command line;
             FILE *fp = fopen("/proc/self/cmdline", "rt");
             if (fp == NULL) {
-                LOGE("couldn't open /proc/self/cmdline\n");
+                ALOGE("couldn't open /proc/self/cmdline\n");
                 return NULL;
             }
 
             char line[1000];
             if (fgets(line, sizeof(line), fp) == NULL) {
-                LOGE("couldn't read the self cmdline from \n");
+                ALOGE("couldn't read the self cmdline from \n");
                 fclose(fp);
                 return NULL;
             }
             fclose(fp);
 
             if (line[0] == '\0') {
-                LOGE("cmdline is empty\n");
+                ALOGE("cmdline is empty\n");
                 return NULL;
             }
 
@@ -155,11 +155,11 @@
 {
     const char *procname = getProcName();
     if (procname == NULL) return false;
-    LOGD("isNeedEncode? for %s\n", procname);
+    ALOGD("isNeedEncode? for %s\n", procname);
     // check on our whitelist
     FILE *fp = fopen(GLES_EMUL_TARGETS_FILE, "rt");
     if (fp == NULL) {
-        LOGE("couldn't open %s\n", GLES_EMUL_TARGETS_FILE);
+        ALOGE("couldn't open %s\n", GLES_EMUL_TARGETS_FILE);
         return false;
     }
 
@@ -173,7 +173,7 @@
             char c = line[procnameLen];
             if (c == '\0' || c == ' ' || c == '\t' || c == '\n') {
                 found = true;
-                LOGD("should use encoder for %s\n", procname);
+                ALOGD("should use encoder for %s\n", procname);
                 break;
             }
         }
@@ -187,7 +187,7 @@
     //
     // Load our back-end implementation of EGL/GLES
     //
-    LOGD("Loading egl dispatch for %s\n", getProcName());
+    ALOGD("Loading egl dispatch for %s\n", getProcName());
 
     void *gles_android = dlopen("/system/lib/egl/libGLES_android.so", RTLD_NOW | RTLD_LOCAL);
     if (!gles_android) {
@@ -213,7 +213,7 @@
         // initialize a connection to the server, and the GLESv1/v2 encoders;
         ServerConnection * connection = ServerConnection::s_getServerConnection();
         if (connection == NULL) {
-            LOGE("couldn't create server connection\n");
+            ALOGE("couldn't create server connection\n");
             s_needEncode = false;
         }
     }
@@ -231,7 +231,7 @@
     }
 
     if (!s_needEncode) {
-        LOGD("Initializing native opengl for %s\n", getProcName());
+        ALOGD("Initializing native opengl for %s\n", getProcName());
         initApi<gl_wrapper_context_t>(GLESv1_DRIVER, GLES_android_LIB, &g_gl_dispatch, getGLContext);
         // try to initialize gl2 from GLES, though its probably going to fail
         initApi<gl2_wrapper_context_t>(GLESv2_DRIVER, GLES_android_LIB, &g_gl2_dispatch, getGL2Context);
@@ -313,7 +313,7 @@
             if (attribs[i + 1] & EGL_OPENGL_ES2_BIT) {
                 attribs[i + 1] &= ~EGL_OPENGL_ES2_BIT;
                 attribs[i + 1] |= EGL_OPENGL_ES_BIT;
-                LOGD("removing ES2 bit 0x%x\n", attribs[i + 1]);
+                ALOGD("removing ES2 bit 0x%x\n", attribs[i + 1]);
                 if (isES2 != NULL) *isES2 = true;
             }
         }
@@ -331,11 +331,11 @@
                                               configs,
                                               config_size,
                                               num_config);
-        LOGD("eglChooseConfig: %d configs found\n", *num_config);
+        ALOGD("eglChooseConfig: %d configs found\n", *num_config);
         if (*num_config == 0 && attribs != NULL) {
-            LOGD("requested attributes:\n");
+            ALOGD("requested attributes:\n");
             for (int i = 0; attribs[i] != EGL_NONE; i++) {
-                LOGD("%d: 0x%x\n", i, attribs[i]);
+                ALOGD("%d: 0x%x\n", i, attribs[i]);
             }
         }
 
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/gles.cpp b/tools/emulator/opengl/tests/gles_android_wrapper/gles.cpp
index f0a22aa..c0949c8 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/gles.cpp
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/gles.cpp
@@ -27,7 +27,7 @@
 {
     s_dispatch = create_gles_dispatch(gles_android);
     if (s_dispatch == NULL) {
-        LOGE("failed to create gles dispatch\n");
+        ALOGE("failed to create gles dispatch\n");
     }
 }
 
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/glesv1_emul_ifc.cpp b/tools/emulator/opengl/tests/gles_android_wrapper/glesv1_emul_ifc.cpp
index 41e7b7a..26c98a8 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/glesv1_emul_ifc.cpp
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/glesv1_emul_ifc.cpp
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include <stdlib.h>
 #include "ApiInitializer.h"
 #include <dlfcn.h>
diff --git a/tools/emulator/opengl/tests/gles_android_wrapper/glesv2_emul_ifc.cpp b/tools/emulator/opengl/tests/gles_android_wrapper/glesv2_emul_ifc.cpp
index cf0dfed..4ae13dd 100644
--- a/tools/emulator/opengl/tests/gles_android_wrapper/glesv2_emul_ifc.cpp
+++ b/tools/emulator/opengl/tests/gles_android_wrapper/glesv2_emul_ifc.cpp
@@ -1,3 +1,19 @@
+/*
+* Copyright 2011 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
 #include <stdlib.h>
 #include "ApiInitializer.h"
 #include <dlfcn.h>
diff --git a/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk b/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
deleted file mode 100644
index a73f6b8..0000000
--- a/tools/emulator/opengl/tests/translator_tests/GLES_CM/Android.mk
+++ /dev/null
@@ -1,32 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-$(call emugl-begin-host-executable,triangleCM)
-$(call emugl-import,libEGL_translator libGLES_CM_translator)
-
-PREBUILT := $(HOST_PREBUILT_TAG)
-LOCAL_SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
-LOCAL_SDL_CFLAGS := $(shell $(LOCAL_SDL_CONFIG) --cflags)
-LOCAL_SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(LOCAL_SDL_CONFIG) --static-libs))
-
-ifeq ($(HOST_OS),darwin)
-  DARWIN_VERSION := $(strip $(shell sw_vers -productVersion))
-  ifneq ($(filter 10.7 10.7.%,$(DARWIN_VERSION)),)
-    # Lion needs to be forced to link dylib to avoid problems
-    # with the dynamic function lookups in SDL 1.2
-    LOCAL_SDL_LDLIBS += /usr/lib/dylib1.o
-  endif
-endif
-
-LOCAL_SRC_FILES:= \
-        triangleCM.cpp
-
-LOCAL_CFLAGS += $(LOCAL_SDL_CFLAGS) -g -O0
-LOCAL_LDLIBS += $(LOCAL_SDL_LDLIBS)
-
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
-
-ifeq ($(HOST_OS),darwin)
-$(call emugl-import,libMac_view)
-endif
-
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp b/tools/emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp
deleted file mode 100644
index 7d681ad..0000000
--- a/tools/emulator/opengl/tests/translator_tests/GLES_CM/triangleCM.cpp
+++ /dev/null
@@ -1,447 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-//#define GL_API
-//#define GL_APIENTRY
-
-#undef ANDROID
-#include <EGL/egl.h>
-#include <GLES/gl.h>
-
-#ifdef __APPLE__
-extern "C" void * createGLView(void *nsWindowPtr, int x, int y, int width, int height);
-#endif
-
-#undef HAVE_MALLOC_H
-#include <SDL.h>
-#include <SDL_syswm.h>
-
-
-#define WINDOW_WIDTH    500
-#define WINDOW_HEIGHT   500
-
-#define TEX_WIDTH 256
-#define TEX_HEIGHT 256
-
-
-#define F_to_X(d) ((d) > 32767.65535 ? 32767 * 65536 + 65535 :  \
-               (d) < -32768.65535 ? -32768 * 65536 + 65535 : \
-               ((GLfixed) ((d) * 65536)))
-#define X_to_F(x)  ((float)(x))/65536.0f
-
-static EGLint const attribute_list[] = {
-    EGL_RED_SIZE, 1,
-    EGL_GREEN_SIZE, 1,
-    EGL_BLUE_SIZE, 1,
-    EGL_NONE
-};
-
-unsigned char *genTexture(int width, int height, int comp)
-{
-    unsigned char *img = new unsigned char[width * height * comp];
-    unsigned char *ptr = img;
-    for (int i = 0; i < height; i++) {
-        for (int j = 0; j < width; j++) {
-            unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
-            if (j>(width/2)) col/=2;
-            for (int c = 0; c < comp; c++) {
-                *ptr = col; ptr++;
-            }
-        }
-    }
-    return img;
-}
-
-unsigned char *genRedTexture(int width, int height, int comp)
-{
-    unsigned char *img = new unsigned char[width * height * comp];
-        memset(img,0,width*height*comp);
-    unsigned char *ptr = img;
-    for (int i = 0; i < height; i++) {
-        for (int j = 0; j < width; j++) {
-            unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
-                        *ptr = col;
-                         ptr+=comp;
-        }
-    }
-    return img;
-}
-
-//mip 0;
-unsigned char *genPalette4_rgb8(int width, int height,int color)
-{
-        int size = width*height/2 + 16*3/*palette size*/;
-    unsigned char *img = new unsigned char[size];
-
-        memset(img,0,size);
-        img[0] = 255; img[1] = 0; img[2] = 0;     // red
-        img[3] = 0; img[4] = 0; img[5] = 255;    //blue
-        img[7] = 128; img[8] = 0; img[9] = 128;  //fucsia
-        //rest of the palette is empty
-
-    unsigned char *ptr = img+(16*3);
-    for (int i = 0; i < (height*width/2); i++) {
-             ptr[i] = (i%2)?0x0|color:0x11|color;
-    }
-    return img;
-}
-
-void usage(const char *progname)
-{
-    fprintf(stderr, "usage: %s [-n <nframes> -i -h]\n", progname);
-    fprintf(stderr, "\t-h: this message\n");
-    fprintf(stderr, "\t-i: immidate mode\n");
-    fprintf(stderr, "\t-n nframes: generate nframes\n");
-    fprintf(stderr, "\t-e: use index arrays\n");
-    fprintf(stderr, "\t-t: use texture\n");
-    fprintf(stderr, "\t-f: use fixed points\n");
-    fprintf(stderr, "\t-p: use point size OES extention\n");
-}
-
-#define SWITCH_SOURCE(add)\
-            if(useConvertedType){                            \
-                if(useFixed){                                \
-                      data = (GLvoid*)(fixedVertices+(add)); \
-                } else {                                     \
-                      data = (GLvoid*)(byteVertices +(add)); \
-                }                                            \
-            } else {                                         \
-                      data = (GLvoid*)(afVertices+(add));    \
-            }                                                \
-
-#ifdef _WIN32
-int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
-#else
-int main(int argc, char **argv)
-#endif
-{
-    GLuint  ui32Vbo = 0; // Vertex buffer object handle
-    GLuint  ui32IndexVbo;
-    GLuint  ui32Texture;
-
-    int nframes = 100;
-    bool immidateMode     = false;
-    bool useIndices       = true;
-    bool useTexture       = false;
-    bool useCompTexture   = false;
-    bool useConvertedType = true;
-    bool useFixed         = false;
-    bool usePoints        = false;
-    bool useCopy          = false;
-    bool useSubCopy       = false;
-
-    int c;
-    extern char *optarg;
-
-    #ifdef _WIN32
-        HWND   windowId = NULL;
-    #elif __linux__
-        Window windowId = NULL;
-    #elif __APPLE__
-        void* windowId = NULL;
-    #endif
-
-        //      // Inialize SDL window
-        //
-        if (SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO)) {
-            fprintf(stderr,"SDL init failed: %s\n", SDL_GetError());
-            return -1;
-        }
-
-        SDL_Surface *surface = SDL_SetVideoMode(WINDOW_WIDTH,WINDOW_HEIGHT, 32, SDL_HWSURFACE);
-        if (surface == NULL) {
-            fprintf(stderr,"Failed to set video mode: %s\n", SDL_GetError());
-            return -1;
-        }
-
-        SDL_SysWMinfo  wminfo;
-        memset(&wminfo, 0, sizeof(wminfo));
-        SDL_GetWMInfo(&wminfo);
-    #ifdef _WIN32
-        windowId = wminfo.window;
-    #elif __linux__
-        windowId = wminfo.info.x11.window;
-    #elif __APPLE__
-        windowId = createGLView(wminfo.nsWindowPtr,0,0,WINDOW_WIDTH,WINDOW_HEIGHT);
-
-    #endif
-
-        int major,minor,num_config;
-        EGLConfig configs[150];
-        EGLSurface egl_surface;
-        EGLContext ctx;
-        EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-        eglInitialize(d,&major,&minor);
-        printf("DISPLAY == %p major =%d minor = %d\n",d,major,minor);
-        eglChooseConfig(d, attribute_list, configs, 150, &num_config);
-        printf("config returned %d\n",num_config);
-        egl_surface = eglCreateWindowSurface(d,configs[0],windowId,NULL);
-        printf("before creating context..\n");
-        ctx = eglCreateContext(d,configs[0],EGL_NO_CONTEXT,NULL);
-        printf("SURFACE == %p CONTEXT == %p\n",egl_surface,ctx);
-        if(eglMakeCurrent(d,egl_surface,egl_surface,ctx)!= EGL_TRUE){
-            printf("make current failed\n");
-            return false;
-        }
-        printf("after make current\n");
-
-        GLenum err = glGetError();
-        if(err != GL_NO_ERROR) {
-        printf("error before drawing ->>> %d  \n",err);
-        } else {
-        printf("no error before drawing\n");
-        }
-
-    if (useTexture) {
-
-        glEnable(GL_TEXTURE_2D);
-        ui32Texture = 1;
-        glBindTexture(GL_TEXTURE_2D, ui32Texture);
-                GLenum err = glGetError();
-
-        unsigned char *pixels = NULL;
-                if(useCompTexture) {
-                        pixels = genPalette4_rgb8(TEX_WIDTH,TEX_HEIGHT,3);
-                        glCompressedTexImage2D(GL_TEXTURE_2D,0,GL_PALETTE4_RGB8_OES,TEX_WIDTH,TEX_HEIGHT,0,3*16+TEX_WIDTH*TEX_HEIGHT/2,pixels);
-
-                } else {
-                        pixels = genTexture(TEX_WIDTH, TEX_HEIGHT, 4);
-            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, TEX_WIDTH, TEX_HEIGHT, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
-                }
-
-        delete pixels;
-
-                err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error %d after image \n",err);
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
-                err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error after min filter \n");
-        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
-                err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error after mag filter \n");
-        glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-                err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error after env mode \n");
-
-                if(useCompTexture) {
-                    pixels = genPalette4_rgb8(TEX_WIDTH,TEX_HEIGHT,1);
-                    glCompressedTexSubImage2D(GL_TEXTURE_2D,0,TEX_WIDTH/4,TEX_HEIGHT/4,TEX_WIDTH/8,TEX_HEIGHT/8,GL_PALETTE4_RGB8_OES,3*16+(TEX_WIDTH*TEX_HEIGHT/128),pixels);
-                } else {
-            pixels = genRedTexture(TEX_WIDTH/8, TEX_HEIGHT/8, 4);
-                    glTexSubImage2D(GL_TEXTURE_2D,0,TEX_WIDTH/4,TEX_HEIGHT/4,TEX_WIDTH/8,TEX_HEIGHT/8,GL_RGBA,GL_UNSIGNED_BYTE,pixels);
-                }
-                 err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error %d after subimage \n",err);
-        delete pixels;
-
-    }
-
-    glClearColor(0.6f, 0.8f, 1.0f, 1.0f); // clear blue
-
-    float afVertices[] = {  -0.4f,-0.4f,0.0f, // Position
-                 1.0f,0.0f,0.0f,1.0f, // Color
-                 0.0f, 0.0f, // texture
-                 12.f, //point size
-
-                 0.4f,-0.4f,0.0f,
-                 0.0f,1.0f,0.0f,1.0f,
-                 1.0f, 0.0f,
-                 47.0f,
-
-                 0.0f,0.4f,0.0f,
-                 0.0f,0.0f,1.0f,1.0f,
-                 0.5f, 1.0f,
-                 14.0f
-    };
-
-#define MAX_T 1
-#define MID_T 0
-#define MIN_T 0
-
-    GLbyte byteVertices[] = { -1,-1,0, // Position
-                             255,0,0,255, // Color
-                             MIN_T, MIN_T, // texture
-                             12, //point size
-
-                             1,-1,0,
-                             0,255,0,255,
-                             MAX_T,MIN_T,
-                             47,
-
-                            0,1,0,
-                            0,0,255,255,
-                            MID_T, MAX_T,
-                            14
-    };
-
-    GLfixed fixedVertices[] = { F_to_X(-0.4f),F_to_X(-0.4f),F_to_X(0.0f), // Position
-                    F_to_X(1.0f),F_to_X(0.0f),F_to_X(0.0f),F_to_X(1.0f), // Color
-                    F_to_X(0.0f),F_to_X(0.0f), // texture
-                    F_to_X(12.0f),//points size
-
-                    F_to_X(0.4f),F_to_X(-0.4f),F_to_X(0.0f),
-                    F_to_X(0.0f),F_to_X(1.0f),F_to_X(0.0f),F_to_X(1.0f),
-                    F_to_X(1.0f),F_to_X( 0.0f),
-                    F_to_X(30.0f),
-
-                    F_to_X(0.0f),F_to_X(0.4f),F_to_X(0.0f),
-                    F_to_X(0.0f),F_to_X(0.0f),F_to_X(1.0f),F_to_X(1.0f),
-                    F_to_X(0.5f), F_to_X(1.0f),
-                    F_to_X(30.0)
-    };
-
-    unsigned short indices[] = { 2, 1, 0 };
-
-    if (!immidateMode) {
-        glGenBuffers(1, &ui32Vbo);
-        ui32Vbo = 1;
-         printf("ui32Vbo = %d\n", ui32Vbo);
-
-        glBindBuffer(GL_ARRAY_BUFFER, ui32Vbo);
-        void* data = (void*)afVertices;
-        unsigned int uiSize = 3*(sizeof(float)*10);
-        if(useConvertedType){
-           if(useFixed){
-               data = (void*)fixedVertices;
-           } else {
-               data   = (void*)byteVertices;
-               uiSize = 3*(sizeof(GLbyte)*10);
-           }
-        }
-        glBufferData(GL_ARRAY_BUFFER, uiSize,data, GL_STATIC_DRAW);
-
-        ui32IndexVbo = 2;
-        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ui32IndexVbo);
-        glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
-    }
-
-    // Draws a triangle for 800 frames
-    float angle = 0.0;
-    glMatrixMode(GL_PROJECTION);
-    glLoadIdentity();
-    glMatrixMode(GL_MODELVIEW);
-    glLoadIdentity();
-
-    GLvoid* arr = NULL;
-    GLenum  type;
-    GLenum  drawType;
-    GLenum  colorType;
-    int     size_of;
-
-    if(useConvertedType){
-        if(useFixed)
-        {
-            arr = fixedVertices;
-            colorType = type = GL_FIXED;
-            size_of = sizeof(GLfixed);
-        } else {
-            arr = byteVertices;
-            colorType = GL_UNSIGNED_BYTE;
-            type = GL_BYTE;
-            size_of = sizeof(GLbyte);
-        }
-    }else {
-        arr = afVertices;
-        colorType = type = GL_FLOAT;
-        size_of = sizeof(float);
-    }
-
-    if(usePoints)
-    {
-        drawType = GL_POINTS;
-    }
-    else
-        drawType = GL_TRIANGLES;
-
-    GLvoid* data = NULL;
-    for (int i = 0; i < 100; i++) {
-
-        glClear(GL_COLOR_BUFFER_BIT);
-        glPushMatrix();
-        glRotatef(angle, 0.0, 0.0, 1.0);
-        angle += 360.0 / nframes;
-        // Enable vertex arrays
-        glEnableClientState(GL_VERTEX_ARRAY);
-        if (immidateMode) {
-            glVertexPointer(3,type, size_of * 10, arr);
-        } else {
-            glVertexPointer(3,type, size_of * 10, 0);
-        }
-
-        // Set color data in the same way
-        glEnableClientState(GL_COLOR_ARRAY);
-        if (immidateMode) {
-            SWITCH_SOURCE(3)
-            glColorPointer(4, colorType, size_of * 10, data);
-        } else {
-            glColorPointer(4,colorType,size_of * 10, (GLvoid*) (size_of * 3) );
-        }
-        if (useTexture) {
-            glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-            if (immidateMode) {
-                SWITCH_SOURCE(7)
-                glTexCoordPointer(2, type, size_of * 10,data);
-            } else {
-                glTexCoordPointer(2, type, size_of * 10, (GLvoid*)(size_of * 7));
-            }
-        }
-        if(usePoints)
-        {
-            glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
-            if (immidateMode) {
-                SWITCH_SOURCE(9)
-                glPointSizePointerOES(type,size_of * 10,data);
-                        } else {
-                glPointSizePointerOES(type,size_of * 10,(GLvoid*)(size_of * 9));
-                        }
-        }
-
-        if (useIndices) {
-            if (immidateMode) {
-                glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
-                glDrawElements(drawType, 3, GL_UNSIGNED_SHORT, indices);
-            } else {
-                glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ui32IndexVbo);
-                glDrawElements(drawType, 3, GL_UNSIGNED_SHORT, 0);
-            }
-        } else {
-            glDrawArrays(drawType, 0, 3);
-        }
-
-                GLenum err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf(" error %d has occured while drawing\n",err);
-
-
-        glPopMatrix();
-                eglSwapBuffers(d,egl_surface);
-
-                if(useTexture && useCopy)
-                    glCopyTexImage2D(GL_TEXTURE_2D,0,GL_RGBA,0,0,256,256,0);
-                else if(useTexture && useSubCopy)
-                    glCopyTexSubImage2D(GL_TEXTURE_2D,0,100,100,WINDOW_WIDTH/2,WINDOW_HEIGHT/2,50,50);
-    }
-                err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error ->>> %d  \n",err);
-        eglDestroySurface(d,egl_surface);
-        eglDestroyContext(d,ctx);
-
-// Just wait until the window is closed
-        SDL_Event ev;
-        while( SDL_WaitEvent(&ev) ) {
-            if (ev.type == SDL_QUIT) {
-                break;
-            }
-        }
-    return 0;
-}
-
-
diff --git a/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk b/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
deleted file mode 100644
index efbe6bd..0000000
--- a/tools/emulator/opengl/tests/translator_tests/GLES_V2/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-$(call emugl-begin-host-executable,triangleV2)
-$(call emugl-import,libEGL_translator libGLES_V2_translator)
-
-PREBUILT := $(HOST_PREBUILT_TAG)
-LOCAL_SDL_CONFIG ?= prebuilt/$(PREBUILT)/sdl/bin/sdl-config
-LOCAL_SDL_CFLAGS := $(shell $(LOCAL_SDL_CONFIG) --cflags)
-LOCAL_SDL_LDLIBS := $(filter-out %.a %.lib,$(shell $(LOCAL_SDL_CONFIG) --static-libs))
-
-LOCAL_SRC_FILES:= \
-        triangleV2.cpp
-
-LOCAL_CFLAGS += $(LOCAL_SDL_CFLAGS) -g -O0
-LOCAL_LDLIBS += $(LOCAL_SDL_LDLIBS)
-
-LOCAL_STATIC_LIBRARIES += libSDL libSDLmain
-
-ifeq ($(HOST_OS),darwin)
-DARWIN_VERSION := $(strip $(shell sw_vers -productVersion))
-ifneq ($(filter 10.7 10.7.%,$(DARWIN_VERSION)),)
-  # Lion needs to be forced to link dylib to avoid problems
-  # with the dynamic function lookups in SDL 1.2
-  LOCAL_LDLIBS += /usr/lib/dylib1.o
-endif
-$(call emugl-import,libMac_view)
-endif
-
-$(call emugl-end-module)
-
diff --git a/tools/emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp b/tools/emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp
deleted file mode 100644
index d231b36..0000000
--- a/tools/emulator/opengl/tests/translator_tests/GLES_V2/triangleV2.cpp
+++ /dev/null
@@ -1,441 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-//#define GL_API
-//#define GL_APIENTRY
-
-#undef ANDROID
-#include <EGL/egl.h>
-#include <GLES2/gl2.h>
-
-#ifdef __APPLE__
-extern "C" void * createGLView(void *nsWindowPtr, int x, int y, int width, int height);
-#endif
-
-#undef HAVE_MALLOC_H
-#include <SDL.h>
-#include <SDL_syswm.h>
-
-
-#define WINDOW_WIDTH    500
-#define WINDOW_HEIGHT   500
-
-#define TEX_WIDTH 256
-#define TEX_HEIGHT 256
-
-
-#define F_to_X(d) ((d) > 32767.65535 ? 32767 * 65536 + 65535 :  \
-               (d) < -32768.65535 ? -32768 * 65536 + 65535 : \
-               ((GLfixed) ((d) * 65536)))
-#define X_to_F(x)  ((float)(x))/65536.0f
-
-//#define __FIXED__
-
-const char *def_vShaderStr =
-       "attribute vec4 vPosition;   \n"
-       "void main()                 \n"
-       "{                           \n"
-       "   gl_Position = vPosition; \n"
-       "}                           \n";
-
-const char *def_fShaderStr =
-       "precision mediump float;                   \n"
-       "void main()                                \n"
-       "{                                          \n"
-#ifndef __FIXED__
-       " gl_FragColor = vec4(0.2, 0.5, 0.1, 1.0); \n"
-#else
-       " gl_FragColor = vec4(0.4, 0.3, 0.7, 1.0); \n"
-#endif
-       "}                                          \n";
-
-static EGLint const attribute_list[] = {
-    EGL_RED_SIZE, 1,
-    EGL_GREEN_SIZE, 1,
-    EGL_BLUE_SIZE, 1,
-    EGL_NONE
-};
-
-unsigned char *genTexture(int width, int height, int comp)
-{
-    unsigned char *img = new unsigned char[width * height * comp];
-    unsigned char *ptr = img;
-    for (int i = 0; i < height; i++) {
-        for (int j = 0; j < width; j++) {
-            unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
-            for (int c = 0; c < comp; c++) {
-                *ptr = col; ptr++;
-            }
-        }
-    }
-    return img;
-}
-
-unsigned char *genRedTexture(int width, int height, int comp)
-{
-    unsigned char *img = new unsigned char[width * height * comp];
-        memset(img,0,width*height*comp);
-    unsigned char *ptr = img;
-    for (int i = 0; i < height; i++) {
-        for (int j = 0; j < width; j++) {
-            unsigned char col = ((i / 8 + j / 8) % 2) * 255 ;
-                        *ptr = col;
-                         ptr+=comp;
-        }
-    }
-    return img;
-}
-
-
-void printUsage(const char *progname)
-{
-    fprintf(stderr, "usage: %s [options]\n", progname);
-    fprintf(stderr, "\t-vs <filename>  - vertex shader to use\n");
-    fprintf(stderr, "\t-fs <filename>  - fragment shader to use\n");
-}
-
-
-
-GLuint LoadShader(GLenum type,const char *shaderSrc)
-{
-   GLuint shader;
-   GLint compiled;
-   // Create the shader object
-    shader = glCreateShader(type);
-   if(shader == 0)
-       return 0;
-   // Load the shader source
-   glShaderSource(shader, 1, &shaderSrc, NULL);
-    // Compile the shader
-   glCompileShader(shader);
-    // Check the compile status
-   glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
-   if(!compiled)
-   {
-       GLint infoLen = 0;
-       glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
-       if(infoLen > 1)
-       {
-          char* infoLog = (char*)malloc(sizeof(char) * infoLen);
-          glGetShaderInfoLog(shader, infoLen, NULL, infoLog);
-          printf("Error compiling shader:\n%s\n", infoLog);
-          free(infoLog);
-       }
-       glDeleteShader(shader);
-       return 0;
-   }
-   return shader;
-}
-
-const char *readShader(const char *fileName)
-{
-    FILE *fp = fopen(fileName, "rb");
-    if (!fp) return NULL;
-   
-    int bSize = 1024;
-    int nBufs = 1;
-    char *buf = (char *)malloc(bSize);
-    int n;
-    int len = 0;
-    n = fread(&buf[0], 1, bSize, fp);
-    while( n == bSize ) {
-        len += n;
-        nBufs++;
-        buf = (char *)realloc(buf, bSize * nBufs);
-        n = fread(&buf[len], 1, bSize, fp);
-    }
-    len += n;
-
-    buf[len] = '\0';
-    return (const char *)buf;
-}
-
-void dumpUniforms(GLuint program)
-{
-    GLint numU;
-    glGetProgramiv(program, GL_ACTIVE_UNIFORMS, &numU);
-    printf("==== Program %d has %d active uniforms ===\n", program, numU);
-    char name[512];
-    GLsizei len;
-    GLint size;
-    GLenum type;
-    for (int i=0; i<numU; i++) {
-        glGetActiveUniform(program, i,
-                           512, &len, &size, &type, name);
-        printf("\t%s : type=0x%x size=%d\n", name, type, size);
-    }
-}
-
-///
-// Initialize the shader and program object
-//
-int Init(const char *vShaderStr, const char *fShaderStr)
-{
-   GLuint vertexShader;
-   GLuint fragmentShader;
-   GLuint programObject;
-   GLint linked;
-  // Load the vertex/fragment shaders
-  vertexShader = LoadShader(GL_VERTEX_SHADER, vShaderStr);
-  fragmentShader = LoadShader(GL_FRAGMENT_SHADER, fShaderStr);
-  // Create the program object
-  programObject = glCreateProgram();
-  if(programObject == 0)
-     return -1;
-  glAttachShader(programObject, vertexShader);
-  glAttachShader(programObject, fragmentShader);
-  // Bind vPosition to attribute 0
-  glBindAttribLocation(programObject, 0, "vPosition");
-  // Link the program
-  glLinkProgram(programObject);
-  // Check the link status
-  glGetProgramiv(programObject, GL_LINK_STATUS, &linked);
-  if(!linked)
-  {
-     GLint infoLen = 0;
-     glGetProgramiv(programObject, GL_INFO_LOG_LENGTH, &infoLen);
-     if(infoLen > 1)
-     {
-        char* infoLog = (char*)malloc(sizeof(char) * infoLen);
-        glGetProgramInfoLog(programObject, infoLen, NULL, infoLog);
-        printf("Error linking program:\n%s\n", infoLog);
-        free(infoLog);
-     }
-     glDeleteProgram(programObject);
-     return -1;
-  }
-
-  // dump active uniforms
-  dumpUniforms(programObject);
-
-  // Store the program object
-#ifndef __FIXED__
-  glClearColor(0.0f, 0.0f, 1.0f, 1.0f);
-#else
-  glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
-#endif
-  return programObject;
-}
-
-
-///
-// Draw a triangle using the shader pair created in Init()
-//
-void Draw(EGLDisplay display,EGLSurface surface,int width,int height,GLuint program)
-{
-#ifndef __FIXED__
-   GLfloat vVertices[] = {0.0f, 0.5f, 0.0f,
-                           -0.5f, -0.5f, 0.0f,
-                           0.5f, -0.5f, 0.0f};
-#else
-
-   GLfixed vVertices[] = {F_to_X(0.0f), F_to_X(0.5f),F_to_X(0.0f),
-                           F_to_X(-0.5f),F_to_X(-0.5f), F_to_X(0.0f),
-                           F_to_X(0.5f),F_to_X(-0.5f),F_to_X(0.0f)};
-#endif    
-   
-    // Set the viewport
-   glViewport(0, 0,width,height);
-    // Clear the color buffer
-   glClear(GL_COLOR_BUFFER_BIT);
-    // Use the program object
-   glUseProgram(program);
-   // Load the vertex data
-#ifndef __FIXED__
-   glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vVertices);
-#else
-   glVertexAttribPointer(0, 3, GL_FIXED, GL_FALSE, 0, vVertices);
-#endif
-   glEnableVertexAttribArray(0);
-   glDrawArrays(GL_TRIANGLES, 0, 3);
-   eglSwapBuffers(display,surface);
-}
-
-#ifdef _WIN32
-char **parseCmdLine(char *cmdLine, int *argc)
-{
-    int argvSize = 10;
-    char **argv = (char **)malloc(argvSize * sizeof(char *));
-    *argc = 0;
-    int i=0;
-    bool prevIsSpace = true;
-    int argStart = 0;
-
-    argv[(*argc)++] = strdup("playdump");
-
-    while(cmdLine[i] != '\0') {
-        bool isSpace = (cmdLine[i] == ' ' || cmdLine[i] == '\t');
-        if ( !isSpace && prevIsSpace ) {
-            argStart = i;
-        }
-        else if (isSpace && !prevIsSpace) {
-            cmdLine[i] = '\0';
-            if (*argc >= argvSize) {
-                argvSize *= 2;
-                argv = (char **)realloc(argv, argvSize * sizeof(char *));
-            }
-            argv[(*argc)++] = &cmdLine[argStart];
-            argStart = i+1;
-        }
-
-        prevIsSpace = isSpace;
-        i++;
-    }
-
-    if (i > argStart) {
-        argv[(*argc)++] = &cmdLine[argStart];
-    }
-    return argv;
-}
-#endif
-
-#ifdef _WIN32
-int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
-#else
-int main(int argc, char **argv)
-#endif
-{
-    GLuint  ui32Vbo = 0; // Vertex buffer object handle
-    GLuint  ui32IndexVbo;
-    GLuint  ui32Texture;
-
-    int nframes = 100;
-    bool immidateMode     = false;
-    bool useIndices       = false;
-    bool useTexture       = true;
-    bool useCompTexture   = false;
-    bool useFixed         = true;
-    bool usePoints        = false;
-    bool useCopy          = false;
-    bool useSubCopy       = false;
-
-#ifdef _WIN32
-    int argc;
-    char **argv = parseCmdLine(lpCmdLine, &argc);
-#endif
-    const char *vShader = def_vShaderStr;
-    const char *fShader = def_fShaderStr;
-
-    for (int i=1; i<argc; i++) {
-        if (!strcmp(argv[i],"-vs")) {
-            if (++i >= argc) {
-                printUsage(argv[0]);
-                return -1;
-            }
-            vShader = readShader(argv[i]);
-            if (!vShader) {
-                vShader = def_vShaderStr;
-                printf("Failed to load vshader %s, using defualt\n", argv[i]);
-            }
-            else {
-                printf("Using vshader %s\n", argv[i]);
-            }
-        }
-        else if (!strcmp(argv[i],"-fs")) {
-            if (++i >= argc) {
-                printUsage(argv[0]);
-                return -1;
-            }
-            fShader = readShader(argv[i]);
-            if (!fShader) {
-                fShader = def_fShaderStr;
-                printf("Failed to load fshader %s, using defualt\n", argv[i]);
-            }
-            else {
-                printf("Using fshader %s\n", argv[i]);
-            }
-        }
-        else {
-            printUsage(argv[0]);
-            return -1;
-        }
-    }
-
-    #ifdef _WIN32
-        HWND   windowId = NULL;
-    #elif __linux__
-        Window windowId = NULL;
-    #elif __APPLE__
-        void* windowId  = NULL;
-    #endif
-
-        //      // Inialize SDL window
-        //
-        if (SDL_Init(SDL_INIT_NOPARACHUTE | SDL_INIT_VIDEO)) {
-            fprintf(stderr,"SDL init failed: %s\n", SDL_GetError());
-            return -1;
-        }
-
-        SDL_Surface *surface = SDL_SetVideoMode(WINDOW_WIDTH,WINDOW_HEIGHT, 32, SDL_HWSURFACE);
-        if (surface == NULL) {
-            fprintf(stderr,"Failed to set video mode: %s\n", SDL_GetError());
-            return -1;
-        }
-
-        SDL_SysWMinfo  wminfo;
-        memset(&wminfo, 0, sizeof(wminfo));
-        SDL_GetWMInfo(&wminfo);
-    #ifdef _WIN32
-        windowId = wminfo.window;
-    #elif __linux__
-        windowId = wminfo.info.x11.window;
-    #elif __APPLE__
-        windowId = createGLView(wminfo.nsWindowPtr,0,0,WINDOW_WIDTH,WINDOW_HEIGHT);
-    #endif
-
-        int major,minor,num_config;
-        int attrib_list[] ={    
-                                EGL_CONTEXT_CLIENT_VERSION, 2,
-                                EGL_NONE
-                           };
-        EGLConfig configs[150];
-        EGLSurface egl_surface;
-        EGLContext ctx;
-        EGLDisplay d = eglGetDisplay(EGL_DEFAULT_DISPLAY);
-        eglInitialize(d,&major,&minor);
-        printf("DISPLAY == %p major =%d minor = %d\n",d,major,minor);
-        eglChooseConfig(d, attribute_list, configs, 150, &num_config);
-        printf("config returned %d\n",num_config);
-        egl_surface = eglCreateWindowSurface(d,configs[0],windowId,NULL);
-        ctx = eglCreateContext(d,configs[0],EGL_NO_CONTEXT,attrib_list);
-        printf("SURFACE == %p CONTEXT == %p\n",egl_surface,ctx);
-        if(eglMakeCurrent(d,egl_surface,egl_surface,ctx)!= EGL_TRUE){
-            printf("make current failed\n");
-            return false;
-        }
-        printf("after make current\n");
-
-        GLenum err = glGetError();
-        if(err != GL_NO_ERROR) {
-        printf("error before drawing ->>> %d  \n",err);
-        } else {
-        printf("no error before drawing\n");
-        }
-
-        int program = Init(vShader, fShader);
-        if(program  < 0){
-            printf("failed init shaders\n");
-            return false;
-        }
-
-        Draw(d,egl_surface,WINDOW_WIDTH,WINDOW_HEIGHT,program);
-
-                err = glGetError();
-                if(err != GL_NO_ERROR)
-            printf("error ->>> %d  \n",err);
-        eglDestroySurface(d,egl_surface);
-        eglDestroyContext(d,ctx);
-
-// Just wait until the window is closed
-        SDL_Event ev;
-        while( SDL_WaitEvent(&ev) ) {
-            if (ev.type == SDL_QUIT) {
-                break;
-            }
-        }
-    return 0;
-}
-
-
diff --git a/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk b/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
deleted file mode 100644
index 4c4ae6b..0000000
--- a/tools/emulator/opengl/tests/translator_tests/MacCommon/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-ifeq ($(HOST_OS),darwin)
-$(call emugl-begin-host-static-library,libMac_view)
-
-LIBMACVIEW_FRAMEWORKS := AppKit AudioToolbox AudioUnit
-LIBMACVIEW_PREFIX := -Wl,-framework,
-
-$(call emugl-export,LDLIBS,$(foreach _framework,$(LIBMACVIEW_FRAMEWORKS),$(LIBMACVIEW_PREFIX)$(_framework)))
-LOCAL_SRC_FILES := setup_gl.m
-LOCAL_CFLAGS += -g -O0
-$(call emugl-end-module)
-endif # HOST_OS == darwin
diff --git a/tools/emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m b/tools/emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m
deleted file mode 100644
index 43b72ba..0000000
--- a/tools/emulator/opengl/tests/translator_tests/MacCommon/setup_gl.m
+++ /dev/null
@@ -1,19 +0,0 @@
-#include <stdio.h>
-#include <Cocoa/Cocoa.h>
-
- void * createGLView(void *nsWindowPtr, int x, int y, int width, int height)
-{
-	NSRect contentRect = NSMakeRect(x, y, width, height);
-	NSView *glView = [[NSView alloc] initWithFrame:contentRect];
-	if (glView == nil) {
-		printf("couldn't create opengl view\n");
-		return nil;
-	}
-	[glView setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
-	NSWindow *win = (NSWindow *)nsWindowPtr;
-	[[win contentView] addSubview:glView];
-	[win makeKeyAndOrderFront:nil];
-	return (void *)glView;
-}
-
-	
diff --git a/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk b/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
deleted file mode 100644
index a5a01e8..0000000
--- a/tools/emulator/opengl/tests/ut_rendercontrol_dec/Android.mk
+++ /dev/null
@@ -1,7 +0,0 @@
-LOCAL_PATH := $(call my-dir)
-
-$(call emugl-begin-host-shared-library,libut_rendercontrol_dec)
-$(call emugl-import, libOpenglCodecCommon)
-$(call emugl-gen-decoder,$(EMUGL_PATH)/tests/ut_rendercontrol_enc,ut_rendercontrol)
-$(call emugl-export,C_INCLUDES,$(EMUGL_PATH)/tests/ut_rendercontrol_enc)
-$(call emugl-end-module)
diff --git a/tools/emulator/opengl/tests/ut_renderer/Android.mk b/tools/emulator/opengl/tests/ut_renderer/Android.mk
deleted file mode 100644
index fe8e7ac..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/Android.mk
+++ /dev/null
@@ -1,30 +0,0 @@
-LOCAL_PATH:=$(call my-dir)
-
-ifeq ($(HOST_OS), linux)
-
-$(call emugl-begin-host-executable,ut_renderer)
-$(call emugl-import,libut_rendercontrol_dec libGLESv1_dec libGLESv2_dec libEGL_host_wrapper)
-
-LOCAL_SRC_FILES := ut_renderer.cpp \
-        RenderingThread.cpp \
-	ReadBuffer.cpp \
-	Renderer.cpp \
-	RendererContext.cpp \
-	RendererSurface.cpp \
-	X11Windowing.cpp
-
-# define PVR_WAR to support imgtec PVR opengl-ES implementation
-#
-# specifically this MACRO enables code that work arounds a bug
-# in the implementation where glTextureParameter(...,GL_TEXTURE_RECT,...)
-# is called would cause a crash if the texture dimensions have not been
-# defined yet.
-
-LOCAL_CFLAGS += -DPVR_WAR
-#LOCAL_CFLAGS += -g -O0
-
-LOCAL_LDLIBS += -lpthread -lX11 -lrt
-
-$(call emugl-end-module)
-
-endif # HOST_OS == linux
diff --git a/tools/emulator/opengl/tests/ut_renderer/NativeWindowing.h b/tools/emulator/opengl/tests/ut_renderer/NativeWindowing.h
deleted file mode 100644
index 9468066..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/NativeWindowing.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _NATIVE_WINDOWING_H
-#define _NATIVE_WINDOWING_H
-
-#include <EGL/egl.h>
-
-class NativeWindowing {
-public:
-    virtual NativeDisplayType getNativeDisplay() = 0;
-    virtual NativeWindowType createNativeWindow(NativeDisplayType dpy, int width, int height) = 0;
-    virtual int destroyNativeWindow(NativeDisplayType dpy, NativeWindowType win) = 0;
-};
-
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/ReadBuffer.cpp b/tools/emulator/opengl/tests/ut_renderer/ReadBuffer.cpp
deleted file mode 100644
index e0073c0..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/ReadBuffer.cpp
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "ReadBuffer.h"
-#include <string.h>
-#include <assert.h>
-
-ReadBuffer::ReadBuffer(SocketStream *stream, size_t bufsize)
-{
-    m_size = bufsize;
-    m_stream = stream;
-    m_buf = new unsigned char[m_size];
-    m_validData = 0;
-    m_readPtr = m_buf;
-}
-
-ReadBuffer::~ReadBuffer()
-{
-    delete m_buf;
-}
-
-int ReadBuffer::getData()
-{
-    if (m_validData > 0) {
-        memcpy(m_buf, m_readPtr, m_validData);
-    }
-    m_readPtr = m_buf;
-    // get fresh data into the buffer;
-    int stat = m_stream->recv(m_buf + m_validData, m_size - m_validData);
-    if (stat > 0) {
-        m_validData += (size_t) stat;
-    }
-    return stat;
-}
-
-void ReadBuffer::consume(size_t amount)
-{
-    assert(amount <= m_validData);
-    m_validData -= amount;
-    m_readPtr += amount;
-}
diff --git a/tools/emulator/opengl/tests/ut_renderer/ReadBuffer.h b/tools/emulator/opengl/tests/ut_renderer/ReadBuffer.h
deleted file mode 100644
index b039b19..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/ReadBuffer.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _READ_BUFFER_H
-#define _READ_BUFFER_H
-
-#include "SocketStream.h"
-
-class ReadBuffer {
-public:
-    ReadBuffer(SocketStream *stream, size_t bufSize);
-    ~ReadBuffer();
-    int getData(); // get fresh data from the stream
-    unsigned char *buf() { return m_readPtr; } // return the next read location
-    size_t validData() { return m_validData; } // return the amount of valid data in readptr
-    void consume(size_t amount); // notify that 'amount' data has been consumed;
-private:
-    unsigned char *m_buf;
-    unsigned char *m_readPtr;
-    size_t m_size;
-    size_t m_validData;
-    SocketStream *m_stream;
-};
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/Renderer.cpp b/tools/emulator/opengl/tests/ut_renderer/Renderer.cpp
deleted file mode 100644
index 22afadb..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/Renderer.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <assert.h>
-#include "RenderingThread.h"
-#include "Renderer.h"
-
-// include operating-system dependent windowing system impelemntation
-#ifdef _WIN32
-#    error "WINDOWS IS NOT SUPPORTED AT THE MOMENT"
-#elif defined __APPLE__
-#    error "Apple OS-X IS NOT SUPPORTED"
-#elif defined (__unix__)
-# include "X11Windowing.h"
-#endif
-
-
-
-
-
-Renderer * Renderer::m_instance = NULL;
-
-Renderer * Renderer::instance()
-{
-    if (m_instance == NULL) m_instance = new Renderer;
-    return m_instance;
-}
-
-Renderer::Renderer()
-{
-    // Unix specific, use your platform specific windowing implementation
-#ifdef __unix__
-    m_nw = new X11Windowing;
-#endif
-
-    m_dpy = eglGetDisplay(m_nw->getNativeDisplay());
-    EGLint major, minor;
-    eglInitialize(m_dpy, &major, &minor);
-    fprintf(stderr, "egl initialized : %d.%d\n", major, minor);
-}
-
-int Renderer::createSurface(RenderingThread *thread, const ClientHandle & handle)
-{
-    android::Mutex::Autolock(this->m_mutex);
-
-    assert(m_surfaces.find(handle) == m_surfaces.end());
-    if (handle.handle == 0) {
-        fprintf(stderr, "trying to create surface for EGL_NO_SURFACE !!!\n");
-        return -1;
-    } else {
-        RendererSurface  *surface = RendererSurface::create(m_dpy, RendererSurface::CONFIG_DEPTH, m_nw);
-        if (surface == NULL) {
-            printf("failed to create surface !!\n");
-            return -1;
-        }
-        m_surfaces.insert(SurfaceMap::value_type(handle, surface));
-    }
-    return 0;
-}
-
-int Renderer::destroySurface(RenderingThread *thread, const ClientHandle &handle)
-{
-    android::Mutex::Autolock(this->m_mutex);
-
-    SurfaceMap::iterator i = m_surfaces.find(handle);
-    if (i == m_surfaces.end()) {
-        printf("removing surface that doesn't exists\n");
-        return -1;
-    }
-    if (i->second->destroy(m_nw)) {
-        m_surfaces.erase(handle);
-    }
-    return 0;
-}
-
-int Renderer::createContext(RenderingThread *thread, const ClientHandle &handle, ClientHandle shareCtx, int version)
-{
-    android::Mutex::Autolock(this->m_mutex);
-
-    assert(m_ctxs.find(handle) == m_ctxs.end());
-    RendererContext *shared = NULL;
-    if (shareCtx.handle != 0) {
-        ContextMap::iterator sctx = m_ctxs.find(shareCtx);
-        if (sctx != m_ctxs.end()) {
-            shared = sctx->second;
-        }
-    }
-
-    RendererContext *ctx =
-        RendererContext::create(m_dpy,
-                                RendererSurface::getEglConfig(m_dpy, RendererSurface::CONFIG_DEPTH),
-                                shared, version);
-    if (ctx == NULL) {
-        fprintf(stderr, "failed to create context\n");
-        return -1;
-    }
-    m_ctxs.insert(ContextMap::value_type(handle, ctx));
-    return 0;
-}
-
-int Renderer::destroyContext(RenderingThread *thread, const ClientHandle &handle)
-{
-    android::Mutex::Autolock(this->m_mutex);
-
-    ContextMap::iterator i = m_ctxs.find(handle);
-    if (i == m_ctxs.end()) {
-        printf("removing context that doesn't exists\n");
-        return -1;
-    }
-    if (i->second->destroy()) {
-        m_ctxs.erase(handle);
-    }
-    return 0;
-}
-
-int Renderer::makeCurrent(RenderingThread *thread,
-                          const ClientHandle &drawSurface,
-                          const ClientHandle &readSurface,
-                          const ClientHandle & ctx)
-{
-    android::Mutex::Autolock(this->m_mutex);
-
-    RendererContext *currentContext = thread->currentContext();
-
-    ContextMap::iterator c = m_ctxs.find(ctx);
-    EGLContext eglContext;
-    if (ctx.handle != 0 && c != m_ctxs.end()) {
-        if (c->second != currentContext) {
-            // new context is set
-            if (currentContext != NULL) currentContext->unref();
-            c->second->ref();
-            eglContext = c->second->eglContext();
-            thread->setCurrentContext(c->second);
-            thread->glDecoder().setContextData(&c->second->decoderContextData());
-            thread->gl2Decoder().setContextData(&c->second->decoderContextData());
-        } else {
-            // same context is already set
-            eglContext = c->second->eglContext();
-        }
-    } else {
-        eglContext = EGL_NO_CONTEXT;
-        if (currentContext != NULL) currentContext->unref();
-        thread->setCurrentContext(NULL);
-        thread->glDecoder().setContextData(NULL);
-        thread->gl2Decoder().setContextData(NULL);
-    }
-
-    EGLSurface draw = EGL_NO_SURFACE;
-    EGLSurface read = EGL_NO_SURFACE;
-    SurfaceMap::iterator i;
-    i = m_surfaces.find(drawSurface);   if (i != m_surfaces.end()) draw = i->second->eglSurface();
-    i = m_surfaces.find(readSurface);   if (i != m_surfaces.end()) read = i->second->eglSurface();
-
-    return eglMakeCurrent(m_dpy, draw, read, eglContext);
-}
-
-int Renderer::swapBuffers(RenderingThread *thread,
-                          const ClientHandle &surface)
-{
-    android::Mutex::Autolock(this->m_mutex);
-
-    SurfaceMap::iterator s = m_surfaces.find(surface);
-    if (s == m_surfaces.end()) {
-        fprintf(stderr, "swapping buffers for non existing surface\n");
-        return -1;
-    }
-    return eglSwapBuffers(m_dpy, s->second->eglSurface());
-}
diff --git a/tools/emulator/opengl/tests/ut_renderer/Renderer.h b/tools/emulator/opengl/tests/ut_renderer/Renderer.h
deleted file mode 100644
index cdf10b6..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/Renderer.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _RENDERER_H_
-#define _RENDERER_H_
-#include <map>
-#include "RendererSurface.h"
-#include "RendererContext.h"
-#include "NativeWindowing.h"
-#include <utils/threads.h>
-
-class RenderingThread;
-
-class Renderer {
-public:
-
-    class ClientHandle {
-    public:
-        unsigned int pid;
-        unsigned int handle;
-        ClientHandle(unsigned int _pid, unsigned int _handle) : pid(_pid), handle(_handle) {}
-
-        bool operator< (const ClientHandle & p) const {
-            bool val = (pid == p.pid) ? handle < p.handle : pid < p.pid;
-            return val;
-        }
-    };
-
-    static Renderer *instance();
-    int createSurface(RenderingThread *thread, const ClientHandle & handle);
-    int destroySurface(RenderingThread *thread, const ClientHandle &handle);
-    int createContext(RenderingThread *thread, const ClientHandle & ctx, const ClientHandle shareCtx, int version);
-    int destroyContext(RenderingThread *thread,const ClientHandle & ctx);
-    int makeCurrent(RenderingThread *thread,
-                    const ClientHandle & drawSurface, const ClientHandle & readSurface, const ClientHandle & ctx);
-    int swapBuffers(RenderingThread *thread, const ClientHandle & surface);
-
-private:
-    typedef std::map<ClientHandle, RendererSurface *> SurfaceMap;
-    typedef std::map<ClientHandle, RendererContext *> ContextMap;
-    static Renderer *m_instance;
-    Renderer();
-    SurfaceMap m_surfaces;
-    ContextMap m_ctxs;
-    NativeWindowing *m_nw;
-    EGLDisplay m_dpy;
-
-    android::Mutex m_mutex; // single global mutex for the renderer class;
-};
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/RendererContext.cpp b/tools/emulator/opengl/tests/ut_renderer/RendererContext.cpp
deleted file mode 100644
index 0f93acd..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RendererContext.cpp
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RendererContext.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-RendererContext * RendererContext::create(EGLDisplay dpy, EGLConfig config, RendererContext *shareCtx, int version)
-{
-    EGLContext ctx;
-    EGLContext shared = shareCtx == NULL ? EGL_NO_CONTEXT : shareCtx->eglContext();
-
-    EGLint context_attributes[] = { EGL_CONTEXT_CLIENT_VERSION, 1, EGL_NONE };
-    context_attributes[1] = version;
-
-    ctx = eglCreateContext(dpy, config, shared, context_attributes);
-    if (eglGetError() != EGL_SUCCESS) return NULL;
-
-    return new RendererContext(dpy, ctx, version);
-}
-
-int RendererContext::destroy()
-{
-    if (count() <= 0) {
-        eglDestroyContext(m_dpy, m_ctx);
-        return 1;
-    }
-    return 0;
-}
-
-#ifdef PVR_WAR
-void RendererContext::setActiveTexture(GLenum texture)
-{
-    m_activeTexture = texture - GL_TEXTURE0;
-}
-
-void RendererContext::setTex2DBind(GLuint texture)
-{
-    m_tex2DBind[m_activeTexture] = texture;
-}
-
-GLuint RendererContext::getTex2DBind()
-{
-    return m_tex2DBind[m_activeTexture];
-}
-
-void RendererContext::addPendingCropRect(const int *rect)
-{
-    PendingCropRect *r = new PendingCropRect;
-    r->texture = m_tex2DBind[m_activeTexture];
-    memcpy(r->rect, rect, 4*sizeof(int));
-    m_pendingCropRects.insert(r);
-}
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/RendererContext.h b/tools/emulator/opengl/tests/ut_renderer/RendererContext.h
deleted file mode 100644
index bb24a2e..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RendererContext.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _RENDERER_CONTEXT_H_
-#define _RENDERER_CONTEXT_H_
-
-#include "RendererObject.h"
-#include "GLDecoderContextData.h"
-
-#include <EGL/egl.h>
-#define GL_API
-#define GL_APIENTRY
-#include <GLES/gl.h>
-#include <string.h>
-
-#ifdef PVR_WAR
-#include <set>
-struct PendingCropRect
-{
-    GLuint texture;
-    int rect[4];
-};
-
-typedef std::set<PendingCropRect *> PendingCropRectSet;
-#endif
-
-class RendererContext : public RendererObject {
-public:
-    static RendererContext *create(EGLDisplay dpy, EGLConfig config, RendererContext *shareCtx, int version);
-    EGLContext eglContext() { return m_ctx; }
-    int destroy();
-    GLDecoderContextData & decoderContextData() { return m_contextData; }
-#ifdef PVR_WAR
-    void setActiveTexture(GLenum texture);
-    GLenum getActiveTexture() { return GL_TEXTURE0 + m_activeTexture; }
-    void setTex2DBind(GLuint texture);
-    void setTex2DEnable(bool enable) {
-        m_tex2DEnable[m_activeTexture] = enable;
-    }
-    bool isTex2DEnable(int texunit) { return m_tex2DEnable[texunit]; }
-    GLuint getTex2DBind();
-    void addPendingCropRect(const int *rect);
-    PendingCropRectSet &getPendingCropRects() { return m_pendingCropRects; }
-
-    void setClientActiveTexture(GLenum texture) { m_clientActiveTexture = texture - GL_TEXTURE0; }
-    GLenum getClientActiveTexture() { return m_clientActiveTexture + GL_TEXTURE0; }
-    void enableClientState(GLenum cap, bool enable) {
-        switch(cap) {
-            case GL_VERTEX_ARRAY:
-                m_clientStateEnable[0] = enable;
-                break;
-            case GL_NORMAL_ARRAY:
-                m_clientStateEnable[1] = enable;
-                break;
-            case GL_COLOR_ARRAY:
-                m_clientStateEnable[2] = enable;
-                break;
-            case GL_POINT_SIZE_ARRAY_OES:
-                m_clientStateEnable[3] = enable;
-                break;
-            case GL_TEXTURE_COORD_ARRAY:
-                m_clientStateEnable[4 + m_clientActiveTexture] = enable;
-                break;
-        }
-    }
-
-    bool getClientState(GLenum cap, int texUnit) {
-        switch(cap) {
-            case GL_VERTEX_ARRAY:
-                return m_clientStateEnable[0];
-            case GL_NORMAL_ARRAY:
-                return m_clientStateEnable[1];
-            case GL_COLOR_ARRAY:
-                return m_clientStateEnable[2];
-            case GL_POINT_SIZE_ARRAY_OES:
-                return m_clientStateEnable[3];
-                break;
-            case GL_TEXTURE_COORD_ARRAY:
-                return m_clientStateEnable[4 + texUnit];
-                break;
-        }
-        return false;
-    }
-#endif
-
-private:
-    EGLDisplay m_dpy;
-    EGLContext m_ctx;
-    GLDecoderContextData m_contextData;
-    int m_version;
-
-    RendererContext(EGLDisplay dpy, EGLContext ctx, int version) :
-        m_dpy(dpy),
-        m_ctx(ctx),
-        m_version(version)
-    {
-#ifdef PVR_WAR
-        m_activeTexture = 0;
-        m_clientActiveTexture = 0;
-        memset(m_tex2DBind, 0, 8*sizeof(GLuint));
-        memset(m_tex2DEnable, 0, 8*sizeof(bool));
-        memset(m_clientStateEnable, 0, 16*sizeof(bool));
-#endif
-    }
-
-#ifdef PVR_WAR
-    int m_tex2DBind[8];
-    bool m_tex2DEnable[8];
-    int m_activeTexture;
-    int m_clientActiveTexture;
-    bool m_clientStateEnable[16];
-    PendingCropRectSet m_pendingCropRects;
-#endif
-};
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/RendererObject.h b/tools/emulator/opengl/tests/ut_renderer/RendererObject.h
deleted file mode 100644
index 18c89be..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RendererObject.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _RENDERER_OBJECT_H_
-#define _RENDERER_OBJECT_H_
-
-class RendererObject {
-public:
-    RendererObject() { m_count = 0; }
-
-    int count() { return m_count; }
-    void ref() { m_count++; }
-    void unref() { m_count--; }
-private:
-    int m_count;
-};
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/RendererSurface.cpp b/tools/emulator/opengl/tests/ut_renderer/RendererSurface.cpp
deleted file mode 100644
index 7d8d8c6..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RendererSurface.cpp
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RendererSurface.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "NativeWindowing.h"
-
-#define MAX_ATTRIB 100
-
-
-EGLConfig RendererSurface::getEglConfig(EGLDisplay eglDisplay, SurfaceConfig config)
-{
-    EGLConfig eglConfig;
-    int nConfigs;
-
-    EGLint attrib[MAX_ATTRIB];
-    int pos =0;
-
-    attrib[pos++] = EGL_SURFACE_TYPE; attrib[pos++] = EGL_WINDOW_BIT;
-    if (config & CONFIG_DEPTH) {attrib[pos++] = EGL_DEPTH_SIZE; attrib[pos++] = 1;}
-    attrib[pos++] = EGL_NONE;
-
-    if (!eglChooseConfig(eglDisplay, attrib, &eglConfig, 1, &nConfigs)) {
-        return 0;
-    }
-    /***/
-    int ibuf;
-    if (eglGetConfigAttrib(eglDisplay, eglConfig, EGL_BUFFER_SIZE, &ibuf)) {
-        fprintf(stderr, "EGL COLOR Buffer size: %d\n", ibuf);
-    } else {
-        fprintf(stderr, "eglGetConfigAttrib error: %d\n", eglGetError());
-    }
-    if (eglGetConfigAttrib(eglDisplay, eglConfig, EGL_DEPTH_SIZE, &ibuf)) {
-        fprintf(stderr, "EGL DEPTH Buffer size: %d\n", ibuf);
-    } else {
-        fprintf(stderr, "eglGetConfigAttrib error: %d\n", eglGetError());
-    }
-    /***/
-
-
-    if (nConfigs != 1) {
-        return 0;
-    }
-    return eglConfig;
-}
-
-RendererSurface * RendererSurface::create(EGLDisplay eglDisplay, SurfaceConfig config, NativeWindowing *nw)
-{
-    int width = 0, height = 0;
-    const char* env;
-
-    env = getenv("ANDROID_WINDOW_WIDTH");
-    if (env && *env) {
-        width = atoi(env);
-    }
-    env = getenv("ANDROID_WINDOW_HEIGHT");
-    if (env && *env) {
-        height = atoi(env);
-    }
-    if (width <= 160)
-        width = DEFAULT_WIDTH;
-    if (height <= 160)
-        height = DEFAULT_HEIGHT;
-
-    printf("%s: Using width=%d height=%d\n", __FUNCTION__, width, height);
-
-    EGLConfig eglConfig = getEglConfig(eglDisplay, config);
-    if (eglConfig == 0) {
-        return NULL;
-    }
-
-    NativeWindowType window = nw->createNativeWindow(nw->getNativeDisplay(), width, height);
-    if (window == 0) {
-        return NULL;
-    }
-
-    EGLSurface eglSurface = eglCreateWindowSurface(eglDisplay,
-                                                   eglConfig,
-                                                   window, NULL);
-
-    if (eglGetError() != EGL_SUCCESS) {
-        return NULL;
-    }
-
-    return new RendererSurface(eglDisplay, window, eglSurface, eglConfig);
-}
-
-int RendererSurface::destroy(NativeWindowing *nw)
-{
-    eglDestroySurface(m_eglDisplay, m_eglSurface);
-    nw->destroyNativeWindow(nw->getNativeDisplay(), m_window);
-    return 1;
-}
-
diff --git a/tools/emulator/opengl/tests/ut_renderer/RendererSurface.h b/tools/emulator/opengl/tests/ut_renderer/RendererSurface.h
deleted file mode 100644
index 4f6709c..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RendererSurface.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _RENDERER_SURFACE_H_
-#define _RENDERER_SURFACE_H_
-
-#include <EGL/egl.h>
-#include "NativeWindowing.h"
-#include "RendererObject.h"
-
-#define DEFAULT_HEIGHT 480
-#define DEFAULT_WIDTH 320
-
-class RendererSurface : public RendererObject {
-public:
-    typedef enum { CONFIG_DEPTH = 1 << 0 } SurfaceConfig;
-
-    EGLSurface eglSurface() { return m_eglSurface; }
-    EGLConfig eglConfig() { return m_config; }
-    EGLDisplay eglDisplay() { return m_eglDisplay; }
-
-    static RendererSurface * create(EGLDisplay eglDisplay, SurfaceConfig config, NativeWindowing *nw);
-    static EGLConfig getEglConfig(EGLDisplay eglDisplay, SurfaceConfig config);
-
-    int destroy(NativeWindowing *nw);
-
-private:
-    RendererSurface(EGLDisplay display, NativeWindowType window, EGLSurface surface, EGLConfig config) :
-        m_eglDisplay(display),
-        m_config(config),
-        m_window(window),
-        m_eglSurface(surface)
-    {}
-
-    EGLDisplay m_eglDisplay;
-    EGLConfig m_config;
-    NativeWindowType m_window;
-    EGLSurface m_eglSurface;
-};
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/RenderingThread.cpp b/tools/emulator/opengl/tests/ut_renderer/RenderingThread.cpp
deleted file mode 100644
index 70eee20..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RenderingThread.cpp
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "RenderingThread.h"
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include <pthread.h>
-#include "ReadBuffer.h"
-#include "Renderer.h"
-#include "TimeUtils.h"
-
-#include <GLES/glext.h>
-
-__thread RenderingThread * RenderingThread::m_tls;
-
-#ifdef PVR_WAR
-void RenderingThread::s_glTexParameteriv(GLenum target, GLenum param, const int *p)
-{
-    if (target == GL_TEXTURE_2D && param == GL_TEXTURE_CROP_RECT_OES) {
-        m_tls->m_currentContext->addPendingCropRect(p);
-    } else {
-        m_tls->m_glTexParameteriv(target, param, p);
-    }
-}
-
-void RenderingThread::s_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexfOES(x, y, z, w, h);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort w, GLshort h)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexsOES(x, y, z, w, h);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexiOES(GLint x, GLint y, GLint z, GLint w, GLint h)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexiOES(x, y, z, w, h);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexxOES(x, y, z, w, h);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexfvOES(const GLfloat *coords)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexfvOES(coords);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexsvOES(const GLshort *coords)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexsvOES(coords);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexivOES(const GLint *coords)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexivOES(coords);
-    m_tls->fixTextureEnable();
-}
-
-void RenderingThread::s_glDrawTexxvOES(const GLfixed *coords)
-{
-    m_tls->applyPendingCropRects();
-    m_tls->m_glDrawTexxvOES(coords);
-    m_tls->fixTextureEnable();
-}
-
-
-void RenderingThread::s_glActiveTexture(GLenum texture)
-{
-    if (texture - GL_TEXTURE0 >= m_tls->m_backendCaps.maxTextureUnits) return;
-
-    m_tls->m_currentContext->setActiveTexture(texture);
-    m_tls->m_glActiveTexture(texture);
-}
-
-void RenderingThread::s_glBindTexture(GLenum target, GLuint texture)
-{
-    if (target == GL_TEXTURE_2D) m_tls->m_currentContext->setTex2DBind(texture);
-    m_tls->m_glBindTexture(target, texture);
-}
-
-void RenderingThread::s_glEnable(GLenum cap)
-{
-    if (cap == GL_TEXTURE_2D) m_tls->m_currentContext->setTex2DEnable(true);
-    m_tls->m_glEnable(cap);
-}
-
-void RenderingThread::s_glDisable(GLenum cap)
-{
-    if (cap == GL_TEXTURE_2D) m_tls->m_currentContext->setTex2DEnable(false);
-    m_tls->m_glDisable(cap);
-}
-
-void RenderingThread::s_glClientActiveTexture(GLenum texture)
-{
-    if (texture - GL_TEXTURE0 >= m_tls->m_backendCaps.maxTextureUnits) return;
-    m_tls->m_currentContext->setClientActiveTexture(texture);
-    m_tls->m_glClientActiveTexture(texture);
-}
-
-void RenderingThread::s_glEnableClientState(GLenum cap)
-{
-    m_tls->m_currentContext->enableClientState(cap, true);
-    m_tls->m_glEnableClientState(cap);
-}
-
-void RenderingThread::s_glDisableClientState(GLenum cap)
-{
-    m_tls->m_currentContext->enableClientState(cap, false);
-    m_tls->m_glDisableClientState(cap);
-}
-
-void RenderingThread::applyPendingCropRects()
-{
-    PendingCropRectSet &rset = m_currentContext->getPendingCropRects();
-    if (rset.size() > 0) {
-        GLuint currBindedTex = m_currentContext->getTex2DBind();
-        for (PendingCropRectSet::iterator i = rset.begin();
-             i != rset.end();
-             i++) {
-            m_glBindTexture(GL_TEXTURE_2D, (*i)->texture);
-            m_glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, (int *)(*i)->rect);
-            delete (*i);
-        }
-        m_glBindTexture(GL_TEXTURE_2D, currBindedTex);
-        rset.clear();
-    }
-}
-
-void RenderingThread::fixTextureEnable()
-{
-    // restore texture units enable state
-    for (unsigned int i=0; i<m_backendCaps.maxTextureUnits; i++) {
-        m_glActiveTexture(GL_TEXTURE0 + i);
-        if (m_currentContext->isTex2DEnable(i)) {
-            m_glEnable(GL_TEXTURE_2D);
-        }
-        else {
-            m_glDisable(GL_TEXTURE_2D);
-        }
-        m_glClientActiveTexture(GL_TEXTURE0 + i);
-        if (m_currentContext->getClientState(GL_TEXTURE_COORD_ARRAY, i)) {
-            m_glEnableClientState(GL_TEXTURE_COORD_ARRAY);
-        }
-        else {
-            m_glDisableClientState(GL_TEXTURE_COORD_ARRAY);
-        }
-    }
-    // restore current active texture
-    m_glActiveTexture(m_currentContext->getActiveTexture());
-    m_glClientActiveTexture(m_currentContext->getClientActiveTexture());
-
-    // restore other client state enable bits
-    if (m_currentContext->getClientState(GL_VERTEX_ARRAY, 0)) {
-        m_glEnableClientState(GL_VERTEX_ARRAY);
-    }
-    else {
-        m_glDisableClientState(GL_VERTEX_ARRAY);
-    }
-
-    if (m_currentContext->getClientState(GL_NORMAL_ARRAY, 0)) {
-        m_glEnableClientState(GL_NORMAL_ARRAY);
-    }
-    else {
-        m_glDisableClientState(GL_NORMAL_ARRAY);
-    }
-
-    if (m_currentContext->getClientState(GL_COLOR_ARRAY, 0)) {
-        m_glEnableClientState(GL_COLOR_ARRAY);
-    }
-    else {
-        m_glDisableClientState(GL_COLOR_ARRAY);
-    }
-
-    if (m_currentContext->getClientState(GL_POINT_SIZE_ARRAY_OES, 0)) {
-        m_glEnableClientState(GL_POINT_SIZE_ARRAY_OES);
-    }
-    else {
-        m_glDisableClientState(GL_POINT_SIZE_ARRAY_OES);
-    }
-}
-#endif
-
-
-int RenderingThread::s_createContext(uint32_t pid, uint32_t handle, uint32_t shareCtx, int version)
-{
-    return Renderer::instance()->createContext(m_tls, Renderer::ClientHandle(pid, handle),
-                                               Renderer::ClientHandle(pid, shareCtx),
-                                               version);
-
-}
-
-
-int RenderingThread::s_createSurface(uint32_t pid, uint32_t handle)
-{
-    return Renderer::instance()->createSurface(m_tls, Renderer::ClientHandle(pid, handle));
-}
-
-int RenderingThread::s_destroySurface(uint32_t pid, uint32_t handle)
-{
-    return Renderer::instance()->destroySurface(m_tls, Renderer::ClientHandle(pid, handle));
-}
-
-int RenderingThread::s_destroyContext(uint32_t pid, uint32_t handle)
-{
-    return Renderer::instance()->destroyContext(m_tls, Renderer::ClientHandle(pid, handle));
-}
-
-
-int RenderingThread::s_makeCurrent(uint32_t pid, uint32_t drawSurface, uint32_t readSurface, uint32_t ctx)
-{
-    int ret = Renderer::instance()->makeCurrent(m_tls,
-                                             Renderer::ClientHandle(pid, drawSurface),
-                                             Renderer::ClientHandle(pid, readSurface),
-                                             Renderer::ClientHandle(pid, ctx));
-
-    if (ret && ctx) {
-        m_tls->initBackendCaps();
-    }
-
-    return ret;
-}
-
-void RenderingThread::s_swapBuffers(uint32_t pid, uint32_t surface)
-{
-    Renderer::instance()->swapBuffers(m_tls, Renderer::ClientHandle(pid, surface));
-}
-
-
-RenderingThread::RenderingThread(SocketStream *stream) :
-    m_stream(stream),
-    m_currentContext(NULL)
-{
-    m_backendCaps.initialized = false;
-}
-
-int RenderingThread::start(void)
-{
-    if (pthread_create(&m_thread, NULL, s_thread, this) < 0) {
-        perror("pthread_create");
-        return -1;
-    }
-    return 0;
-}
-
-
-void * RenderingThread::s_thread(void *data)
-{
-    RenderingThread *self = (RenderingThread *)data;
-    m_tls = self;
-    return self->thread();
-}
-
-void RenderingThread::initBackendCaps()
-{
-    if (m_backendCaps.initialized) return;
-
-    m_glDec.glGetIntegerv(GL_MAX_TEXTURE_UNITS, (GLint *)&m_backendCaps.maxTextureUnits);
-    m_backendCaps.initialized = true;
-}
-
-void *RenderingThread::thread()
-{
-
-    // initialize our decoders;
-    m_glDec.initGL();
-
-#ifdef PVR_WAR
-    m_glTexParameteriv = m_glDec.set_glTexParameteriv(s_glTexParameteriv);
-    m_glDrawTexfOES = m_glDec.set_glDrawTexfOES(s_glDrawTexfOES);
-    m_glDrawTexsOES = m_glDec.set_glDrawTexsOES(s_glDrawTexsOES);
-    m_glDrawTexiOES = m_glDec.set_glDrawTexiOES(s_glDrawTexiOES);
-    m_glDrawTexxOES = m_glDec.set_glDrawTexxOES(s_glDrawTexxOES);
-    m_glDrawTexfvOES = m_glDec.set_glDrawTexfvOES(s_glDrawTexfvOES);
-    m_glDrawTexsvOES = m_glDec.set_glDrawTexsvOES(s_glDrawTexsvOES);
-    m_glDrawTexivOES = m_glDec.set_glDrawTexivOES(s_glDrawTexivOES);
-    m_glDrawTexxvOES = m_glDec.set_glDrawTexxvOES(s_glDrawTexxvOES);
-    m_glActiveTexture = m_glDec.set_glActiveTexture(s_glActiveTexture);
-    m_glBindTexture = m_glDec.set_glBindTexture(s_glBindTexture);
-    m_glEnable = m_glDec.set_glEnable(s_glEnable);
-    m_glDisable = m_glDec.set_glDisable(s_glDisable);
-    m_glClientActiveTexture = m_glDec.set_glClientActiveTexture(s_glClientActiveTexture);
-    m_glEnableClientState = m_glDec.set_glEnableClientState(s_glEnableClientState);
-    m_glDisableClientState = m_glDec.set_glDisableClientState(s_glDisableClientState);
-#endif
-
-    m_gl2Dec.initGL();
-
-    m_utDec.set_swapBuffers(s_swapBuffers);
-    m_utDec.set_createContext(s_createContext);
-    m_utDec.set_destroyContext(s_destroyContext);
-    m_utDec.set_createSurface(s_createSurface);
-    m_utDec.set_destroySurface(s_destroySurface);
-    m_utDec.set_makeCurrentContext(s_makeCurrent);
-
-    ReadBuffer readBuf(m_stream, DECODER_BUF_SIZE);
-
-    int stats_totalBytes = 0;
-    long long stats_t0 = GetCurrentTimeMS();
-
-    while (1) {
-
-        int stat = readBuf.getData();
-        if (stat == 0) {
-            fprintf(stderr, "client shutdown\n");
-            break;
-        } else if (stat < 0) {
-            perror("getData");
-            break;
-        }
-
-        //
-        // log received bandwidth statistics
-        //
-        stats_totalBytes += readBuf.validData();
-        long long dt = GetCurrentTimeMS() - stats_t0;
-        if (dt > 1000) {
-            float dts = (float)dt / 1000.0f;
-            printf("Used Bandwidth %5.3f MB/s\n", ((float)stats_totalBytes / dts) / (1024.0f*1024.0f));
-            stats_totalBytes = 0;
-            stats_t0 = GetCurrentTimeMS();
-        }
-
-        bool progress = true;
-        while (progress) {
-            progress = false;
-            // we need at least one header (8 bytes) in our buffer
-            if (readBuf.validData() >= 8) {
-                size_t last = m_glDec.decode(readBuf.buf(), readBuf.validData(), m_stream);
-                if (last > 0) {
-                    progress = true;
-                    readBuf.consume(last);
-                }
-            }
-
-            if (readBuf.validData() >= 8) {
-                size_t last = m_gl2Dec.decode(readBuf.buf(), readBuf.validData(), m_stream);
-                if (last > 0) {
-                    readBuf.consume(last);
-                    progress = true;
-                }
-            }
-
-            if (readBuf.validData() >= 8) {
-                size_t last = m_utDec.decode(readBuf.buf(), readBuf.validData(), m_stream);
-                if (last > 0) {
-                    readBuf.consume(last);
-                    progress = true;
-                }
-            }
-        }
-    }
-    // shutdown
-    if (m_currentContext != NULL) {
-        m_currentContext->unref();
-    }
-
-    return NULL;
-}
diff --git a/tools/emulator/opengl/tests/ut_renderer/RenderingThread.h b/tools/emulator/opengl/tests/ut_renderer/RenderingThread.h
deleted file mode 100644
index 0b4ebe6..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/RenderingThread.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _RENDERING_THREAD_H_
-#define _RENDERING_THREAD_H_
-
-#include "SocketStream.h"
-#include "GLDecoder.h"
-#include "GL2Decoder.h"
-#include "ut_rendercontrol_dec.h"
-#include <pthread.h>
-
-#define GL_API
-#define GL_APIENTRY
-
-#include <GLES/egl.h>
-#include <GLES/gl.h>
-
-
-#define WINDOW_WIDTH    320
-#define WINDOW_HEIGHT   480
-
-#define DECODER_BUF_SIZE (4 * 1024 * 1024)
-
-class RendererContext;
-
-class RenderingThread {
-public:
-    RenderingThread(SocketStream *stream);
-    int start();
-    void *thread();
-    RendererContext *currentContext() { return m_currentContext; }
-    void setCurrentContext(RendererContext *ctx) { m_currentContext = ctx; }
-    GLDecoder & glDecoder() { return m_glDec; }
-    GL2Decoder & gl2Decoder() { return m_gl2Dec; }
-
-private:
-    void initBackendCaps();
-
-private:
-    GLDecoder   m_glDec;
-    ut_rendercontrol_decoder_context_t m_utDec;
-    GL2Decoder m_gl2Dec;
-
-    SocketStream   *m_stream;
-    pthread_t m_thread;
-    RendererContext * m_currentContext;
-
-    struct BackendCaps {
-        bool initialized;
-        GLuint maxTextureUnits;
-    } m_backendCaps;
-
-    static void * s_thread(void *data);
-    static __thread RenderingThread *m_tls;
-
-    static int s_createContext(uint32_t pid, uint32_t handle, uint32_t shareCtx, int version);
-    static int s_createSurface(uint32_t pid, uint32_t handle);
-    static int s_destroySurface(uint32_t pid, uint32_t handle);
-    static int s_destroyContext(uint32_t pid, uint32_t handle);
-    static int s_makeCurrent(uint32_t pid, uint32_t drawSurface, uint32_t readSurface, uint32_t ctx);
-    static void s_swapBuffers(uint32_t pid, uint32_t surface);
-#ifdef PVR_WAR
-    static void s_glTexParameteriv(GLenum target, GLenum param, const int *p);
-    static void s_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat w, GLfloat h);
-    static void s_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort w, GLshort h);
-    static void s_glDrawTexiOES(GLint x, GLint y, GLint z, GLint w, GLint h);
-    static void s_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed w, GLfixed h);
-    static void s_glDrawTexfvOES(const GLfloat *coords);
-    static void s_glDrawTexsvOES(const GLshort *coords);
-    static void s_glDrawTexivOES(const GLint *coords);
-    static void s_glDrawTexxvOES(const GLfixed *coords);
-
-    static void s_glActiveTexture(GLenum texture);
-    static void s_glBindTexture(GLenum target, GLuint texture);
-    static void s_glEnable(GLenum cap);
-    static void s_glDisable(GLenum cap);
-    static void s_glClientActiveTexture(GLenum texture);
-    static void s_glEnableClientState(GLenum cap);
-    static void s_glDisableClientState(GLenum cap);
-
-    void applyPendingCropRects();
-    void fixTextureEnable();
-
-    glTexParameteriv_server_proc_t m_glTexParameteriv;
-    glDrawTexfOES_server_proc_t m_glDrawTexfOES;
-    glDrawTexiOES_server_proc_t m_glDrawTexiOES;
-    glDrawTexsOES_server_proc_t m_glDrawTexsOES;
-    glDrawTexxOES_server_proc_t m_glDrawTexxOES;
-    glDrawTexfvOES_server_proc_t m_glDrawTexfvOES;
-    glDrawTexivOES_server_proc_t m_glDrawTexivOES;
-    glDrawTexsvOES_server_proc_t m_glDrawTexsvOES;
-    glDrawTexxvOES_server_proc_t m_glDrawTexxvOES;
-    glActiveTexture_server_proc_t m_glActiveTexture;
-    glBindTexture_server_proc_t m_glBindTexture;
-    glEnable_server_proc_t m_glEnable;
-    glDisable_server_proc_t m_glDisable;
-    glClientActiveTexture_server_proc_t m_glClientActiveTexture;
-    glEnableClientState_server_proc_t m_glEnableClientState;
-    glDisableClientState_server_proc_t m_glDisableClientState;
-#endif
-
-};
-
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp b/tools/emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp
deleted file mode 100644
index 121ee87..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/X11RendererSurface.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "X11RendererSurface.h"
-
-NativeDisplayType X11RendererSurface::getNativeDisplay()
-{
-    if (m_display == NULL) {
-        m_display = XOpenDisplay(NULL);
-    }
-    return NativeDisplayType(m_display);
-}
-
-int X11RendererSurface::destoryNativeWindow(NativeWindowType win)
-{
-    if (m_display == NULL) return -1;
-
-    Window x11Window = (Window)(win);
-    return XDestroyWindow(m_display, x11Window);
-}
-
-NativeWindowType GlesX11Win::createNativeWindow()
-{
-
-    getNativeDisplay();
-    if (m_display == NULL) {
-        return -1;
-    }
-
-    long defaultScreen = DefaultScreen( dpy );
-    Window rootWindow = RootWindow(dpy, defaultScreen);
-    int depth = DefaultDepth(dpy, defaultScreen);
-    XVisualInfo *visualInfo = new XVisualInfo;
-
-    XMatchVisualInfo(m_display, defaultScreen, , dpeth, TrueColor, visualInfo);
-    if (visualInfo == NULL) {
-        fprintf(stderr, "couldn't find matching visual\n");
-        return -1;
-    }
-
-    Colormap x11Colormap = XCreateColormap(m_display, rootWindow, visualInfo->visual, AllocNone);
-    XSetWindowAttributes sWA;
-    sWA.Colormap = x11Colormap;
-    sWA.event_mask = StructureNotifyMask | ExposureMask;
-    unsigned int eventMask = CWBackPixel | CWBorderPixel | CWEventMask | CWColormap;
-
-    Window win = XCreateWindow( m_display,
-                                rootWindow,
-                               0, 0, width, height,
-                                 0, CopyFromParent, InputOutput,
-                               CopyFromParent, eventMask, &sWA);
-
-    XMapWindow(m_display, win);
-    XFlush(m_display);
-    return NativeWindowType(win);
-}
-
diff --git a/tools/emulator/opengl/tests/ut_renderer/X11RendererSurface.h b/tools/emulator/opengl/tests/ut_renderer/X11RendererSurface.h
deleted file mode 100644
index be9bcec..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/X11RendererSurface.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _X11_RENDERER_SURFACE_H_
-#define _X11_RENDERER_SURFACE_H_
-
-#include <X11/Xutil.h>
-#include <X11/Xlib.h>
-#include <EGL/egl.h>
-
-include "RendererSurface.h"
-
-class X11RendererSurface : public RendererSurface
-{
-public:
-    X11RendererSurface() : RendererSurface() {
-        m_display = NULL;
-    }
-    NativeDisplayType getNativeDisplay();
-    NativeWindowType createNativeWindow();
-    int destroyNativeWindow(NativeWindowType win);
-private:
-    Display m_display;
-};
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/X11Windowing.cpp b/tools/emulator/opengl/tests/ut_renderer/X11Windowing.cpp
deleted file mode 100644
index cc94fdd..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/X11Windowing.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include "X11Windowing.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-
-#define DEBUG 0
-#if DEBUG
-#  define D(...) printf(__VA_ARGS__), printf("\n")
-#else
-#  define D(...) ((void)0)
-#endif
-
-/* Try to remember the window position between creates/destroys */
-static int X11_wmXPos = 100;
-static int X11_wmYPos = 100;
-
-static int X11_wmXAdjust = 0;
-static int X11_wmYAdjust = 0;
-
-static void
-get_window_pos( Display *disp, Window win, int *px, int *py )
-{
-    Window  child;
-
-    XTranslateCoordinates( disp, win, DefaultRootWindow(disp),  0, 0, px, py, &child );
-}
-
-
-static void
-set_window_pos(Display *disp, Window win, int x, int y)
-{
-    int   xNew, yNew;
-    int   xAdjust = X11_wmXAdjust;
-    int   yAdjust = X11_wmYAdjust;
-
-    /* this code is tricky because some window managers, but not all,
-     * will translate the final window position by a given offset
-     * corresponding to the frame decoration.
-     *
-     * so we first try to move the window, get the position that the
-     * window manager has set, and if they are different, re-position the
-     * window again with an adjustment.
-     *
-     * this causes a slight flicker since the window 'jumps' very
-     * quickly from one position to the other.
-     */
-
-    D("%s: move to [%d,%d] adjusted to [%d,%d]", __FUNCTION__,
-      x, y, x+xAdjust, y+yAdjust);
-    XMoveWindow(disp, win, x + xAdjust, y + yAdjust);
-    XSync(disp, True);
-    get_window_pos(disp, win, &xNew, &yNew);
-    if (xNew != x || yNew != y) {
-        X11_wmXAdjust = xAdjust = x - xNew;
-        X11_wmYAdjust = yAdjust = y - yNew;
-        D("%s: read pos [%d,%d], recomputing adjust=[%d,%d] moving to [%d,%d]\n",
-          __FUNCTION__, xNew, yNew, xAdjust, yAdjust, x+xAdjust, y+yAdjust);
-        XMoveWindow(disp, win, x + xAdjust, y + yAdjust );
-    }
-    XSync(disp, False);
-}
-
-
-NativeDisplayType X11Windowing::getNativeDisplay()
-{
-    Display *dpy = XOpenDisplay(NULL);
-    return (NativeDisplayType)dpy;
-}
-
-NativeWindowType X11Windowing::createNativeWindow(NativeDisplayType _dpy, int width, int height)
-{
-    Display *dpy = (Display *) _dpy;
-
-    long defaultScreen = DefaultScreen( dpy );
-    Window rootWindow = RootWindow(dpy, defaultScreen);
-    int depth = DefaultDepth(dpy, defaultScreen);
-    XVisualInfo *visualInfo = new XVisualInfo;
-
-    XMatchVisualInfo(dpy, defaultScreen, depth, TrueColor, visualInfo);
-    if (visualInfo == NULL) {
-        fprintf(stderr, "couldn't find matching visual\n");
-        return NULL;
-    }
-
-    Colormap x11Colormap = XCreateColormap(dpy, rootWindow, visualInfo->visual, AllocNone);
-    XSetWindowAttributes sWA;
-    sWA.colormap = x11Colormap;
-    sWA.event_mask = StructureNotifyMask | ExposureMask;
-    sWA.background_pixel = 0;
-    sWA.border_pixel = 0;
-    unsigned int attributes_mask = CWBackPixel | CWBorderPixel | CWEventMask | CWColormap;
-
-    Window win = XCreateWindow( dpy,
-                                rootWindow,
-                                X11_wmXPos, X11_wmYPos, width, height,
-                                0, CopyFromParent, InputOutput,
-                                CopyFromParent, attributes_mask, &sWA);
-
-    XMapWindow(dpy, win);
-    XFlush(dpy);
-    set_window_pos(dpy, win, X11_wmXPos, X11_wmYPos);
-    return NativeWindowType(win);
-}
-
-int X11Windowing::destroyNativeWindow(NativeDisplayType _dpy, NativeWindowType _win)
-{
-    Display *dpy = (Display *)_dpy;
-    Window win = (Window)_win;
-    get_window_pos(dpy, win, &X11_wmXPos, &X11_wmYPos);
-    D("%s: Saved window position [%d, %d]\n", __FUNCTION__, X11_wmXPos, X11_wmYPos);
-    XDestroyWindow(dpy, win);
-    XFlush(dpy);
-    return 0;
-}
diff --git a/tools/emulator/opengl/tests/ut_renderer/X11Windowing.h b/tools/emulator/opengl/tests/ut_renderer/X11Windowing.h
deleted file mode 100644
index 0f0c76b..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/X11Windowing.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#ifndef _X11WINDOWING_H_
-#define _X11WINDOWING_H_
-
-#include "NativeWindowing.h"
-
-class X11Windowing : public NativeWindowing {
-    NativeDisplayType getNativeDisplay();
-    NativeWindowType createNativeWindow(NativeDisplayType _dpy, int width, int height);
-    int destroyNativeWindow(NativeDisplayType dpy, NativeWindowType win);
-};
-
-#endif
diff --git a/tools/emulator/opengl/tests/ut_renderer/ut_renderer.cpp b/tools/emulator/opengl/tests/ut_renderer/ut_renderer.cpp
deleted file mode 100644
index f2b2bc3..0000000
--- a/tools/emulator/opengl/tests/ut_renderer/ut_renderer.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-* Copyright (C) 2011 The Android Open Source Project
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include "codec_defs.h"
-#include "RenderingThread.h"
-#include "TcpStream.h"
-#ifndef _WIN32
-#include "UnixStream.h"
-#endif
-
-
-int main(int argc, char **argv)
-{
-#ifdef _WIN32
-    TcpStream *socket = new TcpStream();
-
-    if (socket->listen(CODEC_SERVER_PORT) < 0) {
-        perror("listen");
-        exit(1);
-    }
-#else
-    UnixStream *socket = new UnixStream();
-
-    if (socket->listen(CODEC_SERVER_PORT) < 0) {
-        perror("listen");
-        exit(1);
-    }
-#endif
-
-    printf("waiting for client connection on port: %d\n", CODEC_SERVER_PORT);
-    while (1) {
-        // wait for client connection
-        SocketStream  *glStream = socket->accept();
-        if (glStream == NULL) {
-            printf("failed to get client.. aborting\n");
-            exit(3);
-        }
-        printf("Got client connection, creating a rendering thread;\n");
-        // create a thread to handle this connection
-        RenderingThread *rt = new RenderingThread(glStream);
-        rt->start();
-    }
-
-    return 0;
-}
-
-
diff --git a/tools/emulator/system/camera/JpegCompressor.h b/tools/emulator/system/camera/JpegCompressor.h
index 1f97ae4..504ffcd 100644
--- a/tools/emulator/system/camera/JpegCompressor.h
+++ b/tools/emulator/system/camera/JpegCompressor.h
@@ -23,6 +23,7 @@
  */
 
 #include <YuvToJpegEncoder.h>
+#include <utils/threads.h>
 
 namespace android {